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.
394 lines
14 KiB
394 lines
14 KiB
package dutyassess
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/flipped-aurora/gin-vue-admin/server/api/v1/archiveapi"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/api/v1/assessment"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/api/v1/examtestpage"
|
|
"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/gin-gonic/gin"
|
|
)
|
|
|
|
//入口
|
|
func (d *DutyAssessApi) Index(c *gin.Context) {
|
|
outPut := commonus.MapOut()
|
|
response.Result(0, outPut, "管理端获取成功", c)
|
|
}
|
|
|
|
//获取部门被考核时间表
|
|
func (d *DutyAssessApi) GetDepartEvaluate(c *gin.Context) {
|
|
isTrue, userCont := commonus.AdminClientIdentity()
|
|
if isTrue != true {
|
|
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
|
|
return
|
|
}
|
|
var requestData getDepartAssObtain
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
// response.Result(101, err, "参数错误!请重新提交!", c)
|
|
// return
|
|
}
|
|
if requestData.PageSize == 0 {
|
|
requestData.PageSize = 20
|
|
}
|
|
if requestData.Page <= 0 {
|
|
requestData.Page = 1
|
|
}
|
|
var timeUnix int64
|
|
if requestData.Time != "" {
|
|
timeStr := requestData.Time + "-01 12:00:00"
|
|
assessmentTime, assessmentTimeErr := commonus.DateToTimeStampEs(timeStr)
|
|
if assessmentTimeErr == true {
|
|
timeUnix = assessmentTime
|
|
}
|
|
} else {
|
|
timeUnix = 0
|
|
}
|
|
|
|
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
|
|
//获取管理信息
|
|
attriButeId, attriButeErr := strconv.ParseInt(userCont.AttriBute, 10, 64) //转换管理员属性部门
|
|
|
|
var departScorsList []assessmentmodel.Departscores
|
|
|
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_file_time", "s_depart_id").Where("`s_state` = 1")
|
|
if requestData.DepartID != "" {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` = ?", timeUnix, requestData.DepartID)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", requestData.DepartID)
|
|
}
|
|
} else {
|
|
if attriButeErr == nil {
|
|
if attriButeId != 0 {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` = ?", timeUnix, attriButeId)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", attriButeId)
|
|
}
|
|
} else {
|
|
groupId, groupIdErr := strconv.ParseInt(userCont.Group, 10, 64)
|
|
if groupIdErr == nil {
|
|
if groupId != 1 {
|
|
deparIsTrue, departMap := getGroupDepartIdMap(groupId)
|
|
if deparIsTrue == true {
|
|
if len(departMap.Id) > 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` IN ?", timeUnix, departMap.Id)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", attriButeId)
|
|
}
|
|
} else {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id")
|
|
}
|
|
}
|
|
} else {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id")
|
|
}
|
|
}
|
|
|
|
} else {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id")
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if timeUnix != 0 {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix)
|
|
} else {
|
|
gormDb = gormDb.Group("s_file_time,s_depart_id")
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
获取总共有多少记录
|
|
*/
|
|
var total int64
|
|
totalErr := gormDb.Count(&total).Error
|
|
if totalErr != nil {
|
|
total = 0
|
|
}
|
|
//获取记录数据
|
|
evaErr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&departScorsList).Error
|
|
|
|
if evaErr != nil {
|
|
response.Result(104, evaErr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
var departMonthAry []departMonthMap
|
|
for _, val := range departScorsList {
|
|
var departMonthCont departMonthMap
|
|
departMonthCont.DepartId = val.DepartId
|
|
|
|
// departMonthCont.DepartId = val.DepartId
|
|
bfIsTrue, bfInfo := assessment.GetBranchFactory(val.DepartId)
|
|
if bfIsTrue == true {
|
|
departMonthCont.DepartTitle = bfInfo.Name
|
|
}
|
|
departMonthCont.TimeStr = strconv.FormatInt(val.FileTime, 10)
|
|
departMonthCont.DateStr = commonus.TimeStampToDate(val.FileTime, 10)
|
|
departMonthAry = append(departMonthAry, departMonthCont)
|
|
}
|
|
countSum := len(departMonthAry)
|
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, departMonthAry)
|
|
response.Result(0, printData, "查询成功!", c)
|
|
}
|
|
|
|
//获取部门考核列表
|
|
func (d *DutyAssessApi) GetDepartmentAssessList(c *gin.Context) {
|
|
var requestData getDepartAssObtains
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
// response.Result(101, err, "参数错误!请重新提交!", c)
|
|
// return
|
|
}
|
|
// if requestData.PageSize == 0 {
|
|
// requestData.PageSize = 20
|
|
// }
|
|
// if requestData.Page <= 0 {
|
|
// requestData.Page = 1
|
|
// }
|
|
if requestData.Time == "" {
|
|
response.Result(103, err, "未知时间!", c)
|
|
return
|
|
}
|
|
if requestData.DepartID == "" {
|
|
response.Result(103, err, "未知部门!", c)
|
|
return
|
|
}
|
|
timeStr := requestData.Time + "-01 12:00:00"
|
|
assessmentTime, assessmentTimeErr := commonus.DateToTimeStampEs(timeStr)
|
|
if assessmentTimeErr != true {
|
|
response.Result(104, timeStr, "你提交的考核日期错误!", c)
|
|
return
|
|
}
|
|
|
|
isTrue, _ := commonus.AdminClientIdentity()
|
|
// isTrue, userCont := commonus.AdminClientIdentity()
|
|
if isTrue != true {
|
|
response.Result(101, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
|
|
return
|
|
}
|
|
|
|
// var departScorsList []assessmentmodel.Departscores
|
|
|
|
// gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_class").Where("`s_file_time` = ? AND `s_state` = 1", assessmentTime)
|
|
|
|
// attriButeId, attriButeErr := strconv.ParseInt(userCont.AttriBute, 10, 64) //转换管理员属性部门
|
|
// if attriButeErr == nil {
|
|
// if attriButeId != 0 {
|
|
// gormDb = gormDb.Where("`s_depart_id` = ?", attriButeId)
|
|
// } else {
|
|
// groupId, groupIdErr := strconv.ParseInt(userCont.Group, 10, 64)
|
|
// if groupIdErr == nil {
|
|
// if groupId != 1 {
|
|
// deparIsTrue, departMap := getGroupDepartIdMap(groupId)
|
|
// if deparIsTrue == true {
|
|
// if len(departMap.Id) > 0 {
|
|
// gormDb = gormDb.Where("`s_depart_id` IN ?", departMap.Id)
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
// }
|
|
// scorErr := gormDb.Group("s_class").Find(&departScorsList).Error
|
|
|
|
// if scorErr != nil {
|
|
// response.Result(104, scorErr, "未能获取到数据!", c)
|
|
// return
|
|
// }
|
|
|
|
// var departMonthList []departMonth
|
|
// for _, val := range departScorsList {
|
|
// var departMonthInfo departMonth
|
|
// departMonthInfo.Id = val.ClassId
|
|
// classErr, classInfo := assessment.GetDutyClassCont(val.ClassId)
|
|
// if classErr == true {
|
|
// departMonthInfo.Title = classInfo.Title
|
|
// }
|
|
// assErr, assList := GetAssList(val.ClassId, val.DepartId, assessmentTime)
|
|
// if assErr == true {
|
|
// departMonthInfo.Clide = assList
|
|
// }
|
|
// fmt.Printf("-------->%v----->%v\n", assErr, assList)
|
|
// departMonthList = append(departMonthList, departMonthInfo)
|
|
// }
|
|
// outPrint := commonus.MapOut()
|
|
// outPrint["list"] = departMonthList
|
|
// response.Result(0, outPrint, "获取成功!", c)
|
|
var departScorsList []assessmentmodel.Departscores
|
|
scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_class").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_state` = 1", requestData.DepartID, assessmentTime).Group("s_class").Find(&departScorsList).Error
|
|
if scorErr != nil {
|
|
response.Result(104, scorErr, "未能获取到数据!", c)
|
|
return
|
|
}
|
|
departIdInt, _ := strconv.ParseInt(requestData.DepartID, 10, 64) //部门ID转换成int64
|
|
var departMonthList []departMonth
|
|
for _, val := range departScorsList {
|
|
var departMonthInfo departMonth
|
|
departMonthInfo.Id = val.ClassId
|
|
classErr, classInfo := assessment.GetDutyClassCont(val.ClassId)
|
|
if classErr == true {
|
|
departMonthInfo.Title = classInfo.Title
|
|
}
|
|
assErr, assList := GetAssList(val.ClassId, departIdInt, assessmentTime)
|
|
if assErr == true {
|
|
departMonthInfo.Clide = assList
|
|
}
|
|
departMonthList = append(departMonthList, departMonthInfo)
|
|
}
|
|
outPrint := commonus.MapOut()
|
|
outPrint["list"] = departMonthList
|
|
response.Result(0, outPrint, "获取成功!", c)
|
|
|
|
}
|
|
|
|
//获取集团下属分厂
|
|
func getGroupDepartIdMap(groupId int64) (isTrue bool, departId getGroupDepart) {
|
|
isTrue = false
|
|
err, departCont := examtestpage.GetBranchFactoryMap(groupId)
|
|
if err != true {
|
|
return
|
|
}
|
|
var idAry []int64
|
|
for _, val := range departCont {
|
|
idAry = append(idAry, val.Id)
|
|
}
|
|
departId.Id = idAry
|
|
return
|
|
}
|
|
|
|
//获取考核项目列表
|
|
func GetAssList(classId, depart, timeVal int64) (isTrue bool, departMonthAss []departMonthSun) {
|
|
isTrue = false
|
|
var departScorsList []assessmentmodel.Departscores
|
|
scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_assess").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_state` = 1", depart, timeVal, classId).Group("s_assess").Find(&departScorsList).Error
|
|
if scorErr != nil {
|
|
return
|
|
}
|
|
for _, val := range departScorsList {
|
|
var departMonthSunsInfo departMonthSun
|
|
departMonthSunsInfo.Id = val.AssessId
|
|
|
|
classErr, classInfo := assessment.GetAssessClass(val.AssessId)
|
|
if classErr == true {
|
|
departMonthSunsInfo.Title = classInfo.Title
|
|
}
|
|
isErr, userDuty := GetDetailedDuty(classId, val.AssessId, depart, timeVal)
|
|
if isErr == true {
|
|
departMonthSunsInfo.Clide = userDuty
|
|
}
|
|
departMonthAss = append(departMonthAss, departMonthSunsInfo)
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
//获取具体考核项目
|
|
func GetDetailedDuty(classId, assId, depart, timeVal int64) (isTrue bool, departMonthUser []departMonthSun) {
|
|
isTrue = false
|
|
var departScorsList []commentUser
|
|
scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_comment_user").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_assess` = ? AND `s_state` = 1", depart, timeVal, classId, assId).Group("s_comment_user").Find(&departScorsList).Error
|
|
// fmt.Printf("----------->%v\n", departScorsList)
|
|
if scorErr != nil {
|
|
return
|
|
}
|
|
// var departMonthUser []departMonthSun
|
|
for _, val := range departScorsList {
|
|
var departMonthUserInfo departMonthSun
|
|
departMonthUserInfo.Id = val.UserKey
|
|
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name", "worker_man.wm_bf_id", "worker_man.wm_ws_id", "worker_man.wm_pt_id", "worker_man.wm_group"}, map[string]interface{}{"wm_key": val.UserKey})
|
|
if usErr == true {
|
|
departMonthUserInfo.Title = usCont.Name
|
|
|
|
isTrueBranFact, branFactCont := assessment.GetBranchFactory(usCont.DepartmentId)
|
|
if isTrueBranFact == true {
|
|
departMonthUserInfo.DepartTitle = branFactCont.Name
|
|
}
|
|
|
|
}
|
|
|
|
dutyErr, dutyMap := GetDutyContAry(classId, assId, depart, val.UserKey, timeVal)
|
|
if dutyErr == true {
|
|
departMonthUserInfo.List = dutyMap
|
|
}
|
|
|
|
departMonthUser = append(departMonthUser, departMonthUserInfo)
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
//获取考核具体职责项目
|
|
func GetDutyContAry(classId, assId, depart, userKey, timeVal int64) (isTrue bool, dutyList []departDutyList) {
|
|
// fmt.Printf("--->%v--->%v\n", classId, assId)
|
|
isTrue = false
|
|
var dutyListMAp []departDutyList
|
|
scorErr := global.GVA_DB_Performanceappraisal.Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_assess` = ? AND `s_comment_user` = ? AND `s_state` = 1", depart, timeVal, classId, assId, userKey).Find(&dutyListMAp).Error
|
|
if scorErr != nil {
|
|
return
|
|
}
|
|
// fmt.Printf("1--->%v--->%v\n", classId, assId)
|
|
for _, val := range dutyListMAp {
|
|
// fmt.Printf("2--->%v--->%v\n", classId, assId)
|
|
var dutyCont departDutyList
|
|
|
|
dutyCont.Id = val.Id
|
|
dutyCont.ClassId = val.ClassId
|
|
dutyCont.AssessId = val.AssessId
|
|
dutyCont.DutyId = val.DutyId
|
|
dutyCont.DeductPoints = val.DeductPoints
|
|
dutyCont.ExtraPoints = val.ExtraPoints
|
|
dutyCont.Score = val.Score
|
|
dutyCont.FileTime = val.FileTime
|
|
dutyCont.DepartId = val.DepartId
|
|
dutyCont.CommentUser = val.CommentUser
|
|
dutyCont.AddTime = val.AddTime
|
|
dutyCont.EiteTime = val.EiteTime
|
|
dutyCont.State = val.State
|
|
dtyContErr, dtyCont := GetDutyInfoCont(val.DutyId)
|
|
|
|
if dtyContErr == true {
|
|
dutyCont.DutyTitle = dtyCont.DutyTitle
|
|
}
|
|
dutyList = append(dutyList, dutyCont)
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
//获取职责类别内容
|
|
func GetDutyInfoCont(id int64) (isTrue bool, outAssDutyInfo outAessDuty) {
|
|
isTrue = false
|
|
var ContInfo dutyAssClass
|
|
err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Select("dc_title", "dc_parent", "ai_title", "ai_parent").Joins("left join assessmentitems on assessmentitems.ai_id = dutycontent.dc_parent").Where("dc_id = ?", id).First(&ContInfo).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
outAssDutyInfo.AssessId = ContInfo.PartId
|
|
outAssDutyInfo.AssessTitle = ContInfo.AssTitle
|
|
outAssDutyInfo.DutyTitle = ContInfo.Title
|
|
outAssDutyInfo.ClassId = ContInfo.AssPartId
|
|
classErr, classInfo := assessment.GetDutyClassCont(ContInfo.AssPartId)
|
|
if classErr == true {
|
|
outAssDutyInfo.ClassTitle = classInfo.Title
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|