dddd
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

137 lines
4.3 KiB

package assessment
import (
"strconv"
"strings"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
)
//添加卡片考核数据处理
func (d *dataLockStatistics) AddCardAssEss(deparmentId string, addData AddQualEval) {
d.mutext.Lock()
defer d.mutext.Unlock()
//获取子目标情况
sunTargetCont, sunTargetErr := judgeColumn(addData.Target, addData.TargetSun, addData.TargetSunTitle)
if sunTargetErr != true {
}
var saveDataAry []assessmentmodel.QualitativeEvaluation
for _, v := range addData.EvaluationList {
var saveData assessmentmodel.QualitativeEvaluation
groupInt, groupIntErr := strconv.ParseInt(addData.Group, 10, 64)
if groupIntErr == nil {
saveData.Group = groupInt
}
saveData.Type = addData.Type
// departidInt, departinIntErr := strconv.ParseInt(v.DepartmentId, 10, 64)
// if departinIntErr == nil {
// saveData.DepartmentId = departidInt
// }
dimensionInt, departinIntErr := strconv.ParseInt(addData.Dimension, 10, 64)
if departinIntErr == nil {
saveData.Dimension = dimensionInt
}
targetInt, targetIntErr := strconv.ParseInt(addData.Target, 10, 64)
if targetIntErr == nil {
saveData.Target = targetInt
}
saveData.TargetSun = sunTargetCont.Id
// targetSunInt, targetSunIntErr := strconv.ParseInt(addData.TargetSun, 10, 64)
// if targetSunIntErr == nil {
// saveData.TargetSun = targetSunInt
// }
explainCont, explainErr := judgeDetails(addData.Target, v.Title, v.Content, v.DetailedTarget)
if explainErr == true {
saveData.DetailedTarget = explainCont.Id
}
// detailedTargetInt, detailedTargetIntErr := strconv.ParseInt(v.DetailedTarget, 10, 64)
// if detailedTargetIntErr == nil {
// saveData.DetailedTarget = detailedTargetInt
// }
saveData.Unit = v.Unit
saveData.ReferenceScore = v.ReferenceScore
saveData.Cycles = v.Cycles
saveData.CycleAttres = v.CycleAttres
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
departmentIdInt, departmentIdIntErr := strconv.ParseInt(deparmentId, 10, 64)
if departmentIdIntErr == nil {
saveData.AcceptEvaluation = departmentIdInt
}
saveData.Operator = strings.Join(v.Operator, ",")
saveData.DepartmentId = strings.Join(GetDepartmentByUserBast(v.Operator), ",")
saveDataAry = append(saveDataAry, saveData)
msg := commonus.MapOut()
msg["msg"] = saveData
d.dataMap = append(d.dataMap, msg)
}
syncProcess.Done()
}
//判断该子栏目是否存在
func judgeColumn(ascription, title, columId string) (content assessmentmodel.QualitativeTarget, isTrue bool) {
isTrue = false
if columId != "" {
judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`q_id` = ?", columId).First(&content).Error
if judgeIdErr == nil {
isTrue = true
return
}
}
judgeErr := global.GVA_DB_Performanceappraisal.Where("`q_parent_id` = ? AND `q_title` = ?", ascription, title).First(&content).Error
if judgeErr == nil {
isTrue = true
return
}
ascriptionId, ascriptionErr := strconv.ParseInt(ascription, 10, 64)
if ascriptionErr != nil {
ascriptionId = 0
}
saveColum := assessmentmodel.QualitativeTarget{Title: title, ParentId: ascriptionId, State: 1, AddTime: time.Now().Unix()}
addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum)
if addErr != nil {
return
}
isTrue = true
content = saveColum
return
}
//判断考核细则是否存在
func judgeDetails(ascription, title, explain, explainId string) (content assessmentmodel.DetailedTarget, isTrue bool) {
isTrue = false
if explainId != "" {
judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", explainId).First(&content).Error
if judgeIdErr == nil {
isTrue = true
return
}
}
judgeErr := global.GVA_DB_Performanceappraisal.Where("`dt_parentid` = ? AND `dt_title` = ?", ascription, title).First(&content).Error
if judgeErr == nil {
isTrue = true
return
}
ascriptionId, ascriptionErr := strconv.ParseInt(ascription, 10, 64)
if ascriptionErr != nil {
ascriptionId = 0
}
saveColum := assessmentmodel.DetailedTarget{Title: title, Content: explain, ParentId: ascriptionId, State: 1, AddTime: time.Now().Unix()}
addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum)
if addErr != nil {
return
}
isTrue = true
content = saveColum
return
}