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.
1184 lines
44 KiB
1184 lines
44 KiB
package assessment
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"gin_server_admin/api/v1/archiveapi"
|
|
"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) AddQualEval(c *gin.Context) {
|
|
var requestData AddQualEval
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(102, err, "请选择归属集团", c)
|
|
return
|
|
}
|
|
if len(requestData.AcceptDepartmentId) <= 0 {
|
|
response.Result(102, err, "请选择接受考核的部门!", c)
|
|
return
|
|
}
|
|
// if requestData.Dimension == "" {
|
|
// response.Result(102, err, "请选择考核维度", c)
|
|
// return
|
|
// }
|
|
if requestData.Target == "" {
|
|
response.Result(102, err, "请选择考核指标", c)
|
|
return
|
|
}
|
|
if requestData.TargetSunTitle == "" {
|
|
response.Result(102, err, "请输入栏目名称!", c)
|
|
return
|
|
}
|
|
if len(requestData.EvaluationList) <= 0 {
|
|
response.Result(102, err, "请添加测评详情!", c)
|
|
return
|
|
}
|
|
var synergeticProcess dataLockStatistics
|
|
for _, deparmentId := range requestData.AcceptDepartmentId {
|
|
|
|
syncProcess.Add(1)
|
|
// go synergeticProcess.addQualEvalList(deparmentId, requestData)
|
|
go synergeticProcess.AddCardAssEss(deparmentId, requestData)
|
|
}
|
|
syncProcess.Wait()
|
|
returData := commonus.MapOut()
|
|
readDataMap, readBaoJinf := synergeticProcess.readMyDayData()
|
|
|
|
returData["istrue"] = readDataMap
|
|
returData["isfalse"] = readBaoJinf
|
|
if len(readBaoJinf) > 0 && len(readDataMap) == 0 {
|
|
response.Result(112, returData, "有未处理失败的数据!请检查", c)
|
|
} else if len(readBaoJinf) > 0 && len(readDataMap) > 0 {
|
|
response.Result(1, returData, "有部门数据处理失败!请针对性输入!", c)
|
|
} else {
|
|
response.Result(0, returData, "数据处理完成!", c)
|
|
}
|
|
}
|
|
|
|
func (d *dataLockStatistics) addQualEvalList(departmentId string, addData AddQualEval) {
|
|
d.mutext.Lock()
|
|
defer d.mutext.Unlock()
|
|
var saveDataAry []assessmentmodel.QualitativeEvaluation
|
|
for _, v := range addData.EvaluationList {
|
|
var saveData assessmentmodel.QualitativeEvaluation
|
|
juadgeMap := commonus.MapOut()
|
|
juadgeInsetErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ?", departmentId, addData.Dimension, addData.Target, addData.TargetSun, v.DetailedTarget).First(&juadgeMap).Error
|
|
if juadgeInsetErr != nil {
|
|
groupInt, groupIntErr := strconv.ParseInt(addData.Group, 10, 64)
|
|
if groupIntErr == nil {
|
|
saveData.Group = groupInt
|
|
}
|
|
saveData.Type = addData.Type
|
|
|
|
// departidInt, departinIntErr := strconv.ParseInt(v.DepartmentId, 10, 64)
|
|
// if departinIntErr == nil {
|
|
// saveData.DepartmentId = departidInt
|
|
// }
|
|
|
|
dimensionInt, departinIntErr := strconv.ParseInt(addData.Dimension, 10, 64)
|
|
if departinIntErr == nil {
|
|
saveData.Dimension = dimensionInt
|
|
}
|
|
|
|
targetInt, targetIntErr := strconv.ParseInt(addData.Target, 10, 64)
|
|
if targetIntErr == nil {
|
|
saveData.Target = targetInt
|
|
}
|
|
|
|
targetSunInt, targetSunIntErr := strconv.ParseInt(addData.TargetSun, 10, 64)
|
|
if targetSunIntErr == nil {
|
|
saveData.TargetSun = targetSunInt
|
|
}
|
|
|
|
detailedTargetInt, detailedTargetIntErr := strconv.ParseInt(v.DetailedTarget, 10, 64)
|
|
if detailedTargetIntErr == nil {
|
|
saveData.DetailedTarget = detailedTargetInt
|
|
}
|
|
|
|
saveData.Unit = v.Unit
|
|
saveData.ReferenceScore = v.ReferenceScore
|
|
saveData.Cycles = v.Cycles
|
|
saveData.CycleAttres = v.CycleAttres
|
|
|
|
saveData.State = 1
|
|
saveData.Addtime = time.Now().Unix()
|
|
saveData.Eitetime = time.Now().Unix()
|
|
|
|
departmentIdInt, departmentIdIntErr := strconv.ParseInt(departmentId, 10, 64)
|
|
if departmentIdIntErr == nil {
|
|
saveData.AcceptEvaluation = departmentIdInt
|
|
}
|
|
saveData.Operator = strings.Join(v.Operator, ",")
|
|
saveData.DepartmentId = strings.Join(GetDepartmentByUserBast(v.Operator), ",")
|
|
// operatorInt, operatorIntErr := strconv.ParseInt(v.Operator, 10, 64)
|
|
// if operatorIntErr == nil {
|
|
// saveData.Operator = strings.Join(v.Operator,",")
|
|
// }
|
|
// saveData.AcceptEvaluation = departmentIdInt
|
|
|
|
saveDataAry = append(saveDataAry, saveData)
|
|
msg := commonus.MapOut()
|
|
msg["msg"] = saveData
|
|
d.dataMap = append(d.dataMap, msg)
|
|
} else {
|
|
detailedTargetInts, _ := strconv.ParseInt(v.DetailedTarget, 10, 64)
|
|
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(detailedTargetInts)
|
|
|
|
groupInt, _ := strconv.ParseInt(addData.Group, 10, 64)
|
|
departidInt, _ := strconv.ParseInt(departmentId, 10, 64)
|
|
// _, groupCont := commonus.GetGroupCont(groupInt)
|
|
// _, deparConCont := commonus.GetBranchFactory(departidInt)
|
|
|
|
where := commonus.MapOut()
|
|
where["id"] = groupInt
|
|
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
|
|
// outCont.GroupName = orgCont.Name
|
|
|
|
whereDepart := commonus.MapOut()
|
|
whereDepart["id"] = departidInt
|
|
orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name")
|
|
// outCont.DepartmentName = orgContDepart.Name
|
|
|
|
msg := commonus.MapOut()
|
|
if dtIsTrue == true {
|
|
// msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案!->ID:%v", groupCont.Name, deparConCont.Name, dtCont.Title, v.DetailedTarget)
|
|
msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案!->ID:%v", orgCont.Name, orgContDepart.Name, dtCont.Title, v.DetailedTarget)
|
|
} else {
|
|
// msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案", groupCont.Name, deparConCont.Name, v.DetailedTarget)
|
|
msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案", orgCont.Name, orgContDepart.Name, v.DetailedTarget)
|
|
}
|
|
|
|
d.dataErrMap = append(d.dataErrMap, msg)
|
|
}
|
|
}
|
|
if len(saveDataAry) > 0 {
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error
|
|
if addErr != nil {
|
|
msg := commonus.MapOut()
|
|
msg["data"] = saveDataAry
|
|
msg["msg"] = fmt.Sprintf("《%v》考核维度录入失败!请重新处理此方案", addData.Dimension)
|
|
d.dataErrMap = append(d.dataErrMap, msg)
|
|
}
|
|
}
|
|
syncProcess.Done()
|
|
}
|
|
|
|
// 定性考核列表
|
|
func (d *DutyHandle) GetQualEvalList(c *gin.Context) {
|
|
var requestData SelectQualEval
|
|
c.ShouldBindJSON(&requestData)
|
|
//归档集团
|
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_group").Where("qe_type = 1").Group("qe_group")
|
|
if requestData.Group != "" {
|
|
gormDb = gormDb.Having("qe_group = ?", requestData.Group)
|
|
}
|
|
var fileAry []int64
|
|
listErr := gormDb.Find(&fileAry).Error
|
|
if listErr != nil {
|
|
response.Result(101, listErr, "没有数据!", c)
|
|
return
|
|
}
|
|
if len(fileAry) < 1 {
|
|
response.Result(102, listErr, "没有数据!", c)
|
|
return
|
|
}
|
|
var aualEvalArrtAry []QualEvalListOut
|
|
for _, v := range fileAry {
|
|
var aualEvalArrtCont QualEvalListOut
|
|
|
|
where := commonus.MapOut()
|
|
where["id"] = v
|
|
orgCont, groupErr := commonus.GetNewOrgCont(where, "id", "name")
|
|
// outCont.GroupName = orgCont.Name
|
|
|
|
// groupErr, groupCont := commonus.GetGroupCont(v)
|
|
if groupErr == nil {
|
|
aualEvalArrtCont.Id = strconv.FormatInt(v, 10)
|
|
// aualEvalArrtCont.Name = groupCont.Name
|
|
aualEvalArrtCont.Name = orgCont.Name
|
|
//归档分厂-部室
|
|
departAry, departAryErr := deparmentList(v, requestData.DepartmentId)
|
|
if departAryErr == true {
|
|
//分厂部室列表
|
|
aualEvalArrtCont.Child = departAry
|
|
}
|
|
//组合集团
|
|
aualEvalArrtAry = append(aualEvalArrtAry, aualEvalArrtCont)
|
|
}
|
|
}
|
|
response.Result(0, aualEvalArrtAry, "查询完成!", c)
|
|
}
|
|
|
|
// 归档部门
|
|
func deparmentList(groupID int64, departmentIDStr string) (contentList []QualEvalListOutDepart, isTrue bool) {
|
|
isTrue = false
|
|
gormDbDepart := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("qe_type = 1 AND `qe_group` = ?", groupID).Group("qe_accept_evaluation")
|
|
if departmentIDStr != "" {
|
|
gormDbDepart = gormDbDepart.Having("qe_accept_evaluation = ?", departmentIDStr)
|
|
}
|
|
var fileDepartAry []int64
|
|
listDepartErr := gormDbDepart.Find(&fileDepartAry).Error
|
|
if listDepartErr == nil {
|
|
for _, v := range fileDepartAry {
|
|
|
|
whereDepart := commonus.MapOut()
|
|
whereDepart["id"] = v
|
|
orgContDepart, deparConErr := commonus.GetNewOrgCont(whereDepart, "id", "name")
|
|
// userCont.DepartmentName = orgContDepart.Name
|
|
|
|
// deparConErr, deparConCont := commonus.GetBranchFactory(v)
|
|
var deparCont QualEvalListOutDepart
|
|
if deparConErr == nil {
|
|
deparCont.Id = strconv.FormatInt(v, 10)
|
|
deparCont.Name = orgContDepart.Name
|
|
//归档维度
|
|
dimensionAry, dimensionAryErr := dimensionList(groupID, v)
|
|
if dimensionAryErr == true {
|
|
//维度列表
|
|
deparCont.Child = dimensionAry
|
|
}
|
|
}
|
|
//组合分厂部室
|
|
contentList = append(contentList, deparCont)
|
|
}
|
|
|
|
}
|
|
if len(contentList) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 归档维度
|
|
func dimensionList(groupID, departmentID int64) (contentList []DimensionList, isTrue bool) {
|
|
isTrue = false
|
|
var fileDimensionAry []int64
|
|
listDimensionErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_dimension").Where("qe_type = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ?", groupID, departmentID).Group("qe_dimension").Find(&fileDimensionAry).Error
|
|
if listDimensionErr == nil {
|
|
for _, v := range fileDimensionAry {
|
|
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(v)
|
|
var dimenCont DimensionList
|
|
if dutyClassErr == true {
|
|
dimenCont.Id = strconv.FormatInt(v, 10)
|
|
dimenCont.Name = dutyClassCont.Title
|
|
//归档指标
|
|
targerAry, targerAryErr := targetList(groupID, departmentID, v)
|
|
if targerAryErr == true {
|
|
//定性考核指标列表
|
|
dimenCont.Child = targerAry
|
|
}
|
|
//组合维度
|
|
contentList = append(contentList, dimenCont)
|
|
}
|
|
}
|
|
}
|
|
if len(contentList) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询归档定性指标
|
|
func targetList(groupID, departmentID, dimension int64) (contentList []TargetList, isTrue bool) {
|
|
isTrue = false
|
|
var fileTargetAry []int64
|
|
listTargetErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target").Where("qe_type = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ?", groupID, departmentID, dimension).Group("qe_target").Find(&fileTargetAry).Error
|
|
if listTargetErr != nil {
|
|
return
|
|
}
|
|
for _, tar_v := range fileTargetAry {
|
|
var targetCont TargetList
|
|
targetInfo, targetErr := commonus.GetTargetInfo(tar_v)
|
|
if targetErr == true {
|
|
targetCont.Id = strconv.FormatInt(tar_v, 10)
|
|
targetCont.Name = targetInfo.Title
|
|
//归档指标子栏目
|
|
targerSunAry, targerSunAryErr := targetSunList(groupID, departmentID, dimension, tar_v)
|
|
if targerSunAryErr == true {
|
|
targetCont.Child = targerSunAry
|
|
}
|
|
//定性考核指标维度
|
|
contentList = append(contentList, targetCont)
|
|
}
|
|
}
|
|
if len(contentList) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询归档定性子栏目
|
|
func targetSunList(groupID, departmentID, dimension, targetId int64) (contentList []TargetSunList, isTrue bool) {
|
|
isTrue = false
|
|
var fileTargetSunAry []int64
|
|
listTargetSunErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target_sun").Where("qe_type = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?", groupID, departmentID, dimension, targetId).Group("qe_target_sun").Find(&fileTargetSunAry).Error
|
|
if listTargetSunErr != nil {
|
|
return
|
|
}
|
|
for _, v := range fileTargetSunAry {
|
|
info, infoErr := commonus.GetQualitativeTargetInfo(v)
|
|
if infoErr == true {
|
|
var content TargetSunList
|
|
content.Id = strconv.FormatInt(v, 10)
|
|
content.Name = info.Title
|
|
listAry, listAryErr := taskDetailsList(groupID, departmentID, dimension, targetId, v)
|
|
if listAryErr == true {
|
|
content.Child = listAry
|
|
}
|
|
|
|
contentList = append(contentList, content)
|
|
}
|
|
}
|
|
if len(contentList) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 考核细则
|
|
func taskDetailsList(groupID, departmentID, dimension, targetId, targetSunId int64) (contentList []taskDetails, isTrue bool) {
|
|
isTrue = false
|
|
var taskDetailsCont []taskDatalsContOut
|
|
listTargetSunErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id", "qe_detailed_target", "qe_unit", "qe_reference_score", "qe_cycle", "qe_cycleattr", "qe_state").Where("qe_type = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_state` = 1", groupID, departmentID, dimension, targetId, targetSunId).Find(&taskDetailsCont).Error
|
|
if listTargetSunErr != nil {
|
|
return
|
|
}
|
|
for _, v := range taskDetailsCont {
|
|
var content taskDetails
|
|
content.Id = strconv.FormatInt(v.Id, 10)
|
|
content.QeId = strconv.FormatInt(v.Id, 10)
|
|
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(v.DetailedTarget)
|
|
if dtIsTrue == true {
|
|
content.Name = dtCont.Title
|
|
content.Content = dtCont.Content
|
|
}
|
|
content.Unit = v.Unit
|
|
content.ReferenceScore = v.ReferenceScore
|
|
content.Cycles = v.Cycles
|
|
content.CycleAttres = v.CycleAttres
|
|
content.State = v.State
|
|
|
|
contentList = append(contentList, content)
|
|
}
|
|
if len(contentList) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 获取考核指标
|
|
func (d *DutyHandle) GetTaskTarget(c *gin.Context) {
|
|
var requestData taskTargetList
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Type == 0 {
|
|
response.Result(101, requestData, "请选择您操作的时定性指标还是定量指标!", c)
|
|
return
|
|
}
|
|
var contAry []assessmentmodel.EvaluationTarget
|
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Where("et_state = 1 AND `et_type` = ?", requestData.Type)
|
|
|
|
// if requestData.Group == "" && len(requestData.DepartMent) < 1 {
|
|
// gormDb = gormDb.Where("`et_visible_group` = '' AND `et_visible_range` = '' AND `et_share` = 1")
|
|
// } else if requestData.Group != "" && len(requestData.DepartMent) < 1 {
|
|
// gormDb = gormDb.Where("FIND_IN_SET(?,`et_visible_group`) OR (`et_visible_group` = '' AND `et_visible_range` = '')", requestData.Group)
|
|
// } else {
|
|
|
|
// }
|
|
if len(requestData.DepartMent) < 1 {
|
|
gormDb = gormDb.Where("`et_share` = 1")
|
|
} else {
|
|
var sqlOrStr string = ""
|
|
for s_i, s_v := range requestData.DepartMent {
|
|
if s_i == 0 {
|
|
sqlOrStr = fmt.Sprintf("FIND_IN_SET(%v,`et_relevant_departments`)", s_v)
|
|
} else {
|
|
sqlOrStr = fmt.Sprintf("%v OR FIND_IN_SET(%v,`et_relevant_departments`)", sqlOrStr, s_v)
|
|
}
|
|
}
|
|
sqlOrStr = fmt.Sprintf("`et_share` = 1 OR (`et_share` = 2 AND (%v))", sqlOrStr)
|
|
gormDb = gormDb.Where(sqlOrStr)
|
|
}
|
|
listErr := gormDb.Find(&contAry).Error
|
|
var taskTargetNewOut []GetTaskTargetNewList
|
|
for _, val := range contAry {
|
|
var taskTargetNewOutcont GetTaskTargetNewList
|
|
taskTargetNewOutcont.Id = val.Id
|
|
taskTargetNewOutcont.Title = val.Title
|
|
taskTargetNewOutcont.Type = val.Type
|
|
taskTargetNewOutcont.State = val.State
|
|
taskTargetNewOutcont.AddTime = val.AddTime
|
|
taskTargetNewOutcont.Share = val.Share
|
|
taskTargetNewOutcont.RelevantDepartments = val.RelevantDepartments
|
|
taskTargetNewOutcont.Dimension = val.Dimension
|
|
taskTargetNewOutcont.Key = val.Key
|
|
taskTargetNewOutcont.Report = val.Report
|
|
taskTargetNewOutcont.Uniteing = val.Uniteing
|
|
taskTargetNewOutcont.Cycles = val.Cycles
|
|
taskTargetNewOutcont.CycleAttres = val.CycleAttres
|
|
taskTargetNewOutcont.VisibleRange = val.VisibleRange
|
|
taskTargetNewOutcont.VisibleRangeGroup = val.VisibleRangeGroup
|
|
taskTargetNewOutcont.ReportList = strings.Split(val.Report, ",")
|
|
taskTargetNewOut = append(taskTargetNewOut, taskTargetNewOutcont)
|
|
}
|
|
if listErr != nil {
|
|
response.Result(201, listErr, "没有相关数据!", c)
|
|
return
|
|
}
|
|
response.Result(0, taskTargetNewOut, "数据获取成功!", c)
|
|
}
|
|
|
|
// 获取定性指标子栏目
|
|
func (d *DutyHandle) GetTaskTargetSun(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 contAry []assessmentmodel.QualitativeTarget
|
|
contErr := global.GVA_DB_Performanceappraisal.Where("q_state = 1 AND `q_parent_id` = ?", requestData.Id).Find(&contAry).Error
|
|
if contErr != nil {
|
|
response.Result(201, contErr, "没有相关数据!", c)
|
|
return
|
|
}
|
|
response.Result(0, contAry, "数据获取成功!", c)
|
|
}
|
|
|
|
// 根据条件获取考核详情
|
|
func (d *DutyHandle) GetTaskTargetContAry(c *gin.Context) {
|
|
var requestData SelectTaskTarget
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Type == 0 {
|
|
response.Result(102, err, "位置指标性质!", c)
|
|
return
|
|
}
|
|
if requestData.TargetId == "" {
|
|
response.Result(102, err, "请选择指标!", c)
|
|
return
|
|
}
|
|
if requestData.Type == 1 && requestData.TargetSunId == "" {
|
|
response.Result(102, err, "未知子栏目!请选择", c)
|
|
return
|
|
}
|
|
var contAry []assessmentmodel.DetailedTarget
|
|
gormDb := global.GVA_DB_Performanceappraisal.Where("dt_state = 1 AND `dt_parentid` = ?", requestData.TargetId)
|
|
if requestData.TargetSunId != "" {
|
|
gormDb = gormDb.Where("`dt_parentid_sun` = ?", requestData.TargetSunId)
|
|
}
|
|
contErr := gormDb.Find(&contAry).Error
|
|
if contErr != nil {
|
|
response.Result(201, contErr, "没有相关数据!", c)
|
|
return
|
|
}
|
|
var targetInfo assessmentmodel.EvaluationTarget
|
|
targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`et_id` = ?", requestData.TargetId).First(&targetInfo).Error
|
|
var outContList []taskDetailsLinkage
|
|
for _, v := range contAry {
|
|
var outCont taskDetailsLinkage
|
|
outCont.Id = strconv.FormatInt(v.Id, 10)
|
|
outCont.Name = v.Title
|
|
outCont.Content = v.Content
|
|
outCont.State = v.State
|
|
if targetInfoErr == nil {
|
|
outCont.Unit = targetInfo.Uniteing
|
|
// outCont.ReferenceScore = v.Content
|
|
outCont.Cycles = targetInfo.Cycles
|
|
outCont.CycleAttres = targetInfo.CycleAttres
|
|
if targetInfo.Report != "" {
|
|
userKeyAry := strings.Split(targetInfo.Report, ",")
|
|
if len(userKeyAry) > 0 {
|
|
outCont.UserList = userKeyAry
|
|
for _, u_v := range userKeyAry {
|
|
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": u_v})
|
|
if usErr == true {
|
|
var userCont QualEvalArrt
|
|
userCont.Id = u_v
|
|
userCont.Name = usCont.Name
|
|
outCont.UserListAry = append(outCont.UserListAry, userCont)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
outContList = append(outContList, outCont)
|
|
}
|
|
response.Result(0, outContList, "数据获取成功!", c)
|
|
}
|
|
|
|
// 添加定性考核权重
|
|
func (d *DutyHandle) AddQualEvalWeight(c *gin.Context) {
|
|
var requestData addDepartmentDimensionWeight
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Hierarchy == 0 {
|
|
response.Result(101, err, "请指定当前添加的是维度权重还是指标权重!", c)
|
|
return
|
|
}
|
|
if requestData.Type == 0 {
|
|
response.Result(101, err, "请指定当前添加的是定性考核权重还是定量考核权重!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(101, err, "请指定当前为哪个集团添加!", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(101, err, "请指定当前为哪个分厂或部室添加!", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(101, err, "请指定当前为哪个维度添加!", c)
|
|
return
|
|
}
|
|
if requestData.Hierarchy > 1 && requestData.TargetId == "" {
|
|
response.Result(101, err, "请指定当前为哪个指标添加!", c)
|
|
return
|
|
}
|
|
//判断当前权重是否写入
|
|
judgeAry := commonus.MapOut()
|
|
gromDbJudeg := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_hierarchy` = ? AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Hierarchy, requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension)
|
|
if requestData.Hierarchy > 1 && requestData.TargetId != "" {
|
|
gromDbJudeg = gromDbJudeg.Where("`ddw_target` = ?", requestData.TargetId)
|
|
}
|
|
scoreJudegErr := gromDbJudeg.First(&judgeAry).Error
|
|
if scoreJudegErr == nil {
|
|
response.Result(101, err, "此权重项已经添加!请不要重复添加!", c)
|
|
return
|
|
}
|
|
|
|
//获取当前条件下的权重总和
|
|
var sumScore int64 = 0
|
|
gromDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_hierarchy` = ? AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Hierarchy, requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension)
|
|
if requestData.Hierarchy > 1 && requestData.TargetId != "" {
|
|
gromDb = gromDb.Where("`ddw_target` = ?", requestData.TargetId)
|
|
}
|
|
scoreErr := gromDb.Pluck("COALESCE(SUM(ddw_weight), 0) as rescore", &sumScore).Error
|
|
if scoreErr != nil {
|
|
sumScore = 0
|
|
}
|
|
resultScore := 10000 - sumScore*100
|
|
if resultScore-(requestData.Weight*100) < 0 {
|
|
msgStr := fmt.Sprintf("权重超出剩余可分配权重最大值!当前可使用的权重为:(%v)。您要写入的权重为:《%v》。请您合理分配权重!", resultScore/100, requestData.Weight)
|
|
response.Result(101, err, msgStr, c)
|
|
return
|
|
}
|
|
var saveData assessmentmodel.DepartmentDimensionWeight
|
|
saveData.Type = requestData.Type
|
|
groupId, _ := strconv.ParseInt(requestData.Group, 10, 64)
|
|
saveData.Group = groupId
|
|
departmentId, _ := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
saveData.DepartmentId = departmentId
|
|
dimensionId, _ := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
saveData.Dimension = dimensionId
|
|
targetId, _ := strconv.ParseInt(requestData.TargetId, 10, 64)
|
|
saveData.Target = targetId
|
|
saveData.Weight = requestData.Weight * 100
|
|
saveData.Addtime = time.Now().Unix()
|
|
saveData.Hierarchy = requestData.Hierarchy
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if addErr != nil {
|
|
response.Result(101, addErr, "数据写入失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, saveData, "数据写入成功!", c)
|
|
}
|
|
|
|
// 批量添加指标权重
|
|
func (d *DutyHandle) AddQualEvalDimWeightBatch(c *gin.Context) {
|
|
var requestData addDepartDimensionWeightAry
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
|
|
if requestData.Type == 0 {
|
|
response.Result(102, err, "请指定当前添加的是定性考核权重还是定量考核权重!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(103, err, "请指定当前为哪个集团添加!", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(104, err, "请指定当前为哪个分厂或部室添加!", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(105, err, "请指定当前为哪个维度添加!", c)
|
|
return
|
|
}
|
|
var targetIdAry []int64
|
|
if len(requestData.TargetList) < 1 {
|
|
response.Result(106, err, "请指定当前为哪些指标添加!", c)
|
|
return
|
|
} else {
|
|
var judgeSumScoer int64 = 0
|
|
for _, t_v := range requestData.TargetList {
|
|
judgeSumScoer = judgeSumScoer + t_v.Weight
|
|
tarIdInt, tarIdIntErr := strconv.ParseInt(t_v.Id, 10, 64)
|
|
if tarIdIntErr == nil {
|
|
targetIdAry = append(targetIdAry, tarIdInt)
|
|
}
|
|
}
|
|
if 10000-judgeSumScoer*100 < 0 {
|
|
response.Result(107, judgeSumScoer, "权重综合超过了限定值100!请重新输入", c)
|
|
return
|
|
}
|
|
}
|
|
//判断是否已经存在其他的已添加选项
|
|
var sumScoreNotIn int64 = 0
|
|
gromDbNotIn := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_hierarchy` = 2 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension)
|
|
if len(targetIdAry) > 0 {
|
|
gromDbNotIn = gromDbNotIn.Where("`ddw_target` NOT IN ?", targetIdAry)
|
|
}
|
|
scoreNotInErr := gromDbNotIn.Pluck("COALESCE(SUM(ddw_weight), 0) as rescore", &sumScoreNotIn).Error
|
|
if scoreNotInErr != nil {
|
|
sumScoreNotIn = 0
|
|
}
|
|
sumScoreNotIn = sumScoreNotIn * 100
|
|
|
|
//获取当前维度下的指标权重总和
|
|
var sumScore int64 = 0
|
|
gromDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_hierarchy` = 2 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension)
|
|
if len(targetIdAry) > 0 {
|
|
gromDb = gromDb.Where("`ddw_target` IN ?", targetIdAry)
|
|
}
|
|
scoreErr := gromDb.Pluck("COALESCE(SUM(ddw_weight), 0) as rescore", &sumScore).Error
|
|
if scoreErr != nil {
|
|
sumScore = 0
|
|
}
|
|
sumScore = sumScore * 100
|
|
if sumScore == 0 && sumScoreNotIn == 0 {
|
|
var saveData []assessmentmodel.DepartmentDimensionWeight
|
|
for _, v := range requestData.TargetList {
|
|
var saveDataCont assessmentmodel.DepartmentDimensionWeight
|
|
|
|
saveDataCont.Type = requestData.Type
|
|
groupId, _ := strconv.ParseInt(requestData.Group, 10, 64)
|
|
saveDataCont.Group = groupId
|
|
departmentId, _ := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
saveDataCont.DepartmentId = departmentId
|
|
dimensionId, _ := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
saveDataCont.Dimension = dimensionId
|
|
targetId, _ := strconv.ParseInt(v.Id, 10, 64)
|
|
saveDataCont.Target = targetId
|
|
saveDataCont.Weight = v.Weight * 100
|
|
saveDataCont.Addtime = time.Now().Unix()
|
|
saveDataCont.Hierarchy = 2
|
|
// addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
saveData = append(saveData, saveDataCont)
|
|
}
|
|
if len(saveData) > 0 {
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if addErr != nil {
|
|
response.Result(108, addErr, "数据写入失败", c)
|
|
return
|
|
}
|
|
}
|
|
} else {
|
|
var depDimIdAry []int64
|
|
gromDbDim := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 2 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension)
|
|
gromDbDimErr := gromDbDim.Where("`ddw_target` NOT IN ?", targetIdAry).Find(&depDimIdAry).Error
|
|
if gromDbDimErr == nil {
|
|
global.GVA_DB_Performanceappraisal.Where("`ddw_id` IN ?", depDimIdAry).Delete(&assessmentmodel.DepartmentDimensionWeight{})
|
|
}
|
|
var saveData []assessmentmodel.DepartmentDimensionWeight
|
|
|
|
for _, v := range requestData.TargetList {
|
|
var ddwId int64
|
|
ddwIdErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 2 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ? AND `ddw_target` = ?", requestData.Type, requestData.Group, requestData.DepartmentId, requestData.Dimension, v.Id).First(&ddwId).Error
|
|
if ddwIdErr == nil {
|
|
saveMap := commonus.MapOut()
|
|
saveMap["ddw_weight"] = v.Weight * 100
|
|
saveMap["ddw_time"] = time.Now().Unix()
|
|
ddwIdEiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_id` = ?", ddwId).Updates(saveMap).Error
|
|
if ddwIdEiteErr == nil {
|
|
}
|
|
} else {
|
|
var saveDataCont assessmentmodel.DepartmentDimensionWeight
|
|
saveDataCont.Type = requestData.Type
|
|
groupId, _ := strconv.ParseInt(requestData.Group, 10, 64)
|
|
saveDataCont.Group = groupId
|
|
departmentId, _ := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
saveDataCont.DepartmentId = departmentId
|
|
dimensionId, _ := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
saveDataCont.Dimension = dimensionId
|
|
targetId, _ := strconv.ParseInt(v.Id, 10, 64)
|
|
saveDataCont.Target = targetId
|
|
saveDataCont.Weight = v.Weight * 100
|
|
saveDataCont.Addtime = time.Now().Unix()
|
|
saveDataCont.Hierarchy = 2
|
|
// addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
saveData = append(saveData, saveDataCont)
|
|
}
|
|
}
|
|
if len(saveData) > 0 {
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if addErr != nil {
|
|
response.Result(108, addErr, "数据写入失败", c)
|
|
return
|
|
}
|
|
}
|
|
}
|
|
response.Result(0, sumScore, "数据写入成功", c)
|
|
}
|
|
|
|
// 批量添加维度权重
|
|
func (d *DutyHandle) AddDimWeightBatch(c *gin.Context) {
|
|
var requestData addDepartDimenWeightAry
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
|
|
if requestData.Type == 0 {
|
|
response.Result(102, err, "请指定当前添加的是定性考核权重还是定量考核权重!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(103, err, "请指定当前为哪个集团添加!", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(104, err, "请指定当前为哪个分厂或部室添加!", c)
|
|
return
|
|
}
|
|
var targetIdAry []int64
|
|
if len(requestData.Dimension) < 1 {
|
|
response.Result(106, err, "请指定当前为哪些维度添加!", c)
|
|
return
|
|
} else {
|
|
var judgeSumScoer int64 = 0
|
|
for _, t_v := range requestData.Dimension {
|
|
judgeSumScoer = judgeSumScoer + t_v.Weight
|
|
tarIdInt, tarIdIntErr := strconv.ParseInt(t_v.Id, 10, 64)
|
|
if tarIdIntErr == nil {
|
|
targetIdAry = append(targetIdAry, tarIdInt)
|
|
}
|
|
}
|
|
if 10000-judgeSumScoer*100 < 0 {
|
|
response.Result(105, judgeSumScoer, "权重综合超过了限定值100!请重新输入", c)
|
|
return
|
|
}
|
|
}
|
|
|
|
var depDimIdAry []int64
|
|
gromDbDim := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 1 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ?", requestData.Type, requestData.Group, requestData.DepartmentId)
|
|
gromDbDimErr := gromDbDim.Find(&depDimIdAry).Error
|
|
if gromDbDimErr == nil {
|
|
global.GVA_DB_Performanceappraisal.Where("`ddw_dimension` IN ?", depDimIdAry).Delete(&assessmentmodel.DepartmentDimensionWeight{})
|
|
}
|
|
var saveData []assessmentmodel.DepartmentDimensionWeight
|
|
|
|
for _, v := range requestData.Dimension {
|
|
var ddwId int64
|
|
ddwIdErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 1 AND `ddw_type` = ? AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", requestData.Type, requestData.Group, requestData.DepartmentId, v.Id).First(&ddwId).Error
|
|
if ddwIdErr == nil {
|
|
saveMap := commonus.MapOut()
|
|
saveMap["ddw_weight"] = v.Weight * 100
|
|
saveMap["ddw_time"] = time.Now().Unix()
|
|
ddwIdEiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_id` = ?", ddwId).Updates(saveMap).Error
|
|
if ddwIdEiteErr == nil {
|
|
}
|
|
} else {
|
|
var saveDataCont assessmentmodel.DepartmentDimensionWeight
|
|
saveDataCont.Type = requestData.Type
|
|
groupId, _ := strconv.ParseInt(requestData.Group, 10, 64)
|
|
saveDataCont.Group = groupId
|
|
departmentId, _ := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
saveDataCont.DepartmentId = departmentId
|
|
dimensionId, _ := strconv.ParseInt(v.Id, 10, 64)
|
|
saveDataCont.Dimension = dimensionId
|
|
saveDataCont.Target = 0
|
|
saveDataCont.Weight = v.Weight * 100
|
|
saveDataCont.Addtime = time.Now().Unix()
|
|
saveDataCont.Hierarchy = 1
|
|
// addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
saveData = append(saveData, saveDataCont)
|
|
}
|
|
}
|
|
if len(saveData) > 0 {
|
|
addErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if addErr != nil {
|
|
response.Result(108, addErr, "数据写入失败", c)
|
|
return
|
|
}
|
|
}
|
|
response.Result(0, depDimIdAry, "数据写入成功", c)
|
|
}
|
|
|
|
// 获取部门考核指标详情
|
|
func (d *DutyHandle) GetQualEval(c *gin.Context) {
|
|
var requestData QualitativeEite
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(102, err, "请选择归属集团", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(102, err, "请选择接受考核的部门!", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(102, err, "请选择考核维度", c)
|
|
return
|
|
}
|
|
if requestData.Target == "" {
|
|
response.Result(102, err, "请选择考核指标", c)
|
|
return
|
|
}
|
|
if requestData.TargetSun == "" {
|
|
response.Result(102, err, "请选择考核指标子栏目", c)
|
|
return
|
|
}
|
|
var quaAry []assessmentmodel.QualitativeEvaluation
|
|
var quaOutAry QualitativeEiteOut
|
|
quaOutAry.Group = requestData.Group
|
|
quaOutAry.DepartmentId = requestData.DepartmentId
|
|
quaOutAry.Dimension = requestData.Dimension
|
|
quaOutAry.Target = requestData.Target
|
|
quaOutAry.TargetSun = requestData.TargetSun
|
|
// quaOutAry.List = requestData.List
|
|
quaErr := global.GVA_DB_Performanceappraisal.Where("`qe_type` = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target, requestData.TargetSun).Find(&quaAry).Error
|
|
if quaErr != nil {
|
|
response.Result(102, quaErr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
var targetInfo assessmentmodel.EvaluationTarget
|
|
targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`et_id` = ?", requestData.Target).First(&targetInfo).Error
|
|
for _, v := range quaAry {
|
|
|
|
detTarCont, detTarContErr := commonus.GetDetailedTargetInfo(v.DetailedTarget)
|
|
if detTarContErr == true {
|
|
var outCont taskDetailsLinkage
|
|
outCont.Id = strconv.FormatInt(v.Id, 10)
|
|
outCont.Name = detTarCont.Title
|
|
outCont.Content = detTarCont.Content
|
|
outCont.State = v.State
|
|
if targetInfoErr == nil {
|
|
outCont.Unit = targetInfo.Uniteing
|
|
outCont.ReferenceScore = v.ReferenceScore
|
|
outCont.Cycles = targetInfo.Cycles
|
|
outCont.CycleAttres = targetInfo.CycleAttres
|
|
if targetInfo.Report != "" {
|
|
userKeyAry := strings.Split(targetInfo.Report, ",")
|
|
if len(userKeyAry) > 0 {
|
|
outCont.UserList = userKeyAry
|
|
for _, u_v := range userKeyAry {
|
|
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": u_v})
|
|
if usErr == true {
|
|
var userCont QualEvalArrt
|
|
userCont.Id = u_v
|
|
userCont.Name = usCont.Name
|
|
outCont.UserListAry = append(outCont.UserListAry, userCont)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
quaOutAry.List = append(quaOutAry.List, outCont)
|
|
}
|
|
|
|
}
|
|
response.Result(0, quaOutAry, "数据获取成功!", c)
|
|
}
|
|
|
|
// 修改定性考核内容
|
|
func (d *DutyHandle) EiteQualEvalCont(c *gin.Context) {
|
|
var requestData QualitativeEiteOut
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(102, err, "请选择归属集团", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(102, err, "请选择接受考核的部门!", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(102, err, "请选择考核维度", c)
|
|
return
|
|
}
|
|
if requestData.Target == "" {
|
|
response.Result(102, err, "请选择考核指标", c)
|
|
return
|
|
}
|
|
if requestData.TargetSun == "" {
|
|
response.Result(102, err, "请选择考核指标子栏目", c)
|
|
return
|
|
}
|
|
if len(requestData.List) < 1 {
|
|
response.Result(102, err, "考核细则不能为空", c)
|
|
return
|
|
}
|
|
groupInt, groupIntErr := strconv.ParseInt(requestData.Group, 10, 64)
|
|
if groupIntErr != nil {
|
|
groupInt = 0
|
|
}
|
|
dimensionInt, departinIntErr := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
if departinIntErr != nil {
|
|
dimensionInt = 0
|
|
}
|
|
targetInt, targetIntErr := strconv.ParseInt(requestData.Target, 10, 64)
|
|
if targetIntErr != nil {
|
|
targetInt = 0
|
|
}
|
|
targetSunInt, targetSunIntErr := strconv.ParseInt(requestData.TargetSun, 10, 64)
|
|
if targetSunIntErr != nil {
|
|
targetSunInt = 0
|
|
}
|
|
departmentIdInt, departmentIdIntErr := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
if departmentIdIntErr != nil {
|
|
departmentIdInt = 0
|
|
}
|
|
var writeInfo []int
|
|
for _, v := range requestData.List {
|
|
var qeInfo assessmentmodel.QualitativeEvaluation
|
|
judjeisErr := global.GVA_DB_Performanceappraisal.Where("qe_id = ?", v.Id).First(&qeInfo).Error
|
|
if judjeisErr == nil {
|
|
qeSaveMap := commonus.MapOut()
|
|
qeSaveMap["qe_reference_score"] = v.ReferenceScore
|
|
qeSaveMap["qe_operator"] = strings.Join(v.UserList, ",")
|
|
qeSaveMap["qe_department_id"] = strings.Join(GetDepartmentByUserBast(v.UserList), ",")
|
|
qeSaveMap["qe_eitetime"] = time.Now().Unix()
|
|
eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("qe_id = ?", v.Id).Updates(&qeSaveMap).Error
|
|
if eiteErr == nil {
|
|
detaTargetMap := commonus.MapOut()
|
|
detaTargetMap["dt_title"] = v.Name
|
|
detaTargetMap["dt_content"] = v.Content
|
|
detaTargetMap["dt_time"] = time.Now().Unix()
|
|
eiteDetaErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("dt_id = ?", qeInfo.DetailedTarget).Updates(&detaTargetMap).Error
|
|
if eiteDetaErr == nil {
|
|
writeInfo = append(writeInfo, 1)
|
|
}
|
|
}
|
|
} else {
|
|
var saveData assessmentmodel.QualitativeEvaluation
|
|
saveData.Group = groupInt
|
|
saveData.Type = 1
|
|
saveData.Dimension = dimensionInt
|
|
saveData.Target = targetInt
|
|
saveData.TargetSun = targetSunInt
|
|
detailedTargetInt, detailedTargetIntErr := strconv.ParseInt(v.Id, 10, 64)
|
|
if detailedTargetIntErr == nil {
|
|
saveData.DetailedTarget = detailedTargetInt
|
|
}
|
|
saveData.Unit = v.Unit
|
|
saveData.ReferenceScore = v.ReferenceScore
|
|
saveData.Cycles = v.Cycles
|
|
saveData.CycleAttres = v.CycleAttres
|
|
|
|
saveData.State = 1
|
|
saveData.Addtime = time.Now().Unix()
|
|
saveData.Eitetime = time.Now().Unix()
|
|
|
|
saveData.AcceptEvaluation = departmentIdInt
|
|
saveData.Operator = strings.Join(v.UserList, ",")
|
|
saveData.DepartmentId = strings.Join(GetDepartmentByUserBast(v.UserList), ",")
|
|
addDataErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error
|
|
if addDataErr == nil {
|
|
writeInfo = append(writeInfo, 1)
|
|
}
|
|
}
|
|
|
|
}
|
|
if len(writeInfo) <= 0 {
|
|
response.Result(102, writeInfo, "数据写入失败!请重新提交!", c)
|
|
return
|
|
}
|
|
response.Result(0, err, "数据写入成功!", c)
|
|
// eiteDataSave := commonus.MapOut()
|
|
// eiteDataSave["qe_state"] = 2
|
|
// eiteDataSave["qe_eitetime"] = time.Now().Unix()
|
|
// //开启事务处理
|
|
// affairDb := global.GVA_DB_Performanceappraisal.Begin()
|
|
// delOldContErr := affairDb.Where("`qe_type` = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target, requestData.TargetSun).Delete(&assessmentmodel.QualitativeEvaluation{}).Error
|
|
// delOldContErr := affairDb.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_type` = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target, requestData.TargetSun).Updates(&eiteDataSave).Error
|
|
// var quaEvaCont []assessmentmodel.QualitativeEvaluation
|
|
// for _, v := range requestData.List {
|
|
// var saveData assessmentmodel.QualitativeEvaluation
|
|
|
|
// saveData.Group = groupInt
|
|
// saveData.Type = 1
|
|
|
|
// saveData.Dimension = dimensionInt
|
|
|
|
// saveData.Target = targetInt
|
|
|
|
// saveData.TargetSun = targetSunInt
|
|
|
|
// detailedTargetInt, detailedTargetIntErr := strconv.ParseInt(v.Id, 10, 64)
|
|
// if detailedTargetIntErr == nil {
|
|
// saveData.DetailedTarget = detailedTargetInt
|
|
// }
|
|
|
|
// saveData.Unit = v.Unit
|
|
// saveData.ReferenceScore = v.ReferenceScore
|
|
// saveData.Cycles = v.Cycles
|
|
// saveData.CycleAttres = v.CycleAttres
|
|
|
|
// saveData.State = 1
|
|
// saveData.Addtime = time.Now().Unix()
|
|
// saveData.Eitetime = time.Now().Unix()
|
|
|
|
// saveData.AcceptEvaluation = departmentIdInt
|
|
// saveData.Operator = strings.Join(v.UserList, ",")
|
|
// // fmt.Printf("%v-------->%v\n", GetDepartmentByUserBast(v.UserList), strings.Join(GetDepartmentByUserBast(v.UserList), ","))
|
|
// saveData.DepartmentId = strings.Join(GetDepartmentByUserBast(v.UserList), ",")
|
|
// // operatorInt, operatorIntErr := strconv.ParseInt(v.Operator, 10, 64)
|
|
// // if operatorIntErr == nil {
|
|
// // saveData.Operator = strings.Join(v.Operator,",")
|
|
// // }
|
|
// // saveData.AcceptEvaluation = departmentIdInt
|
|
|
|
// quaEvaCont = append(quaEvaCont, saveData)
|
|
// }
|
|
// var infoAttrErr error
|
|
// if len(quaEvaCont) > 0 {
|
|
// infoAttrErr = affairDb.Create(&quaEvaCont).Error
|
|
// if delOldContErr == nil && infoAttrErr == nil {
|
|
// delOldContErr = affairDb.Commit().Error
|
|
// if delOldContErr != nil {
|
|
// delOldContErr = affairDb.Rollback().Error
|
|
// response.Result(102, err, "数据写入失败!请重新提交!", c)
|
|
// return
|
|
// }
|
|
// commonus.AddDimenTargetWeight(1, groupInt, departmentIdInt, dimensionInt, targetInt)
|
|
// response.Result(0, err, "数据写入成功!", c)
|
|
// } else {
|
|
// delOldContErr = affairDb.Rollback().Error
|
|
// response.Result(102, err, "数据写入失败!请重新提交!", c)
|
|
// }
|
|
// } else {
|
|
// response.Result(0, err, "数据写入成功!", c)
|
|
// }
|
|
|
|
}
|
|
|
|
// 删除定性考核
|
|
func (d *DutyHandle) DelQualEvalCont(c *gin.Context) {
|
|
var requestData DelQualitative
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "数据获取失败!", c)
|
|
return
|
|
}
|
|
if requestData.Group == "" {
|
|
response.Result(102, err, "请选择归属集团", c)
|
|
return
|
|
}
|
|
if requestData.DepartmentId == "" {
|
|
response.Result(103, err, "请选择接受考核的部门!", c)
|
|
return
|
|
}
|
|
if requestData.Dimension == "" {
|
|
response.Result(104, err, "请选择考核维度", c)
|
|
return
|
|
}
|
|
if requestData.Target == "" {
|
|
response.Result(105, err, "请选择考核指标", c)
|
|
return
|
|
}
|
|
if requestData.TargetSun == "" {
|
|
response.Result(106, err, "请选择考核指标子栏目", c)
|
|
return
|
|
}
|
|
|
|
if requestData.Type == 0 {
|
|
requestData.Type = 1
|
|
}
|
|
|
|
groupInt, groupIntErr := strconv.ParseInt(requestData.Group, 10, 64)
|
|
if groupIntErr != nil {
|
|
groupInt = 0
|
|
}
|
|
dimensionInt, departinIntErr := strconv.ParseInt(requestData.Dimension, 10, 64)
|
|
if departinIntErr != nil {
|
|
dimensionInt = 0
|
|
}
|
|
targetInt, targetIntErr := strconv.ParseInt(requestData.Target, 10, 64)
|
|
if targetIntErr != nil {
|
|
targetInt = 0
|
|
}
|
|
// targetSunInt, targetSunIntErr := strconv.ParseInt(requestData.TargetSun, 10, 64)
|
|
// if targetSunIntErr != nil {
|
|
// targetSunInt = 0
|
|
// }
|
|
departmentIdInt, departmentIdIntErr := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
if departmentIdIntErr != nil {
|
|
departmentIdInt = 0
|
|
}
|
|
|
|
affairDb := global.GVA_DB_Performanceappraisal.Begin()
|
|
delOldContErr := affairDb.Where("`qe_type` = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target, requestData.TargetSun).Delete(&assessmentmodel.QualitativeEvaluation{}).Error
|
|
|
|
var dimSurplusSum int64
|
|
sumScoreEr := affairDb.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_type` = 1 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target).Pluck("COALESCE(COUNT(qe_id), 0) as rescore", &dimSurplusSum).Error
|
|
var delDimErr error
|
|
delDimErr = nil
|
|
if sumScoreEr == nil && dimSurplusSum == 0 {
|
|
delDimErr = affairDb.Where("`ddw_type` = 1 AND `ddw_hierarchy` = 2 AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ? AND `ddw_target` = ?", requestData.Group, requestData.DepartmentId, requestData.Dimension, requestData.Target).Delete(&assessmentmodel.DepartmentDimensionWeight{}).Error
|
|
}
|
|
if delOldContErr == nil && delDimErr == nil {
|
|
delOldContErr = affairDb.Commit().Error
|
|
if delOldContErr != nil {
|
|
delOldContErr = affairDb.Rollback().Error
|
|
response.Result(103, delOldContErr, "删除失败!", c)
|
|
return
|
|
}
|
|
commonus.AddDimenTargetWeight(requestData.Type, groupInt, departmentIdInt, dimensionInt, targetInt)
|
|
response.Result(0, delOldContErr, "删除成功!", c)
|
|
} else {
|
|
delOldContErr = affairDb.Rollback().Error
|
|
response.Result(102, delOldContErr, "删除失败!", c)
|
|
}
|
|
}
|
|
|