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

310 lines
11 KiB

package assessment
import (
"strconv"
"time"
"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 (d *DutyHandle) AddDetailedTarget(c *gin.Context) {
var requestData addDetailedTargetType
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, requestData, "数据获取失败!", c)
return
}
if requestData.Title == "" {
response.Result(102, err, "请输入考核细则!", c)
return
}
if requestData.ParentId == "" {
response.Result(102, err, "请选择考核细则归属", c)
return
}
var parentIdSun int64 = 0
juadgeMap := commonus.MapOut()
juadgeGormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_title").Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, requestData.ParentId)
if requestData.ParentIdSun != "" {
parentIdSuns, parentIdSunErr := strconv.ParseInt(requestData.ParentIdSun, 10, 64)
if parentIdSunErr != nil {
response.Result(102, err, "请选择考核细则归属", c)
return
}
parentIdSun = parentIdSuns
juadgeGormDb = juadgeGormDb.Where("`dt_parentid_sun` = ?", requestData.ParentIdSun)
}
juadgeTitleErr := juadgeGormDb.First(&juadgeMap).Error
if juadgeTitleErr == nil {
response.Result(102, err, "此定考核细则已经存在!请不要重复录入!", c)
return
}
var saveData assessmentmodel.DetailedTarget
saveData.Title = requestData.Title
saveData.Content = requestData.Content
parentId, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64)
if parentIdErr != nil {
response.Result(102, err, "请选择考核细则归属", c)
return
}
saveData.ParentId = parentId
saveData.ParentIdSun = parentIdSun
saveData.State = 1
saveData.AddTime = time.Now().Unix()
dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
if dutyInfoErr != nil {
response.Result(106, saveData, "数据写入失败!", c)
} else {
response.Result(0, saveData, "数据写入成功!", c)
}
}
// 获取考核细则详细内容
func (d *DutyHandle) GetDetailedTarget(c *gin.Context) {
var requestData commonus.SetIds
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if requestData.Id == 0 && requestData.OutId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
var systemEvalCont outDetailedTargetType
contErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_id", "dt_title", "dt_content", "dt_parentid", "dt_parentid_sun", "dt_state", "dt_time").Where("`dt_id` = ?", requestData.Id).First(&systemEvalCont).Error
if contErr != nil {
response.Result(103, err, "数据获取失败!", c)
return
}
systemEvalCont.OutId = strconv.FormatInt(systemEvalCont.Id, 10)
systemEvalCont.ParentIdStr = strconv.FormatInt(systemEvalCont.ParentId, 10)
parentCont, parentIsTrue := commonus.GetTargetInfo(systemEvalCont.ParentId)
if parentIsTrue == true {
systemEvalCont.ParentTitle = parentCont.Title
}
systemEvalCont.ParentIdSunStr = strconv.FormatInt(systemEvalCont.ParentIdSun, 10)
parentSunCont, parentSunIsTrue := commonus.GetQualitativeTargetInfo(systemEvalCont.ParentIdSun)
if parentSunIsTrue == true {
systemEvalCont.ParentSunTitle = parentSunCont.Title
}
response.Result(0, systemEvalCont, "数据获取成功!", c)
}
// 获取考核细则详细内容
func (d *DutyHandle) GetDetailedTargetList(c *gin.Context) {
var requestData detailedTargetTypeList
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
}
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_id", "dt_title", "dt_content", "dt_parentid", "dt_parentid_sun", "dt_state", "dt_time")
if requestData.ParentId != "" {
gormDb = gormDb.Where("`dt_parentid` = ?", requestData.ParentId)
}
if requestData.ParentIdSun != "" {
gormDb = gormDb.Where("`dt_parentid_sun` = ?", requestData.ParentIdSun)
}
if requestData.State != 0 {
gormDb = gormDb.Where("`dt_state` = ?", requestData.State)
} else {
gormDb = gormDb.Where("`dt_state` IN (1,2)")
}
if requestData.Title != "" {
gormDb = gormDb.Where("(`dt_title` LIKE ?)", "%"+requestData.Title+"%")
}
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
// response.Result(0, requestData, "查询成功!", c)
// var dataList []assessmentmodel.QualitativeTarget
var dataList []outDetailedTargetType
dataListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dataList).Error
if dataListerr != nil {
response.Result(103, dataList, "数据获取失败!", c)
return
}
for i, v := range dataList {
dataList[i].OutId = strconv.FormatInt(v.Id, 10)
dataList[i].ParentIdStr = strconv.FormatInt(v.ParentId, 10)
parentCont, parentIsTrue := commonus.GetTargetInfo(v.ParentId)
if parentIsTrue == true {
dataList[i].ParentTitle = parentCont.Title
}
dataList[i].ParentIdSunStr = strconv.FormatInt(v.ParentIdSun, 10)
parentSunCont, parentSunIsTrue := commonus.GetQualitativeTargetInfo(v.ParentIdSun)
if parentSunIsTrue == true {
dataList[i].ParentSunTitle = parentSunCont.Title
}
}
countSum := len(dataList)
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, dataList)
response.Result(0, printData, "查询成功!", c)
}
// 编辑考核细则数据处理
func eiteDetailedTargetInfo(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) {
isTrue = false
infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("`dt_id` = ?", saveId).Updates(saveData).Error
if infoErr != nil {
return
}
isTrue = true
return
}
// 编辑考核细则内容
func (d *DutyHandle) EiteDetailedTargetCont(c *gin.Context) {
var requestData eitedetailedTargetCon
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if requestData.Id == 0 && requestData.OutId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
var oldTargetCont assessmentmodel.DetailedTarget
targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", requestData.Id).First(&oldTargetCont).Error
if targetInfoErr != nil {
response.Result(102, err, "该考核细则不存在!请检查您的参数!", c)
return
}
saveData := commonus.MapOut()
if requestData.Title == "" {
response.Result(102, err, "请输入指标名称!", c)
return
} else {
if requestData.Title != oldTargetCont.Title {
if requestData.ParentId != "" && requestData.ParentIdSun != "" {
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ? AND `dt_parentid_sun` = ?", requestData.Title, requestData.ParentId, requestData.ParentIdSun).First(&oldTargetCont).Error
if judgeTargetErr == nil {
response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c)
return
}
} else if requestData.ParentId != "" && requestData.ParentIdSun == "" {
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, requestData.ParentId).First(&oldTargetCont).Error
if judgeTargetErr == nil {
response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c)
return
}
} else {
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ? AND `dt_parentid_sun` = ?", requestData.Title, oldTargetCont.ParentId, oldTargetCont.ParentIdSun).First(&oldTargetCont).Error
if judgeTargetErr == nil {
response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c)
return
} else {
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, oldTargetCont.ParentId).First(&oldTargetCont).Error
if judgeTargetErr == nil {
response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c)
return
}
}
}
saveData["dt_title"] = requestData.Title
}
}
if requestData.Content != "" {
saveData["dt_content"] = requestData.Content
}
if requestData.ParentId != "" {
saveData["dt_parentid"] = requestData.ParentId
}
if requestData.ParentIdSun != "" {
saveData["dt_parentid_sun"] = requestData.ParentIdSun
}
saveData["dt_time"] = time.Now().Unix()
roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData)
if roleIsTrue != true {
response.Result(106, roleErr, "编辑失败!", c)
} else {
response.Result(0, saveData, "编辑成功!", c)
}
}
// 删除考核细则
func (d *DutyHandle) DelDetailedTargetCont(c *gin.Context) {
var requestData dutyClassState
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, requestData, "数据获取失败!", c)
return
}
if requestData.Id == 0 && requestData.OutId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
if requestData.State == 0 {
requestData.State = 1
}
saveData := commonus.MapOut()
saveData["dt_state"] = requestData.State
saveData["dt_time"] = time.Now().Unix()
if requestData.IsDel != 1 {
roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData)
if roleIsTrue != true {
response.Result(103, roleErr, "修改失败!", c)
return
}
response.Result(0, requestData, "修改成功!", c)
} else {
if requestData.State == 3 {
roleErr := global.GVA_DB_Performanceappraisal.Where("dt_id = ?", requestData.Id).Delete(&assessmentmodel.DetailedTarget{}).Error
if roleErr != nil {
response.Result(104, saveData, "删除失败!", c)
return
}
response.Result(0, saveData, "删除成功!", c)
} else {
roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData)
if roleIsTrue != true {
response.Result(103, roleErr, "修改失败!", c)
return
}
response.Result(0, requestData, "修改成功!", c)
}
}
}