package assessment import ( "strconv" "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" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/flipped-aurora/gin-vue-admin/server/model/testpage" "github.com/gin-gonic/gin" ) //部门考核 func (d *DutyHandle) DepartmentList(c *gin.Context) { var requestData rationSelect c.ShouldBindJSON(&requestData) var groupId int64 = 3 if requestData.Group != "" { groupId, _ = strconv.ParseInt(requestData.Group, 10, 64) } var departList []deparMentModel gromDb := global.GVA_DB_Master.Model(&testpage.BranchFactory{}).Select("bf_id", "bf_name", "bf_wechat_id").Where("`bf_set` = 1 AND `bf_group` = ?", groupId) if requestData.DepartmentId != "" { gromDb = gromDb.Where("`bf_id` = ?", requestData.DepartmentId) } departMentErr := gromDb.Find(&departList).Error if departMentErr != nil || len(departList) < 1 { response.Result(101, departMentErr, "没有数据!", c) return } var departAryList []departmentDuty for _, v := range departList { var departCont departmentDuty departCont.Id = strconv.FormatInt(v.Id, 10) departCont.Name = v.Name departCont.Child = getDepartDimension(groupId, v.Id) departAryList = append(departAryList, departCont) } response.Result(0, departAryList, "数据获取成功!", c) } //获取部门考核维度 func getDepartDimension(groupId, departId int64) (dimensionAry []departmentDimension) { var fileAry []int64 dimErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimension{}).Select("dd_dimension").Where("`dd_group` = ? AND `dd_department` = ?", groupId, departId).Group("dd_dimension").Find(&fileAry).Error // fmt.Printf("1--------------->%v\n", dimErr) if dimErr == nil { for _, v := range fileAry { dimInfo, dimInfoErr := commonus.GetDutyClassInfo(v) // fmt.Printf("2--------------->%v\n", dimInfo) if dimInfoErr == true { var dimCont departmentDimension dimCont.Id = strconv.FormatInt(v, 10) dimCont.Name = dimInfo.Title dimCont.Child = targetRationDepartList(groupId, departId, v) dimensionAry = append(dimensionAry, dimCont) } } } return } //部门考核项目 func targetRationDepartList(groupID, departmentID, dimension int64) (contentList []taskDetails) { var fileTargetAry []assessmentmodel.QualitativeEvaluation listTargetErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ?", groupID, departmentID, dimension).Find(&fileTargetAry).Error if listTargetErr != nil { return } for _, v := range fileTargetAry { var content taskDetails targetInfo, targetErr := commonus.GetTargetInfo(v.Target) if targetErr == true { content.Id = strconv.FormatInt(v.Target, 10) content.Name = targetInfo.Title content.Unit = v.Unit content.ReferenceScore = v.ReferenceScore content.Cycles = v.Cycles content.CycleAttres = v.CycleAttres content.State = v.State contentList = append(contentList, content) } } return }