diff --git a/gin_server_admin/api/v1/assessment/department_target.go b/gin_server_admin/api/v1/assessment/department_target.go index 47db633..d65d93b 100644 --- a/gin_server_admin/api/v1/assessment/department_target.go +++ b/gin_server_admin/api/v1/assessment/department_target.go @@ -1,6 +1,7 @@ package assessment import ( + "fmt" "strconv" "strings" "time" @@ -457,3 +458,114 @@ func (d *DutyHandle) QualEvalTargetTree(c *gin.Context) { } 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) + } + } + +} diff --git a/gin_server_admin/api/v1/assessment/dutytype.go b/gin_server_admin/api/v1/assessment/dutytype.go index 7c20c3c..c76a7f6 100644 --- a/gin_server_admin/api/v1/assessment/dutytype.go +++ b/gin_server_admin/api/v1/assessment/dutytype.go @@ -559,7 +559,10 @@ type departmentDuty struct { //部门考核维度输出列表 type departmentDimension struct { QualEvalArrt - Child []taskDetails `json:"child"` //考核细则 + Content string `json:"content"` //说明 + Score int64 `json:"score"` //分数 + IsTrue int `json:"istrue"` //是否允许修改 + Child []taskDetails `json:"child"` //考核细则 } //考核细则联动列表 @@ -573,6 +576,7 @@ type taskDetailsLinkage struct { State int `json:"state"` UserList []string `json:"userlist"` //执行人列表 UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + IsTrue int `json:"istrue"` //是否允许修改 } //添加定性考核权重 @@ -701,3 +705,38 @@ type QualEvalTargetTreeDies struct { Dimension string `json:"dimension"` //维度 Target string `json:"target"` //指标 } + +//添加部门考核项目新 +type AddDutyNewContGroup struct { + Group string `json:"group"` //集团 + DepartmentId string `json:"parentid"` //部门 + Child []AddDutyNewCont `json:"child"` //考核细则 +} +type AddDutyNewCont struct { + Id string `json:"id"` //维度ID + Name string `json:"name"` + Order int `json:"order"` + zhiFraction int `json:"zhiFraction"` + Child []EvaluPross `json:"child"` //考核细则 +} + +//指标 +type EvaluPross struct { + Id string `json:"id"` //维度ID + Name string `json:"name"` + Content string `json:"content"` //指标说明 + Unit string `json:"unit"` //单位"` + ReferenceScore int64 `json:"referencescore"` //标准分值"` + Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` + CycleAttres int `json:"cycleattr"` //辅助计数"` + State int `json:"state"` + Score int64 `json:"score"` //分数 + QualEvalId string `json:"qeid"` + Status int `json:"status"` +} + +//部门考核输出列表 +type departmentDutyNew struct { + QualEvalArrt + Child []taskDetailsLinkage `json:"child"` //考核细则 +} diff --git a/gin_server_admin/router/assessment/assessmentrouter.go b/gin_server_admin/router/assessment/assessmentrouter.go index 3c4ac48..84bfb4c 100644 --- a/gin_server_admin/router/assessment/assessmentrouter.go +++ b/gin_server_admin/router/assessment/assessmentrouter.go @@ -106,6 +106,7 @@ func (s *AssessmentRouter) InitAssessmentRouter(Router *gin.RouterGroup) { 部门考核 */ dutyCodeRouter.POST("departmentlist", authorityApi.DepartmentList) // 部门考核列表 + dutyCodeRouter.POST("departmentlistnew", authorityApi.DepartmentListNew) // 部门考核列表 dutyCodeRouter.POST("departmenttasklist", authorityApi.DepartmentTaskList) //考核表列表 dutyCodeRouter.POST("detailsassessmentscheme", authorityApi.DetailsAssessmentScheme) //获取方案考核细则内容