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.
 
 
 
 
 

186 lines
5.9 KiB

package assessment
import (
"encoding/json"
"fmt"
"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 {
}
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 saveDataAry []assessmentmodel.QualitativeEvaluation
for _, v := range addData.EvaluationList {
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
// 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
}
// 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
}
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)
}
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)
} else {
commonus.AddDimenTargetWeight(int64(addData.Type), groupInt, departmentIdInt, dimensionInt, targetInt)
}
}
syncProcess.Done()
}
//判断该子栏目是否存在
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
}