Browse Source

v0.1BUG修改

qin_1
超级管理员 4 years ago
parent
commit
ace3db3061
  1. 12
      gin_server_admin/api/index/assessment/assesshandle.go
  2. 315
      gin_server_admin/api/index/evaluation/evaluation.go
  3. 100
      gin_server_admin/api/index/evaluation/lookquantita.go
  4. 11
      gin_server_admin/api/index/evaluation/sendwechatmsg.go
  5. 82
      gin_server_admin/api/index/evaluation/type.go
  6. 241
      gin_server_admin/api/v1/assessment/department_target.go
  7. 26
      gin_server_admin/api/v1/assessment/dutyhandle.go
  8. 23
      gin_server_admin/api/v1/assessment/dutytype.go
  9. 31
      gin_server_admin/api/v1/assessment/newassessment.go
  10. 10
      gin_server_admin/api/v1/assessment/qualitative_evaluation.go
  11. 253
      gin_server_admin/api/v1/assessment/set_evaluation_objectives.go
  12. 5
      gin_server_admin/api/v1/assessment/target.go
  13. 2
      gin_server_admin/api/v1/shiyan/shiyan.go
  14. 39
      gin_server_admin/api/wechatapp/callback/apphandle.go
  15. 44
      gin_server_admin/api/wechatapp/callback/rationcallback.go
  16. 74
      gin_server_admin/api/wechatapp/callback/updatehandle.go
  17. 73
      gin_server_admin/api/wechatapp/sendmessage/sendmsgHandle.go
  18. 55
      gin_server_admin/commonus/publichaneld.go
  19. 22
      gin_server_admin/model/assessmentmodel/dutyclass.go
  20. 8
      gin_server_admin/router/assessment/assessmentrouter.go
  21. 730
      备份/department_target.go

12
gin_server_admin/api/index/assessment/assesshandle.go

@ -12,6 +12,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/global" "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/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "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" "github.com/gin-gonic/gin"
) )
@ -1056,3 +1057,14 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) {
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, personalOrDepartment) printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, personalOrDepartment)
response.Result(0, printData, "查询成功!", c) response.Result(0, printData, "查询成功!", c)
} }
//获取班组列表
func (a *Assessment) GetTeamList(c *gin.Context) {
var teamList []testpage.Teaming
err := global.GVA_DB_Master.Order("tm_long ASC,tm_id ASC").Find(&teamList).Error
if err != nil {
response.Result(101, err, "查询失败!", c)
return
}
response.Result(0, teamList, "查询成功!", c)
}

315
gin_server_admin/api/index/evaluation/evaluation.go

@ -197,6 +197,8 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
flowSteping.State = 1 flowSteping.State = 1
flowSteping.RoleGroup = 16118387069540343 flowSteping.RoleGroup = 16118387069540343
flowSteping.NextStep = 1 flowSteping.NextStep = 1
flowSteping.ClickName = userCont.Key
flowSteping.AddTime = time.Now().Unix()
flowStepAryMaps = append(flowStepAryMaps, flowSteping) flowStepAryMaps = append(flowStepAryMaps, flowSteping)
fmt.Printf("%v------------------>%v\n", flowSteping, flowStepAryMaps) fmt.Printf("%v------------------>%v\n", flowSteping, flowStepAryMaps)
@ -228,6 +230,8 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
flowStep.State = 1 flowStep.State = 1
flowStep.RoleGroup = 16118387069540343 flowStep.RoleGroup = 16118387069540343
flowStep.NextStep = 1 flowStep.NextStep = 1
flowStep.ClickName = userCont.Key
flowStep.AddTime = time.Now().Unix()
flowStepArys = append(flowStepArys, flowStep) flowStepArys = append(flowStepArys, flowStep)
saveData := commonus.MapOut() saveData := commonus.MapOut()
@ -276,7 +280,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
mainTitleDesc = programme.Content mainTitleDesc = programme.Content
} }
} }
handleUrl := fmt.Sprintf("http://www.hxgk.group?key=%v", keyNumber) handleUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", keyNumber)
callbakcMsg, isTrueCall, callBackCont := sendmessage.SendMsgPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, requestData.Reason, handleUrl, requestData.Type, departmentId, userKey, requestData.Score, keyNumber, "请前往处理") callbakcMsg, isTrueCall, callBackCont := sendmessage.SendMsgPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, requestData.Reason, handleUrl, requestData.Type, departmentId, userKey, requestData.Score, keyNumber, "请前往处理")
outData := commonus.MapOut() outData := commonus.MapOut()
outData["callbakcMsg"] = string(callbakcMsg) outData["callbakcMsg"] = string(callbakcMsg)
@ -434,6 +438,8 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
flowStep.State = 1 flowStep.State = 1
flowStep.RoleGroup = 16182159043990656 flowStep.RoleGroup = 16182159043990656
flowStep.NextStep = 2 flowStep.NextStep = 2
flowStep.ClickName = userCont.Key
flowStep.AddTime = time.Now().Unix()
flowStepAry = append(flowStepAry, flowStep) flowStepAry = append(flowStepAry, flowStep)
evalProCont.OrderKey = orderId evalProCont.OrderKey = orderId
@ -463,6 +469,8 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
flowStep.State = 1 flowStep.State = 1
flowStep.RoleGroup = 16182159043990656 flowStep.RoleGroup = 16182159043990656
flowStep.NextStep = 2 flowStep.NextStep = 2
flowStep.ClickName = userCont.Key
flowStep.AddTime = time.Now().Unix()
flowStepArys = append(flowStepArys, flowStep) flowStepArys = append(flowStepArys, flowStep)
saveData := commonus.MapOut() saveData := commonus.MapOut()
@ -613,7 +621,7 @@ func (e *EvaluationInterface) AddCorrectiveMeasures(c *gin.Context) {
return return
} }
keyNumber := commonus.GetFileNumberEs() keyNumber := commonus.GetFileNumberEs()
UpEvaluationProcessApproval(orderidval, 16182159043990656, keyNumber, 4) UpEvaluationProcessApproval(orderidval, 16182159043990656, keyNumber, 4, userCont.Key)
_, sendUserList := commonus.GetSendMsgUser(16182159043990656, departmentId) //获取对应部门负责人(高科) _, sendUserList := commonus.GetSendMsgUser(16182159043990656, departmentId) //获取对应部门负责人(高科)
var scoreFlowInfo assessmentmodel.ScoreFlow var scoreFlowInfo assessmentmodel.ScoreFlow
@ -858,7 +866,7 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
flowDataLog.EvaluationPlan = evaluationPlanid flowDataLog.EvaluationPlan = evaluationPlanid
} }
flowDataLog.Key = keyNumber flowDataLog.Key = keyNumber
flowDataLog.Score = v.Score flowDataLog.Score = v.Score * 100
flowDataLog.Content = v.Reason flowDataLog.Content = v.Reason
flowDataLog.Enclosure = strings.Join(v.Enclosure, ",") flowDataLog.Enclosure = strings.Join(v.Enclosure, ",")
flowDataLog.Time = time.Now().Unix() flowDataLog.Time = time.Now().Unix()
@ -891,7 +899,7 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
// response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) // response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c)
// return // return
} }
UpEvaluationProcessApproval(keyNumber, 16182159043990656, keyNumber, 1) UpEvaluationProcessApproval(keyNumber, 16182159043990656, keyNumber, 1, userCont.Key)
mainTitle := fmt.Sprintf("%v数据表", commonus.TimeStampToDate(operationTime, 10)) mainTitle := fmt.Sprintf("%v数据表", commonus.TimeStampToDate(operationTime, 10))
mainTitleDesc := "" mainTitleDesc := ""
@ -913,9 +921,9 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
buttonCont.Key = fmt.Sprintf("ration_%v_2", keyNumber) buttonCont.Key = fmt.Sprintf("ration_%v_2", keyNumber)
buttonMap = append(buttonMap, buttonCont) buttonMap = append(buttonMap, buttonCont)
callbakcMsg, isTrueCall, callBackCont, sendText := sendmessage.SendButtonPublic(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, keyNumber, buttonMap) callbakcMsg, isTrueCall, callBackCont, sendText := sendmessage.SendButtonPublicRation(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, keyNumber, buttonMap)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----%v\n", string(callbakcMsg), isTrueCall, callBackCont, sendText) fmt.Printf("1、更新发送信息返回:%v-----------%v----------->%v-----%v\n", string(callbakcMsg), isTrueCall, callBackCont, sendText)
response.Result(0, affairDbErr, "数据写入成功!", c) response.Result(0, affairDbErr, "数据写入成功!", c)
} else { } else {
@ -931,3 +939,298 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
} }
} }
} }
//查看定性考核审批列表
func (e *EvaluationInterface) LookDutkScoreFlow(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
}
}
fmt.Printf("1-------------------->\n")
var addScore assessmentmodel.ScoreFlow
gerErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", requestData.Id).Find(&addScore).Error
fmt.Printf("2-------------------->%v\n", gerErr)
if gerErr != nil {
response.Result(103, gerErr, "没有此审批单!", c)
return
}
fmt.Printf("3-------------------->%v\n", gerErr)
// return
//获取方案
qualEvalCont, qualEvalErr := commonus.GetQualitativeEvaluation(strconv.FormatInt(addScore.EvaluationPlan, 10))
fmt.Printf("4-------------------->%v\n", addScore.EvaluationPlan)
if qualEvalErr != true {
response.Result(103, qualEvalErr, "没有此方案!", c)
return
}
fmt.Printf("5-------------------->%v\n", qualEvalErr)
var dutyCecorFlowInfo DutyCecorFlow
dutyCecorFlowInfo.OrderId = strconv.FormatInt(requestData.Id, 10)
fmt.Printf("6-------------------->%v\n", requestData.Id)
if qualEvalCont.Dimension != 0 {
dimInfo, dimInfoErr := commonus.GetDutyClassInfo(qualEvalCont.Dimension)
if dimInfoErr == true {
dutyCecorFlowInfo.Dimension = dimInfo.Title
}
}
if qualEvalCont.Target != 0 {
target, targetErr := commonus.GetTargetInfo(qualEvalCont.Target)
if targetErr == true {
dutyCecorFlowInfo.Target = target.Title
}
}
if qualEvalCont.TargetSun != 0 {
tarsun, tarsunErr := commonus.GetQualitativeTargetInfo(qualEvalCont.TargetSun)
if tarsunErr == true {
dutyCecorFlowInfo.TargetSun = tarsun.Title
}
}
if qualEvalCont.DetailedTarget != 0 {
detaTar, detaTarErr := commonus.GetDetailedTargetInfo(qualEvalCont.DetailedTarget)
if detaTarErr == true {
dutyCecorFlowInfo.DetailedTarget = detaTar.Title
dutyCecorFlowInfo.Content = detaTar.Content
}
}
fmt.Printf("7-------------------->%v\n", requestData.Id)
dutyCecorFlowInfo.Reason = addScore.Reason
if addScore.PlusReduceScore == 1 {
dutyCecorFlowInfo.ReasonInfo = "增加:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit
} else {
dutyCecorFlowInfo.ReasonInfo = "扣除:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit
}
fmt.Printf("8-------------------->%v\n", requestData.Id)
if addScore.Rectification == 1 {
var divisionResponsibilities []assessmentmodel.DivisionResponsibilities
dRBerr := global.GVA_DB_Performanceappraisal.Where("df_sf_id = ?", requestData.Id).Find(&divisionResponsibilities).Error
fmt.Printf("8-------1------------->%v\n", divisionResponsibilities)
if dRBerr == nil {
for _, d_v := range divisionResponsibilities {
fmt.Printf("8-------2------------->%v\n", d_v.UserKey)
var divBilInfo DivisiosibilityType
switch d_v.Type {
case 1:
divBilInfo.Type = "主要责任人"
case 2:
divBilInfo.Type = "互保责任人"
case 3:
divBilInfo.Type = "责任班组"
case 4:
divBilInfo.Type = "责任班组长"
case 5:
divBilInfo.Type = "主管"
case 6:
divBilInfo.Type = "三大员"
case 7:
divBilInfo.Type = "厂长、主任"
default:
divBilInfo.Type = "主要责任人"
}
userInfoGet, userInfoGetErr := commonus.GetWorkUser(strconv.FormatInt(d_v.UserKey, 10))
if userInfoGetErr == true {
divBilInfo.UserName = userInfoGet.Name
}
fmt.Printf("8-------1-3------------>%v\n", userInfoGet)
divBilInfo.Weight = int64(d_v.Weight)
dutyCecorFlowInfo.DivisionResponsibility = append(dutyCecorFlowInfo.DivisionResponsibility, divBilInfo)
}
}
var recMeasCont []assessmentmodel.RectificationMeasures
judgeRecMeas := global.GVA_DB_Performanceappraisal.Where("`rm_order` = ?", requestData.Id).First(&recMeasCont).Error
if judgeRecMeas == nil {
for _, r_v := range recMeasCont {
var recMeasInfo RectifMeasures
whe := commonus.MapOut()
whe["wm_key"] = r_v.UserKey
uidVal, uidValErr := commonus.GetUserInfoPublic("worker_man.*,worker_man_data.*", whe)
if uidValErr == true {
recMeasInfo.RecName = uidVal.Name
}
recMeasInfo.RecCont = r_v.Content
recMeasInfo.State = r_v.State
recMeasInfo.TimeVal = commonus.TimeStampToDate(r_v.Time, 1)
dutyCecorFlowInfo.RectifMeasures = append(dutyCecorFlowInfo.RectifMeasures, recMeasInfo)
}
}
}
fmt.Printf("9-------------------->%v\n", requestData.Id)
var evalProInfo assessmentmodel.EvaluationProcess
gerEvalErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", requestData.Id).Find(&evalProInfo).Error
fmt.Printf("9-----------1--------->%v\n", gerEvalErr)
if gerEvalErr == nil {
var flowStepAryMaps []FlowStep
jsonFlowErr := json.Unmarshal([]byte(evalProInfo.Content), &flowStepAryMaps)
fmt.Printf("9-----------2--------->%v\n", flowStepAryMaps)
if jsonFlowErr == nil {
fmt.Printf("9-----------3--------->%v\n", flowStepAryMaps)
if len(flowStepAryMaps) > 0 {
for _, fw_v := range flowStepAryMaps {
var flowLog TechnologicalProcessType
flowLog.Step = fw_v.Step
flowLog.State = fw_v.State
workUser, workUserErr := commonus.GetWorkUser(fw_v.ClickName)
fmt.Printf("9-----------4-----2---->%v\n", fw_v)
if workUserErr == true {
fmt.Printf("9-----------4-----1---->%v\n", workUserErr)
bfErr, bf := commonus.GetBranchFactory(workUser.DepartmentId)
fmt.Printf("9-----------4-----3---->%v\n", bfErr)
if bfErr == true {
getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo := commonus.GetOfficeWork(fw_v.RoleGroup, int64(bf.WechatId))
fmt.Printf("9-----------4-----5---->%v---->%v---->%v\n", getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo)
if getGroupRoleInfoErr == true {
flowLog.GroupName = roleGroupInfo.Title
for _, rg_v := range getGroupRoleInfo {
clickUserInfoErr, clickUserInfo := commonus.GetUesrContForWechatID(rg_v.Id)
fmt.Printf("9-----------4--------->%v\n", clickUserInfoErr)
var caoZuoRenInfnfo caoZuoRen
if clickUserInfoErr == true {
if strconv.FormatInt(clickUserInfo.Key, 10) == fw_v.ClickName {
caoZuoRenInfnfo.IsTrue = 1
if fw_v.AddTime != 0 {
caoZuoRenInfnfo.TimeVal = commonus.TimeStampToDate(fw_v.AddTime, 1)
}
}
caoZuoRenInfnfo.Name = clickUserInfo.Name
flowLog.UserList = append(flowLog.UserList, caoZuoRenInfnfo)
}
// var caoZuoRenInfnfo caoZuoRen
// caoZuoRenInfnfo.Name =
// if workUser.WechatId == rg_v.Id || workUser.WorkWechatId == rg_v.Id {
// }
}
}
}
}
dutyCecorFlowInfo.TechnologicalProcess = append(dutyCecorFlowInfo.TechnologicalProcess, flowLog)
}
}
}
}
response.Result(0, dutyCecorFlowInfo, "获取成功", c)
}
//查看定量考核列表
func (d *EvaluationInterface) LookRationkScoreFlow(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, requestData, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
var flowDataLog []assessmentmodel.FlowLogData
getErr := global.GVA_DB_Performanceappraisal.Where("`fld_flow_log` = ?", requestData.Id).Order("fld_id ASC").Find(&flowDataLog).Error
if getErr != nil {
response.Result(103, err, "参数错误!请重新提交!", c)
return
}
var outList []RationOutStruct
for _, v := range flowDataLog {
var outContt RationOutStruct
outContt.Id = strconv.FormatInt(v.Id, 10)
outContt.FlowId = strconv.FormatInt(v.Key, 10)
targetCont, targetContErr := commonus.GetTargetInfo(v.EvaluationPlan)
if targetContErr == true {
outContt.Title = targetCont.Title
outContt.Unit = targetCont.Uniteing
}
outContt.Score = float64(v.Score) / 100
outContt.Content = v.Content
outList = append(outList, outContt)
}
if len(outList) <= 0 {
response.Result(103, err, "没有数据!", c)
return
}
//流程查看
var flowLogList []TechnologicalProcessType
var evalProInfo assessmentmodel.EvaluationProcess
gerEvalErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", requestData.Id).Find(&evalProInfo).Error
fmt.Printf("9-----------1--------->%v\n", gerEvalErr)
if gerEvalErr == nil {
var flowStepAryMaps []FlowStep
jsonFlowErr := json.Unmarshal([]byte(evalProInfo.Content), &flowStepAryMaps)
fmt.Printf("9-----------2--------->%v\n", flowStepAryMaps)
if jsonFlowErr == nil {
fmt.Printf("9-----------3--------->%v\n", flowStepAryMaps)
if len(flowStepAryMaps) > 0 {
for _, fw_v := range flowStepAryMaps {
var flowLog TechnologicalProcessType
flowLog.Step = fw_v.Step
flowLog.State = fw_v.State
workUser, workUserErr := commonus.GetWorkUser(fw_v.ClickName)
fmt.Printf("9-----------4-----2---->%v\n", fw_v)
if workUserErr == true {
fmt.Printf("9-----------4-----1---->%v\n", workUserErr)
bfErr, bf := commonus.GetBranchFactory(workUser.DepartmentId)
fmt.Printf("9-----------4-----3---->%v\n", bfErr)
if bfErr == true {
getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo := commonus.GetOfficeWork(fw_v.RoleGroup, int64(bf.WechatId))
fmt.Printf("9-----------4-----5---->%v---->%v---->%v\n", getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo)
if getGroupRoleInfoErr == true {
flowLog.GroupName = roleGroupInfo.Title
for _, rg_v := range getGroupRoleInfo {
clickUserInfoErr, clickUserInfo := commonus.GetUesrContForWechatID(rg_v.Id)
fmt.Printf("9-----------4--------->%v\n", clickUserInfoErr)
var caoZuoRenInfnfo caoZuoRen
if clickUserInfoErr == true {
if strconv.FormatInt(clickUserInfo.Key, 10) == fw_v.ClickName {
caoZuoRenInfnfo.IsTrue = 1
if fw_v.AddTime != 0 {
caoZuoRenInfnfo.TimeVal = commonus.TimeStampToDate(fw_v.AddTime, 1)
}
}
caoZuoRenInfnfo.Name = clickUserInfo.Name
flowLog.UserList = append(flowLog.UserList, caoZuoRenInfnfo)
}
// var caoZuoRenInfnfo caoZuoRen
// caoZuoRenInfnfo.Name =
// if workUser.WechatId == rg_v.Id || workUser.WorkWechatId == rg_v.Id {
// }
}
}
}
}
flowLogList = append(flowLogList, flowLog)
}
}
}
}
outListMap := commonus.MapOut()
outListMap["List"] = outList
outListMap["flowLog"] = flowLogList
response.Result(0, outListMap, "查询成功", c)
}
//获取点击人信息
// userContInfoIstrue, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername)

100
gin_server_admin/api/index/evaluation/lookquantita.go

@ -0,0 +1,100 @@
package evaluation
import (
"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 (e *EvaluationInterface) LookQuantitativeConfig(c *gin.Context) {
var requestData SelectQuantitativeConfig
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
var qualConfigList []assessmentmodel.QuantitativeConfig
gormDb := global.GVA_DB_Performanceappraisal
if requestData.GroupId != "" {
gormDb = gormDb.Where("`group` = ?", requestData.GroupId)
}
if requestData.DepartmentID != "" {
gormDb = gormDb.Where("`departmentid` = ?", requestData.DepartmentID)
}
if requestData.Dimension != "" {
gormDb = gormDb.Where("`dimension` = ?", requestData.Dimension)
}
if requestData.Target != "" {
gormDb = gormDb.Where("`target` = ?", requestData.Target)
}
if requestData.DetailedTarget != "" {
gormDb = gormDb.Where("`targetconfig` = ?", requestData.DetailedTarget)
}
switch requestData.Type {
case 1:
gormDb = gormDb.Where("`type` = ?", requestData.Type)
case 2:
gormDb = gormDb.Where("`type` = ?", requestData.Type)
if requestData.Class != 0 {
gormDb = gormDb.Where("`timecopy` = ?", requestData.Class)
}
case 3:
gormDb = gormDb.Where("`type` = ?", requestData.Type)
if requestData.Class != 0 {
gormDb = gormDb.Where("`timecopy` = ?", requestData.Class)
}
default:
}
if requestData.Year != 0 {
gormDb = gormDb.Where("`year` = ?", requestData.Year)
}
if requestData.State != 0 {
gormDb = gormDb.Where("`state` = ?", requestData.State)
}
// gormDb = gormDb.Order("group ASC,departmentid ASC,dimension ASC,target ASC,targetconfig ASC").Order("year DESC").Order("timecopy ASC,id ASC")
gormDb = gormDb.Order("`group` ASC").Order("`departmentid` ASC").Order("`dimension` ASC").Order("`target` ASC").Order("`targetconfig` ASC").Order("`year` DESC").Order("`timecopy` ASC").Order("`id` ASC")
contErr := gormDb.Find(&qualConfigList).Error
if contErr != nil {
response.Result(102, err, "没有数据!", c)
return
}
var outList []OutQuantitativeConfig
for _, v := range qualConfigList {
var outCont OutQuantitativeConfig
outCont.Id = v.Id
outCont.DepartmentId = v.DepartmentId
outCont.Group = v.Group
outCont.Dimension = v.Dimension
outCont.Target = v.Target
outCont.TargetConfig = v.TargetConfig
outCont.Type = v.Type
outCont.Year = v.Year
outCont.Timecopy = v.Timecopy
outCont.Zeroprize = v.Zeroprize / 100
outCont.Allprize = v.Allprize / 100
outCont.Time = v.Time
outCont.State = v.State
gErr, groupInfo := commonus.GetGroupCont(v.Group)
if gErr == true {
outCont.GroupTitle = groupInfo.Name
}
dErr, departmentInfo := commonus.GetBranchFactory(v.DepartmentId)
if dErr == true {
outCont.DimensionTitle = departmentInfo.Name
}
targetInfo, tErr := commonus.GetTargetInfo(v.Target)
if tErr == true {
outCont.TargetTitle = targetInfo.Title
}
dtargetInfo, dtErr := commonus.GetDetailedTargetInfo(v.TargetConfig)
if dtErr == true {
outCont.DetailedTargetTitle = dtargetInfo.Title
}
outList = append(outList, outCont)
}
response.Result(0, outList, "获取成功!", c)
}

11
gin_server_admin/api/index/evaluation/sendwechatmsg.go

@ -39,7 +39,7 @@ func EiteScoreFlow(saveId int64, saveData map[string]interface{}) (isTrue bool,
@keyNumber 卡片TaskID @keyNumber 卡片TaskID
@nextStep 下一步 @nextStep 下一步
*/ */
func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep int) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) { func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep int, userkey string) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) {
isTrue = false isTrue = false
judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error
if judgeErr != nil { if judgeErr != nil {
@ -61,6 +61,8 @@ func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep in
rejectFlow.State = 1 rejectFlow.State = 1
rejectFlow.RoleGroup = roleGroup rejectFlow.RoleGroup = roleGroup
rejectFlow.NextStep = 2 rejectFlow.NextStep = 2
rejectFlow.ClickName = userkey
rejectFlow.AddTime = time.Now().Unix()
flowLog = append(flowLog, rejectFlow) flowLog = append(flowLog, rejectFlow)
evalProc.OrderKey = orderKey evalProc.OrderKey = orderKey
@ -91,6 +93,8 @@ func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep in
flowStep.RoleGroup = roleGroup flowStep.RoleGroup = roleGroup
flowStep.NextStep = nextStep flowStep.NextStep = nextStep
flowStep.ClickName = userkey
flowStep.AddTime = time.Now().Unix()
flowStepArys = append(flowStepArys, flowStep) flowStepArys = append(flowStepArys, flowStep)
saveData := commonus.MapOut() saveData := commonus.MapOut()
@ -116,7 +120,7 @@ orderKey 流程Key
roleGroup 角色数组 roleGroup 角色数组
nextStep 下一步 nextStep 下一步
*/ */
func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep int) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) { func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep int, userkey string) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) {
isTrue = false isTrue = false
judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error
if judgeErr != nil { if judgeErr != nil {
@ -138,6 +142,8 @@ func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep
rejectFlow.State = 1 rejectFlow.State = 1
rejectFlow.RoleGroup = roleGroup rejectFlow.RoleGroup = roleGroup
rejectFlow.NextStep = nextStep rejectFlow.NextStep = nextStep
rejectFlow.ClickName = userkey
rejectFlow.AddTime = time.Now().Unix()
flowLog = append(flowLog, rejectFlow) flowLog = append(flowLog, rejectFlow)
evalProc.OrderKey = orderKey evalProc.OrderKey = orderKey
@ -168,6 +174,7 @@ func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep
flowStep.RoleGroup = roleGroup flowStep.RoleGroup = roleGroup
flowStep.NextStep = nextStep flowStep.NextStep = nextStep
flowStep.AddTime = time.Now().Unix()
flowStepArys = append(flowStepArys, flowStep) flowStepArys = append(flowStepArys, flowStep)
saveData := commonus.MapOut() saveData := commonus.MapOut()

82
gin_server_admin/api/index/evaluation/type.go

@ -1,5 +1,7 @@
package evaluation package evaluation
import "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
type EvaluationInterface struct{} type EvaluationInterface struct{}
//考核方案细则列表输出 //考核方案细则列表输出
@ -65,7 +67,9 @@ type FlowStep struct {
Step int `json:"step"` //当前是第几步 Step int `json:"step"` //当前是第几步
Key string `json:"key"` //任务卡ID Key string `json:"key"` //任务卡ID
State int `json:"state"` //状态 State int `json:"state"` //状态
RoleGroup int64 `json:"rolefroup"` //状态 RoleGroup int64 `json:"rolefroup"` //角色组
ClickName string `json:"clickname"` //操作人
AddTime int64 `json:"addtime"` //添加时间
NextStep int `json:"nextstep"` //下一步 1:内勤;2:部门负责人:3:整改;4:整改后部门负责;5:归档起草人 NextStep int `json:"nextstep"` //下一步 1:内勤;2:部门负责人:3:整改;4:整改后部门负责;5:归档起草人
} }
@ -96,3 +100,79 @@ type GetRationFlowLog struct {
GroupId string `json:"groupid"` GroupId string `json:"groupid"`
DepartmentID string `json:"departmentid"` DepartmentID string `json:"departmentid"`
} }
//定性指标流程展示
type DutyCecorFlow struct {
OrderId string `json:"orderid"` //审批流标识
Dimension string `json:"dimension"` //维度
Target string `json:"target"` //指标
TargetSun string `json:"targetsun"` //子指标
DetailedTarget string `json:"detailedtargent"` //指标明细
Content string `json:"content"` //指标说明
Reason string `json:"reason"` //操作原因
ReasonInfo string `json:"reasoninfo"` //
DivisionResponsibility []DivisiosibilityType `json:"divresbil"` //责任划分
RectifMeasures []RectifMeasures `json:"rectifmeasures"` //整改措施
TechnologicalProcess []TechnologicalProcessType `technologicalprocess` //流程
}
//审批流
type TechnologicalProcessType struct {
Step int `json:"step"`
State int `json:"state"` //状态
UserList []caoZuoRen `json:"userlist"` //操作人
GroupName string `json:"groupname"` //操作组
}
type caoZuoRen struct {
Name string `json:"name"`
IsTrue int `json:"istrue"`
TimeVal string `json:"timeval"` //操作时间
}
//责任划分
type DivisiosibilityType struct {
Type string `json:"type"`
UserName string `json:"username"`
Weight int64 `json:"weight"`
}
//整改项目
type RectifMeasures struct {
RecName string `json:"recname"` //整改人
RecCont string `json:"reccont"` //整改内容
State int `json:"state"` //状态
TimeVal string `json:"timeval"` //操作时间
}
//定量考核审批输出
type RationOutStruct struct {
Id string `json:"id"`
FlowId string `flowid`
Title string `json:"title"`
Unit string `json:"unit"` //单位"`
Score float64 `json:score` //分数\
Content string `json:"content"`
}
//定量考核目标设定查询
type SelectQuantitativeConfig struct {
GroupId string `json:"groupid"`
DepartmentID string `json:"departmentid"`
Dimension string `json:"dimension"` //维度
Target string `json:"target"` //指标
DetailedTarget string `json:"detailedtargent"` //指标明细
Type int `json:"type"` //1、年度;2、季度;3、月度
Year int `json:"year"` //年度
Class int `json:"class"` //季度与月度辅助值
State int `json:"state"` //状态(1、启用;2、禁用;3、删除)
}
//输出
type OutQuantitativeConfig struct {
assessmentmodel.QuantitativeConfig
GroupTitle string `json:"grouptitle"` //操作组
DimensionTitle string `json:"dimensiontitle"` //维度
TargetTitle string `json:"targettitle"` //指标
DetailedTargetTitle string `json:"detailedtargenttitle"` //指标明细
}

241
gin_server_admin/api/v1/assessment/department_target.go

@ -476,12 +476,15 @@ func (d *DutyHandle) DepartmentListNew(c *gin.Context) {
var departAryList []departmentDutyNew var departAryList []departmentDutyNew
for _, v := range dutyClassAry { for _, v := range dutyClassAry {
childList := GetEvalTarget(v.Id, requestData.Group, requestData.DepartmentId)
if len(childList) > 0 {
var departCont departmentDutyNew var departCont departmentDutyNew
departCont.Id = strconv.FormatInt(v.Id, 10) departCont.Id = strconv.FormatInt(v.Id, 10)
departCont.Name = v.Title departCont.Name = v.Title
departCont.Child = GetEvalTarget(v.Id, requestData.Group, requestData.DepartmentId) departCont.Child = GetEvalTarget(v.Id, requestData.Group, requestData.DepartmentId)
departAryList = append(departAryList, departCont) departAryList = append(departAryList, departCont)
} }
}
response.Result(0, departAryList, "数据获取成功!", c) response.Result(0, departAryList, "数据获取成功!", c)
} }
@ -499,6 +502,7 @@ func GetEvalTarget(dimId int64, group, departId string) (dimensionAry []taskDeta
return return
} }
for _, v := range contAry { for _, v := range contAry {
var dimCont taskDetailsLinkage var dimCont taskDetailsLinkage
dimCont.Id = strconv.FormatInt(v.Id, 10) dimCont.Id = strconv.FormatInt(v.Id, 10)
dimCont.Name = v.Title dimCont.Name = v.Title
@ -513,8 +517,20 @@ func GetEvalTarget(dimId int64, group, departId string) (dimensionAry []taskDeta
dimCont.Unit = v.Uniteing dimCont.Unit = v.Uniteing
dimCont.Cycles = v.Cycles dimCont.Cycles = v.Cycles
dimCont.CycleAttres = v.CycleAttres dimCont.CycleAttres = v.CycleAttres
if v.Type == 1 {
var counetNumber int64
countErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_id").Where("`dt_parentid` = ?", v.Id).Pluck("COALESCE(COUNT(dt_id), 0) as countid", &counetNumber).Error
if countErr == nil {
if counetNumber > 0 {
dimensionAry = append(dimensionAry, dimCont)
}
}
} else {
dimensionAry = append(dimensionAry, dimCont) dimensionAry = append(dimensionAry, dimCont)
} }
}
return return
} }
@ -541,7 +557,7 @@ func (d *DutyHandle) AddDepartmentDutyInfo(c *gin.Context) {
return return
} }
groupId, groupErr := strconv.ParseInt(requestData.Group, 10, 64) groupId, groupErr := strconv.ParseInt(requestData.Group, 10, 64)
if groupErr == nil { if groupErr != nil {
groupId = 0 groupId = 0
} }
if requestData.DepartmentId == "" { if requestData.DepartmentId == "" {
@ -556,24 +572,28 @@ func (d *DutyHandle) AddDepartmentDutyInfo(c *gin.Context) {
response.Result(104, err, "没有要添加的数据", c) response.Result(104, err, "没有要添加的数据", c)
return return
} }
var eiteIdAry []int64
var saveDataAry []assessmentmodel.QualitativeEvaluation var saveDataAry []assessmentmodel.QualitativeEvaluation
fmt.Printf("1----------------------------->\n") fmt.Printf("1-------------%v---------------->%v\n", groupId, requestData.Group)
for _, v := range requestData.Child { //维度 for _, v := range requestData.Child { //维度
for _, v_s := range v.Child { //指标 for _, v_s := range v.Child { //指标
if v_s.Status == 1 { if v_s.Status == 1 {
var saveData assessmentmodel.QualitativeEvaluation
//指标ID //指标ID转换
targetId, targetErr := strconv.ParseInt(v_s.Id, 10, 64) targetId, targetErr := strconv.ParseInt(v_s.Id, 10, 64)
if targetErr == nil { if targetErr == nil {
fmt.Printf("2----------------------------->\n")
//获取指标内容 //获取指标内容
evalTarCont, evalTarContErr := commonus.GetTargetInfo(targetId) evalTarCont, evalTarContErr := commonus.GetTargetInfo(targetId)
if evalTarContErr == true { if evalTarContErr == true {
fmt.Printf("3----------------------------->\n") //判断是定量还是定性
if evalTarCont.Type == 2 { if evalTarCont.Type == 2 {
fmt.Printf("4----------------------------->\n") //定量指标操作
saveData.Target = targetId var saveData assessmentmodel.QualitativeEvaluation
saveData.Operator = evalTarCont.Report
var qeId []int64
eiteQualEvalSaveData := commonus.MapOut()
gormQualEval := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_dimension` = ? AND `qe_target` = ? AND `qe_type` = ?", v.Id, targetId, evalTarCont.Type)
//计算执行考核人部门
if evalTarCont.Report != "" { if evalTarCont.Report != "" {
var departAry []string var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",") userKeyAry := strings.Split(evalTarCont.Report, ",")
@ -586,42 +606,78 @@ func (d *DutyHandle) AddDepartmentDutyInfo(c *gin.Context) {
} }
} }
saveData.DepartmentId = strings.Join(departAry, ",") saveData.DepartmentId = strings.Join(departAry, ",")
gormQualEval = gormQualEval.Where("`qe_department_id` IN ?", departAry)
eiteQualEvalSaveData["qe_department_id"] = strings.Join(departAry, ",")
} }
//维度ID //维度ID
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64) dimId, dimErr := strconv.ParseInt(v.Id, 10, 64)
if dimErr == nil { if dimErr == nil {
saveData.Dimension = dimId saveData.Dimension = dimId
} }
saveData.Type = evalTarCont.Type saveData.Target = targetId //指标
saveData.Unit = v_s.Unit saveData.Type = evalTarCont.Type //类型
saveData.ReferenceScore = v_s.ReferenceScore saveData.Unit = v_s.Unit //单位
saveData.State = 1 saveData.ReferenceScore = v_s.ReferenceScore //分值
saveData.State = 1 //状态
saveData.Addtime = time.Now().Unix() saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix() saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //集团
saveData.Group = groupId //departId saveData.Cycles = v_s.Cycles //单位
saveData.Cycles = v_s.Cycles saveData.CycleAttres = v_s.CycleAttres //辅助计数
saveData.CycleAttres = v_s.CycleAttres saveData.AcceptEvaluation = departId //接受考核部门
saveData.AcceptEvaluation = departId saveData.Content = v_s.Content //描述
saveData.Content = v_s.Content saveData.Operator = evalTarCont.Report //执行考核人
judgeContErr := gormQualEval.Find(&qeId).Error
if judgeContErr == nil && len(qeId) > 0 {
eiteQualEvalSaveData["qe_dimension"] = dimId
eiteQualEvalSaveData["qe_target"] = targetId
eiteQualEvalSaveData["qe_type"] = evalTarCont.Type
eiteQualEvalSaveData["qe_unit"] = v_s.Unit
eiteQualEvalSaveData["qe_reference_score"] = v_s.ReferenceScore
eiteQualEvalSaveData["qe_state"] = 1
eiteQualEvalSaveData["qe_eitetime"] = time.Now().Unix()
eiteQualEvalSaveData["qe_group"] = groupId
eiteQualEvalSaveData["qe_cycle"] = v_s.Cycles
eiteQualEvalSaveData["qe_cycleattr"] = v_s.CycleAttres
eiteQualEvalSaveData["qe_accept_evaluation"] = departId
eiteQualEvalSaveData["qe_operator"] = evalTarCont.Report
eiteQualEvalSaveData["qe_content"] = v_s.Content
eiteIdAry = append(eiteIdAry, dimId)
//修改已经存在的内容
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` IN ?", qeId).Updates(eiteQualEvalSaveData)
} else {
saveDataAry = append(saveDataAry, saveData) saveDataAry = append(saveDataAry, saveData)
}
} else { } else {
fmt.Printf("5----------------------------->\n") //定性考核
//获取子栏目列表 //获取子栏目列表
var sunTarget []assessmentmodel.QualitativeTarget var sunTarget []assessmentmodel.QualitativeTarget
sunErr := global.GVA_DB_Performanceappraisal.Where("q_parent_id = ?", targetId).Find(&sunTarget).Error sunErr := global.GVA_DB_Performanceappraisal.Where("q_parent_id = ?", targetId).Find(&sunTarget).Error
if sunErr == nil && len(sunTarget) > 0 { fmt.Printf("judge----------------1----------->%v\n", sunErr)
fmt.Printf("6----------------------------->\n") if sunErr == nil {
if len(sunTarget) > 0 {
fmt.Printf("judge----------------2----------->%v\n", len(sunTarget))
//获取定性指标子项目下的考核详情
for _, s_d_v := range sunTarget { for _, s_d_v := range sunTarget {
fmt.Printf("7----------------------------->\n") //指标详情
var detaTarget []assessmentmodel.DetailedTarget var detaTarget []assessmentmodel.DetailedTarget
detaiErr := global.GVA_DB_Performanceappraisal.Where("dt_parentid = ? AND dt_parentid_sun = ?", targetId, s_d_v.Id).Find(&detaTarget).Error detaiErr := global.GVA_DB_Performanceappraisal.Where("dt_parentid = ? AND dt_parentid_sun = ?", targetId, s_d_v.Id).Find(&detaTarget).Error
if detaiErr == nil && len(detaTarget) > 0 { fmt.Printf("judge----------------3----------->%v\n", detaiErr)
fmt.Printf("8----------------------------->\n") if detaiErr == nil {
if len(detaTarget) > 0 {
fmt.Printf("judge----------------4----------->%v\n", len(detaTarget))
//指标详情循环
for _, s_t_v := range detaTarget { for _, s_t_v := range detaTarget {
fmt.Printf("9----------------------------->\n") var saveDataDetar assessmentmodel.QualitativeEvaluation
saveData.Target = targetId
saveData.Operator = evalTarCont.Report var qeId []int64
eiteQualEvalSaveData := commonus.MapOut()
gormQualEval := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_dimension` = ? AND `qe_target` = ? AND `qe_type` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ?", v.Id, targetId, evalTarCont.Type, s_d_v.Id, s_t_v.Id)
//计算执行考核部门
if evalTarCont.Report != "" { if evalTarCont.Report != "" {
var departAry []string var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",") userKeyAry := strings.Split(evalTarCont.Report, ",")
@ -633,93 +689,106 @@ func (d *DutyHandle) AddDepartmentDutyInfo(c *gin.Context) {
} }
} }
} }
saveData.DepartmentId = strings.Join(departAry, ",") saveDataDetar.DepartmentId = strings.Join(departAry, ",")
gormQualEval = gormQualEval.Where("`qe_department_id` IN ?", departAry)
eiteQualEvalSaveData["qe_department_id"] = strings.Join(departAry, ",")
} }
//维度ID //维度ID
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64) dimId, dimErr := strconv.ParseInt(v.Id, 10, 64)
if dimErr == nil { if dimErr == nil {
saveData.Dimension = dimId saveDataDetar.Dimension = dimId
}
saveDataDetar.Target = targetId //指标
saveDataDetar.TargetSun = s_d_v.Id //子栏目
saveDataDetar.DetailedTarget = s_t_v.Id //指标详情
saveDataDetar.Type = evalTarCont.Type //类型
saveDataDetar.Unit = v_s.Unit //单位
saveDataDetar.ReferenceScore = v_s.ReferenceScore //得分
saveDataDetar.State = 1 //状态
saveDataDetar.Addtime = time.Now().Unix()
saveDataDetar.Eitetime = time.Now().Unix()
saveDataDetar.Group = groupId //departId
saveDataDetar.Cycles = v_s.Cycles
saveDataDetar.CycleAttres = v_s.CycleAttres
saveDataDetar.AcceptEvaluation = departId
saveDataDetar.Operator = evalTarCont.Report
saveDataDetar.Content = v_s.Content
judgeContErr := gormQualEval.Find(&qeId).Error
if judgeContErr == nil && len(qeId) > 0 {
fmt.Printf("judge----------------5-------%v---->%v\n", judgeContErr, len(qeId))
eiteQualEvalSaveData["qe_dimension"] = dimId
eiteQualEvalSaveData["qe_target"] = targetId
eiteQualEvalSaveData["qe_target_sun"] = s_d_v.Id
eiteQualEvalSaveData["qe_detailed_target"] = s_t_v.Id
eiteQualEvalSaveData["qe_type"] = evalTarCont.Type
eiteQualEvalSaveData["qe_unit"] = v_s.Unit
eiteQualEvalSaveData["qe_reference_score"] = v_s.ReferenceScore
eiteQualEvalSaveData["qe_state"] = 1
eiteQualEvalSaveData["qe_eitetime"] = time.Now().Unix()
eiteQualEvalSaveData["qe_group"] = groupId
eiteQualEvalSaveData["qe_cycle"] = v_s.Cycles
eiteQualEvalSaveData["qe_cycleattr"] = v_s.CycleAttres
eiteQualEvalSaveData["qe_accept_evaluation"] = departId
eiteQualEvalSaveData["qe_operator"] = evalTarCont.Report
eiteQualEvalSaveData["qe_content"] = v_s.Content
eiteIdAry = append(eiteIdAry, dimId)
//修改已经存在的内容
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` IN ?", qeId).Updates(eiteQualEvalSaveData)
} else {
fmt.Printf("judge----------------5---5----%v---->%v\n", judgeContErr, len(qeId))
saveDataAry = append(saveDataAry, saveDataDetar)
} }
saveData.Type = evalTarCont.Type
saveData.DetailedTarget = s_t_v.Id
saveData.Unit = v_s.Unit
saveData.ReferenceScore = v_s.ReferenceScore
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //departId
saveData.Cycles = v_s.Cycles
saveData.CycleAttres = v_s.CycleAttres
saveData.AcceptEvaluation = departId
saveData.Content = v_s.Content
saveDataAry = append(saveDataAry, saveData)
}
}
} }
} else { } else {
fmt.Printf("10----------------------------->\n") fmt.Printf("judge----------------4-----4------>%v\n", len(detaTarget))
var detaTarget []assessmentmodel.DetailedTarget
detaiErr := global.GVA_DB_Performanceappraisal.Where("dt_parentid = ? AND dt_parentid_sun = 0", targetId).Find(&detaTarget).Error
if detaiErr == nil && len(detaTarget) > 0 {
fmt.Printf("12----------------------------->\n")
for _, s_t_v := range detaTarget {
fmt.Printf("13----------------------------->\n")
saveData.Target = targetId
saveData.Operator = evalTarCont.Report
if evalTarCont.Report != "" {
var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",")
if len(userKeyAry) > 0 {
for _, u_v := range userKeyAry {
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_bf_id"}, map[string]interface{}{"wm_key": u_v})
if usErr == true {
departAry = append(departAry, strconv.FormatInt(usCont.DepartmentId, 10))
}
} }
} else {
fmt.Printf("judge----------------3-----3------>%v\n", detaiErr)
} }
saveData.DepartmentId = strings.Join(departAry, ",")
} }
//维度ID } else {
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64) fmt.Printf("judge----------------2---2-------->%v\n", len(sunTarget))
if dimErr == nil {
saveData.Dimension = dimId
} }
saveData.Type = evalTarCont.Type } else {
saveData.DetailedTarget = s_t_v.Id fmt.Printf("judge----------------1-----1------>%v\n", sunErr)
saveData.Unit = v_s.Unit
saveData.ReferenceScore = v_s.ReferenceScore
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //departId
saveData.Cycles = v_s.Cycles
saveData.CycleAttres = v_s.CycleAttres
saveData.AcceptEvaluation = departId
saveData.Content = v_s.Content
saveDataAry = append(saveDataAry, saveData)
} }
} }
} }
} }
} else {
fmt.Printf("judge----------------6-----1------>%v\n", v_s)
var qualEvalId []int64
judgeQualEvalErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_group` = ? AND FIND_IN_SET(%v,`qe_department_id`) AND `qe_dimension` = ? AND `qe_target` = ?", groupId, departId, v.Id, v_s.Id).Find(&qualEvalId).Error
if judgeQualEvalErr == nil {
if len(qualEvalId) > 0 {
eiteIdAry = append(eiteIdAry, 2)
fmt.Printf("judge----------------6-----3------>%v\n", judgeQualEvalErr)
qualEvalSave := commonus.MapOut()
qualEvalSave["qe_state"] = 2
qualEvalSave["qe_eitetime"] = time.Now().Unix()
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` IN ?", qualEvalId).Updates(qualEvalSave)
} }
} }
} }
} }
} }
if len(saveDataAry) <= 0 { if len(saveDataAry) <= 0 && len(eiteIdAry) <= 0 {
response.Result(105, saveDataAry, "没有要添加的数据", c) response.Result(105, saveDataAry, "没有要添加的数据", c)
return return
} }
// fmt.Printf("judge----------------7----------->%v\n", v_s)
if len(saveDataAry) > 0 {
addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error
if addErr != nil { if addErr != nil {
response.Result(106, len(saveDataAry), "数据添加失败", c) response.Result(106, len(saveDataAry), "数据添加失败", c)
return return
} }
}
if departId != 0 { if departId != 0 {
} }

26
gin_server_admin/api/v1/assessment/dutyhandle.go

@ -50,7 +50,7 @@ func (d *DutyHandle) DutyClassList(c *gin.Context) {
total = 0 total = 0
} }
} else { } else {
listTitleErr := global.GVA_DB_Performanceappraisal.Where(whereMap).Where("`state` IN ?", []int{1, 2}).Order("id DESC").Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyClassAry).Error listTitleErr := global.GVA_DB_Performanceappraisal.Where(whereMap).Where("`state` IN ?", []int{1, 2}).Order("sort ASC,id DESC").Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyClassAry).Error
if listTitleErr != nil { if listTitleErr != nil {
response.Result(103, listTitleErr, "数据获取失败!", c) response.Result(103, listTitleErr, "数据获取失败!", c)
return return
@ -70,6 +70,8 @@ func (d *DutyHandle) DutyClassList(c *gin.Context) {
dutyClassCont.Time = val.Time dutyClassCont.Time = val.Time
dutyClassCont.State = val.State dutyClassCont.State = val.State
dutyClassCont.OutId = strconv.FormatInt(val.Id, 10) dutyClassCont.OutId = strconv.FormatInt(val.Id, 10)
dutyClassCont.Sort = val.Sort
dutyClassCont.IsTrue = judgeIsTrue(val.Id)
dutyClassOutputAry = append(dutyClassOutputAry, dutyClassCont) dutyClassOutputAry = append(dutyClassOutputAry, dutyClassCont)
} }
countSum := len(dutyClassOutputAry) countSum := len(dutyClassOutputAry)
@ -78,6 +80,19 @@ func (d *DutyHandle) DutyClassList(c *gin.Context) {
response.Result(0, printData, "查询成功!", c) response.Result(0, printData, "查询成功!", c)
} }
//判断是否已经被使用
func judgeIsTrue(classId int64) (isTrue int) {
isTrue = 2
var evalTarCont []assessmentmodel.EvaluationTarget
err := global.GVA_DB_Performanceappraisal.Where("`et_dimension` = ?", classId).Find(&evalTarCont).Error
if err == nil {
if len(evalTarCont) > 0 {
isTrue = 1
}
}
return
}
//添加职责类别 //添加职责类别
func (d *DutyHandle) AddDutyClass(c *gin.Context) { func (d *DutyHandle) AddDutyClass(c *gin.Context) {
var requestData dutyClassAdd var requestData dutyClassAdd
@ -93,6 +108,9 @@ func (d *DutyHandle) AddDutyClass(c *gin.Context) {
if requestData.Type == 0 { if requestData.Type == 0 {
requestData.Type = 1 requestData.Type = 1
} }
if requestData.Sort == 0 {
requestData.Sort = 1000
}
outMap := commonus.MapOut() outMap := commonus.MapOut()
juadgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyClass{}).Select("title").Where("`title` = ?", requestData.Title).First(&outMap).Error juadgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyClass{}).Select("title").Where("`title` = ?", requestData.Title).First(&outMap).Error
if juadgeErr == nil { if juadgeErr == nil {
@ -105,6 +123,7 @@ func (d *DutyHandle) AddDutyClass(c *gin.Context) {
dutyClassCont.Type = requestData.Type dutyClassCont.Type = requestData.Type
dutyClassCont.Weight = 0 dutyClassCont.Weight = 0
dutyClassCont.State = 1 dutyClassCont.State = 1
dutyClassCont.Sort = requestData.Sort
dutyClassCont.Time = time.Now().Unix() dutyClassCont.Time = time.Now().Unix()
addArchiveFileErr := global.GVA_DB_Performanceappraisal.Create(&dutyClassCont).Error addArchiveFileErr := global.GVA_DB_Performanceappraisal.Create(&dutyClassCont).Error
@ -164,6 +183,7 @@ func (d *DutyHandle) EiteDutyClassInfo(c *gin.Context) {
response.Result(103, err, "请输入职责名称", c) response.Result(103, err, "请输入职责名称", c)
return return
} }
var dutyClassCont assessmentmodel.DutyClass var dutyClassCont assessmentmodel.DutyClass
inFoErrJuadge := global.GVA_DB_Performanceappraisal.Where("`id` = ?", requestData.Id).First(&dutyClassCont).Error inFoErrJuadge := global.GVA_DB_Performanceappraisal.Where("`id` = ?", requestData.Id).First(&dutyClassCont).Error
if inFoErrJuadge != nil { if inFoErrJuadge != nil {
@ -183,7 +203,9 @@ func (d *DutyHandle) EiteDutyClassInfo(c *gin.Context) {
saveData := commonus.MapOut() saveData := commonus.MapOut()
saveData["title"] = requestData.Title saveData["title"] = requestData.Title
saveData["time"] = time.Now().Unix() saveData["time"] = time.Now().Unix()
if requestData.Sort != 0 {
saveData["sort"] = requestData.Sort
}
var eiteDutyClass assessmentmodel.DutyClass var eiteDutyClass assessmentmodel.DutyClass
inFoErr := global.GVA_DB_Performanceappraisal.Model(&eiteDutyClass).Where("`id` = ?", requestData.Id).Updates(saveData).Error inFoErr := global.GVA_DB_Performanceappraisal.Model(&eiteDutyClass).Where("`id` = ?", requestData.Id).Updates(saveData).Error
if inFoErr != nil { if inFoErr != nil {

23
gin_server_admin/api/v1/assessment/dutytype.go

@ -44,12 +44,14 @@ type dutyClassRequest struct {
type dutyClassOutput struct { type dutyClassOutput struct {
assessmentmodel.DutyClass assessmentmodel.DutyClass
OutIdStruct OutIdStruct
IsTrue int `json:"istrue"`
} }
//职责类别添加 //职责类别添加
type dutyClassAdd struct { type dutyClassAdd struct {
Title string `json:"title"` Title string `json:"title"`
Type int `json:"type"` //1:定性考核;2:定量考核 Type int `json:"type"` //1:定性考核;2:定量考核
Sort int `json:"sort"`
} }
//职责类别修改 //职责类别修改
@ -298,6 +300,7 @@ type addTargetType struct {
type outTargetList struct { type outTargetList struct {
assessmentmodel.EvaluationTarget assessmentmodel.EvaluationTarget
OutId string `json:"outid"` OutId string `json:"outid"`
DimensionName string `json:"dimensionname"`
RelevantDepartmentMap []outTargetAttr `json:"relevantdepartmentsmap"` RelevantDepartmentMap []outTargetAttr `json:"relevantdepartmentsmap"`
ReportMap []outTargetAttr `json:"reportmap"` ReportMap []outTargetAttr `json:"reportmap"`
VisibleRangeGroupMap []outTargetAttr `json:"visiblerangegroupmap"` //可见范围(集团) VisibleRangeGroupMap []outTargetAttr `json:"visiblerangegroupmap"` //可见范围(集团)
@ -313,6 +316,7 @@ type outTargetAttr struct {
//详细内容输出 //详细内容输出
type outTargetInfo struct { type outTargetInfo struct {
assessmentmodel.EvaluationTarget assessmentmodel.EvaluationTarget
DimensionIdStr string `json:"dimensionidstr"`
RelevantDepartmentMap []string `json:"relevantdepartmentsmap"` RelevantDepartmentMap []string `json:"relevantdepartmentsmap"`
ReportMap []string `json:"reportmap"` ReportMap []string `json:"reportmap"`
VisibleRangeGroupMap []string `json:"visiblerangegroupmap"` //可见范围(集团) VisibleRangeGroupMap []string `json:"visiblerangegroupmap"` //可见范围(集团)
@ -740,3 +744,22 @@ type departmentDutyNew struct {
QualEvalArrt QualEvalArrt
Child []taskDetailsLinkage `json:"child"` //考核细则 Child []taskDetailsLinkage `json:"child"` //考核细则
} }
//设定指标结算周期
type SetEvaluationObjectives struct {
Year int64 `json:"year"` //年度
Group int64 `json:"group"` //集团
DepartMent int64 `json:"department"` //部门
Dimension string `json:"dimension"` //维度
Target string `json:"target"` //指标
TargetDetails string `json:"targetdetails"` //指标细则
Cycle int `json:"cycle"` //周期
CycleAdded []CycleAddedType `json:"cycleadded"`
}
//周期列表
type CycleAddedType struct {
Id int64 `json:"id"`
Zeroprize int64 `json:"zeroprize"` //零奖值"`
Allprize int64 `json:"allprize"` //全奖值"`
}

31
gin_server_admin/api/v1/assessment/newassessment.go

@ -1,6 +1,7 @@
package assessment package assessment
import ( import (
"encoding/json"
"fmt" "fmt"
"strconv" "strconv"
"strings" "strings"
@ -19,6 +20,8 @@ func (d *dataLockStatistics) AddCardAssEss(deparmentId string, addData AddQualEv
sunTargetCont, sunTargetErr := judgeColumn(addData.Target, addData.TargetSun, addData.TargetSunTitle) sunTargetCont, sunTargetErr := judgeColumn(addData.Target, addData.TargetSun, addData.TargetSunTitle)
if sunTargetErr != true { if sunTargetErr != true {
} }
jsonCont, _ := json.Marshal(sunTargetCont)
fmt.Printf("jsonKKKK----------------->%v\n", string(jsonCont))
groupInt, groupIntErr := strconv.ParseInt(addData.Group, 10, 64) groupInt, groupIntErr := strconv.ParseInt(addData.Group, 10, 64)
if groupIntErr != nil { if groupIntErr != nil {
groupInt = 1 groupInt = 1
@ -35,6 +38,20 @@ func (d *dataLockStatistics) AddCardAssEss(deparmentId string, addData AddQualEv
if departmentIdIntErr != nil { if departmentIdIntErr != nil {
departmentIdInt = 0 departmentIdInt = 0
} }
// var dimIdInt int64 = 0
//获取所属维度
// targetInfo, targetInfoErr := commonus.GetDutyClassInfo(targetInt)
targetInfo, targetInfoErr := commonus.GetTargetInfo(targetInt)
// jsonDim, _ := json.Marshal(targetInfo)
// fmt.Printf("dim---------------->%v\n", jsonDim)s
if targetInfoErr == true {
if dimensionInt == 0 {
dimensionInt = targetInfo.Dimension
}
}
addDepartDimension(addData.Group, strconv.FormatInt(dimensionInt, 10), addData.Dimension, 1)
var saveDataAry []assessmentmodel.QualitativeEvaluation var saveDataAry []assessmentmodel.QualitativeEvaluation
for _, v := range addData.EvaluationList { for _, v := range addData.EvaluationList {
var saveData assessmentmodel.QualitativeEvaluation var saveData assessmentmodel.QualitativeEvaluation
@ -55,7 +72,7 @@ func (d *dataLockStatistics) AddCardAssEss(deparmentId string, addData AddQualEv
// if targetSunIntErr == nil { // if targetSunIntErr == nil {
// saveData.TargetSun = targetSunInt // saveData.TargetSun = targetSunInt
// } // }
explainCont, explainErr := judgeDetails(addData.Target, v.Title, v.Content, v.DetailedTarget) explainCont, explainErr := judgeDetails(addData.Target, v.Title, v.Content, v.DetailedTarget, sunTargetCont.Id)
if explainErr == true { if explainErr == true {
saveData.DetailedTarget = explainCont.Id saveData.DetailedTarget = explainCont.Id
} }
@ -128,7 +145,15 @@ func judgeColumn(ascription, columId, title string) (content assessmentmodel.Qua
} }
//判断考核细则是否存在 //判断考核细则是否存在
func judgeDetails(ascription, title, explain, explainId string) (content assessmentmodel.DetailedTarget, isTrue bool) { /*
参数说明
@ascription 归属指标栏目
@title 指标细则
@explain 指标说明'
@explainId 指标明细ID
@sunTargetId 子栏目
*/
func judgeDetails(ascription, title, explain, explainId string, sunTargetId int64) (content assessmentmodel.DetailedTarget, isTrue bool) {
isTrue = false isTrue = false
if explainId != "" { if explainId != "" {
judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", explainId).First(&content).Error judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", explainId).First(&content).Error
@ -148,7 +173,7 @@ func judgeDetails(ascription, title, explain, explainId string) (content assessm
if ascriptionErr != nil { if ascriptionErr != nil {
ascriptionId = 0 ascriptionId = 0
} }
saveColum := assessmentmodel.DetailedTarget{Title: title, Content: explain, ParentId: ascriptionId, State: 1, AddTime: time.Now().Unix()} saveColum := assessmentmodel.DetailedTarget{Title: title, Content: explain, ParentId: ascriptionId, ParentIdSun: sunTargetId, State: 1, AddTime: time.Now().Unix()}
addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum).Error addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum).Error
if addErr != nil { if addErr != nil {
// fmt.Printf("echo --------------3---------->%v\n", saveColum.Id) // fmt.Printf("echo --------------3---------->%v\n", saveColum.Id)

10
gin_server_admin/api/v1/assessment/qualitative_evaluation.go

@ -33,10 +33,10 @@ func (d *DutyHandle) AddQualEval(c *gin.Context) {
response.Result(102, err, "请选择接受考核的部门!", c) response.Result(102, err, "请选择接受考核的部门!", c)
return return
} }
if requestData.Dimension == "" { // if requestData.Dimension == "" {
response.Result(102, err, "请选择考核维度", c) // response.Result(102, err, "请选择考核维度", c)
return // return
} // }
if requestData.Target == "" { if requestData.Target == "" {
response.Result(102, err, "请选择考核指标", c) response.Result(102, err, "请选择考核指标", c)
return return
@ -51,7 +51,7 @@ func (d *DutyHandle) AddQualEval(c *gin.Context) {
} }
var synergeticProcess dataLockStatistics var synergeticProcess dataLockStatistics
for _, deparmentId := range requestData.AcceptDepartmentId { for _, deparmentId := range requestData.AcceptDepartmentId {
addDepartDimension(requestData.Group, deparmentId, requestData.Dimension, 1)
syncProcess.Add(1) syncProcess.Add(1)
// go synergeticProcess.addQualEvalList(deparmentId, requestData) // go synergeticProcess.addQualEvalList(deparmentId, requestData)
go synergeticProcess.AddCardAssEss(deparmentId, requestData) go synergeticProcess.AddCardAssEss(deparmentId, requestData)

253
gin_server_admin/api/v1/assessment/set_evaluation_objectives.go

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

5
gin_server_admin/api/v1/assessment/target.go

@ -120,6 +120,10 @@ func (d *DutyHandle) GetTargetList(c *gin.Context) {
} }
outMapCont.Dimension = tg_val.Dimension outMapCont.Dimension = tg_val.Dimension
dimClass, dimClassErr := commonus.GetDutyClassInfo(tg_val.Dimension)
if dimClassErr == true {
outMapCont.DimensionName = dimClass.Title
}
outMapCont.Key = tg_val.Key outMapCont.Key = tg_val.Key
outMapCont.Report = tg_val.Report outMapCont.Report = tg_val.Report
if tg_val.Report != "" { if tg_val.Report != "" {
@ -344,6 +348,7 @@ func (d *DutyHandle) GetTarget(c *gin.Context) {
if systemEvalCont.VisibleRange != "" { if systemEvalCont.VisibleRange != "" {
systemEvalCont.VisibleRangeDepartMap = strings.Split(systemEvalCont.VisibleRange, ",") systemEvalCont.VisibleRangeDepartMap = strings.Split(systemEvalCont.VisibleRange, ",")
} }
systemEvalCont.DimensionIdStr = strconv.FormatInt(systemEvalCont.Dimension, 10)
response.Result(0, systemEvalCont, "数据获取成功!", c) response.Result(0, systemEvalCont, "数据获取成功!", c)
} }

2
gin_server_admin/api/v1/shiyan/shiyan.go

@ -83,7 +83,7 @@ func (s *ShiyanApi) DiGui(c *gin.Context) {
setid = ids.Id setid = ids.Id
} }
_, connn := commonus.GetOfficeWork(16118387069540343, setid) _, connn, _ := commonus.GetOfficeWork(16118387069540343, setid)
response.Result(0, connn, "查询成功", c) response.Result(0, connn, "查询成功", c)
return return
// var parentId []int64 // var parentId []int64

39
gin_server_admin/api/wechatapp/callback/apphandle.go

@ -5,6 +5,7 @@ import (
"encoding/xml" "encoding/xml"
"fmt" "fmt"
"strconv" "strconv"
"strings"
"time" "time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/commonus"
@ -51,7 +52,8 @@ func (a *CallBackApi) CallbackMessageApi(c *gin.Context) {
basicValueCallback.ToUserName = xmlMessageStr.ToUserName.Text basicValueCallback.ToUserName = xmlMessageStr.ToUserName.Text
basicValueCallback.Encrypt = xmlMessageStr.Encrypt.Text basicValueCallback.Encrypt = xmlMessageStr.Encrypt.Text
basicValueCallback.AgentID = xmlMessageStr.AgentID.Text basicValueCallback.AgentID = xmlMessageStr.AgentID.Text
basicValueCallback.DecryptMessage() msgStr := basicValueCallback.DecryptMessage()
c.String(200, msgStr)
} }
} }
@ -98,11 +100,12 @@ func (c *CallBackData) VerificationUrl() (msg string) {
} }
//解析消息结构 //解析消息结构
func (c *CallBackData) DecryptMessage() { func (c *CallBackData) DecryptMessage() (echoMsg string) {
wecahtCpt := WechatVerification() wecahtCpt := WechatVerification()
timestampStr := strconv.FormatInt(c.Timestamp, 10) timestampStr := strconv.FormatInt(c.Timestamp, 10)
reqData := []byte("<xml><ToUserName><![CDATA[" + c.ToUserName + "]]></ToUserName><Encrypt><![CDATA[" + c.Encrypt + "]]></Encrypt><AgentID><![CDATA[" + c.AgentID + "]]></AgentID></xml>") reqData := []byte("<xml><ToUserName><![CDATA[" + c.ToUserName + "]]></ToUserName><Encrypt><![CDATA[" + c.Encrypt + "]]></Encrypt><AgentID><![CDATA[" + c.AgentID + "]]></AgentID></xml>")
msg, cryptErr := wecahtCpt.DecryptMsg(c.MsgSignature, timestampStr, c.Nonce, reqData) msg, cryptErr := wecahtCpt.DecryptMsg(c.MsgSignature, timestampStr, c.Nonce, reqData)
// fmt.Printf("%v=====>%v=====>%v\n: ", c.ToUserName, c.Encrypt, c.AgentID) // fmt.Printf("%v=====>%v=====>%v\n: ", c.ToUserName, c.Encrypt, c.AgentID)
if nil != cryptErr { if nil != cryptErr {
fmt.Println("DecryptMsg fail", cryptErr) fmt.Println("DecryptMsg fail", cryptErr)
@ -129,8 +132,8 @@ func (c *CallBackData) DecryptMessage() {
/* /*
事件附属格式 事件附属格式
*/ */
EventProcessing(msgContent.Event, msg) echoMsg = EventProcessing(msgContent.Event, msg, c)
return
default: default:
} }
@ -150,11 +153,11 @@ func (c *CallBackData) DecryptMessage() {
if msgContent.Event != "LOCATION" { if msgContent.Event != "LOCATION" {
global.GVA_DB_WechatCallBack.Create(&callbackLog) global.GVA_DB_WechatCallBack.Create(&callbackLog)
} }
return
} }
//企业微信事件处理 //企业微信事件处理
func EventProcessing(event string, decryptMsg []byte) { func EventProcessing(event string, decryptMsg []byte, v *CallBackData) (msg string) {
var msgContent MsgContentMailList var msgContent MsgContentMailList
err := xml.Unmarshal(decryptMsg, &msgContent) err := xml.Unmarshal(decryptMsg, &msgContent)
if nil != err { if nil != err {
@ -183,10 +186,34 @@ func EventProcessing(event string, decryptMsg []byte) {
case "share_agent_change": //企业互联共享应用事件回调 case "share_agent_change": //企业互联共享应用事件回调
case "share_chain_change": //上下游共享应用事件回调 case "share_chain_change": //上下游共享应用事件回调
case "template_card_event": //模板卡片事件推送 case "template_card_event": //模板卡片事件推送
var msgContent TemplateCardPush
err := xml.Unmarshal(decryptMsg, &msgContent)
if nil != err {
fmt.Println("***********Unmarshal fail")
}
buttonClick := strings.Split(msgContent.EventKey, "_")
buttonClickNAme := "已批准"
if len(buttonClick) >= 3 {
if buttonClick[2] != "1" {
buttonClickNAme = "已驳回"
}
}
fmt.Printf("***********%v------------->%v------------->%v\n", buttonClick, buttonClick[2], msgContent)
xmlReply := fmt.Sprintf("<xml><ToUserName><![CDATA[%v]]></ToUserName><FromUserName><![CDATA[%v]]></FromUserName><CreateTime>%v</CreateTime><MsgType><![CDATA[update_button]]></MsgType><Button><ReplaceName><![CDATA[%v]]></ReplaceName></Button></xml>", msgContent.ToUsername, msgContent.FromUsername, msgContent.CreateTime, buttonClickNAme)
wecahtCpt := WechatVerification()
timestampStr := strconv.FormatInt(v.Timestamp, 10)
encryptMsg, cryptErr := wecahtCpt.EncryptMsg(xmlReply, timestampStr, v.Nonce)
if cryptErr == nil {
msg = string(encryptMsg)
} else {
msg = "25000"
}
templateEventPush(decryptMsg) templateEventPush(decryptMsg)
case "template_card_menu_event": //通用模板卡片右上角菜单事件推送 case "template_card_menu_event": //通用模板卡片右上角菜单事件推送
default: default:
} }
return
} }
//企业微信通讯录变更事件处理 //企业微信通讯录变更事件处理

44
gin_server_admin/api/wechatapp/callback/rationcallback.go

@ -16,25 +16,40 @@ import (
func (t *TemplateCardPush) ButtonTemplateCallBackHandleRation(orderId, clickEnter string) { func (t *TemplateCardPush) ButtonTemplateCallBackHandleRation(orderId, clickEnter string) {
buttonClickNAme := "已批准" buttonClickNAme := "已批准"
// buttonClickNAmeOther := "其他人已批准" // buttonClickNAmeOther := "其他人已批准"
//获取点击人信息
_, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername)
//更新同级别其他人按钮
_, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科)
if clickEnter == "1" { if clickEnter == "1" {
t.UpdateButton(t.FromUsername, buttonClickNAme) // t.UpdateButton(t.FromUsername, buttonClickNAme)
// t.UpdateButtonIng(butCallBackUser, buttonClickNAme)
} else { } else {
buttonClickNAme = "已驳回" buttonClickNAme = "已驳回"
// buttonClickNAmeOther = "其他人已驳回" // buttonClickNAmeOther = "其他人已驳回"
t.UpdateButton(t.FromUsername, buttonClickNAme) // t.UpdateButton(t.FromUsername, buttonClickNAme)
} }
//获取点击人信息 // //获取点击人信息
_, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername) // _, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername)
// //更新同级别其他人按钮
// _, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科)
userCallAry := strings.Split(butCallBackUser, "|")
t.OtherClickButton(userCallAry, buttonClickNAme)
fmt.Printf("OtherContent--------------------->%v------->%v------->%v\n", userContInfo, butCallBackUser, userCallAry)
var scoreFlowInfo assessmentmodel.FlowLog var scoreFlowInfo assessmentmodel.FlowLog
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`fl_key` = ?", orderId).First(&scoreFlowInfo).Error judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`fl_key` = ?", orderId).First(&scoreFlowInfo).Error
if judegFlowErr != nil { if judegFlowErr != nil {
_, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科) // _, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科)
userCallAry := strings.Split(butCallBackUser, "|") // userCallAry := strings.Split(butCallBackUser, "|")
t.OtherClickButton(userCallAry, buttonClickNAme) // t.OtherClickButton(userCallAry, buttonClickNAme)
return return
} }
if clickEnter == "1" { if clickEnter == "1" {
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 2) userKeyStr := strconv.FormatInt(userContInfo.Key, 10)
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 2, userKeyStr)
saveData := commonus.MapOut() saveData := commonus.MapOut()
saveData["fl_reply"] = 2 saveData["fl_reply"] = 2
saveData["fl_eite_time"] = time.Now().Unix() saveData["fl_eite_time"] = time.Now().Unix()
@ -88,14 +103,16 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleRation(orderId, clickEnte
twoLevelKeyValue = userWechat.Name twoLevelKeyValue = userWechat.Name
} }
twoLevelUserId := t.FromUsername twoLevelUserId := t.FromUsername
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId) // jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId)
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/quantitativeList?id=%v", orderId)
jumpUrlTitle := "查看详情" jumpUrlTitle := "查看详情"
sourceDesc := "通过" sourceDesc := "通过"
var sendTextMsg sendmessage.TextNoticeTemplateMedium var sendTextMsg sendmessage.TextNoticeTemplateMedium
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("2、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} else { } else {
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 2) userKeyStr := strconv.FormatInt(userContInfo.Key, 10)
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 2, userKeyStr)
saveData := commonus.MapOut() saveData := commonus.MapOut()
saveData["fl_reply"] = 2 saveData["fl_reply"] = 2
saveData["fl_eite_time"] = time.Now().Unix() saveData["fl_eite_time"] = time.Now().Unix()
@ -149,12 +166,13 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleRation(orderId, clickEnte
twoLevelKeyValue = userWechat.Name twoLevelKeyValue = userWechat.Name
} }
twoLevelUserId := t.FromUsername twoLevelUserId := t.FromUsername
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId) // jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId)
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/quantitativeList?id=%v", orderId)
jumpUrlTitle := "请前往重新提报!" jumpUrlTitle := "请前往重新提报!"
sourceDesc := "驳回" sourceDesc := "驳回"
var sendTextMsg sendmessage.TextNoticeTemplateMedium var sendTextMsg sendmessage.TextNoticeTemplateMedium
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("3、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} }
} }

74
gin_server_admin/api/wechatapp/callback/updatehandle.go

@ -68,10 +68,15 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
} }
//获取点击人信息 //获取点击人信息
userContInfoIstrue, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername) userContInfoIstrue, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername)
//更新同级别其他人按钮
_, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科)
userCallAry := strings.Split(butCallBackUser, "|")
t.OtherClickButton(userCallAry, buttonClickNAme)
var scoreFlowInfo assessmentmodel.ScoreFlow var scoreFlowInfo assessmentmodel.ScoreFlow
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", scoreFlowKey).First(&scoreFlowInfo).Error judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", scoreFlowKey).First(&scoreFlowInfo).Error
fmt.Printf("1@@@@%v\n", scoreFlowInfo) fmt.Printf("1@@@@%v\n", scoreFlowInfo)
if judegFlowErr != nil { if judegFlowErr == nil {
_, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科) _, butCallBackUser := commonus.GetSendMsgUser(16182159043990656, userContInfo.DepartmentId) //获取对应部门负责人(高科)
userCallAry := strings.Split(butCallBackUser, "|") userCallAry := strings.Split(butCallBackUser, "|")
t.OtherClickButton(userCallAry, buttonClickNAme) t.OtherClickButton(userCallAry, buttonClickNAme)
@ -118,6 +123,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
if len(flowLog) < 1 { if len(flowLog) < 1 {
return return
} }
userKeyStr := strconv.FormatInt(userContInfo.Key, 10)
sendUserList, _ := GetCaoZuoRen(flowLog[len(flowLog)-1].Step, scoreFlowInfo) sendUserList, _ := GetCaoZuoRen(flowLog[len(flowLog)-1].Step, scoreFlowInfo)
// fmt.Printf("1ssss@@@@%v\n", scoreFlowInfo) // fmt.Printf("1ssss@@@@%v\n", scoreFlowInfo)
fmt.Printf("45@@@@%v\n", flowLog[len(flowLog)-1].Step) fmt.Printf("45@@@@%v\n", flowLog[len(flowLog)-1].Step)
@ -129,7 +135,8 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
//是否需要整改 //是否需要整改
if scoreFlowInfo.Rectification == 1 { if scoreFlowInfo.Rectification == 1 {
keyNumber := commonus.GetFileNumberEs() keyNumber := commonus.GetFileNumberEs()
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 3)
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 3, userKeyStr)
_, sendUserList = commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科) _, sendUserList = commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科)
userAry := strings.Split(sendUserList, "|") userAry := strings.Split(sendUserList, "|")
var userKeyInt int64 = 0 var userKeyInt int64 = 0
@ -151,7 +158,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
return return
} }
keyNumber := commonus.GetFileNumberEs() keyNumber := commonus.GetFileNumberEs()
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 5) evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 5, userKeyStr)
_, sendUserListing := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科) _, sendUserListing := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科)
userAry := strings.Split(sendUserListing, "|") userAry := strings.Split(sendUserListing, "|")
var userKeyInt int64 = 0 var userKeyInt int64 = 0
@ -217,7 +224,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
return return
} }
keyNumber := commonus.GetFileNumberEs() keyNumber := commonus.GetFileNumberEs()
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 5) evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, keyNumber, 5, userKeyStr)
_, sendUserListing := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科) _, sendUserListing := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人(高科)
userAry := strings.Split(sendUserListing, "|") userAry := strings.Split(sendUserListing, "|")
var userKeyInt int64 = 0 var userKeyInt int64 = 0
@ -275,7 +282,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
// keyNumber := commonus.GetFileNumberEs() // keyNumber := commonus.GetFileNumberEs()
SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, scoreFlowInfo.DutyDepartment, userKeyInt, keyNumber, scoreFlowInfo.Key, recMeasCont.Id) SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, scoreFlowInfo.DutyDepartment, userKeyInt, keyNumber, scoreFlowInfo.Key, recMeasCont.Id)
case 5: case 5:
evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 1) evals.UpEvaluationProcessApproval(scoreFlowInfo.Key, 0, 0, 1, userKeyStr)
flowSaveData := commonus.MapOut() flowSaveData := commonus.MapOut()
flowSaveData["sf_reply"] = 3 flowSaveData["sf_reply"] = 3
flowSaveData["sf_eite_time"] = time.Now().Unix() flowSaveData["sf_eite_time"] = time.Now().Unix()
@ -318,7 +325,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
subTitleText := "考核部门" subTitleText := "考核部门"
keyNumber := commonus.GetFileNumberEs() keyNumber := commonus.GetFileNumberEs()
//发送整改通知 //发送整改通知
handleUrl := fmt.Sprintf("http://www.hxgk.group?orderid=%v", scoreFlowInfo.Key) handleUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", scoreFlowInfo.Key)
callbakcMsg, isTrueCall, callBackCont, sendTextMsg := sendmessage.SendMsgTxtPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, subtitle, handleUrl, scoreReason, subTitleText, scoreFlowInfo.PlusReduceScore, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, scoreFlowInfo.Score, keyNumber, "查看整改详情!") callbakcMsg, isTrueCall, callBackCont, sendTextMsg := sendmessage.SendMsgTxtPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, subtitle, handleUrl, scoreReason, subTitleText, scoreFlowInfo.PlusReduceScore, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, scoreFlowInfo.Score, keyNumber, "查看整改详情!")
fmt.Printf("流程结束:%v-----------%v----------->%v------》%v\n", string(callbakcMsg), isTrueCall, callBackCont, sendTextMsg) fmt.Printf("流程结束:%v-----------%v----------->%v------》%v\n", string(callbakcMsg), isTrueCall, callBackCont, sendTextMsg)
default: default:
@ -332,7 +339,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
case 2: case 2:
fmt.Printf("close==========2===============>\n") fmt.Printf("close==========2===============>\n")
evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 16118387069540343, 0, 1) evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 16118387069540343, 0, 1, userKeyStr)
//发送消息 //发送消息
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤
if sendUserIsTrue != true { if sendUserIsTrue != true {
@ -406,7 +413,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
sourceDesc := "驳回" sourceDesc := "驳回"
var sendTextMsg sendmessage.TextNoticeTemplateMedium var sendTextMsg sendmessage.TextNoticeTemplateMedium
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("4、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
case 3: case 3:
case 4: case 4:
buttonClickAry := strings.Split(t.EventKey, "_") buttonClickAry := strings.Split(t.EventKey, "_")
@ -421,7 +428,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
return return
} }
taskId := commonus.GetFileNumberEs() taskId := commonus.GetFileNumberEs()
evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 3) evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 3, userKeyStr)
//获取接收人是谁 第一责任人 //获取接收人是谁 第一责任人
var weChatStr []string var weChatStr []string
var divisResponInfo []assessmentmodel.DivisionResponsibilities var divisResponInfo []assessmentmodel.DivisionResponsibilities
@ -487,7 +494,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
jumpUrlTitle := "请前往处理被驳回的任务" jumpUrlTitle := "请前往处理被驳回的任务"
sourceDesc := "驳回" sourceDesc := "驳回"
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("5、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} else { } else {
fmt.Printf("未找到责任人:%v-----------%v-----\n", judegdivisErr, divisResponInfo) fmt.Printf("未找到责任人:%v-----------%v-----\n", judegdivisErr, divisResponInfo)
@ -496,7 +503,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
taskId := commonus.GetFileNumberEs() taskId := commonus.GetFileNumberEs()
buttonClickAry := strings.Split(t.EventKey, "_") buttonClickAry := strings.Split(t.EventKey, "_")
if len(buttonClickAry) < 4 { if len(buttonClickAry) < 4 {
evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 1) evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 1, userKeyStr)
//发送消息 //发送消息
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤
if sendUserIsTrue != true { if sendUserIsTrue != true {
@ -564,10 +571,10 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
sourceDesc := "驳回" sourceDesc := "驳回"
var sendTextMsg sendmessage.TextNoticeTemplateMedium var sendTextMsg sendmessage.TextNoticeTemplateMedium
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("6、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} else { } else {
if buttonClickAry[3] == "0" { if buttonClickAry[3] == "0" {
evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 1) evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 1, userKeyStr)
//发送消息 //发送消息
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤
if sendUserIsTrue != true { if sendUserIsTrue != true {
@ -635,7 +642,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
sourceDesc := "驳回" sourceDesc := "驳回"
var sendTextMsg sendmessage.TextNoticeTemplateMedium var sendTextMsg sendmessage.TextNoticeTemplateMedium
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("7、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} else { } else {
var recMeasCont assessmentmodel.RectificationMeasures var recMeasCont assessmentmodel.RectificationMeasures
judgeRecMeas := global.GVA_DB_Performanceappraisal.Where("`rm_id` = ?", buttonClickAry[3]).First(&recMeasCont).Error judgeRecMeas := global.GVA_DB_Performanceappraisal.Where("`rm_id` = ?", buttonClickAry[3]).First(&recMeasCont).Error
@ -643,7 +650,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
fmt.Printf("未知整改措施--->:%v\n", t.EventKey) fmt.Printf("未知整改措施--->:%v\n", t.EventKey)
return return
} }
evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 3) evals.UpEvaluationProcessReject(scoreFlowInfo.Key, 0, taskId, 3, userKeyStr)
//获取接收人是谁 第一责任人 //获取接收人是谁 第一责任人
var weChatStr []string var weChatStr []string
var divisResponInfo []assessmentmodel.DivisionResponsibilities var divisResponInfo []assessmentmodel.DivisionResponsibilities
@ -705,7 +712,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
jumpUrlTitle := "请前往处理被驳回的任务" jumpUrlTitle := "请前往处理被驳回的任务"
sourceDesc := "驳回" sourceDesc := "驳回"
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc) callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendNewsMsgText(sendUserList, strconv.FormatInt(taskId, 10), title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, jumpUrl, jumpUrlTitle, sourceDesc)
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont) fmt.Printf("8、更新发送信息返回:%v-----------%v----------->%v-----\n", string(callbakcMsg), isTrueCall, callBackCont)
} else { } else {
fmt.Printf("未找到责任人:%v-----------%v-----\n", judegdivisErr, divisResponInfo) fmt.Printf("未找到责任人:%v-----------%v-----\n", judegdivisErr, divisResponInfo)
@ -740,18 +747,27 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
//其他按钮处理 //其他按钮处理
func (t *TemplateCardPush) OtherClickButton(userAry []string, buttonClickNAmeOther string) { func (t *TemplateCardPush) OtherClickButton(userAry []string, buttonClickNAmeOther string) {
userInfoErr, userInfo := commonus.GetUesrContForWechatID(t.FromUsername) userInfoErr, userInfo := commonus.GetUesrContForWechatID(t.FromUsername)
fmt.Printf("OtherClick------------->%v------------>%v\n", userAry, userInfo)
var userAryList []string
if len(userAry) > 0 { if len(userAry) > 0 {
for _, v := range userAry { for _, v := range userAry {
if v != t.FromUsername { if v != t.FromUsername {
if userInfoErr == true { // if userInfoErr == true {
buttonClickNAmeOtherEs := fmt.Sprintf("%v%v", userInfo.Name, buttonClickNAmeOther) // // buttonClickNAmeOtherEs := fmt.Sprintf("%v%v", userInfo.Name, buttonClickNAmeOther)
t.UpdateButton(v, buttonClickNAmeOtherEs) // userAryList = append(userAryList, v)
} else { // // t.UpdateButton(v, buttonClickNAmeOtherEs)
t.UpdateButton(v, buttonClickNAmeOther) // } else {
// // t.UpdateButton(v, buttonClickNAmeOther)
// }
userAryList = append(userAryList, v)
} }
} }
buttonClickNAmeOtherEs := buttonClickNAmeOther
if userInfoErr == true {
buttonClickNAmeOtherEs = fmt.Sprintf("%v%v", userInfo.Name, buttonClickNAmeOther)
} }
// userAryListStr := strings.Join(userAryList, "|")
t.UpdateButtonIng(userAryList, buttonClickNAmeOtherEs)
} }
} }
@ -764,7 +780,19 @@ func (t *TemplateCardPush) UpdateButton(userOpenId, buttonName string) {
updateButtonNotClickable.ResponseCode = t.ResponseCode updateButtonNotClickable.ResponseCode = t.ResponseCode
updateButtonNotClickable.Button.ReplaceName = buttonName updateButtonNotClickable.Button.ReplaceName = buttonName
callbakcMsg, isTrueCall, callBackCont := updateButtonNotClickable.UpdateSendButtonMessage() callbakcMsg, isTrueCall, callBackCont := updateButtonNotClickable.UpdateSendButtonMessage()
fmt.Printf("更新发送信息返回:%v-----------%v----------->%v------》%v\n", string(callbakcMsg), isTrueCall, callBackCont, updateButtonNotClickable) fmt.Printf("9、手动更新发送信息返回:%v-----------%v----------->%v------》%v\n", string(callbakcMsg), isTrueCall, callBackCont, updateButtonNotClickable)
}
func (t *TemplateCardPush) UpdateButtonIng(userOpenId []string, buttonName string) {
var updateButtonNotClickable commonus.UpdateButtonNotClickable
// updateButtonNotClickable.Userids = append(updateButtonNotClickable.Userids, userOpenId)
updateButtonNotClickable.Userids = userOpenId
updateButtonNotClickable.Atall = 0
updateButtonNotClickable.Agentid = t.Agentid
updateButtonNotClickable.ResponseCode = t.ResponseCode
updateButtonNotClickable.Button.ReplaceName = buttonName
callbakcMsg, isTrueCall, callBackCont := updateButtonNotClickable.UpdateSendButtonMessage()
fmt.Printf("10、更新发送信息返回:%v-----------%v----------->%v------》%v\n", string(callbakcMsg), isTrueCall, callBackCont, updateButtonNotClickable)
} }
//获取操作人 //获取操作人

73
gin_server_admin/api/wechatapp/sendmessage/sendmsgHandle.go

@ -171,7 +171,78 @@ func SendButtonPublic(sendUserList, Title, Desc, subtitle, reason string, depart
sendTextMsg.TemplateCard.HorizontalContentList = htalConListStrMap sendTextMsg.TemplateCard.HorizontalContentList = htalConListStrMap
sendTextMsg.TemplateCard.CardAction.Type = 1 sendTextMsg.TemplateCard.CardAction.Type = 1
sendTextMsg.TemplateCard.CardAction.Url = fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId) // sendTextMsg.TemplateCard.CardAction.Url = fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId)
sendTextMsg.TemplateCard.CardAction.Url = fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderId)
// handleUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", keyNumber)
//按钮列表,列表长度不超过6(必填)
sendTextMsg.TemplateCard.ButtonList = buttonMap
send = sendTextMsg
callbakcMsg, isTrueCall, callBackCont = sendTextMsg.SendMessage("school")
return
}
//定量
func SendButtonPublicRation(sendUserList, Title, Desc, subtitle, reason string, departmentId, userKey, keyNumber, orderId int64, buttonMap []ButtonListtype) (callbakcMsg []byte, isTrueCall bool, callBackCont string, send ButtonNoticeTemplateMedium) {
var sendTextMsg ButtonNoticeTemplateMedium
sendTextMsg.Inset(sendUserList, "template_card", "button_interaction", keyNumber)
//获取考核详情
sendTextMsg.TemplateCard.MainTitle.Title = Title
sendTextMsg.TemplateCard.MainTitle.Desc = Desc
//引用文献样式
sendTextMsg.TemplateCard.QuoteArea.Type = 0
sendTextMsg.TemplateCard.QuoteArea.Title = subtitle
sendTextMsg.TemplateCard.QuoteArea.QuoteText = reason
var htalConListStrMap []HorizontalContentListType
var htalConListStrCon HorizontalContentListType
//二级普通文本,
sendTextMsg.TemplateCard.SubTitleText = "责任部门:"
execDerpatCont := ""
// execDerpatCont := "考核部门:"
execDerpatErr, execDerpat := commonus.GetBranchFactory(departmentId)
if execDerpatErr == true {
execDerpatCont = execDerpatCont + execDerpat.Name
}
htalConListStrCon.KeyName = execDerpatCont
//获取操作人
userFileStr := "wm_number,qywx_key,wx_key"
//操作人条件
userWherAry := commonus.MapOut()
// userWherAry["wm_key"] = "WoBenShanLiang_3" //"WoBenShanLiang_3"
userWherAry["wm_key"] = userKey
userConting, userIsTrue := commonus.GetUserInfoPublic(userFileStr, userWherAry)
if userIsTrue == true {
if userConting.WechatId != "" {
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userConting.WechatId)
if userWechatErr == true {
htalConListStrCon.Type = 3
htalConListStrCon.Value = userWechat.Name
htalConListStrCon.UserId = userConting.WechatId
// htalConListStrMap = append(htalConListStrMap, htalConListStrCon)
// sendTextMsg.TemplateCard.HorizontalContentList = htalConListStrMap
}
}
if userConting.WorkWechatId != "" {
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userConting.WorkWechatId)
if userWechatErr == true {
htalConListStrCon.Type = 3
htalConListStrCon.Value = userWechat.Name
htalConListStrCon.UserId = userConting.WorkWechatId
// htalConListStrMap = append(htalConListStrMap, htalConListStrCon)
// sendTextMsg.TemplateCard.HorizontalContentList = htalConListStrMap
}
}
}
htalConListStrMap = append(htalConListStrMap, htalConListStrCon)
sendTextMsg.TemplateCard.HorizontalContentList = htalConListStrMap
sendTextMsg.TemplateCard.CardAction.Type = 1
// sendTextMsg.TemplateCard.CardAction.Url = fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId)
sendTextMsg.TemplateCard.CardAction.Url = fmt.Sprintf("http://new.hxgk.group/#/quantitativeList?id=%v", orderId)
// handleUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", keyNumber)
//按钮列表,列表长度不超过6(必填) //按钮列表,列表长度不超过6(必填)
sendTextMsg.TemplateCard.ButtonList = buttonMap sendTextMsg.TemplateCard.ButtonList = buttonMap
send = sendTextMsg send = sendTextMsg

55
gin_server_admin/commonus/publichaneld.go

@ -1143,10 +1143,10 @@ func GetDimesionTargetWeight(setType, group, departmentID, dimensionId, targetId
} }
//根据部门获取内勤数据 //根据部门获取内勤数据
func GetOfficeWork(id, departmentId int64) (isTrue bool, roleUser []roleGroupBodyAry) { func GetOfficeWork(id, departmentId int64) (isTrue bool, roleUser []roleGroupBodyAry, roleGroup systemuser.RoleGroup) {
isTrue = false isTrue = false
departID := strconv.FormatInt(departmentId, 10) departID := strconv.FormatInt(departmentId, 10)
var roleGroup systemuser.RoleGroup // var roleGroup systemuser.RoleGroup
err := global.GVA_DB_Master.Where("`srg_id` = ?", id).First(&roleGroup).Error //16118387069540343 err := global.GVA_DB_Master.Where("`srg_id` = ?", id).First(&roleGroup).Error //16118387069540343
if err != nil { if err != nil {
return return
@ -1178,7 +1178,7 @@ func GetSendMsgUser(id, departmentId int64) (isTrue bool, userStr string) {
if err != true { if err != true {
return return
} }
err, roleGroup := GetOfficeWork(id, int64(departmentCont.WechatId)) err, roleGroup, _ := GetOfficeWork(id, int64(departmentCont.WechatId))
if err != true { if err != true {
return return
} }
@ -1274,26 +1274,26 @@ returnData
#detailedRulesInfo 明细说明 #detailedRulesInfo 明细说明
*/ */
func GetDutyRationtedItems(orderId string) (targettitle, detailedRulesTitle, detailedRulesInfo, unit string, flowContent assessmentmodel.FlowLog, isTrue bool) { func GetDutyRationtedItems(orderId string) (targettitle, detailedRulesTitle, detailedRulesInfo, unit string, flowContent assessmentmodel.FlowLog, isTrue bool) {
// flowContent, isTrue = GetFlowLog(orderId) flowContent, isTrue = GetFlowLog(orderId)
// if isTrue != true { if isTrue != true {
// return return
// } }
// qualEvalCont, qualEvalErr := GetQualitativeEvaluation(strconv.FormatInt(flowContent.EvaluationPlan, 10)) qualEvalCont, qualEvalErr := GetQualitativeEvaluation(flowContent.EvaluationPlan)
// if qualEvalErr != true { if qualEvalErr != true {
// return return
// } }
// unit = qualEvalCont.Unit unit = qualEvalCont.Unit
// targetCont, targetErr := GetTargetInfo(qualEvalCont.Target) targetCont, targetErr := GetTargetInfo(qualEvalCont.Target)
// if targetErr == true { if targetErr == true {
// targettitle = targetCont.Title targettitle = targetCont.Title
// unit = targetCont.Uniteing unit = targetCont.Uniteing
// } }
// detailedTargetCont, detailedTargetErr := GetDetailedTargetInfo(qualEvalCont.Target) detailedTargetCont, detailedTargetErr := GetDetailedTargetInfo(qualEvalCont.Target)
// if detailedTargetErr == true { if detailedTargetErr == true {
// detailedRulesTitle = detailedTargetCont.Title detailedRulesTitle = detailedTargetCont.Title
// detailedRulesInfo = detailedTargetCont.Content detailedRulesInfo = detailedTargetCont.Content
// } }
isTrue = true isTrue = true
return return
} }
@ -1308,3 +1308,14 @@ func GetRoleGroup(id int64) (roleGroup systemuser.RoleGroup, isTrue bool) {
isTrue = true isTrue = true
return return
} }
//根据userkey 用户获取信息
func GetWorkUser(key string) (userCont testpage.PersonalDetails, isTrue bool) {
isTrue = false
var userInfo testpage.WorkMan
userErr := global.GVA_DB_Master.Model(&userInfo).Select("worker_man.*,worker_man_data.*").Joins("left join worker_man_data on worker_man_data.wmd_key = worker_man.wm_key").Where("wm_key = ?", key).First(&userCont).Error
if userErr == nil {
isTrue = true
}
return
}

22
gin_server_admin/model/assessmentmodel/dutyclass.go

@ -8,6 +8,7 @@ type DutyClass struct {
Weight int `json:"weight" gorm:"column:weight;type:int(3) unsigned;default:0;not null;comment:权重比例"` Weight int `json:"weight" gorm:"column:weight;type:int(3) unsigned;default:0;not null;comment:权重比例"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态"` State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态"`
Sort int `json:"sort" gorm:"column:sort;type:int(5) unsigned;default:0;not null;comment:排序"`
} }
func (DutyClass *DutyClass) TableName() string { func (DutyClass *DutyClass) TableName() string {
@ -337,3 +338,24 @@ type FlowLogData struct {
func (FlowLogData *FlowLogData) TableName() string { func (FlowLogData *FlowLogData) TableName() string {
return "flow_log_data" return "flow_log_data"
} }
//定量考核目标设定
type QuantitativeConfig struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
DepartmentId int64 `json:"departmentid" gorm:"column:departmentid;type:bigint(20) unsigned;default:0;not null;comment:部门ID"`
Group int64 `json:"group" gorm:"column:group;type:bigint(20) unsigned;default:0;not null;comment:集团ID"`
Dimension int64 `json:"dimension" gorm:"column:dimension;type:bigint(20) unsigned;default:0;not null;comment:维度"`
Target int64 `json:"target" gorm:"column:target;type:bigint(20) unsigned;default:0;not null;comment:指标"`
TargetConfig int64 `json:"targetconfig" gorm:"column:targetconfig;type:bigint(20) unsigned;default:0;not null;comment:指标细则"`
Type int64 `json:"type" gorm:"column:type;type:tinyint(1) unsigned;default:0;not null;comment:1、年度;2、季度;3、月度"`
Year int64 `json:"year" gorm:"column:year;type:bigint(20) unsigned;default:0;not null;comment:年度"`
Timecopy int64 `json:"timecopy" gorm:"column:timecopy;type:int(3) unsigned;default:0;not null;comment:季度与月度辅助值"`
Zeroprize int64 `json:"zeroprize" gorm:"column:zeroprize;type:int(7) unsigned;default:0;not null;comment:零奖值"`
Allprize int64 `json:"allprize" gorm:"column:allprize;type:int(7) unsigned;default:0;not null;comment:全奖值"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
}
func (QuantitativeConfig *QuantitativeConfig) TableName() string {
return "quantitative_config"
}

8
gin_server_admin/router/assessment/assessmentrouter.go

@ -115,6 +115,8 @@ func (s *AssessmentRouter) InitAssessmentRouter(Router *gin.RouterGroup) {
dutyCodeRouter.POST("adddepartmentdutyinfo", authorityApi.AddDepartmentDutyInfo) // 部门新增考核列表 dutyCodeRouter.POST("adddepartmentdutyinfo", authorityApi.AddDepartmentDutyInfo) // 部门新增考核列表
dutyCodeRouter.POST("setevaluationobjectives", authorityApi.SetEvaluationObjectives) // 结算周期
} }
} }
@ -153,6 +155,8 @@ func (s *AssessmentRouter) NoInitDutyHandelRouter(Router *gin.RouterGroup) {
dutyIndexCodeRouter.POST("lookdepartmentassessinfo", authorityIndexApi.LookDepartmentAssessInfo) // 查看审批考核详细\ dutyIndexCodeRouter.POST("lookdepartmentassessinfo", authorityIndexApi.LookDepartmentAssessInfo) // 查看审批考核详细\
dutyIndexCodeRouter.GET("lookdepartmentassessinfo", authorityIndexApi.LookDepartmentAssessInfo) // 查看审批考核详细 dutyIndexCodeRouter.GET("lookdepartmentassessinfo", authorityIndexApi.LookDepartmentAssessInfo) // 查看审批考核详细
dutyIndexCodeRouter.POST("getteamlist", authorityIndexApi.GetTeamList) // 获取班组
} }
} }
@ -189,5 +193,9 @@ func (s *AssessmentRouter) InitEvaluationRouter(Router *gin.RouterGroup) {
dutyIndexCodeRouter.POST("qualitativeevalration", authorityIndexApi.QualitativeEvalRation) // 定量考核列表 dutyIndexCodeRouter.POST("qualitativeevalration", authorityIndexApi.QualitativeEvalRation) // 定量考核列表
dutyIndexCodeRouter.POST("addflowrationlog", authorityIndexApi.AddFlowRationLog) // 添加定量考核列表 dutyIndexCodeRouter.POST("addflowrationlog", authorityIndexApi.AddFlowRationLog) // 添加定量考核列表
dutyIndexCodeRouter.POST("lookdutkscoreflow", authorityIndexApi.LookDutkScoreFlow) // 查看定性考核审批列表
dutyIndexCodeRouter.POST("lookrationkscoreflow", authorityIndexApi.LookRationkScoreFlow) // 查看定量考核审批列表
dutyIndexCodeRouter.POST("lookquantitativeconfig", authorityIndexApi.LookQuantitativeConfig) // 查看定量考核目标设定
} }
} }

730
备份/department_target.go

@ -0,0 +1,730 @@
package assessment
import (
"fmt"
"strconv"
"strings"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/api/v1/archiveapi"
"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.QeId = strconv.FormatInt(v.Id, 10)
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
}
//
func (d *DutyHandle) DepartmentTaskList(c *gin.Context) {
var requestData DelQualitative
c.ShouldBindJSON(&requestData)
var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation
gormDb := global.GVA_DB_Performanceappraisal
if requestData.Type != 0 {
gormDb = gormDb.Where("`qe_type` = ?", requestData.Type)
}
if requestData.Group != "" {
gormDb = gormDb.Where("`qe_group` = ?", requestData.Group)
}
if requestData.DepartmentId != "" {
gormDb = gormDb.Where("`qe_accept_evaluation` = ?", requestData.DepartmentId)
}
if requestData.Dimension != "" {
gormDb = gormDb.Where("`qe_dimension` = ?", requestData.Dimension)
}
if requestData.Target != "" {
gormDb = gormDb.Where("`qe_target` = ?", requestData.Target)
}
if requestData.TargetSun != "" {
gormDb = gormDb.Where("`qe_target_sun` = ?", requestData.TargetSun)
}
listTargetErr := gormDb.Order("qe_group asc,qe_accept_evaluation asc,qe_dimension asc,qe_type asc,qe_target asc,qe_target_sun asc").Find(&qualitativeEvaluationAry).Error
if listTargetErr != nil || len(qualitativeEvaluationAry) < 1 {
response.Result(101, listTargetErr, "没有数据!", c)
return
}
var uotContAry []TargetContOutCont
for _, v := range qualitativeEvaluationAry {
var uotCont TargetContOutCont
uotCont.Id = strconv.FormatInt(v.Id, 10)
uotCont.Type = v.Type
uotCont.Group = strconv.FormatInt(v.Group, 10)
groupErr, groupCont := commonus.GetGroupCont(v.Group)
if groupErr == true {
uotCont.GroupNAme = groupCont.Name
}
uotCont.DepartmentId = strconv.FormatInt(v.AcceptEvaluation, 10)
deparConErr, deparConCont := commonus.GetBranchFactory(v.AcceptEvaluation)
if deparConErr == true {
uotCont.DepartmentName = deparConCont.Name
}
uotCont.Dimension = strconv.FormatInt(v.Dimension, 10)
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(v.Dimension)
if dutyClassErr == true {
uotCont.DimensionName = dutyClassCont.Title
}
uotCont.DimensionWeight = commonus.GetDimesionTargetWeight(1, v.Group, v.AcceptEvaluation, v.Dimension, 0)
uotCont.Target = strconv.FormatInt(v.Target, 10)
targetInfo, targetErr := commonus.GetTargetInfo(v.Target)
if targetErr == true {
uotCont.TargetName = targetInfo.Title
}
uotCont.TargetWeight = commonus.GetDimesionTargetWeight(1, v.Group, v.AcceptEvaluation, v.Dimension, v.Target)
uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10)
info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun)
if infoErr == true {
uotCont.TargetSunName = info.Title
}
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(v.DetailedTarget)
if dtIsTrue == true {
uotCont.DetailedTargetName = dtCont.Title
uotCont.Content = dtCont.Content
}
uotCont.Unit = v.Unit
uotCont.ReferenceScore = v.ReferenceScore
uotCont.Cycles = v.Cycles
uotCont.CycleAttres = v.CycleAttres
uotCont.State = v.State
userAry := strings.Split(v.Operator, ",")
uotCont.UserList = userAry
for _, u_v := range userAry {
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
uotCont.UserListAry = append(uotCont.UserListAry, userCont)
}
}
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
uotContAry = append(uotContAry, uotCont)
}
response.Result(0, uotContAry, "数据获取成功!", c)
}
//获取方案考核细则内容
func (d *DutyHandle) DetailsAssessmentScheme(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 systemBFCont assessmentmodel.QualitativeEvaluation
contErr := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", requestData.Id).First(&systemBFCont).Error
if contErr != nil {
response.Result(102, err, "数据获取失败!", c)
return
}
var uotCont TargetContOutCont
uotCont.Id = strconv.FormatInt(systemBFCont.Id, 10)
uotCont.Type = systemBFCont.Type
uotCont.Group = strconv.FormatInt(systemBFCont.Group, 10)
groupErr, groupCont := commonus.GetGroupCont(systemBFCont.Group)
if groupErr == true {
uotCont.GroupNAme = groupCont.Name
}
uotCont.DepartmentId = strconv.FormatInt(systemBFCont.AcceptEvaluation, 10)
deparConErr, deparConCont := commonus.GetBranchFactory(systemBFCont.AcceptEvaluation)
if deparConErr == true {
uotCont.DepartmentName = deparConCont.Name
}
uotCont.Dimension = strconv.FormatInt(systemBFCont.Dimension, 10)
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(systemBFCont.Dimension)
if dutyClassErr == true {
uotCont.DimensionName = dutyClassCont.Title
}
uotCont.Target = strconv.FormatInt(systemBFCont.Target, 10)
targetInfo, targetErr := commonus.GetTargetInfo(systemBFCont.Target)
if targetErr == true {
uotCont.TargetName = targetInfo.Title
}
uotCont.TargetSun = strconv.FormatInt(systemBFCont.TargetSun, 10)
info, infoErr := commonus.GetQualitativeTargetInfo(systemBFCont.TargetSun)
if infoErr == true {
uotCont.TargetSunName = info.Title
}
uotCont.DetailedTarget = strconv.FormatInt(systemBFCont.DetailedTarget, 10)
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(systemBFCont.DetailedTarget)
if dtIsTrue == true {
uotCont.DetailedTargetName = dtCont.Title
uotCont.Content = dtCont.Content
}
uotCont.Unit = systemBFCont.Unit
uotCont.ReferenceScore = systemBFCont.ReferenceScore
uotCont.Cycles = systemBFCont.Cycles
uotCont.CycleAttres = systemBFCont.CycleAttres
uotCont.State = systemBFCont.State
uotCont.UserList = strings.Split(systemBFCont.Operator, ",")
uotCont.DetailedTarget = strconv.FormatInt(systemBFCont.DetailedTarget, 10)
response.Result(0, uotCont, "数据获取成功!", c)
}
//删除考核细则方案内容
func (d *DutyHandle) DelDepartmentTaskList(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 oldCont assessmentmodel.QualitativeEvaluation
getOldContErr := global.GVA_DB_Performanceappraisal.Where("qe_id = ?", requestData.Id).Find(&oldCont).Error
if getOldContErr != nil {
response.Result(102, err, "没有此数据", c)
return
}
roleErr := global.GVA_DB_Performanceappraisal.Where("qe_id = ?", requestData.Id).Delete(&assessmentmodel.QualitativeEvaluation{}).Error
if roleErr != nil {
response.Result(102, err, "删除失败!", c)
return
} else {
var judgeNum int64
delGormDb := global.GVA_DB_Performanceappraisal
delGormDb = delGormDb.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_type` = ?", oldCont.Group, oldCont.AcceptEvaluation, oldCont.Dimension, oldCont.Type)
if oldCont.Type == 1 {
delGormDb = delGormDb.Where("`qe_target` = ? AND `qe_target_sun` = ? ", oldCont.Target, oldCont.TargetSun)
}
judgeErr := delGormDb.Pluck("COALESCE(COUNT(qe_id), 0) as countid", &judgeNum).Error
if judgeErr == nil && judgeNum == 0 && oldCont.Type == 1 {
delDimErr := global.GVA_DB_Performanceappraisal.Where("`ddw_type` = 1 AND `ddw_hierarchy` = 2 AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ? AND `ddw_target` = ?", oldCont.Group, oldCont.AcceptEvaluation, oldCont.Dimension, oldCont.Target).Delete(&assessmentmodel.DepartmentDimensionWeight{}).Error
if delDimErr == nil {
}
}
response.Result(0, err, "删除成功!", c)
}
}
//修改考核方案单条考核细则
func (d *DutyHandle) EiteOneQualitativeEvaluation(c *gin.Context) {
var requestData EiteOneQualEval
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()
saveData["qe_eitetime"] = time.Now().Unix()
if requestData.Unit != "" {
saveData["qe_unit"] = requestData.Unit
}
if requestData.ReferenceScore != 0 {
saveData["qe_reference_score"] = requestData.ReferenceScore
}
if requestData.Cycles != 0 {
saveData["qe_cycle"] = requestData.Cycles
}
if requestData.CycleAttres != 0 {
saveData["qe_cycleattr"] = requestData.CycleAttres
}
if requestData.State != 0 {
saveData["qe_state"] = requestData.State
}
if requestData.Content != "" {
saveData["qe_content"] = requestData.Content
}
if len(requestData.Operator) > 0 {
saveData["qe_operator"] = strings.Join(requestData.Operator, ",")
saveData["qe_department_id"] = strings.Join(GetDepartmentByUserBast(requestData.Operator), ",")
}
roleIsTrue, roleErr := eiteOneQuaEvaInfo(requestData.Id, saveData)
if roleIsTrue != true {
response.Result(106, roleErr, "编辑失败!", c)
} else {
response.Result(0, saveData, "编辑成功!", c)
}
}
//编辑职务数据处理
func eiteOneQuaEvaInfo(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) {
isTrue = false
infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` = ?", saveId).Updates(saveData).Error
if infoErr != nil {
return
}
isTrue = true
return
}
//获取定性考核指标对应的结构树
func (d *DutyHandle) QualEvalTargetTree(c *gin.Context) {
var requestData QualEvalTargetTreeDies
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if requestData.Group == "" {
response.Result(102, err, "数据获取失败!", c)
return
}
if requestData.DepartmentId == "" {
response.Result(103, err, "数据获取失败!", c)
return
}
if requestData.Dimension == "" {
response.Result(104, err, "数据获取失败!", c)
return
}
if requestData.Target == "" {
response.Result(105, err, "数据获取失败!", c)
return
}
var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation
gormDb := global.GVA_DB_Performanceappraisal
gormDb = gormDb.Where("`qe_group` = ?", requestData.Group)
gormDb = gormDb.Where("`qe_accept_evaluation` = ?", requestData.DepartmentId)
gormDb = gormDb.Where("`qe_dimension` = ?", requestData.Dimension)
gormDb = gormDb.Where("`qe_target` = ?", requestData.Target)
listTargetErr := gormDb.Order("qe_type asc,qe_group asc,qe_accept_evaluation asc,qe_dimension asc,qe_target asc,qe_target_sun asc").Find(&qualitativeEvaluationAry).Error
if listTargetErr != nil || len(qualitativeEvaluationAry) < 1 {
response.Result(101, listTargetErr, "没有数据!", c)
return
}
var uotContAry []TargetContOutCont
for _, v := range qualitativeEvaluationAry {
var uotCont TargetContOutCont
uotCont.Id = strconv.FormatInt(v.Id, 10)
uotCont.Type = v.Type
uotCont.Group = strconv.FormatInt(v.Group, 10)
groupErr, groupCont := commonus.GetGroupCont(v.Group)
if groupErr == true {
uotCont.GroupNAme = groupCont.Name
}
uotCont.DepartmentId = strconv.FormatInt(v.AcceptEvaluation, 10)
deparConErr, deparConCont := commonus.GetBranchFactory(v.AcceptEvaluation)
if deparConErr == true {
uotCont.DepartmentName = deparConCont.Name
}
uotCont.Dimension = strconv.FormatInt(v.Dimension, 10)
dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(v.Dimension)
if dutyClassErr == true {
uotCont.DimensionName = dutyClassCont.Title
}
uotCont.Target = strconv.FormatInt(v.Target, 10)
targetInfo, targetErr := commonus.GetTargetInfo(v.Target)
if targetErr == true {
uotCont.TargetName = targetInfo.Title
}
uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10)
info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun)
if infoErr == true {
uotCont.TargetSunName = info.Title
}
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(v.DetailedTarget)
if dtIsTrue == true {
uotCont.DetailedTargetName = dtCont.Title
uotCont.Content = dtCont.Content
}
uotCont.Unit = v.Unit
uotCont.ReferenceScore = v.ReferenceScore
uotCont.Cycles = v.Cycles
uotCont.CycleAttres = v.CycleAttres
uotCont.State = v.State
userAry := strings.Split(v.Operator, ",")
uotCont.UserList = userAry
for _, u_v := range userAry {
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
uotCont.UserListAry = append(uotCont.UserListAry, userCont)
}
}
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
uotContAry = append(uotContAry, uotCont)
}
response.Result(0, uotContAry, "数据获取成功!", c)
}
//部门考核(新)
func (d *DutyHandle) DepartmentListNew(c *gin.Context) {
var requestData rationSelect
c.ShouldBindJSON(&requestData)
//获取维度列表
var dutyClassAry []assessmentmodel.DutyClass
gromDb := global.GVA_DB_Performanceappraisal
gromDb = gromDb.Where("`state` = 1")
classErr := gromDb.Find(&dutyClassAry).Error
if classErr != nil {
response.Result(0, classErr, "未获取到数据", c)
return
}
var departAryList []departmentDutyNew
for _, v := range dutyClassAry {
childList := GetEvalTarget(v.Id, requestData.Group, requestData.DepartmentId)
if len(childList) > 0 {
var departCont departmentDutyNew
departCont.Id = strconv.FormatInt(v.Id, 10)
departCont.Name = v.Title
departCont.Child = GetEvalTarget(v.Id, requestData.Group, requestData.DepartmentId)
departAryList = append(departAryList, departCont)
}
}
response.Result(0, departAryList, "数据获取成功!", c)
}
//获取考核指标
func GetEvalTarget(dimId int64, group, departId string) (dimensionAry []taskDetailsLinkage) {
var contAry []assessmentmodel.EvaluationTarget
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Where("et_state = 1 AND `et_dimension` = ?", dimId)
if departId != "" {
sqlOrStr := fmt.Sprintf("FIND_IN_SET(%v,`et_relevant_departments`)", departId)
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 {
return
}
for _, v := range contAry {
var dimCont taskDetailsLinkage
dimCont.Id = strconv.FormatInt(v.Id, 10)
dimCont.Name = v.Title
dimCont.Content = ""
scoreVal := GetDepartDimTargetScore(group, departId, dimId, v.Id)
dimCont.ReferenceScore = scoreVal
if scoreVal > 0 {
dimCont.IsTrue = 2
} else {
dimCont.IsTrue = 1
}
dimCont.Unit = v.Uniteing
dimCont.Cycles = v.Cycles
dimCont.CycleAttres = v.CycleAttres
dimensionAry = append(dimensionAry, dimCont)
}
return
}
//计算该指定部门维度指标下的分值
func GetDepartDimTargetScore(group, depert string, dimeid, targetid int64) (scoreAll int64) {
err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND qe_state = 1", group, depert, dimeid, targetid).Pluck("COALESCE(SUM(qe_reference_score), 0) as rescore", &scoreAll).Error
if err != nil {
scoreAll = 0
}
return
}
//部门添加考核方案NEw
func (d *DutyHandle) AddDepartmentDutyInfo(c *gin.Context) {
var requestData AddDutyNewContGroup
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if requestData.Group == "" {
response.Result(102, err, "数据获取失败!", c)
return
}
groupId, groupErr := strconv.ParseInt(requestData.Group, 10, 64)
if groupErr == nil {
groupId = 0
}
if requestData.DepartmentId == "" {
response.Result(103, err, "数据获取失败!", c)
return
}
departId, departErr := strconv.ParseInt(requestData.DepartmentId, 10, 64)
if departErr != nil {
departId = 0
}
if len(requestData.Child) < 0 {
response.Result(104, err, "没有要添加的数据", c)
return
}
var saveDataAry []assessmentmodel.QualitativeEvaluation
fmt.Printf("1----------------------------->\n")
for _, v := range requestData.Child { //维度
for _, v_s := range v.Child { //指标
if v_s.Status == 1 {
var saveData assessmentmodel.QualitativeEvaluation
//指标ID
targetId, targetErr := strconv.ParseInt(v_s.Id, 10, 64)
if targetErr == nil {
fmt.Printf("2----------------------------->\n")
//获取指标内容
evalTarCont, evalTarContErr := commonus.GetTargetInfo(targetId)
if evalTarContErr == true {
fmt.Printf("3----------------------------->\n")
if evalTarCont.Type == 2 {
fmt.Printf("4----------------------------->\n")
saveData.Target = targetId
saveData.Operator = evalTarCont.Report
if evalTarCont.Report != "" {
var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",")
if len(userKeyAry) > 0 {
for _, u_v := range userKeyAry {
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_bf_id"}, map[string]interface{}{"wm_key": u_v})
if usErr == true {
departAry = append(departAry, strconv.FormatInt(usCont.DepartmentId, 10))
}
}
}
saveData.DepartmentId = strings.Join(departAry, ",")
}
//维度ID
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64)
if dimErr == nil {
saveData.Dimension = dimId
}
saveData.Type = evalTarCont.Type
saveData.Unit = v_s.Unit
saveData.ReferenceScore = v_s.ReferenceScore
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //departId
saveData.Cycles = v_s.Cycles
saveData.CycleAttres = v_s.CycleAttres
saveData.AcceptEvaluation = departId
saveData.Content = v_s.Content
saveDataAry = append(saveDataAry, saveData)
} else {
fmt.Printf("5----------------------------->\n")
//获取子栏目列表
var sunTarget []assessmentmodel.QualitativeTarget
sunErr := global.GVA_DB_Performanceappraisal.Where("q_parent_id = ?", targetId).Find(&sunTarget).Error
if sunErr == nil && len(sunTarget) > 0 {
fmt.Printf("6----------------------------->\n")
for _, s_d_v := range sunTarget {
fmt.Printf("7----------------------------->\n")
var detaTarget []assessmentmodel.DetailedTarget
detaiErr := global.GVA_DB_Performanceappraisal.Where("dt_parentid = ? AND dt_parentid_sun = ?", targetId, s_d_v.Id).Find(&detaTarget).Error
if detaiErr == nil && len(detaTarget) > 0 {
fmt.Printf("8----------------------------->\n")
for _, s_t_v := range detaTarget {
fmt.Printf("9----------------------------->\n")
saveData.Target = targetId
saveData.Operator = evalTarCont.Report
if evalTarCont.Report != "" {
var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",")
if len(userKeyAry) > 0 {
for _, u_v := range userKeyAry {
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_bf_id"}, map[string]interface{}{"wm_key": u_v})
if usErr == true {
departAry = append(departAry, strconv.FormatInt(usCont.DepartmentId, 10))
}
}
}
saveData.DepartmentId = strings.Join(departAry, ",")
}
//维度ID
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64)
if dimErr == nil {
saveData.Dimension = dimId
}
saveData.Type = evalTarCont.Type
saveData.DetailedTarget = s_t_v.Id
saveData.Unit = v_s.Unit
saveData.ReferenceScore = v_s.ReferenceScore
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //departId
saveData.Cycles = v_s.Cycles
saveData.CycleAttres = v_s.CycleAttres
saveData.AcceptEvaluation = departId
saveData.Content = v_s.Content
saveDataAry = append(saveDataAry, saveData)
}
}
}
} else {
fmt.Printf("10----------------------------->\n")
var detaTarget []assessmentmodel.DetailedTarget
detaiErr := global.GVA_DB_Performanceappraisal.Where("dt_parentid = ? AND dt_parentid_sun = 0", targetId).Find(&detaTarget).Error
if detaiErr == nil && len(detaTarget) > 0 {
fmt.Printf("12----------------------------->\n")
for _, s_t_v := range detaTarget {
fmt.Printf("13----------------------------->\n")
saveData.Target = targetId
saveData.Operator = evalTarCont.Report
if evalTarCont.Report != "" {
var departAry []string
userKeyAry := strings.Split(evalTarCont.Report, ",")
if len(userKeyAry) > 0 {
for _, u_v := range userKeyAry {
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_bf_id"}, map[string]interface{}{"wm_key": u_v})
if usErr == true {
departAry = append(departAry, strconv.FormatInt(usCont.DepartmentId, 10))
}
}
}
saveData.DepartmentId = strings.Join(departAry, ",")
}
//维度ID
dimId, dimErr := strconv.ParseInt(v.Id, 10, 64)
if dimErr == nil {
saveData.Dimension = dimId
}
saveData.Type = evalTarCont.Type
saveData.DetailedTarget = s_t_v.Id
saveData.Unit = v_s.Unit
saveData.ReferenceScore = v_s.ReferenceScore
saveData.State = 1
saveData.Addtime = time.Now().Unix()
saveData.Eitetime = time.Now().Unix()
saveData.Group = groupId //departId
saveData.Cycles = v_s.Cycles
saveData.CycleAttres = v_s.CycleAttres
saveData.AcceptEvaluation = departId
saveData.Content = v_s.Content
saveDataAry = append(saveDataAry, saveData)
}
}
}
}
}
}
}
}
}
if len(saveDataAry) <= 0 {
response.Result(105, saveDataAry, "没有要添加的数据", c)
return
}
addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error
if addErr != nil {
response.Result(106, len(saveDataAry), "数据添加失败", c)
return
}
if departId != 0 {
}
response.Result(0, saveDataAry, "数据添加成功", c)
}
Loading…
Cancel
Save