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.
261 lines
8.4 KiB
261 lines
8.4 KiB
package dutyassess
|
|
|
|
import (
|
|
"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"
|
|
)
|
|
|
|
//判断考核细则是否存在(新规则)
|
|
/*
|
|
参数说明
|
|
@ascription 归属指标栏目
|
|
@title 指标细则
|
|
@explain 指标说明'
|
|
@explainId 指标明细ID
|
|
@ReferenceScore 分数
|
|
@CompanyCont 单位
|
|
@sunTargetId 子栏目
|
|
*/
|
|
// func JudgeDetailsCopy(ascription, title, explain, explainId, ReferenceScore, CompanyCont string, sunTargetId int64, addReduce int) (content assessmentmodel.DetailedTarget, isTrue bool)
|
|
// detailedTargetInfo, dtiIsTrue := commonus.JudgeDetailsCopy(requestData.Target, v.Title, v.Content, v.DetailedTarget, v.ReferenceScore, v.Unit, sunTargetCont.Id, v.AddOrReduce)
|
|
/*
|
|
参数说明
|
|
@ascription 归属指标栏目
|
|
@departStr 接受考核的部门
|
|
@sunTargetId 子栏目
|
|
@detailedTarget 考核细则
|
|
*/
|
|
func JudgeDetailsCopyEs(ascription, departStr string, sunTargetId int64, detailedTarget QualEvalSunList) (content assessmentmodel.DetailedTarget, isTrue bool) {
|
|
|
|
if detailedTarget.AddOrReduce == 0 {
|
|
detailedTarget.AddOrReduce = 1
|
|
}
|
|
var minScoreInt int64
|
|
var maxScoreInt int64
|
|
scoreAry := strings.Split(detailedTarget.ReferenceScore, "-")
|
|
scoreLen := len(scoreAry)
|
|
// fmt.Printf("ScoreAry:%v----------->%v------------>%v------------>%v\n", ReferenceScore, scoreLen, scoreAry[0], scoreAry)
|
|
if scoreLen > 0 {
|
|
if scoreLen == 1 {
|
|
maxScore, _ := strconv.ParseFloat(scoreAry[0], 64)
|
|
zhhh := maxScore * 100
|
|
zhuanStr := strconv.FormatFloat(zhhh, 'f', -1, 64)
|
|
maxScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64)
|
|
minScoreInt = 0
|
|
|
|
fmt.Printf("ScoreAry--1-----:%v----------->%v------------>%v------------>%v\n", maxScore, maxScoreInt, zhuanStr, zhhh)
|
|
} else {
|
|
minScore, _ := strconv.ParseFloat(scoreAry[0], 64)
|
|
maxScore, _ := strconv.ParseFloat(scoreAry[scoreLen-1], 64)
|
|
minScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(minScore*100, 'f', -1, 64), 10, 64)
|
|
maxScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64)
|
|
}
|
|
} else {
|
|
minScoreInt = 0
|
|
maxScoreInt = 0
|
|
}
|
|
isTrue = false
|
|
if detailedTarget.DetailedTarget != "" {
|
|
judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", detailedTarget.DetailedTarget).First(&content).Error
|
|
if judgeIdErr == nil {
|
|
eiteCont := commonus.MapOut()
|
|
if minScoreInt > maxScoreInt {
|
|
eiteCont["dt_min_score"] = maxScoreInt
|
|
eiteCont["dt_max_score"] = minScoreInt
|
|
} else {
|
|
eiteCont["dt_min_score"] = minScoreInt
|
|
eiteCont["dt_max_score"] = maxScoreInt
|
|
}
|
|
eiteCont["dt_title"] = detailedTarget.Title
|
|
eiteCont["dt_content"] = detailedTarget.Content
|
|
eiteCont["dt_company"] = detailedTarget.Unit
|
|
if detailedTarget.AddOrReduce > 0 {
|
|
eiteCont["dt_add_reduce"] = detailedTarget.AddOrReduce
|
|
}
|
|
eiteCont["dt_time"] = time.Now().Unix()
|
|
|
|
// if detailedTarget.Cycles != 0 {
|
|
// eiteCont["dt_cycle"] = detailedTarget.Cycles
|
|
// }
|
|
// if detailedTarget.Cycles != "" {
|
|
eiteCont["dt_cycle"] = detailedTarget.Cycles
|
|
// }
|
|
if detailedTarget.CycleAttres != 0 {
|
|
eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres
|
|
}
|
|
|
|
if len(detailedTarget.CensorType) > 0 {
|
|
eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",")
|
|
}
|
|
eiteCont["dt_censor_cont"] = detailedTarget.CensorCont
|
|
if detailedTarget.CensorRate != 0 {
|
|
eiteCont["dt_censor_rate"] = detailedTarget.CensorRate
|
|
}
|
|
|
|
if departStr != "" {
|
|
eiteCont["dt_paretment"] = departStr
|
|
}
|
|
|
|
global.GVA_DB_Performanceappraisal.Model(&content).Where("`dt_id` = ?", detailedTarget.DetailedTarget).Updates(&eiteCont)
|
|
// fmt.Printf("echo --------------1---------->%v\n", content)
|
|
isTrue = true
|
|
return
|
|
}
|
|
}
|
|
judgeErr := global.GVA_DB_Performanceappraisal.Where("`dt_parentid` = ? AND `dt_title` = ?", ascription, detailedTarget.Title).First(&content).Error
|
|
if judgeErr == nil {
|
|
isTrue = true
|
|
eiteCont := commonus.MapOut()
|
|
if minScoreInt > maxScoreInt {
|
|
eiteCont["dt_min_score"] = maxScoreInt
|
|
eiteCont["dt_max_score"] = minScoreInt
|
|
} else {
|
|
eiteCont["dt_min_score"] = minScoreInt
|
|
eiteCont["dt_max_score"] = maxScoreInt
|
|
}
|
|
eiteCont["dt_content"] = detailedTarget.Content
|
|
eiteCont["dt_company"] = detailedTarget.Unit
|
|
if detailedTarget.AddOrReduce > 0 {
|
|
eiteCont["dt_add_reduce"] = detailedTarget.AddOrReduce
|
|
}
|
|
|
|
eiteCont["dt_time"] = time.Now().Unix()
|
|
|
|
// if detailedTarget.Cycles != "" {
|
|
// eiteCont["dt_cycle"] = detailedTarget.Cycles
|
|
// }
|
|
// if detailedTarget.Cycles != 0 {
|
|
eiteCont["dt_cycle"] = detailedTarget.Cycles
|
|
// }
|
|
if detailedTarget.CycleAttres != 0 {
|
|
eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres
|
|
}
|
|
|
|
if len(detailedTarget.CensorType) > 0 {
|
|
eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",")
|
|
}
|
|
eiteCont["dt_censor_cont"] = detailedTarget.CensorCont
|
|
if detailedTarget.CensorRate != 0 {
|
|
eiteCont["dt_censor_rate"] = detailedTarget.CensorRate
|
|
}
|
|
if departStr != "" {
|
|
eiteCont["dt_paretment"] = departStr
|
|
}
|
|
global.GVA_DB_Performanceappraisal.Model(&content).Where("`dt_id` = ?", content.Id).Updates(&eiteCont)
|
|
// fmt.Printf("echo --------------2---------->%v\n", content)
|
|
return
|
|
}
|
|
ascriptionId, ascriptionErr := strconv.ParseInt(ascription, 10, 64)
|
|
if ascriptionErr != nil {
|
|
ascriptionId = 0
|
|
}
|
|
|
|
var minScoreIsTrue int64 = 0
|
|
var maxScoreIsTrue int64 = 0
|
|
if minScoreInt > maxScoreInt {
|
|
minScoreIsTrue = maxScoreInt
|
|
maxScoreIsTrue = minScoreInt
|
|
} else {
|
|
minScoreIsTrue = minScoreInt
|
|
maxScoreIsTrue = maxScoreInt
|
|
}
|
|
|
|
// fmt.Printf("ScoreAry---KKKK:%v----------->%v------------>%v------------>%v", minScoreIsTrue, maxScoreIsTrue, minScoreIsTrue, maxScoreIsTrue)
|
|
|
|
var saveColumEs assessmentmodel.DetailedTarget
|
|
|
|
saveColumEs.Title = detailedTarget.Title
|
|
saveColumEs.Content = detailedTarget.Content
|
|
saveColumEs.ParentId = ascriptionId
|
|
saveColumEs.ParentIdSun = sunTargetId
|
|
saveColumEs.State = 1
|
|
saveColumEs.AddTime = time.Now().Unix()
|
|
saveColumEs.MinScore = minScoreIsTrue
|
|
saveColumEs.MaxScore = maxScoreIsTrue
|
|
saveColumEs.Company = detailedTarget.Unit
|
|
if detailedTarget.AddOrReduce > 0 {
|
|
saveColumEs.AddReduce = detailedTarget.AddOrReduce
|
|
} else {
|
|
saveColumEs.AddReduce = 1
|
|
}
|
|
if len(detailedTarget.CensorType) > 0 {
|
|
saveColumEs.CensorType = strings.Join(detailedTarget.CensorType, ",")
|
|
} else {
|
|
saveColumEs.CensorType = "1"
|
|
}
|
|
saveColumEs.CensorCont = detailedTarget.CensorCont
|
|
if detailedTarget.CensorRate > 0 {
|
|
saveColumEs.CensorRate = detailedTarget.CensorRate
|
|
} else {
|
|
saveColumEs.CensorRate = 1
|
|
}
|
|
var targetInfoCont assessmentmodel.EvaluationTarget
|
|
tarEvlWhe := commonus.MapOut()
|
|
tarEvlWhe["et_id"] = ascriptionId
|
|
targetInfoCont.GetCont(tarEvlWhe, "et_cycle", "et_cycleattr")
|
|
|
|
// intCycles, _ := strconv.Atoi(detailedTarget.Cycles)
|
|
// if intCycles > 0 {
|
|
// saveColumEs.Cycles = intCycles
|
|
// } else {
|
|
// if targetInfoCont.Cycles > 1 {
|
|
// saveColumEs.Cycles = targetInfoCont.Cycles
|
|
// } else {
|
|
// saveColumEs.Cycles = 4
|
|
// }
|
|
|
|
// }
|
|
|
|
if detailedTarget.Cycles > 0 {
|
|
saveColumEs.Cycles = detailedTarget.Cycles
|
|
} else {
|
|
if targetInfoCont.Cycles > 1 {
|
|
saveColumEs.Cycles = targetInfoCont.Cycles
|
|
} else {
|
|
saveColumEs.Cycles = 0
|
|
}
|
|
|
|
}
|
|
if detailedTarget.CycleAttres > 0 {
|
|
saveColumEs.CycleAttres = detailedTarget.CycleAttres
|
|
} else {
|
|
if targetInfoCont.CycleAttres > 1 {
|
|
saveColumEs.CycleAttres = targetInfoCont.CycleAttres
|
|
} else {
|
|
saveColumEs.CycleAttres = 1
|
|
}
|
|
}
|
|
saveColumEs.Paretment = departStr
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveColumEs).Error
|
|
|
|
// saveColum := assessmentmodel.DetailedTarget{
|
|
// Title: detailedTarget.Title,
|
|
// Content: detailedTarget.CensorCont,
|
|
// ParentId: ascriptionId,
|
|
// ParentIdSun: sunTargetId,
|
|
// State: 1,
|
|
// AddTime: time.Now().Unix(),
|
|
// Company: detailedTarget.Unit,
|
|
// MinScore: minScoreIsTrue,
|
|
// MaxScore: maxScoreIsTrue,
|
|
// AddReduce: detailedTarget.AddOrReduce,
|
|
// Cycles: detailedTarget.Cycles,
|
|
// CycleAttres: detailedTarget.CycleAttres,
|
|
// }
|
|
// 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
|
|
content = saveColumEs
|
|
return
|
|
}
|
|
|