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.
90 lines
3.1 KiB
90 lines
3.1 KiB
|
4 years ago
|
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
|
||
|
|
}
|