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