23 changed files with 1467 additions and 73 deletions
@ -0,0 +1,427 @@ |
|||||
|
package dutyassess |
||||
|
|
||||
|
import ( |
||||
|
"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 *DutyAssessApi) SelectDutyList(c *gin.Context) { |
||||
|
var evalTargetList []assessmentmodel.EvaluationTarget |
||||
|
err := global.GVA_DB_Performanceappraisal.Where("`et_type` = 1 AND `et_state` = 1").Find(&evalTargetList).Error |
||||
|
if err != nil { |
||||
|
response.Result(101, err, "没有数据!", c) |
||||
|
return |
||||
|
} |
||||
|
var listAry []DutySelectList |
||||
|
for _, v := range evalTargetList { |
||||
|
var cont DutySelectList |
||||
|
cont.Id = v.Id |
||||
|
|
||||
|
cont.Title = v.Title |
||||
|
cont.Type = v.Type |
||||
|
cont.State = v.State |
||||
|
cont.AddTime = v.AddTime |
||||
|
cont.Share = v.Share |
||||
|
cont.RelevantDepartments = v.RelevantDepartments |
||||
|
cont.Dimension = v.Dimension |
||||
|
cont.Key = v.Key |
||||
|
cont.Report = v.Report |
||||
|
cont.Uniteing = v.Uniteing |
||||
|
cont.Cycles = v.Cycles |
||||
|
cont.CycleAttres = v.CycleAttres |
||||
|
cont.VisibleRange = v.VisibleRange |
||||
|
cont.VisibleRangeGroup = v.VisibleRangeGroup |
||||
|
cont.DepartmentList = strings.Split(v.RelevantDepartments, ",") |
||||
|
listAry = append(listAry, cont) |
||||
|
} |
||||
|
response.Result(0, listAry, "查询完成!", c) |
||||
|
} |
||||
|
|
||||
|
//定性考核列表(部门方案用的)
|
||||
|
func (d *DutyAssessApi) DutyDepartmentList(c *gin.Context) { |
||||
|
var requestData getDepartAssObtains |
||||
|
err := c.ShouldBindJSON(&requestData) |
||||
|
if err != nil { |
||||
|
// response.Result(101, err, "参数错误!请重新提交!", c)
|
||||
|
// return
|
||||
|
} |
||||
|
var targetId []int64 |
||||
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target") |
||||
|
if requestData.DepartID != "" { |
||||
|
gormDb = gormDb.Where("`qe_accept_evaluation` = ?", requestData.DepartID) |
||||
|
} |
||||
|
gormDb = gormDb.Where("`qe_state` = 1 AND `qe_type` = 1") |
||||
|
listTargetErr := gormDb.Group("qe_target").Find(&targetId).Error |
||||
|
if listTargetErr != nil { |
||||
|
response.Result(101, listTargetErr, "没有数据!", c) |
||||
|
return |
||||
|
} |
||||
|
var targetList []OutDutyList |
||||
|
for _, v := range targetId { |
||||
|
var targetCont OutDutyList |
||||
|
targetCont.Id = strconv.FormatInt(v, 10) |
||||
|
tarCont, _ := commonus.GetTargetInfo(v) |
||||
|
|
||||
|
targetCont.Target = strconv.FormatInt(v, 10) //指标ID
|
||||
|
targetCont.TargetName = tarCont.Title //指标名称
|
||||
|
targetCont.Dimension = strconv.FormatInt(tarCont.Dimension, 10) //维度ID
|
||||
|
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(tarCont.Dimension) |
||||
|
if dutyClassErr == true { |
||||
|
targetCont.DimensionName = dutyClassCont.Title //维度名称
|
||||
|
} |
||||
|
targetCont.Content = "" //指标说明
|
||||
|
targetCont.Unit = tarCont.Uniteing //单位"`
|
||||
|
targetCont.ReferenceScore = 0 //标准分值"`
|
||||
|
targetCont.Cycles = tarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
||||
|
targetCont.CycleAttres = tarCont.CycleAttres //辅助计数"`
|
||||
|
targetCont.State = 1 |
||||
|
targetCont.DepartmentId, targetCont.DepartmentAry = GetDutyFangAnDepart(v, 1) |
||||
|
|
||||
|
targetList = append(targetList, targetCont) |
||||
|
} |
||||
|
// var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation
|
||||
|
response.Result(0, targetList, "查询完成!", c) |
||||
|
} |
||||
|
|
||||
|
//获取方案中的所有所有相关部们
|
||||
|
func GetDutyFangAnDepart(dutyId int64, class int) (departId []int64, departAry []DepartmentAryType) { |
||||
|
err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("`qe_state` = 1 AND `qe_target` = ? AND `qe_type` = ?", dutyId, class).Group("qe_accept_evaluation").Find(&departId).Error |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
for _, v := range departId { |
||||
|
deparConErr, deparConCont := commonus.GetBranchFactory(v) |
||||
|
if deparConErr == true { |
||||
|
var departcont DepartmentAryType |
||||
|
departcont.Parentname = deparConCont.Name |
||||
|
departcont.Parentid = strconv.FormatInt(v, 10) |
||||
|
departAry = append(departAry, departcont) |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//根据指标ID获取列表信息
|
||||
|
func (d *DutyAssessApi) IdToTargetSunList(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 |
||||
|
} |
||||
|
} |
||||
|
tarCont, isTrue := commonus.GetTargetInfo(requestData.Id) |
||||
|
if isTrue != true { |
||||
|
response.Result(103, err, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
var targetCont TargetFormId |
||||
|
targetCont.Id = strconv.FormatInt(requestData.Id, 10) |
||||
|
targetCont.Target = strconv.FormatInt(requestData.Id, 10) //指标ID
|
||||
|
targetCont.TargetName = tarCont.Title //指标名称
|
||||
|
targetCont.Dimension = strconv.FormatInt(tarCont.Dimension, 10) //维度ID
|
||||
|
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(tarCont.Dimension) |
||||
|
if dutyClassErr == true { |
||||
|
targetCont.DimensionName = dutyClassCont.Title //维度名称
|
||||
|
} |
||||
|
targetCont.Content = "" //指标说明
|
||||
|
targetCont.Unit = tarCont.Uniteing //单位"`
|
||||
|
targetCont.ReferenceScore = 0 //标准分值"`
|
||||
|
targetCont.Cycles = tarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
||||
|
targetCont.CycleAttres = tarCont.CycleAttres //辅助计数"`
|
||||
|
targetCont.State = 1 |
||||
|
targetCont.DepartmentId, targetCont.DepartmentAry = GetDutyFangAnDepart(requestData.Id, 1) |
||||
|
targetCont.SunTargetList = GetSunTargetList(requestData.Id, tarCont.Dimension, targetCont.DepartmentId) |
||||
|
targetCont.Reportmap = strings.Split(tarCont.Report, ",") |
||||
|
|
||||
|
// for _, vv := range jieguo {
|
||||
|
// targetCont.SunTargetList = append(targetCont.SunTargetList, vv)
|
||||
|
// }
|
||||
|
// targetCont.SunTargetList = jieguo
|
||||
|
// jsonstr, _ := json.Marshal(targetCont)
|
||||
|
// fmt.Printf("+++++++++>%v----->\n", string(jsonstr))
|
||||
|
response.Result(0, targetCont, "查询完成!", c) |
||||
|
} |
||||
|
|
||||
|
//获取子指标和指标详情
|
||||
|
func GetSunTargetList(targetId, demID int64, parAryId []int64) (cont []SunTargetListType) { |
||||
|
var qualTargetCont []assessmentmodel.QualitativeTarget |
||||
|
err := global.GVA_DB_Performanceappraisal.Where("`q_state` = 1 AND `q_parent_id` = ?", targetId).Find(&qualTargetCont).Error |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
// fmt.Printf("%v\n", qualTargetCont)
|
||||
|
for _, v := range qualTargetCont { |
||||
|
var sunCont SunTargetListType |
||||
|
sunCont.Id = strconv.FormatInt(v.Id, 10) |
||||
|
sunCont.Title = v.Title |
||||
|
sunCont.DetailedTarget = GetDetailTrager(targetId, v.Id, demID, parAryId) |
||||
|
// fmt.Printf("-->%v-->%v\n", v.Id, v.Title)
|
||||
|
cont = append(cont, sunCont) |
||||
|
} |
||||
|
// fmt.Printf("=========>%v\n", cont)
|
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获取指标详情
|
||||
|
func GetDetailTrager(targetId, detId, demID int64, parAryId []int64) (cont []DetailedTargetType) { |
||||
|
var qualTargetCont []assessmentmodel.DetailedTarget |
||||
|
err := global.GVA_DB_Performanceappraisal.Where("`dt_state` = 1 AND `dt_parentid` = ? AND `dt_parentid_sun` = ?", targetId, detId).Find(&qualTargetCont).Error |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
for _, v := range qualTargetCont { |
||||
|
var sunCont DetailedTargetType |
||||
|
sunCont.Id = strconv.FormatInt(v.Id, 10) |
||||
|
sunCont.Title = v.Title |
||||
|
sunCont.UserList, sunCont.UserListAry = GetOperator(demID, targetId, detId, v.Id, parAryId) |
||||
|
cont = append(cont, sunCont) |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获取执行人
|
||||
|
func GetOperator(dimID, tarId, sunTarId, detaId int64, parAryId []int64) (UserList []string, UserListAry []QualEvalArrt) { |
||||
|
var qualEval []assessmentmodel.QualitativeEvaluation |
||||
|
err := global.GVA_DB_Performanceappraisal.Where("`qe_state` = 1 AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ? AND `qe_accept_evaluation` IN ?", dimID, tarId, sunTarId, detaId, parAryId).Find(&qualEval).Error |
||||
|
if err != nil { |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
for _, v := range qualEval { |
||||
|
if v.Operator != "" { |
||||
|
usAry := strings.Split(v.Operator, ",") |
||||
|
if len(usAry) > 0 { |
||||
|
for _, vv := range usAry { |
||||
|
|
||||
|
if commonus.IsItTrueString(vv, UserList) == false { |
||||
|
UserList = append(UserList, vv) |
||||
|
usCont, usErr := commonus.GetUserInfoPublic([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": vv}) |
||||
|
if usErr == true { |
||||
|
var userCont QualEvalArrt |
||||
|
userCont.Id = vv |
||||
|
userCont.Name = usCont.Name |
||||
|
UserListAry = append(UserListAry, userCont) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//获取定性指标->指标细则修改回显
|
||||
|
func (d *DutyAssessApi) GetDetailedTargetCallBack(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 cont assessmentmodel.QualitativeEvaluation |
||||
|
errErr := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", requestData.Id).Find(&cont).Error |
||||
|
if errErr != nil { |
||||
|
response.Result(103, err, "没有获取到数据!", c) |
||||
|
return |
||||
|
} |
||||
|
//输出格式
|
||||
|
var content OutTargetCont |
||||
|
content.Id = strconv.FormatInt(requestData.Id, 10) |
||||
|
//获取子栏目信息
|
||||
|
sunTargetCont, _ := commonus.GetQualitativeTargetInfo(cont.TargetSun) |
||||
|
content.SunTargerId = strconv.FormatInt(sunTargetCont.Id, 10) |
||||
|
content.SunTargetName = sunTargetCont.Title |
||||
|
//获取指标细则信息
|
||||
|
detaileInfo, _ := commonus.GetDetailedTargetInfo(cont.DetailedTarget) |
||||
|
content.DetailedTargetId = strconv.FormatInt(detaileInfo.Id, 10) |
||||
|
content.DetailedTargetName = detaileInfo.Title |
||||
|
content.DetailedTargetContent = detaileInfo.Content |
||||
|
shenPiRen := strings.Split(cont.Operator, ",") |
||||
|
content.Operator = shenPiRen |
||||
|
for _, v := range shenPiRen { |
||||
|
usCont, usErr := commonus.GetUserInfoPublic([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": v}) |
||||
|
if usErr == true { |
||||
|
var userCont QualEvalArrt |
||||
|
userCont.Id = v |
||||
|
userCont.Name = usCont.Name |
||||
|
content.OperatorAry = append(content.OperatorAry, userCont) |
||||
|
} |
||||
|
} |
||||
|
//获取所有子栏目
|
||||
|
var qualTar []assessmentmodel.QualitativeTarget |
||||
|
quaTarErr := global.GVA_DB_Performanceappraisal.Where("`q_parent_id` = ?", cont.Target).Find(&qualTar).Error |
||||
|
if quaTarErr == nil { |
||||
|
for _, s_v := range qualTar { |
||||
|
var sunTarCont QualEvalArrt |
||||
|
sunTarCont.Id = strconv.FormatInt(s_v.Id, 10) |
||||
|
sunTarCont.Name = s_v.Title |
||||
|
content.SunTargerList = append(content.SunTargerList, sunTarCont) |
||||
|
} |
||||
|
} |
||||
|
response.Result(0, content, "获取成功!", c) |
||||
|
} |
||||
|
|
||||
|
//获取定性指标->指标细则修改回显
|
||||
|
func (d *DutyAssessApi) EiteDetailedTargetCallBack(c *gin.Context) { |
||||
|
var requestData GetEiteTargetCont |
||||
|
err := c.ShouldBindJSON(&requestData) |
||||
|
if err != nil { |
||||
|
response.Result(101, err, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Id == "" { |
||||
|
response.Result(102, err, "参数错误!请重新提交!", c) |
||||
|
return |
||||
|
} |
||||
|
var cont assessmentmodel.QualitativeEvaluation |
||||
|
errErr := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", requestData.Id).Find(&cont).Error |
||||
|
if errErr != nil { |
||||
|
response.Result(103, err, "未能获取到数据!", c) |
||||
|
return |
||||
|
} |
||||
|
isTrue := false |
||||
|
if requestData.Class != 1 { |
||||
|
isTrue = NewEiteData(requestData, cont) |
||||
|
} else { |
||||
|
isTrue = NewAddData(requestData, cont) |
||||
|
} |
||||
|
if isTrue == false { |
||||
|
response.Result(104, err, "数据处理失败", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, err, "数据处理成功", c) |
||||
|
} |
||||
|
|
||||
|
//新增
|
||||
|
func NewAddData(getData GetEiteTargetCont, oldData assessmentmodel.QualitativeEvaluation) (isTrue bool) { |
||||
|
isTrue = false |
||||
|
var detailedTargetInfo assessmentmodel.DetailedTarget |
||||
|
detailedTargetInfo.Title = getData.DetailedTargetName |
||||
|
detailedTargetInfo.Content = getData.DetailedTargetContent |
||||
|
detailedTargetInfo.ParentId = oldData.Target |
||||
|
detailedTargetInfo.ParentIdSun = oldData.TargetSun |
||||
|
detailedTargetInfo.State = 1 |
||||
|
detailedTargetInfo.AddTime = time.Now().Unix() |
||||
|
addErr := global.GVA_DB_Performanceappraisal.Create(&detailedTargetInfo).Error |
||||
|
if addErr != nil { |
||||
|
return |
||||
|
} |
||||
|
var saveData assessmentmodel.QualitativeEvaluation |
||||
|
saveData.Title = oldData.Title |
||||
|
saveData.DepartmentId = oldData.DepartmentId |
||||
|
saveData.Dimension = oldData.Dimension |
||||
|
saveData.Target = oldData.Target |
||||
|
saveData.TargetSun = oldData.TargetSun |
||||
|
saveData.DetailedTarget = detailedTargetInfo.Id |
||||
|
saveData.Type = oldData.Type |
||||
|
saveData.Weight = oldData.Weight |
||||
|
saveData.Unit = oldData.Unit |
||||
|
saveData.ReferenceScore = oldData.ReferenceScore |
||||
|
saveData.State = oldData.State |
||||
|
saveData.Addtime = time.Now().Unix() |
||||
|
saveData.Eitetime = time.Now().Unix() |
||||
|
saveData.Group = oldData.Group |
||||
|
saveData.QualEvalId = oldData.QualEvalId |
||||
|
saveData.Cycles = oldData.Cycles |
||||
|
saveData.CycleAttres = oldData.CycleAttres |
||||
|
saveData.AcceptEvaluation = oldData.AcceptEvaluation |
||||
|
saveData.Operator = oldData.Operator |
||||
|
saveData.Content = oldData.Content |
||||
|
addErrQE := global.GVA_DB_Performanceappraisal.Create(&saveData).Error |
||||
|
if addErrQE != nil { |
||||
|
return |
||||
|
} |
||||
|
isTrue = true |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//修改
|
||||
|
func NewEiteData(getData GetEiteTargetCont, oldData assessmentmodel.QualitativeEvaluation) (isTrue bool) { |
||||
|
isTrue = false |
||||
|
eiteDetailedInfo := commonus.MapOut() |
||||
|
eiteDetailedInfo["dt_time"] = time.Now().Unix() |
||||
|
if getData.DetailedTargetName != "" { |
||||
|
eiteDetailedInfo["dt_title"] = getData.DetailedTargetName |
||||
|
} |
||||
|
if getData.DetailedTargetContent != "" { |
||||
|
eiteDetailedInfo["dt_content"] = getData.DetailedTargetContent |
||||
|
} |
||||
|
eiteDetaInfoErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("`dt_id` = ?", oldData.DetailedTarget).Updates(&eiteDetailedInfo).Error |
||||
|
if eiteDetaInfoErr != nil { |
||||
|
return |
||||
|
} |
||||
|
if len(getData.Operator) > 0 { |
||||
|
eiteQualEvlInfo := commonus.MapOut() |
||||
|
eiteQualEvlInfo["qe_eitetime"] = time.Now().Unix() |
||||
|
eiteQualEvlInfo["qe_operator"] = strings.Join(getData.Operator, ",") |
||||
|
eiteQualEvlInfo["qe_department_id"] = strings.Join(commonus.GetDepartmentByUserBast(getData.Operator), ",") |
||||
|
eiteDetaQuaInfoErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` = ?", oldData.Id).Updates(&eiteQualEvlInfo).Error |
||||
|
if eiteDetaQuaInfoErr != nil { |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
isTrue = true |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//修改子栏目名称
|
||||
|
func (d *DutyAssessApi) EiteSunTargetName(c *gin.Context) { |
||||
|
var requestData QualEvalArrt |
||||
|
err := c.ShouldBindJSON(&requestData) |
||||
|
if err != nil { |
||||
|
response.Result(101, err, "数据获取失败!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Id == "" { |
||||
|
response.Result(102, err, "参数错误!请重新提交!", c) |
||||
|
return |
||||
|
} |
||||
|
if requestData.Name == "" { |
||||
|
response.Result(103, err, "参数错误!请重新提交!", c) |
||||
|
return |
||||
|
} |
||||
|
var oldId int64 |
||||
|
errCont := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Select("q_id").Where("`q_id` = ?", requestData.Id).First(&oldId).Error |
||||
|
if errCont != nil { |
||||
|
response.Result(104, err, "没有该数据!", c) |
||||
|
return |
||||
|
} |
||||
|
eiteCont := commonus.MapOut() |
||||
|
eiteCont["q_time"] = time.Now().Unix() |
||||
|
eiteCont["q_title"] = requestData.Name |
||||
|
errEiteCont := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` = ?", requestData.Id).Updates(&eiteCont).Error |
||||
|
if errEiteCont != nil { |
||||
|
response.Result(105, err, "修改失败!", c) |
||||
|
return |
||||
|
} |
||||
|
response.Result(0, err, "数据处理成功", c) |
||||
|
} |
||||
Loading…
Reference in new issue