@ -1,6 +1,7 @@
package assessment
package assessment
import (
import (
"fmt"
"strconv"
"strconv"
"strings"
"strings"
"time"
"time"
@ -457,3 +458,114 @@ func (d *DutyHandle) QualEvalTargetTree(c *gin.Context) {
}
}
response . Result ( 0 , uotContAry , "数据获取成功!" , c )
response . Result ( 0 , uotContAry , "数据获取成功!" , c )
}
}
//部门考核(新)
func ( d * DutyHandle ) DepartmentListNew ( c * gin . Context ) {
var requestData rationSelect
c . ShouldBindJSON ( & requestData )
//获取维度列表
var dutyClassAry [ ] assessmentmodel . DutyClass
gromDb := global . GVA_DB_Performanceappraisal
gromDb = gromDb . Where ( "`state` = 1" )
classErr := gromDb . Find ( & dutyClassAry ) . Error
if classErr != nil {
response . Result ( 0 , classErr , "未获取到数据" , c )
return
}
var departAryList [ ] departmentDutyNew
for _ , v := range dutyClassAry {
var departCont departmentDutyNew
departCont . Id = strconv . FormatInt ( v . Id , 10 )
departCont . Name = v . Title
departCont . Child = GetEvalTarget ( v . Id , requestData . Group , requestData . DepartmentId )
departAryList = append ( departAryList , departCont )
}
response . Result ( 0 , departAryList , "数据获取成功!" , c )
}
//获取考核指标
func GetEvalTarget ( dimId int64 , group , departId string ) ( dimensionAry [ ] taskDetailsLinkage ) {
var contAry [ ] assessmentmodel . EvaluationTarget
gormDb := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . EvaluationTarget { } ) . Where ( "et_state = 1 AND `et_dimension` = ?" , dimId )
if departId != "" {
sqlOrStr := fmt . Sprintf ( "FIND_IN_SET(%v,`et_relevant_departments`)" , departId )
sqlOrStr = fmt . Sprintf ( "`et_share` = 1 OR (`et_share` = 2 AND (%v))" , sqlOrStr )
gormDb = gormDb . Where ( sqlOrStr )
}
listErr := gormDb . Find ( & contAry ) . Error
if listErr != nil {
return
}
for _ , v := range contAry {
var dimCont taskDetailsLinkage
dimCont . Id = strconv . FormatInt ( v . Id , 10 )
dimCont . Name = v . Title
dimCont . Content = ""
scoreVal := GetDepartDimTargetScore ( group , departId , dimId , v . Id )
dimCont . ReferenceScore = scoreVal
if scoreVal > 0 {
dimCont . IsTrue = 2
} else {
dimCont . IsTrue = 1
}
dimCont . Unit = v . Uniteing
dimCont . Cycles = v . Cycles
dimCont . CycleAttres = v . CycleAttres
dimensionAry = append ( dimensionAry , dimCont )
}
return
}
//计算该指定部门维度指标下的分值
func GetDepartDimTargetScore ( group , depert string , dimeid , targetid int64 ) ( scoreAll int64 ) {
err := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND qe_state = 1" , group , depert , dimeid , targetid ) . Pluck ( "COALESCE(SUM(qe_reference_score), 0) as rescore" , & scoreAll ) . Error
if err != nil {
scoreAll = 0
}
return
}
//部门添加考核方案NEw
func ( d * DutyHandle ) AddDepartmentDutyInfo ( c * gin . Context ) {
var requestData AddDutyNewContGroup
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Group == "" {
response . Result ( 102 , err , "数据获取失败!" , c )
return
}
if requestData . DepartmentId == "" {
response . Result ( 103 , err , "数据获取失败!" , c )
return
}
if len ( requestData . Child ) < 0 {
response . Result ( 103 , err , "没有要添加的数据" , c )
return
}
var saveDataAry [ ] assessmentmodel . QualitativeEvaluation
for _ , v := range requestData . Child { //维度
for _ , v_s := range v . Child { //指标
var saveData assessmentmodel . QualitativeEvaluation
//维度ID
dimId , dimErr := strconv . ParseInt ( v . Id , 10 , 64 )
if dimErr == nil {
saveData . Dimension = dimId
}
//指标ID
targetId , targetErr := strconv . ParseInt ( v_s . Id , 10 , 64 )
if targetErr == nil {
saveData . Target = targetId
}
saveDataAry = append ( saveDataAry , saveData )
}
}
}