绩效考核
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.
 
 
 

194 lines
7.4 KiB

package jixiaokaohe
import (
"fmt"
"strconv"
"gin_server_admin/commonus"
"gin_server_admin/global"
"gin_server_admin/model/assessmentmodel"
"gin_server_admin/model/common/response"
"github.com/gin-gonic/gin"
)
func (a *ApiGroup) Index(c *gin.Context) {
outPut := commonus.MapOut()
response.Result(0, outPut, "手机考核入口", c)
}
// 获取关于本人要进行的项目
func (a *ApiGroup) AboutMyTask(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData taskParameterTitle
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(102, err, "数据获取失败!", c)
return
}
if requestData.Group == "" || requestData.Department == "" || requestData.Target == "" {
response.Result(103, err, "参数错误!请检查您的输入", c)
return
}
var targetId []int64
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target_sun").Where("`qe_group` = ?", requestData.Group).Where("`qe_accept_evaluation` = ?", requestData.Department).Where("`qe_target` = ?", requestData.Target).Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key).Group("qe_target_sun").Find(&targetId)
errDb := gormDb.Error
if errDb != nil {
response.Result(103, errDb, "没有数据", c)
return
}
if len(targetId) < 1 {
response.Result(103, errDb, "没有数据", c)
return
}
var outSunTargetList []outTaskSunTarget
for _, v := range targetId {
var outSunTargetInfo outTaskSunTarget
outSunTargetInfo.Group = requestData.Group
outSunTargetInfo.Department = requestData.Department
outSunTargetInfo.Target = requestData.Target
outSunTargetInfo.SunTarget = strconv.FormatInt(v, 10)
sunTarInfo, _ := commonus.GetQualitativeTargetInfo(v)
outSunTargetInfo.ProjectName = sunTarInfo.Title
outSunTargetList = append(outSunTargetList, outSunTargetInfo)
}
response.Result(0, outSunTargetList, "获取成功", c)
}
// 获取考核指标细则
func (a *ApiGroup) TaskParameterTitleList(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData taskParameterTitleList
err := c.ShouldBindJSON(&requestData)
if requestData.Page < 0 {
requestData.Page = 1
}
if requestData.PageSize < 0 {
requestData.PageSize = 20
}
if err != nil {
response.Result(102, err, "数据获取失败!", c)
return
}
if requestData.Group == "" || requestData.Department == "" || requestData.Target == "" || requestData.SunTarget == "" {
response.Result(103, err, "参数错误!请检查您的输入", c)
return
}
var targetId []kaoHeFangAn
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_detailed_target,qe_id,qe_qual_eval_id").Where("`qe_group` = ?", requestData.Group).Where("`qe_accept_evaluation` = ?", requestData.Department).Where("`qe_target` = ?", requestData.Target).Where("`qe_target_sun` = ?", requestData.SunTarget).Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key).Limit(requestData.PageSize).Offset(commonus.CalculatePages(requestData.Page, requestData.PageSize)).Group("qe_detailed_target,qe_id").Find(&targetId)
errDb := gormDb.Error
if errDb != nil {
response.Result(103, errDb, "没有数据", c)
return
}
if len(targetId) < 1 {
response.Result(103, errDb, "没有数据", c)
return
}
// var outDetailedTargetList []outMyTaskDiesTarget
// for _, v := range targetId {
// var outSunTargetInfo outMyTaskDiesTarget
// outSunTargetInfo.Group = requestData.Group
// outSunTargetInfo.Department = requestData.Department
// outSunTargetInfo.Target = requestData.Target
// outSunTargetInfo.SunTarget = requestData.SunTarget
// outSunTargetInfo.Id = strconv.FormatInt(v, 10)
// sunTarInfo, _ := commonus.GetDetailedTargetInfo(v)
// outSunTargetInfo.Title = sunTarInfo.Title
// outSunTargetInfo.Content = sunTarInfo.Content
// if sunTarInfo.MinScore > 0 && sunTarInfo.MaxScore > 0 {
// outSunTargetInfo.Standard = fmt.Sprintf("%v-%v", float64(sunTarInfo.MinScore)/100, float64(sunTarInfo.MaxScore)/100)
// } else if sunTarInfo.MinScore > 0 && sunTarInfo.MaxScore <= 0 {
// outSunTargetInfo.Standard = fmt.Sprintf("%v", float64(sunTarInfo.MinScore)/100)
// } else if sunTarInfo.MinScore <= 0 && sunTarInfo.MaxScore > 0 {
// outSunTargetInfo.Standard = fmt.Sprintf("%v", float64(sunTarInfo.MaxScore)/100)
// } else {
// outSunTargetInfo.Standard = "0"
// }
// outSunTargetInfo.Unit = sunTarInfo.Company
// outDetailedTargetList = append(outDetailedTargetList, outSunTargetInfo)
// }
// response.Result(0, outDetailedTargetList, "获取成功", c)
var outContList []NewQualDetailOutList
for _, v := range targetId {
var outCont NewQualDetailOutList
outCont.Id = v.Id
groupId, _ := strconv.ParseInt(requestData.Group, 10, 64)
outCont.Group = groupId
outCont.PlanVersionNumber = v.QualEvalId
where := commonus.MapOut()
where["id"] = groupId
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
outCont.GroupName = orgCont.Name
whereDepart := commonus.MapOut()
whereDepart["id"] = requestData.Department
orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name")
outCont.DepartmentName = orgContDepart.Name
// _, groupCont := commonus.GetGroupCont(v.Group)
// outCont.GroupName = groupCont.Name
accDepartId, _ := strconv.ParseInt(requestData.Department, 10, 64)
outCont.Department = accDepartId
// _, departCont := commonus.GetBranchFactory(requestData.Department)
// outCont.DepartmentName = departCont.Name
targetIDInf, _ := strconv.ParseInt(requestData.Target, 10, 64)
outCont.Target = targetIDInf
targetCont, _ := commonus.GetTargetInfo(targetIDInf)
outCont.Title = targetCont.Title
outCont.Dimension = targetCont.Dimension
dimensionCont, _ := commonus.GetDutyClassInfo(targetCont.Dimension)
outCont.DimensionName = dimensionCont.Title
//子栏目
targetSunId, _ := strconv.ParseInt(requestData.SunTarget, 10, 64)
targetSunCont, _ := commonus.GetQualitativeTargetInfo(targetSunId)
outCont.Target = targetSunId
outCont.TargetSunId = strconv.FormatInt(targetSunId, 10)
outCont.TargetSunName = targetSunCont.Title
detaiTargetCont, _ := commonus.GetDetailedTargetInfo(v.DetailedTarget)
outCont.DetailedTargetId = detaiTargetCont.Id
outCont.DetailedTargetTitle = detaiTargetCont.Title
outCont.DetailedTargetCont = detaiTargetCont.Content
outCont.AddReduce = detaiTargetCont.AddReduce
outCont.Company = detaiTargetCont.Company
outCont.State = 1
if detaiTargetCont.MinScore > 0 && detaiTargetCont.MaxScore > 0 {
outCont.Score = fmt.Sprintf("%v-%v", float64(detaiTargetCont.MinScore)/100, float64(detaiTargetCont.MaxScore)/100)
outCont.State = 2
} else if detaiTargetCont.MinScore > 0 && detaiTargetCont.MaxScore <= 0 {
outCont.Score = fmt.Sprintf("%v", float64(detaiTargetCont.MinScore)/100)
outCont.State = 1
} else if detaiTargetCont.MinScore <= 0 && detaiTargetCont.MaxScore > 0 {
outCont.Score = fmt.Sprintf("%v", float64(detaiTargetCont.MaxScore)/100)
outCont.State = 1
} else {
outCont.Score = "0"
outCont.State = 3
}
outContList = append(outContList, outCont)
}
response.Result(0, outContList, "获取成功!", c)
}