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.
299 lines
9.5 KiB
299 lines
9.5 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) SetEvaluationObjectives(c *gin.Context) {
|
|
var requestData SetEvaluationObjectives
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Year == 0 {
|
|
response.Result(102, err, "请填写年度", c)
|
|
return
|
|
}
|
|
if requestData.Group == 0 {
|
|
response.Result(103, err, "请选择归属集团", c)
|
|
return
|
|
}
|
|
if requestData.DepartMent == 0 {
|
|
response.Result(104, err, "请选择归属部门", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(105, err, "请选择归属维度", c)
|
|
return
|
|
}
|
|
if requestData.Target == "" {
|
|
response.Result(106, err, "请选择归属指标", c)
|
|
return
|
|
}
|
|
switch requestData.Cycle {
|
|
case 1:
|
|
if len(requestData.CycleAdded) != 1 {
|
|
response.Result(107, err, "年度只可填写一条!", c)
|
|
return
|
|
}
|
|
case 2:
|
|
if len(requestData.CycleAdded) > 4 {
|
|
response.Result(108, err, "季度最多只可填写四条!", c)
|
|
return
|
|
}
|
|
if len(requestData.CycleAdded) < 1 {
|
|
response.Result(109, err, "季度至少填写一条!", c)
|
|
return
|
|
}
|
|
case 3:
|
|
if len(requestData.CycleAdded) > 12 {
|
|
response.Result(110, err, "月度最多只可填写十二条!", c)
|
|
return
|
|
}
|
|
if len(requestData.CycleAdded) < 1 {
|
|
response.Result(111, err, "月度至少填写一条!", c)
|
|
return
|
|
}
|
|
default:
|
|
response.Result(112, err, "请选择周期", c)
|
|
return
|
|
}
|
|
var timecopy []int64
|
|
// gromDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QuantitativeConfig{}).Select("Timecopy").Where("`group` = ? AND `departmentid` = ? AND `dimension` = ? AND `target` = ? AND `year` = ? AND `type` = ?", requestData.Group, requestData.DepartMent, requestData.Dimension, requestData.Target, requestData.Year, requestData.Cycle)
|
|
gromDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QuantitativeConfig{}).Select("Timecopy").Where("`group` = ? AND `departmentid` = ? AND `dimension` = ? AND `target` = ? AND `year` = ? ", requestData.Group, requestData.DepartMent, requestData.Dimension, requestData.Target, requestData.Year)
|
|
if requestData.TargetDetails != "" {
|
|
gromDb = gromDb.Where("`targetconfig` = ?", requestData.TargetDetails)
|
|
}
|
|
judgeErr := gromDb.Find(&timecopy).Error
|
|
|
|
if judgeErr == nil {
|
|
if len(timecopy) > 0 {
|
|
response.Result(121, judgeErr, "已经存在!不要重复添加!", c)
|
|
return
|
|
}
|
|
}
|
|
|
|
var saveData []assessmentmodel.QuantitativeConfig
|
|
var eiteAddData []int64
|
|
for _, v := range requestData.CycleAdded {
|
|
if judgeErr != nil {
|
|
var saveDataCont assessmentmodel.QuantitativeConfig
|
|
saveDataCont.DepartmentId = requestData.DepartMent
|
|
saveDataCont.Group = requestData.Group
|
|
dimensionId, dimensionIdErr := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
if dimensionIdErr == nil {
|
|
saveDataCont.Dimension = dimensionId
|
|
}
|
|
|
|
targetId, targetIdErr := strconv.ParseInt(requestData.Target, 10, 64)
|
|
if targetIdErr == nil {
|
|
saveDataCont.Target = targetId
|
|
}
|
|
|
|
targetDetailsId, targetDetailsIdErr := strconv.ParseInt(requestData.TargetDetails, 10, 64)
|
|
if targetDetailsIdErr == nil {
|
|
saveDataCont.TargetConfig = targetDetailsId
|
|
}
|
|
saveDataCont.Type = int64(requestData.Cycle)
|
|
saveDataCont.Year = requestData.Year
|
|
saveDataCont.Timecopy = v.Id
|
|
if v.Zeroprize < 0 {
|
|
saveDataCont.Zeroprize = 0
|
|
} else {
|
|
// if v.Zeroprize > 100 {
|
|
// saveDataCont.Zeroprize = 10000
|
|
// } else {
|
|
// saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
// }
|
|
saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
}
|
|
if v.Allprize < 0 {
|
|
saveDataCont.Allprize = 0
|
|
} else {
|
|
// if v.Allprize > 100 {
|
|
// saveDataCont.Allprize = 10000
|
|
// } else {
|
|
// saveDataCont.Allprize = v.Allprize * 100
|
|
// }
|
|
saveDataCont.Allprize = v.Allprize * 100
|
|
}
|
|
if v.Capping > 0 {
|
|
saveDataCont.Capping = 1
|
|
saveDataCont.CappingVal = v.Capping * 100
|
|
} else {
|
|
saveDataCont.Capping = 2
|
|
saveDataCont.CappingVal = 0
|
|
}
|
|
saveDataCont.Time = time.Now().Unix()
|
|
saveDataCont.State = 1
|
|
saveData = append(saveData, saveDataCont)
|
|
} else {
|
|
if len(timecopy) <= 0 {
|
|
var saveDataCont assessmentmodel.QuantitativeConfig
|
|
saveDataCont.DepartmentId = requestData.DepartMent
|
|
saveDataCont.Group = requestData.Group
|
|
dimensionId, dimensionIdErr := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
if dimensionIdErr == nil {
|
|
saveDataCont.Dimension = dimensionId
|
|
}
|
|
|
|
targetId, targetIdErr := strconv.ParseInt(requestData.Target, 10, 64)
|
|
if targetIdErr == nil {
|
|
saveDataCont.Target = targetId
|
|
}
|
|
|
|
targetDetailsId, targetDetailsIdErr := strconv.ParseInt(requestData.TargetDetails, 10, 64)
|
|
if targetDetailsIdErr == nil {
|
|
saveDataCont.TargetConfig = targetDetailsId
|
|
}
|
|
saveDataCont.Type = int64(requestData.Cycle)
|
|
saveDataCont.Year = requestData.Year
|
|
saveDataCont.Timecopy = v.Id
|
|
if v.Zeroprize < 0 {
|
|
saveDataCont.Zeroprize = 0
|
|
} else {
|
|
// if v.Zeroprize > 100 {
|
|
// saveDataCont.Zeroprize = 10000
|
|
// } else {
|
|
// saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
// }
|
|
saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
}
|
|
if v.Allprize < 0 {
|
|
saveDataCont.Allprize = 0
|
|
} else {
|
|
// if v.Allprize > 100 {
|
|
// saveDataCont.Allprize = 10000
|
|
// } else {
|
|
// saveDataCont.Allprize = v.Allprize * 100
|
|
// }
|
|
saveDataCont.Allprize = v.Allprize * 100
|
|
}
|
|
if v.Capping > 0 {
|
|
saveDataCont.Capping = 1
|
|
saveDataCont.CappingVal = v.Capping * 100
|
|
} else {
|
|
saveDataCont.Capping = 2
|
|
saveDataCont.CappingVal = 0
|
|
}
|
|
saveDataCont.Time = time.Now().Unix()
|
|
saveDataCont.State = 1
|
|
saveData = append(saveData, saveDataCont)
|
|
} else {
|
|
for _, s_v := range timecopy {
|
|
if s_v != v.Id {
|
|
var saveDataCont assessmentmodel.QuantitativeConfig
|
|
saveDataCont.DepartmentId = requestData.DepartMent
|
|
saveDataCont.Group = requestData.Group
|
|
dimensionId, dimensionIdErr := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
if dimensionIdErr == nil {
|
|
saveDataCont.Dimension = dimensionId
|
|
}
|
|
|
|
targetId, targetIdErr := strconv.ParseInt(requestData.Target, 10, 64)
|
|
if targetIdErr == nil {
|
|
saveDataCont.Target = targetId
|
|
}
|
|
|
|
targetDetailsId, targetDetailsIdErr := strconv.ParseInt(requestData.TargetDetails, 10, 64)
|
|
if targetDetailsIdErr == nil {
|
|
saveDataCont.TargetConfig = targetDetailsId
|
|
}
|
|
saveDataCont.Type = int64(requestData.Cycle)
|
|
saveDataCont.Year = requestData.Year
|
|
saveDataCont.Timecopy = v.Id
|
|
if v.Zeroprize < 0 {
|
|
saveDataCont.Zeroprize = 0
|
|
} else {
|
|
// if v.Zeroprize > 100 {
|
|
// saveDataCont.Zeroprize = 10000
|
|
// } else {
|
|
// saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
// }
|
|
saveDataCont.Zeroprize = v.Zeroprize * 100
|
|
}
|
|
if v.Allprize < 0 {
|
|
saveDataCont.Allprize = 0
|
|
} else {
|
|
// if v.Allprize > 100 {
|
|
// saveDataCont.Allprize = 10000
|
|
// } else {
|
|
// saveDataCont.Allprize = v.Allprize * 100
|
|
// }
|
|
saveDataCont.Allprize = v.Allprize * 100
|
|
}
|
|
if v.Capping > 0 {
|
|
saveDataCont.Capping = 1
|
|
saveDataCont.CappingVal = v.Capping * 100
|
|
} else {
|
|
saveDataCont.Capping = 2
|
|
saveDataCont.CappingVal = 0
|
|
}
|
|
saveDataCont.Time = time.Now().Unix()
|
|
saveDataCont.State = 1
|
|
saveData = append(saveData, saveDataCont)
|
|
} else {
|
|
eiteDataMap := commonus.MapOut()
|
|
eiteDataMap["type"] = requestData.Cycle
|
|
eiteDataMap["timecopy"] = v.Id
|
|
if v.Zeroprize < 0 {
|
|
eiteDataMap["zeroprize"] = 0
|
|
} else {
|
|
// if v.Zeroprize > 100 {
|
|
// eiteDataMap["zeroprize"] = 10000
|
|
// } else {
|
|
// eiteDataMap["zeroprize"] = v.Zeroprize * 100
|
|
// }
|
|
eiteDataMap["zeroprize"] = v.Zeroprize * 100
|
|
}
|
|
if v.Allprize < 0 {
|
|
eiteDataMap["allprize"] = 0
|
|
} else {
|
|
// if v.Allprize > 100 {
|
|
// eiteDataMap["allprize"] = 10000
|
|
// } else {
|
|
// eiteDataMap["allprize"] = v.Allprize * 100
|
|
// }
|
|
eiteDataMap["allprize"] = v.Allprize * 100
|
|
}
|
|
if v.Capping > 0 {
|
|
|
|
eiteDataMap["capping"] = 1
|
|
eiteDataMap["capping_val"] = v.Capping * 100
|
|
} else {
|
|
eiteDataMap["capping"] = 2
|
|
eiteDataMap["capping_val"] = 0
|
|
}
|
|
eiteDataMap["time"] = time.Now().Unix()
|
|
gromDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QuantitativeConfig{}).Select("Timecopy").Where("`group` = ? AND `departmentid` = ? AND `dimension` = ? AND `target` = ? AND `year` = ? AND `type` = ?", requestData.Group, requestData.DepartMent, requestData.Dimension, requestData.Target, requestData.Year, requestData.Cycle)
|
|
if requestData.TargetDetails != "" {
|
|
gromDb = gromDb.Where("`targetconfig` = ?", requestData.TargetDetails)
|
|
}
|
|
gromDb.Updates(eiteDataMap)
|
|
eiteAddData = append(eiteAddData, 1)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if len(saveData) <= 0 && len(eiteAddData) <= 0 {
|
|
response.Result(113, err, "没有要添加的数据!", c)
|
|
return
|
|
}
|
|
if len(saveData) > 0 {
|
|
saveErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if saveErr != nil {
|
|
response.Result(114, err, "数据添加失败!", c)
|
|
return
|
|
}
|
|
}
|
|
response.Result(0, err, "数据处理完成!", c)
|
|
}
|
|
|