绩效考核
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.
 
 
 

217 lines
6.8 KiB

package assessment
import (
"fmt"
"strconv"
"strings"
"time"
"gin_server_admin/commonus"
"gin_server_admin/global"
"gin_server_admin/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 {
}
// jsonCont, _ := json.Marshal(sunTargetCont)
// fmt.Printf("jsonKKKK----------------->%v\n", string(jsonCont))
groupInt, groupIntErr := strconv.ParseInt(addData.Group, 10, 64)
if groupIntErr != nil {
groupInt = 1
}
dimensionInt, departinIntErr := strconv.ParseInt(addData.Dimension, 10, 64)
if departinIntErr != nil {
dimensionInt = 0
}
targetInt, targetIntErr := strconv.ParseInt(addData.Target, 10, 64)
if targetIntErr != nil {
targetInt = 0
}
departmentIdInt, departmentIdIntErr := strconv.ParseInt(deparmentId, 10, 64)
if departmentIdIntErr != nil {
departmentIdInt = 0
}
// var dimIdInt int64 = 0
//获取所属维度
// targetInfo, targetInfoErr := commonus.GetDutyClassInfo(targetInt)
targetInfo, targetInfoErr := commonus.GetTargetInfo(targetInt)
// jsonDim, _ := json.Marshal(targetInfo)
// fmt.Printf("dim---------------->%v\n", jsonDim)s
if targetInfoErr == true {
if dimensionInt == 0 {
dimensionInt = targetInfo.Dimension
}
}
addDepartDimension(addData.Group, strconv.FormatInt(dimensionInt, 10), addData.Dimension, 1)
var jiBuQi int = 0
var saveDataAry []assessmentmodel.QualitativeEvaluation
for _, v := range addData.EvaluationList {
wheAry := commonus.MapOut()
var saveData assessmentmodel.QualitativeEvaluation
saveData.Group = groupInt
saveData.Type = addData.Type
// departidInt, departinIntErr := strconv.ParseInt(v.DepartmentId, 10, 64)
// if departinIntErr == nil {
// saveData.DepartmentId = departidInt
// }
saveData.Dimension = dimensionInt
saveData.Target = targetInt
saveData.TargetSun = sunTargetCont.Id
wheAry["qe_dimension"] = dimensionInt
wheAry["qe_target"] = targetInt
wheAry["qe_target_sun"] = sunTargetCont.Id
wheAry["qe_group"] = groupInt
wheAry["qe_type"] = addData.Type
// 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, sunTargetCont.Id)
if explainErr == true {
saveData.DetailedTarget = explainCont.Id
wheAry["qe_detailed_target"] = 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()
if departmentIdInt != 0 {
saveData.AcceptEvaluation = departmentIdInt
wheAry["qe_accept_evaluation"] = departmentIdInt
}
saveData.Operator = strings.Join(v.Operator, ",")
saveData.DepartmentId = strings.Join(GetDepartmentByUserBast(v.Operator), ",")
//判断该项目是否存在!
judgeIsSet := global.GVA_DB_Performanceappraisal.Where(wheAry).First(&saveData).Error
if judgeIsSet == nil {
jiBuQi++
eiteData := commonus.MapOut()
eiteData["qe_unit"] = v.Unit
eiteData["qe_reference_score"] = v.ReferenceScore
eiteData["qe_eitetime"] = time.Now().Unix()
eiteData["qe_cycle"] = v.Cycles
eiteData["qe_cycleattr"] = v.CycleAttres
eiteData["qe_content"] = v.Content
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("qe_id = ?", saveData.Id).Updates(&eiteData)
} else {
saveDataAry = append(saveDataAry, saveData)
}
msg := commonus.MapOut()
msg["msg"] = saveData
d.dataMap = append(d.dataMap, msg)
}
if len(saveDataAry) > 0 {
addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error
if addErr != nil {
msg := commonus.MapOut()
msg["data"] = saveDataAry
msg["msg"] = fmt.Sprintf("《%v》考核维度录入失败!请重新处理此方案", addData.Dimension)
d.dataErrMap = append(d.dataErrMap, msg)
}
}
commonus.AddDimenTargetWeight(int64(addData.Type), groupInt, departmentIdInt, dimensionInt, targetInt)
syncProcess.Done()
}
//判断该子栏目是否存在
/*
@ascription 指标ID
@columId 子指标ID
@title 指标名称
*/
func judgeColumn(ascription, columId, title 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).Error
if addErr != nil {
return
}
isTrue = true
content = saveColum
return
}
//判断考核细则是否存在
/*
参数说明
@ascription 归属指标栏目
@title 指标细则
@explain 指标说明'
@explainId 指标明细ID
@sunTargetId 子栏目
*/
func judgeDetails(ascription, title, explain, explainId string, sunTargetId int64) (content assessmentmodel.DetailedTarget, isTrue bool) {
isTrue = false
if explainId != "" {
judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", explainId).First(&content).Error
if judgeIdErr == nil {
// fmt.Printf("echo --------------1---------->%v\n", content)
isTrue = true
return
}
}
judgeErr := global.GVA_DB_Performanceappraisal.Where("`dt_parentid` = ? AND `dt_title` = ?", ascription, title).First(&content).Error
if judgeErr == nil {
isTrue = true
// fmt.Printf("echo --------------2---------->%v\n", content)
return
}
ascriptionId, ascriptionErr := strconv.ParseInt(ascription, 10, 64)
if ascriptionErr != nil {
ascriptionId = 0
}
saveColum := assessmentmodel.DetailedTarget{Title: title, Content: explain, ParentId: ascriptionId, ParentIdSun: sunTargetId, State: 1, AddTime: time.Now().Unix()}
addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum).Error
if addErr != nil {
// fmt.Printf("echo --------------3---------->%v\n", saveColum.Id)
return
}
// fmt.Printf("echo --------------4---------->%v\n", saveColum.Id)
isTrue = true
content = saveColum
return
}