18 changed files with 3469 additions and 88 deletions
@ -0,0 +1,89 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"strconv" |
||||
|
|
||||
|
"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/flipped-aurora/gin-vue-admin/server/model/testpage" |
||||
|
"github.com/gin-gonic/gin" |
||||
|
) |
||||
|
|
||||
|
//部门考核
|
||||
|
func (d *DutyHandle) DepartmentList(c *gin.Context) { |
||||
|
var requestData rationSelect |
||||
|
c.ShouldBindJSON(&requestData) |
||||
|
var groupId int64 = 3 |
||||
|
if requestData.Group != "" { |
||||
|
groupId, _ = strconv.ParseInt(requestData.Group, 10, 64) |
||||
|
} |
||||
|
var departList []deparMentModel |
||||
|
gromDb := global.GVA_DB_Master.Model(&testpage.BranchFactory{}).Select("bf_id", "bf_name", "bf_wechat_id").Where("`bf_set` = 1 AND `bf_group` = ?", groupId) |
||||
|
if requestData.DepartmentId != "" { |
||||
|
gromDb = gromDb.Where("`bf_id` = ?", requestData.DepartmentId) |
||||
|
} |
||||
|
departMentErr := gromDb.Find(&departList).Error |
||||
|
if departMentErr != nil || len(departList) < 1 { |
||||
|
response.Result(101, departMentErr, "没有数据!", c) |
||||
|
return |
||||
|
} |
||||
|
var departAryList []departmentDuty |
||||
|
for _, v := range departList { |
||||
|
var departCont departmentDuty |
||||
|
departCont.Id = strconv.FormatInt(v.Id, 10) |
||||
|
departCont.Name = v.Name |
||||
|
departCont.Child = getDepartDimension(groupId, v.Id) |
||||
|
departAryList = append(departAryList, departCont) |
||||
|
} |
||||
|
response.Result(0, departAryList, "数据获取成功!", c) |
||||
|
} |
||||
|
|
||||
|
//获取部门考核维度
|
||||
|
func getDepartDimension(groupId, departId int64) (dimensionAry []departmentDimension) { |
||||
|
var fileAry []int64 |
||||
|
dimErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimension{}).Select("dd_dimension").Where("`dd_group` = ? AND `dd_department` = ?", groupId, departId).Group("dd_dimension").Find(&fileAry).Error |
||||
|
// fmt.Printf("1--------------->%v\n", dimErr)
|
||||
|
if dimErr == nil { |
||||
|
for _, v := range fileAry { |
||||
|
dimInfo, dimInfoErr := commonus.GetDutyClassInfo(v) |
||||
|
// fmt.Printf("2--------------->%v\n", dimInfo)
|
||||
|
if dimInfoErr == true { |
||||
|
var dimCont departmentDimension |
||||
|
dimCont.Id = strconv.FormatInt(v, 10) |
||||
|
dimCont.Name = dimInfo.Title |
||||
|
dimCont.Child = targetRationDepartList(groupId, departId, v) |
||||
|
dimensionAry = append(dimensionAry, dimCont) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//部门考核项目
|
||||
|
func targetRationDepartList(groupID, departmentID, dimension int64) (contentList []taskDetails) { |
||||
|
var fileTargetAry []assessmentmodel.QualitativeEvaluation |
||||
|
listTargetErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ?", groupID, departmentID, dimension).Find(&fileTargetAry).Error |
||||
|
if listTargetErr != nil { |
||||
|
return |
||||
|
} |
||||
|
for _, v := range fileTargetAry { |
||||
|
var content taskDetails |
||||
|
targetInfo, targetErr := commonus.GetTargetInfo(v.Target) |
||||
|
if targetErr == true { |
||||
|
content.Id = strconv.FormatInt(v.Target, 10) |
||||
|
content.Name = targetInfo.Title |
||||
|
|
||||
|
content.Unit = v.Unit |
||||
|
content.ReferenceScore = v.ReferenceScore |
||||
|
content.Cycles = v.Cycles |
||||
|
content.CycleAttres = v.CycleAttres |
||||
|
content.State = v.State |
||||
|
|
||||
|
contentList = append(contentList, content) |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
@ -0,0 +1,310 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"strconv" |
||||
|
"time" |
||||
|
|
||||
|
"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 *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) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,267 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"encoding/json" |
||||
|
"fmt" |
||||
|
"strconv" |
||||
|
"time" |
||||
|
|
||||
|
"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 (a *EvaluationScheme) Index(c *gin.Context) { |
||||
|
outPut := commonus.MapOut() |
||||
|
response.Result(0, outPut, "测评方案获取成功", c) |
||||
|
} |
||||
|
|
||||
|
//添加考核方案
|
||||
|
func (a *EvaluationScheme) AddEvaluationScheme(c *gin.Context) { |
||||
|
var requestData AddScheme |
||||
|
err := c.ShouldBindJSON(&requestData) |
||||
|
if err != nil { |
||||
|
response.Result(101, err, "参数错误!请重新提交!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Title == "" { |
||||
|
response.Result(102, err, "请输入考核名称!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Group == 0 { |
||||
|
response.Result(103, err, "请选择归属集团!", c) |
||||
|
return |
||||
|
} |
||||
|
// if requestData.Department == "" {
|
||||
|
// response.Result(104, err, "请选择被考核的部门(分厂)!", c)
|
||||
|
// return
|
||||
|
// }
|
||||
|
if requestData.Dimension == "" { |
||||
|
response.Result(105, err, "请选择考核维度!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Project == "" { |
||||
|
response.Result(106, err, "请选择考核项目!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Weight == 0 { |
||||
|
response.Result(107, err, "请输入权重!", c) |
||||
|
return |
||||
|
} |
||||
|
if len(requestData.Content) < 1 { |
||||
|
response.Result(108, err, "请输入方案内容!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.ExecutiveDepartment == 0 { |
||||
|
response.Result(109, err, "请选择执行部门(分厂)!", c) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
if len(requestData.Department) < 1 { |
||||
|
response.Result(111, err, "请选择被考核的部门(分厂)!", c) |
||||
|
return |
||||
|
} |
||||
|
var dataStruct dataLockStatistics |
||||
|
for _, departId := range requestData.Department { |
||||
|
syncProcess.Add(1) |
||||
|
go dataStruct.addEvaluationSchemeHandel(departId, requestData) |
||||
|
} |
||||
|
syncProcess.Wait() |
||||
|
returData := commonus.MapOut() |
||||
|
readDataMap, readBaoJinf := dataStruct.readMyDayData() |
||||
|
|
||||
|
returData["istrue"] = readDataMap |
||||
|
returData["isfalse"] = readBaoJinf |
||||
|
if len(readBaoJinf) > 0 { |
||||
|
response.Result(112, returData, "有未处理失败的数据!请检查", c) |
||||
|
} else { |
||||
|
response.Result(0, returData, "数据处理完成!", c) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//并发写入考核方案
|
||||
|
func (d *dataLockStatistics) addEvaluationSchemeHandel(departId int64, addData AddScheme) { |
||||
|
d.mutext.Lock() |
||||
|
defer d.mutext.Unlock() |
||||
|
// fmt.Printf("%v\n", departId)
|
||||
|
juadgeOut := commonus.MapOut() |
||||
|
juadeIsTrue := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationScheme{}).Where("`es_evaluation_department` = ? AND `es_title` = ?", departId, addData.Title).First(&juadgeOut).Error |
||||
|
if juadeIsTrue == nil { |
||||
|
errMap := commonus.MapOut() |
||||
|
errMap["departid"] = departId |
||||
|
bfErr, bfCont := commonus.GetBranchFactory(departId) |
||||
|
if bfErr == true { |
||||
|
errMap["departmentname"] = bfCont.Name |
||||
|
} else { |
||||
|
errMap["departmentname"] = "" |
||||
|
} |
||||
|
errMap["title"] = addData.Title |
||||
|
errMap["msg"] = fmt.Sprintf("在%v中已经存在《%v》考核方案!请不要重复添加!", errMap["departmentname"], addData.Title) |
||||
|
d.dataErrMap = append(d.dataErrMap, errMap) |
||||
|
} else { |
||||
|
var saveData assessmentmodel.EvaluationScheme |
||||
|
saveData.Id = commonus.GetFileNumberEs() |
||||
|
saveData.Title = addData.Title |
||||
|
saveData.Group = addData.Group |
||||
|
saveData.EvaluationDepartment = departId |
||||
|
dimensionId, dimensionIdErr := strconv.ParseInt(addData.Dimension, 10, 64) |
||||
|
if dimensionIdErr == nil { |
||||
|
saveData.Dimension = dimensionId |
||||
|
} |
||||
|
projectId, projectIdErr := strconv.ParseInt(addData.Project, 10, 64) |
||||
|
if projectIdErr == nil { |
||||
|
saveData.Project = projectId |
||||
|
} |
||||
|
saveData.Weight = addData.Weight |
||||
|
saveData.ExecutiveDepartment = addData.ExecutiveDepartment |
||||
|
jsonCont, jsonContErr := json.Marshal(addData.Content) |
||||
|
if jsonContErr == nil { |
||||
|
saveData.Content = string(jsonCont) |
||||
|
} |
||||
|
saveData.AddTime = time.Now().Unix() |
||||
|
saveData.EiteTime = time.Now().Unix() |
||||
|
saveData.Maker = 1 |
||||
|
|
||||
|
saveDataes, isError := d.NewsAddRules(projectId, addData.Content) |
||||
|
if isError != true { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = saveData.Id |
||||
|
msg["title"] = saveData.Title |
||||
|
msg["msg"] = "此考核方案的细则录入失败!请重新处理此方案" |
||||
|
d.dataMap = append(d.dataMap, msg) |
||||
|
} else { |
||||
|
jsonSection, jsonErr := json.Marshal(saveDataes) |
||||
|
if jsonErr != nil { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = saveData.Id |
||||
|
msg["title"] = saveData.Title |
||||
|
msg["msg"] = "此考核方案的细则录入失败!请重新处理此方案" |
||||
|
d.dataMap = append(d.dataMap, msg) |
||||
|
} else { |
||||
|
saveData.Content = string(jsonSection) |
||||
|
juSaveDataErr := global.GVA_DB_Performanceappraisal.Create(&saveData) |
||||
|
if juSaveDataErr == nil { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = saveData.Id |
||||
|
msg["title"] = saveData.Title |
||||
|
msg["msg"] = "此考核方案录入成功!" |
||||
|
d.dataMap = append(d.dataMap, msg) |
||||
|
} else { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = saveData.Id |
||||
|
msg["title"] = saveData.Title |
||||
|
msg["msg"] = "此考核方案录入失败!" |
||||
|
d.dataMap = append(d.dataMap, msg) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
syncProcess.Done() |
||||
|
} |
||||
|
|
||||
|
//判断要新增的考核细则
|
||||
|
func (d *dataLockStatistics) NewsAddRules(parentId int64, dataAry []schemeContent) (rulesSaveData []map[string]interface{}, isTrue bool) { |
||||
|
isTrue = false |
||||
|
for _, val := range dataAry { |
||||
|
writeData := commonus.MapOut() |
||||
|
if val.Id == "" { |
||||
|
writeId := commonus.GetFileNumberEs() |
||||
|
writeData["dc_id"] = writeId |
||||
|
writeData["dc_title"] = val.Title |
||||
|
writeData["dc_time"] = time.Now().Unix() |
||||
|
writeData["dc_state"] = 1 |
||||
|
writeData["dc_parent"] = parentId |
||||
|
writeData["dc_user_type"] = 1 |
||||
|
writeData["dc_dump"] = val.Section |
||||
|
writeData["dc_type"] = val.Type |
||||
|
writeData["dc_unit"] = val.Unittitle |
||||
|
writeData["dc_cycle"] = val.Cycle |
||||
|
writeData["dc_cycleattr"] = val.Cycleattr |
||||
|
writeData["dc_cont"] = val.Content |
||||
|
juadgeOut := commonus.MapOut() |
||||
|
juadgeAddDataErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("`dc_parent` = ? AND `dc_title` = ?", parentId, val.Title).First(&juadgeOut).Error |
||||
|
if juadgeAddDataErr == nil { |
||||
|
rulesSaveData = append(rulesSaveData, juadgeOut) |
||||
|
} else { |
||||
|
saveDataErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Create(&writeData).Error |
||||
|
if saveDataErr == nil { |
||||
|
rulesSaveData = append(rulesSaveData, writeData) |
||||
|
} else { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = val.Id |
||||
|
msg["title"] = val.Title |
||||
|
msg["msg"] = "此考核细则写入失败!请重新处理此细则" |
||||
|
d.dataErrMap = append(d.dataErrMap, msg) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} else { |
||||
|
dataOut := commonus.MapOut() |
||||
|
juadgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("`dc_id` = ?", val.Id).First(&dataOut).Error |
||||
|
if juadgeErr == nil { |
||||
|
rulesSaveData = append(rulesSaveData, dataOut) |
||||
|
} else { |
||||
|
writeId := commonus.GetFileNumberEs() |
||||
|
writeData["dc_id"] = writeId |
||||
|
writeData["dc_title"] = val.Title |
||||
|
writeData["dc_time"] = time.Now().Unix() |
||||
|
writeData["dc_state"] = 1 |
||||
|
writeData["dc_parent"] = parentId |
||||
|
writeData["dc_user_type"] = 1 |
||||
|
writeData["dc_dump"] = val.Section |
||||
|
writeData["dc_type"] = val.Type |
||||
|
writeData["dc_unit"] = val.Unittitle |
||||
|
writeData["dc_cycle"] = val.Cycle |
||||
|
writeData["dc_cycleattr"] = val.Cycleattr |
||||
|
writeData["dc_cont"] = val.Content |
||||
|
|
||||
|
saveDataErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Create(&writeData).Error |
||||
|
if saveDataErr == nil { |
||||
|
rulesSaveData = append(rulesSaveData, writeData) |
||||
|
} else { |
||||
|
msg := commonus.MapOut() |
||||
|
msg["id"] = val.Id |
||||
|
msg["title"] = val.Title |
||||
|
msg["msg"] = "此考核细则写入失败!请重新处理此细则" |
||||
|
d.dataErrMap = append(d.dataErrMap, msg) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if len(rulesSaveData) > 0 { |
||||
|
isTrue = true |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// {
|
||||
|
// "title": "2022年恒信高科01号考核方案",
|
||||
|
// "group": 3,
|
||||
|
// "department": "[1,2,3,4]",
|
||||
|
// "dimension": "1644884869457674",
|
||||
|
// "project": "16448868625724229",
|
||||
|
// "weight": 30,
|
||||
|
// "ExecutiveDepartment": 15,
|
||||
|
// "content": [
|
||||
|
// {
|
||||
|
// "id": "16448933707009289",
|
||||
|
// "title": "各区域卫生保持情况;",
|
||||
|
// "type": 1,
|
||||
|
// "parentId": "16448868625724229",
|
||||
|
// "section": "15",
|
||||
|
// "unittitle": "分",
|
||||
|
// "cycle": 3,
|
||||
|
// "cycleattr": 1,
|
||||
|
// "content": "区域卫生保持不到位、打扫不及时根据情况扣除0.1-0.3分。"
|
||||
|
// }
|
||||
|
// ]
|
||||
|
// }
|
||||
|
|
||||
|
// {"title":"2022年恒信高科01号考核方案","group":3,"department":[1,2,3,4],"dimension":"1644884869457674","project":"16448868625724229","weight":30,"ExecutiveDepartment":15,"content":[{"id":"16448933707009289","title":"各区域卫生保持情况;","type":1,"parentId":"16448868625724229","section":"15","unittitle":"\u5206","cycle":3,"cycleattr":1,"content":"区域卫生保持不到位、打扫不及时根据情况扣除0.1-0.3分。"}]}
|
||||
@ -0,0 +1,801 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"strconv" |
||||
|
"strings" |
||||
|
"time" |
||||
|
|
||||
|
"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 *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.TargetSun == "" { |
||||
|
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 { |
||||
|
addDepartDimension(requestData.Group, deparmentId, requestData.Dimension, 1) |
||||
|
syncProcess.Add(1) |
||||
|
go synergeticProcess.addQualEvalList(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 departidInt == 0 {
|
||||
|
// saveData.DepartmentId = departidInt
|
||||
|
// }
|
||||
|
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, ",") |
||||
|
// 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) |
||||
|
|
||||
|
msg := commonus.MapOut() |
||||
|
if dtIsTrue == true { |
||||
|
msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案!->ID:%v", groupCont.Name, deparConCont.Name, dtCont.Title, v.DetailedTarget) |
||||
|
} else { |
||||
|
msg["msg"] = fmt.Sprintf("%v-%v《%v》考核细则录入失败!请重新处理此方案", groupCont.Name, deparConCont.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 |
||||
|
groupErr, groupCont := commonus.GetGroupCont(v) |
||||
|
if groupErr == true { |
||||
|
aualEvalArrtCont.Id = strconv.FormatInt(v, 10) |
||||
|
aualEvalArrtCont.Name = groupCont.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 { |
||||
|
deparConErr, deparConCont := commonus.GetBranchFactory(v) |
||||
|
var deparCont QualEvalListOutDepart |
||||
|
if deparConErr == true { |
||||
|
deparCont.Id = strconv.FormatInt(v, 10) |
||||
|
deparCont.Name = deparConCont.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) |
||||
|
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 |
||||
|
if listErr != nil { |
||||
|
response.Result(201, listErr, "没有相关数据!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, contAry, "数据获取成功!", 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) |
||||
|
} |
||||
@ -0,0 +1,269 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"strconv" |
||||
|
"time" |
||||
|
|
||||
|
"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 *DutyHandle) AddQualitativeTarget(c *gin.Context) { |
||||
|
var requestData addAttTarget |
||||
|
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 |
||||
|
} |
||||
|
juadgeMap := commonus.MapOut() |
||||
|
juadgeTitleErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Select("q_title").Where("`q_title` = ? AND `q_parent_id` = ?", requestData.Title, requestData.ParentId).First(&juadgeMap).Error |
||||
|
if juadgeTitleErr == nil { |
||||
|
response.Result(102, err, "此定性指标子栏目已经存在!请不要重复录入!", c) |
||||
|
return |
||||
|
} |
||||
|
var saveData assessmentmodel.QualitativeTarget |
||||
|
saveData.Title = requestData.Title |
||||
|
parentId, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64) |
||||
|
if parentIdErr != nil { |
||||
|
response.Result(102, err, "请选择定性指标子栏目归属", c) |
||||
|
return |
||||
|
} |
||||
|
saveData.ParentId = parentId |
||||
|
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) GetQualitativeTargetList(c *gin.Context) { |
||||
|
var requestData attTargetList |
||||
|
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.QualitativeTarget{}) |
||||
|
if requestData.ParentId != "" { |
||||
|
gormDb = gormDb.Where("`q_parent_id` = ?", requestData.ParentId) |
||||
|
} |
||||
|
if requestData.State != 0 { |
||||
|
gormDb = gormDb.Where("`q_state` = ?", requestData.State) |
||||
|
} else { |
||||
|
gormDb = gormDb.Where("`q_state` IN (1,2)") |
||||
|
} |
||||
|
if requestData.Title != "" { |
||||
|
gormDb = gormDb.Where("(`q_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 |
||||
|
dataListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dataList).Error |
||||
|
if dataListerr != nil { |
||||
|
response.Result(103, dataList, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
var outList []attTargetListOut |
||||
|
for _, val := range dataList { |
||||
|
var outContent attTargetListOut |
||||
|
outContent.Id = val.Id |
||||
|
outContent.Title = val.Title |
||||
|
outContent.ParentId = val.ParentId |
||||
|
outContent.State = val.State |
||||
|
outContent.AddTime = val.AddTime |
||||
|
outContent.OutId = strconv.FormatInt(val.Id, 10) |
||||
|
outContent.ParentIdStr = strconv.FormatInt(val.ParentId, 10) |
||||
|
parentCont, parentIsTrue := commonus.GetTargetInfo(val.ParentId) |
||||
|
if parentIsTrue == true { |
||||
|
outContent.ParentTitle = parentCont.Title |
||||
|
} |
||||
|
outList = append(outList, outContent) |
||||
|
} |
||||
|
countSum := len(outList) |
||||
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, outList) |
||||
|
response.Result(0, printData, "查询成功!", c) |
||||
|
} |
||||
|
|
||||
|
//编辑指标数据处理
|
||||
|
func eiteQualTargetInfoes(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) { |
||||
|
isTrue = false |
||||
|
infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` = ?", saveId).Updates(saveData).Error |
||||
|
if infoErr != nil { |
||||
|
return |
||||
|
} |
||||
|
isTrue = true |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获取定性测评指标子栏目详细内容
|
||||
|
func (d *DutyHandle) GetQualTargetInfo(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 attTargetListOut |
||||
|
contErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Select("q_id", "q_title", "q_parent_id", "q_state", "q_time").Where("`q_id` = ?", requestData.Id).First(&systemEvalCont).Error |
||||
|
if contErr != nil { |
||||
|
response.Result(103, err, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
systemEvalCont.ParentIdStr = strconv.FormatInt(systemEvalCont.ParentId, 10) |
||||
|
systemEvalCont.OutId = strconv.FormatInt(systemEvalCont.Id, 10) |
||||
|
parentCont, parentIsTrue := commonus.GetTargetInfo(systemEvalCont.ParentId) |
||||
|
if parentIsTrue == true { |
||||
|
systemEvalCont.ParentTitle = parentCont.Title |
||||
|
} |
||||
|
response.Result(0, systemEvalCont, "数据获取成功!", c) |
||||
|
} |
||||
|
|
||||
|
//修改定性指标子栏目
|
||||
|
func (d *DutyHandle) EiteQualTargetInfo(c *gin.Context) { |
||||
|
var requestData eiteAttTarget |
||||
|
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.QualitativeTarget |
||||
|
targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`q_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 != "" { |
||||
|
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`q_title` = ? AND `q_parent_id` = ?", requestData.Title, requestData.ParentId).First(&oldTargetCont).Error |
||||
|
if judgeTargetErr == nil { |
||||
|
response.Result(102, err, "该指标子栏目名称已经存在!请不要重复输入!", c) |
||||
|
return |
||||
|
} |
||||
|
} else { |
||||
|
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`q_title` = ? AND `q_parent_id` = ?", requestData.Title, oldTargetCont.ParentId).First(&oldTargetCont).Error |
||||
|
if judgeTargetErr == nil { |
||||
|
response.Result(102, err, "该指标子栏目名称已经存在!请不要重复输入!", c) |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
saveData["q_title"] = requestData.Title |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
if requestData.ParentId != "" { |
||||
|
saveData["q_parent_id"] = requestData.ParentId |
||||
|
} |
||||
|
saveData["q_time"] = time.Now().Unix() |
||||
|
roleIsTrue, roleErr := eiteQualTargetInfoes(requestData.Id, saveData) |
||||
|
if roleIsTrue != true { |
||||
|
response.Result(106, roleErr, "编辑失败!", c) |
||||
|
} else { |
||||
|
response.Result(0, saveData, "编辑成功!", c) |
||||
|
} |
||||
|
} |
||||
|
func (d *DutyHandle) DelQualTargetInfo(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["q_state"] = requestData.State |
||||
|
saveData["q_time"] = time.Now().Unix() |
||||
|
if requestData.IsDel != 1 { |
||||
|
roleIsTrue, roleErr := eiteQualTargetInfoes(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("q_id = ?", requestData.Id).Delete(&assessmentmodel.QualitativeTarget{}).Error |
||||
|
if roleErr != nil { |
||||
|
response.Result(104, saveData, "删除失败!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, saveData, "删除成功!", c) |
||||
|
} else { |
||||
|
roleIsTrue, roleErr := eiteQualTargetInfoes(requestData.Id, saveData) |
||||
|
if roleIsTrue != true { |
||||
|
response.Result(103, roleErr, "修改失败!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, requestData, "修改成功!", c) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,296 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"strconv" |
||||
|
"strings" |
||||
|
"time" |
||||
|
|
||||
|
"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 *DutyHandle) AddRation(c *gin.Context) { |
||||
|
var requestData AddRationCont |
||||
|
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 len(requestData.RationList) <= 0 { |
||||
|
response.Result(102, err, "请添加测评详情!", c) |
||||
|
return |
||||
|
} |
||||
|
var synergeticProcess dataLockStatistics |
||||
|
for _, deparmentId := range requestData.AcceptDepartmentId { |
||||
|
addDepartDimension(requestData.Group, deparmentId, requestData.Dimension, 2) |
||||
|
syncProcess.Add(1) |
||||
|
go synergeticProcess.addRationContList(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 addDepartDimension(groupID, departId, dimensionId string, key int64) { |
||||
|
judgeMap := commonus.MapOut() |
||||
|
judgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimension{}).Select("dd_id").Where("`dd_group` = ? AND `dd_department` = ? AND `dd_dimension` = ?", groupID, departId, dimensionId).First(&judgeMap).Error |
||||
|
if judgeErr != nil { |
||||
|
var saveData assessmentmodel.DepartmentDimension |
||||
|
saveData.Key = key |
||||
|
departIdVal, _ := strconv.ParseInt(departId, 10, 64) |
||||
|
saveData.DepartmentId = departIdVal |
||||
|
dimensionIdVal, _ := strconv.ParseInt(dimensionId, 10, 64) |
||||
|
saveData.Dimension = dimensionIdVal |
||||
|
groupIDVal, _ := strconv.ParseInt(groupID, 10, 64) |
||||
|
saveData.Group = groupIDVal |
||||
|
saveData.Addtime = time.Now().Unix() |
||||
|
insetErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error |
||||
|
if insetErr == nil { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
func (d *dataLockStatistics) addRationContList(deparmentId string, addData AddRationCont) { |
||||
|
d.mutext.Lock() |
||||
|
defer d.mutext.Unlock() |
||||
|
var saveDataAry []assessmentmodel.QualitativeEvaluation |
||||
|
for _, v := range addData.RationList { |
||||
|
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` = ? ", deparmentId, addData.Dimension, v.Target).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(v.Target, 10, 64) |
||||
|
if targetIntErr == nil { |
||||
|
saveData.Target = targetInt |
||||
|
} |
||||
|
|
||||
|
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(deparmentId, 10, 64) |
||||
|
if departmentIdIntErr == nil { |
||||
|
saveData.AcceptEvaluation = departmentIdInt |
||||
|
} |
||||
|
// operatorInt, operatorIntErr := strconv.ParseInt(v.Operator, 10, 64)
|
||||
|
// if operatorIntErr == nil {
|
||||
|
// saveData.Operator = operatorInt
|
||||
|
// }
|
||||
|
saveData.Operator = strings.Join(v.Operator, ",") |
||||
|
|
||||
|
saveDataAry = append(saveDataAry, saveData) |
||||
|
msg := commonus.MapOut() |
||||
|
msg["msg"] = saveData |
||||
|
d.dataMap = append(d.dataMap, msg) |
||||
|
} else { |
||||
|
detailedTargetInts, _ := strconv.ParseInt(v.Target, 10, 64) |
||||
|
dtCont, dtIsTrue := commonus.GetTargetInfo(detailedTargetInts) |
||||
|
|
||||
|
groupInt, _ := strconv.ParseInt(addData.Group, 10, 64) |
||||
|
departidInt, _ := strconv.ParseInt(deparmentId, 10, 64) |
||||
|
_, groupCont := commonus.GetGroupCont(groupInt) |
||||
|
_, deparConCont := commonus.GetBranchFactory(departidInt) |
||||
|
msg := commonus.MapOut() |
||||
|
if dtIsTrue == true { |
||||
|
msg["msg"] = fmt.Sprintf("%v-%v定量考核《%v》考核项目已经存在!请重新处理此方案!->ID:%v", groupCont.Name, deparConCont.Name, dtCont.Title, detailedTargetInts) |
||||
|
} else { |
||||
|
msg["msg"] = fmt.Sprintf("%v-%v定量考核《%v》考核项目已经存在!请重新处理此方案!", groupCont.Name, deparConCont.Name, detailedTargetInts) |
||||
|
} |
||||
|
|
||||
|
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) RationList(c *gin.Context) { |
||||
|
var requestData rationSelect |
||||
|
c.ShouldBindJSON(&requestData) |
||||
|
//归档集团
|
||||
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_group").Where("qe_type = 2").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 []QualEvalRationListOut |
||||
|
for _, v := range fileAry { |
||||
|
var aualEvalArrtCont QualEvalRationListOut |
||||
|
groupErr, groupCont := commonus.GetGroupCont(v) |
||||
|
if groupErr == true { |
||||
|
aualEvalArrtCont.Id = strconv.FormatInt(v, 10) |
||||
|
aualEvalArrtCont.Name = groupCont.Name |
||||
|
// 归档分厂-部室
|
||||
|
departAry, departAryErr := deparmentRationList(v, requestData.DepartmentId) |
||||
|
if departAryErr == true { |
||||
|
//分厂部室列表
|
||||
|
aualEvalArrtCont.Child = departAry |
||||
|
} |
||||
|
//组合集团
|
||||
|
aualEvalArrtAry = append(aualEvalArrtAry, aualEvalArrtCont) |
||||
|
} |
||||
|
} |
||||
|
response.Result(0, aualEvalArrtAry, "查询完成!", c) |
||||
|
} |
||||
|
|
||||
|
//归档部门
|
||||
|
func deparmentRationList(groupID int64, departmentIDStr string) (contentList []QualEvalRationListOutDepart, isTrue bool) { |
||||
|
isTrue = false |
||||
|
gormDbDepart := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("qe_type = 2 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 { |
||||
|
deparConErr, deparConCont := commonus.GetBranchFactory(v) |
||||
|
var deparCont QualEvalRationListOutDepart |
||||
|
if deparConErr == true { |
||||
|
deparCont.Id = strconv.FormatInt(v, 10) |
||||
|
deparCont.Name = deparConCont.Name |
||||
|
//归档维度
|
||||
|
dimensionAry, dimensionAryErr := dimensionRationList(groupID, v) |
||||
|
if dimensionAryErr == true { |
||||
|
//维度列表
|
||||
|
deparCont.Child = dimensionAry |
||||
|
} |
||||
|
} |
||||
|
//组合分厂部室
|
||||
|
contentList = append(contentList, deparCont) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
if len(contentList) > 0 { |
||||
|
isTrue = true |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//归档维度
|
||||
|
func dimensionRationList(groupID, departmentID int64) (contentList []DimensionRationList, isTrue bool) { |
||||
|
isTrue = false |
||||
|
var fileDimensionAry []int64 |
||||
|
listDimensionErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_dimension").Where("qe_type = 2 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 DimensionRationList |
||||
|
if dutyClassErr == true { |
||||
|
dimenCont.Id = strconv.FormatInt(v, 10) |
||||
|
dimenCont.Name = dutyClassCont.Title |
||||
|
//归档指标
|
||||
|
targerAry, targerAryErr := targetRationList(groupID, departmentID, v) |
||||
|
if targerAryErr == true { |
||||
|
//定性考核指标列表
|
||||
|
dimenCont.Child = targerAry |
||||
|
} |
||||
|
//组合维度
|
||||
|
contentList = append(contentList, dimenCont) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if len(contentList) > 0 { |
||||
|
isTrue = true |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//查询归档定性指标
|
||||
|
func targetRationList(groupID, departmentID, dimension int64) (contentList []taskDetails, isTrue bool) { |
||||
|
isTrue = false |
||||
|
var fileTargetAry []assessmentmodel.QualitativeEvaluation |
||||
|
listTargetErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("qe_type = 2 AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ?", groupID, departmentID, dimension).Find(&fileTargetAry).Error |
||||
|
if listTargetErr != nil { |
||||
|
return |
||||
|
} |
||||
|
for _, v := range fileTargetAry { |
||||
|
var content taskDetails |
||||
|
targetInfo, targetErr := commonus.GetTargetInfo(v.Target) |
||||
|
if targetErr == true { |
||||
|
content.Id = strconv.FormatInt(v.Target, 10) |
||||
|
content.Name = targetInfo.Title |
||||
|
|
||||
|
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 |
||||
|
} |
||||
@ -0,0 +1,492 @@ |
|||||
|
package assessment |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"strconv" |
||||
|
"strings" |
||||
|
"time" |
||||
|
|
||||
|
"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/flipped-aurora/gin-vue-admin/server/model/testpage" |
||||
|
"github.com/gin-gonic/gin" |
||||
|
) |
||||
|
|
||||
|
//获取指标列表
|
||||
|
func (d *DutyHandle) GetTargetList(c *gin.Context) { |
||||
|
var requestData listTarget |
||||
|
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.EvaluationTarget{}) |
||||
|
if requestData.State == 0 { |
||||
|
gormDb = gormDb.Where("`et_state` IN (1,2)") |
||||
|
} else { |
||||
|
gormDb = gormDb.Where("`et_state` = ?", requestData.State) |
||||
|
} |
||||
|
if requestData.Type != 0 { |
||||
|
gormDb = gormDb.Where("`et_type` = ?", requestData.Type) |
||||
|
} |
||||
|
if requestData.Share != 0 { |
||||
|
gormDb = gormDb.Where("`et_share` = ?", requestData.Share) |
||||
|
} |
||||
|
if requestData.Title != "" { |
||||
|
gormDb = gormDb.Where("(`et_title` LIKE ?)", "%"+requestData.Title+"%") |
||||
|
} |
||||
|
if len(requestData.RelevantDepartments) > 0 { |
||||
|
var sqlOrStr string = "" |
||||
|
for s_i, s_v := range requestData.RelevantDepartments { |
||||
|
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) |
||||
|
} |
||||
|
} |
||||
|
gormDb = gormDb.Where(sqlOrStr) |
||||
|
} |
||||
|
|
||||
|
if len(requestData.VisibleRangeGroup) > 0 { |
||||
|
var sqlOrStrGroup string = "" |
||||
|
for s_i, s_v := range requestData.VisibleRangeGroup { |
||||
|
if s_i == 0 { |
||||
|
sqlOrStrGroup = fmt.Sprintf("FIND_IN_SET(%v,`et_visible_range`)", s_v) |
||||
|
} else { |
||||
|
sqlOrStrGroup = fmt.Sprintf("%v OR FIND_IN_SET(%v,`et_visible_range`)", sqlOrStrGroup, s_v) |
||||
|
} |
||||
|
} |
||||
|
gormDb = gormDb.Where(sqlOrStrGroup) |
||||
|
} |
||||
|
if len(requestData.VisibleRangeDepart) > 0 { |
||||
|
var sqlOrStrDepart string = "" |
||||
|
for s_i, s_v := range requestData.VisibleRangeDepart { |
||||
|
if s_i == 0 { |
||||
|
sqlOrStrDepart = fmt.Sprintf("FIND_IN_SET(%v,`et_visible_range`)", s_v) |
||||
|
} else { |
||||
|
sqlOrStrDepart = fmt.Sprintf("%v OR FIND_IN_SET(%v,`et_visible_range`)", sqlOrStrDepart, s_v) |
||||
|
} |
||||
|
} |
||||
|
gormDb = gormDb.Where(sqlOrStrDepart) |
||||
|
} |
||||
|
|
||||
|
var total int64 |
||||
|
totalErr := gormDb.Count(&total).Error |
||||
|
if totalErr != nil { |
||||
|
total = 0 |
||||
|
} |
||||
|
|
||||
|
// response.Result(0, requestData, "查询成功!", c)
|
||||
|
var dataList []assessmentmodel.EvaluationTarget |
||||
|
dataListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dataList).Error |
||||
|
if dataListerr != nil { |
||||
|
response.Result(103, dataList, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
var outMap []outTargetList |
||||
|
for _, tg_val := range dataList { |
||||
|
var outMapCont outTargetList |
||||
|
outMapCont.Id = tg_val.Id |
||||
|
outMapCont.OutId = strconv.FormatInt(tg_val.Id, 10) |
||||
|
outMapCont.Title = tg_val.Title |
||||
|
outMapCont.Type = tg_val.Type |
||||
|
outMapCont.State = tg_val.State |
||||
|
outMapCont.AddTime = tg_val.AddTime |
||||
|
outMapCont.Share = tg_val.Share |
||||
|
outMapCont.RelevantDepartments = tg_val.RelevantDepartments |
||||
|
if tg_val.RelevantDepartments != "" { |
||||
|
departIdAry := strings.Split(tg_val.RelevantDepartments, ",") |
||||
|
for _, dia_val := range departIdAry { |
||||
|
diaInt, diaIntErr := strconv.ParseInt(dia_val, 10, 64) |
||||
|
if diaIntErr == nil { |
||||
|
diaValErr, diaVal := GetBranchFactory(diaInt) |
||||
|
if diaValErr == true { |
||||
|
var bfCont outTargetAttr |
||||
|
bfCont.Key = dia_val |
||||
|
bfCont.Title = diaVal.Name |
||||
|
outMapCont.RelevantDepartmentMap = append(outMapCont.RelevantDepartmentMap, bfCont) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
outMapCont.Dimension = tg_val.Dimension |
||||
|
outMapCont.Key = tg_val.Key |
||||
|
outMapCont.Report = tg_val.Report |
||||
|
if tg_val.Report != "" { |
||||
|
userIdAry := strings.Split(tg_val.Report, ",") |
||||
|
for _, u_val := range userIdAry { |
||||
|
uidInt, uidIntErr := strconv.ParseInt(u_val, 10, 64) |
||||
|
if uidIntErr == nil { |
||||
|
whe := commonus.MapOut() |
||||
|
whe["wm_key"] = uidInt |
||||
|
uidVal, uidValErr := commonus.GetUserInfoPublic("worker_man.*,worker_man_data.*", whe) |
||||
|
if uidValErr == true { |
||||
|
var bfContUser outTargetAttr |
||||
|
bfContUser.Key = u_val |
||||
|
bfContUser.Title = uidVal.Name |
||||
|
outMapCont.ReportMap = append(outMapCont.ReportMap, bfContUser) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
outMapCont.Uniteing = tg_val.Uniteing |
||||
|
outMapCont.Cycles = tg_val.Cycles |
||||
|
outMapCont.CycleAttres = tg_val.CycleAttres |
||||
|
outMapCont.VisibleRange = tg_val.VisibleRange |
||||
|
if tg_val.VisibleRange != "" { |
||||
|
rangeIdAry := strings.Split(tg_val.VisibleRange, ",") |
||||
|
for _, rge_val := range rangeIdAry { |
||||
|
rgeInt, rgeIntErr := strconv.ParseInt(rge_val, 10, 64) |
||||
|
if rgeIntErr == nil { |
||||
|
rgeValErr, rgeVal := GetBranchFactory(rgeInt) |
||||
|
if rgeValErr == true { |
||||
|
var bfContRge outTargetAttr |
||||
|
bfContRge.Key = rge_val |
||||
|
bfContRge.Title = rgeVal.Name |
||||
|
outMapCont.VisibleRangeDepartMap = append(outMapCont.VisibleRangeDepartMap, bfContRge) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
outMapCont.VisibleRangeGroup = tg_val.VisibleRangeGroup |
||||
|
if tg_val.VisibleRangeGroup != "" { |
||||
|
rangeGroupIdAry := strings.Split(tg_val.VisibleRangeGroup, ",") |
||||
|
for _, rgeup_val := range rangeGroupIdAry { |
||||
|
rgeIntGup, rgeIntGupErr := strconv.ParseInt(rgeup_val, 10, 64) |
||||
|
if rgeIntGupErr == nil { |
||||
|
rgeValGupErr, rgeValGup := GetGroupCont(rgeIntGup) |
||||
|
if rgeValGupErr == true { |
||||
|
var bfContRge outTargetAttr |
||||
|
bfContRge.Key = rgeup_val |
||||
|
bfContRge.Title = rgeValGup.Name |
||||
|
outMapCont.VisibleRangeGroupMap = append(outMapCont.VisibleRangeGroupMap, bfContRge) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
outMap = append(outMap, outMapCont) |
||||
|
} |
||||
|
countSum := len(outMap) |
||||
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, outMap) |
||||
|
response.Result(0, printData, "查询成功!", c) |
||||
|
} |
||||
|
|
||||
|
//添加指标
|
||||
|
func (d *DutyHandle) AddTarget(c *gin.Context) { |
||||
|
var requestData addTargetType |
||||
|
err := c.ShouldBindJSON(&requestData) |
||||
|
if err != nil { |
||||
|
response.Result(101, err, "参数错误!请重新提交!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Title == "" { |
||||
|
response.Result(102, err, "请输入指标名称!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Type == 0 { |
||||
|
requestData.Type = 1 |
||||
|
} |
||||
|
if requestData.Share == 0 { |
||||
|
requestData.Share = 1 |
||||
|
} else { |
||||
|
if requestData.Share > 1 { |
||||
|
if len(requestData.RelevantDepartments) == 0 { |
||||
|
response.Result(103, err, "您选择了此指标为指定部门使用!但您未指定具体使用部门!请指定相关使用部门!", c) |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if requestData.Uniteing == "" { |
||||
|
response.Result(104, err, "请输入计量单位!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Cycles == 0 { |
||||
|
requestData.Cycles = 4 |
||||
|
} |
||||
|
if requestData.CycleAttres == 0 { |
||||
|
requestData.CycleAttres = 1 |
||||
|
} |
||||
|
gormDb := global.GVA_DB_Performanceappraisal |
||||
|
gormDb = gormDb.Model(&assessmentmodel.EvaluationTarget{}).Select("et_title").Where("`et_title` = ? AND `et_type` = ?", requestData.Title, requestData.Type) |
||||
|
dimensionId, dimensionErr := strconv.ParseInt(requestData.Dimension, 10, 64) |
||||
|
if dimensionErr == nil && dimensionId != 0 { |
||||
|
gormDb = gormDb.Where("`et_dimension` = ?", requestData.Dimension) |
||||
|
} |
||||
|
judgeOut := commonus.MapOut() |
||||
|
judgeErr := gormDb.First(&judgeOut) |
||||
|
if judgeErr == nil { |
||||
|
response.Result(105, err, "此考核指标已经存在!请不要重复添加!", c) |
||||
|
return |
||||
|
} |
||||
|
var saveData assessmentmodel.EvaluationTarget |
||||
|
saveData.Title = requestData.Title |
||||
|
saveData.Type = requestData.Type |
||||
|
saveData.State = 1 |
||||
|
saveData.AddTime = time.Now().Unix() |
||||
|
saveData.Share = requestData.Share |
||||
|
if len(requestData.RelevantDepartments) > 0 { |
||||
|
saveData.RelevantDepartments = strings.Join(requestData.RelevantDepartments, ",") |
||||
|
} |
||||
|
if dimensionErr == nil { |
||||
|
saveData.Dimension = dimensionId |
||||
|
} |
||||
|
saveData.Key = commonus.GetFileNumberEs() |
||||
|
if len(requestData.Report) > 0 { |
||||
|
saveData.Report = strings.Join(requestData.Report, ",") |
||||
|
} |
||||
|
saveData.Uniteing = requestData.Uniteing |
||||
|
saveData.Cycles = requestData.Cycles |
||||
|
saveData.CycleAttres = requestData.CycleAttres |
||||
|
|
||||
|
if len(requestData.VisibleRangeGroup) > 0 { |
||||
|
saveData.VisibleRangeGroup = strings.Join(requestData.VisibleRangeGroup, ",") |
||||
|
} |
||||
|
if len(requestData.VisibleRangeDepart) > 0 { |
||||
|
saveData.VisibleRange = strings.Join(requestData.VisibleRangeDepart, ",") |
||||
|
} |
||||
|
|
||||
|
dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error |
||||
|
if dutyInfoErr != nil { |
||||
|
response.Result(106, saveData, "数据写入失败!", c) |
||||
|
} else { |
||||
|
response.Result(0, saveData, "数据写入成功!", c) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//计算可见范围
|
||||
|
func calculVisibleRange(groupStr, depart []string) (visibleRange string) { |
||||
|
if len(depart) > 0 { |
||||
|
for d_index, d_val := range depart { |
||||
|
if d_index == 0 { |
||||
|
visibleRange = d_val |
||||
|
} else { |
||||
|
visibleRange = visibleRange + "," + d_val |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} else { |
||||
|
if len(groupStr) > 0 { |
||||
|
for g_index, g_val := range groupStr { |
||||
|
if g_index == 0 { |
||||
|
visibleRange = getBranchFactoryList(g_val) |
||||
|
} else { |
||||
|
visibleRange = visibleRange + "," + getBranchFactoryList(g_val) |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获得分厂列表
|
||||
|
func getBranchFactoryList(id string) (bfIdStr string) { |
||||
|
var ContInfo []testpage.BranchFactory |
||||
|
err := global.GVA_DB_Master.Select("bf_id").Where("bf_group = ? AND `bf_set` = 1", id).Find(&ContInfo).Error |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
for b_index, b_val := range ContInfo { |
||||
|
if b_index == 0 { |
||||
|
bfIdStr = strconv.FormatInt(b_val.Id, 10) |
||||
|
} else { |
||||
|
bfIdStr = bfIdStr + "," + strconv.FormatInt(b_val.Id, 10) |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获取考核指标详情
|
||||
|
func (d *DutyHandle) GetTarget(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 outTargetInfo |
||||
|
contErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Where("`et_id` = ?", requestData.Id).First(&systemEvalCont).Error |
||||
|
if contErr != nil { |
||||
|
response.Result(103, err, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
if systemEvalCont.RelevantDepartments != "" { |
||||
|
systemEvalCont.RelevantDepartmentMap = strings.Split(systemEvalCont.RelevantDepartments, ",") |
||||
|
} |
||||
|
if systemEvalCont.Report != "" { |
||||
|
systemEvalCont.ReportMap = strings.Split(systemEvalCont.Report, ",") |
||||
|
} |
||||
|
if systemEvalCont.VisibleRangeGroup != "" { |
||||
|
systemEvalCont.VisibleRangeGroupMap = strings.Split(systemEvalCont.VisibleRangeGroup, ",") |
||||
|
} |
||||
|
if systemEvalCont.VisibleRange != "" { |
||||
|
systemEvalCont.VisibleRangeDepartMap = strings.Split(systemEvalCont.VisibleRange, ",") |
||||
|
} |
||||
|
response.Result(0, systemEvalCont, "数据获取成功!", c) |
||||
|
} |
||||
|
|
||||
|
//编辑指标数据处理
|
||||
|
func eiteTargetInfoes(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) { |
||||
|
isTrue = false |
||||
|
infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Where("`et_id` = ?", saveId).Updates(saveData).Error |
||||
|
if infoErr != nil { |
||||
|
return |
||||
|
} |
||||
|
isTrue = true |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//删除工段内容
|
||||
|
func (d *DutyHandle) DelTarget(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["et_state"] = requestData.State |
||||
|
saveData["et_time"] = time.Now().Unix() |
||||
|
if requestData.IsDel != 1 { |
||||
|
roleIsTrue, roleErr := eiteTargetInfoes(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("et_id = ?", requestData.Id).Delete(&assessmentmodel.EvaluationTarget{}).Error |
||||
|
if roleErr != nil { |
||||
|
response.Result(104, saveData, "删除失败!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, saveData, "删除成功!", c) |
||||
|
} else { |
||||
|
roleIsTrue, roleErr := eiteTargetInfoes(requestData.Id, saveData) |
||||
|
if roleIsTrue != true { |
||||
|
response.Result(103, roleErr, "修改失败!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, requestData, "修改成功!", c) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//修改指标内容
|
||||
|
func (d *DutyHandle) EiteTarget(c *gin.Context) { |
||||
|
var requestData eiteTargetTypeCont |
||||
|
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 |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
saveData := commonus.MapOut() |
||||
|
|
||||
|
var oldTargetCont assessmentmodel.EvaluationTarget |
||||
|
targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`et_id` = ?", requestData.Id).First(&oldTargetCont).Error |
||||
|
if targetInfoErr != nil { |
||||
|
response.Result(102, err, "该指标不存在!请检查您的参数!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Title == "" { |
||||
|
response.Result(102, err, "请输入指标名称!", c) |
||||
|
return |
||||
|
} else { |
||||
|
if requestData.Title != oldTargetCont.Title { |
||||
|
judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`et_title` = ? AND `et_type` = ?", requestData.Title, oldTargetCont.Type).First(&oldTargetCont).Error |
||||
|
if judgeTargetErr == nil { |
||||
|
response.Result(102, err, "该指标名称已经存在!请不要重复输入!", c) |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
saveData["et_title"] = requestData.Title |
||||
|
} |
||||
|
if requestData.Type != 0 { |
||||
|
saveData["et_type"] = requestData.Type |
||||
|
} |
||||
|
if requestData.Share != 0 { |
||||
|
saveData["et_share"] = requestData.Share |
||||
|
if requestData.Share > 1 { |
||||
|
if len(requestData.RelevantDepartments) == 0 { |
||||
|
response.Result(103, err, "您选择了此指标为指定部门使用!但您未指定具体使用部门!请指定相关使用部门!", c) |
||||
|
return |
||||
|
} |
||||
|
saveData["et_relevant_departments"] = strings.Join(requestData.RelevantDepartments, ",") |
||||
|
} |
||||
|
} |
||||
|
if requestData.Dimension != "" { |
||||
|
saveData["et_dimension"] = requestData.Dimension |
||||
|
} |
||||
|
if len(requestData.Report) > 0 { |
||||
|
saveData["et_report"] = strings.Join(requestData.Report, ",") |
||||
|
} |
||||
|
if requestData.Uniteing != "" { |
||||
|
saveData["et_unit"] = requestData.Uniteing |
||||
|
} |
||||
|
if requestData.Cycles != 0 { |
||||
|
saveData["et_cycle"] = requestData.Cycles |
||||
|
} |
||||
|
if requestData.CycleAttres != 0 { |
||||
|
saveData["et_cycleattr"] = requestData.CycleAttres |
||||
|
} |
||||
|
if len(requestData.VisibleRangeGroup) > 0 { |
||||
|
saveData["et_visible_group"] = strings.Join(requestData.VisibleRangeGroup, ",") |
||||
|
} |
||||
|
if len(requestData.VisibleRangeDepart) > 0 { |
||||
|
saveData["et_visible_range"] = strings.Join(requestData.VisibleRangeDepart, ",") |
||||
|
} |
||||
|
saveData["et_time"] = time.Now().Unix() |
||||
|
roleIsTrue, roleErr := eiteTargetInfoes(requestData.Id, saveData) |
||||
|
if roleIsTrue != true { |
||||
|
response.Result(106, roleErr, "编辑失败!", c) |
||||
|
} else { |
||||
|
response.Result(0, saveData, "编辑成功!", c) |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue