package evaluation import ( "encoding/json" "fmt" "strconv" "strings" "time" "gin_server_admin/api/v1/archiveapi" "gin_server_admin/api/wechatapp/sendmessage" "gin_server_admin/commonus" "gin_server_admin/global" "gin_server_admin/model/assessmentmodel" "gin_server_admin/model/common/response" "github.com/gin-gonic/gin" ) // 个人要执行的考核任务 func (e *EvaluationInterface) Index(c *gin.Context) { outPut := commonus.MapOut() response.Result(0, outPut, "用户端个人要执行的考核任务", c) } // 获取定性考核任务列表 func (e *EvaluationInterface) QualitativeEvaluation(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } // var qualEvaList []assessmentmodel.QualitativeEvaluation // var detailsId []int64 // listErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key).Group("qe_accept_evaluation").Find(&detailsId).Error // if listErr != nil || len(detailsId) < 1 { // response.Result(102, isTrue, "您没有要参加的考核项目!", c) // return // } // response.Result(0, detailsId, "用户端个人要执行的考核任务", c) var qualEvaList []assessmentmodel.QualitativeEvaluation listErr := global.GVA_DB_Performanceappraisal.Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key).Order("qe_type ASC,qe_group ASC,qe_accept_evaluation ASC,qe_dimension ASC,qe_target ASC,qe_target_sun ASC,qe_detailed_target ASC").Find(&qualEvaList).Error if listErr != nil || len(qualEvaList) < 1 { response.Result(102, isTrue, "您没有要参加的考核项目!", c) return } var uotContAry []TargetContOutCont for _, v := range qualEvaList { var uotCont TargetContOutCont uotCont.Id = strconv.FormatInt(v.Id, 10) uotCont.Type = v.Type uotCont.Group = strconv.FormatInt(v.Group, 10) where := commonus.MapOut() where["id"] = v.Group orgCont, _ := commonus.GetNewOrgCont(where, "id", "name") uotCont.GroupNAme = orgCont.Name whereDepart := commonus.MapOut() whereDepart["id"] = v.AcceptEvaluation orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name") uotCont.DepartmentName = orgContDepart.Name // 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 (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } var requestData addPlusOrMinusPoints err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(102, err, "数据获取失败!", c) return } if requestData.PlanId == "" { response.Result(103, requestData, "未知考核项目!请检查你的提交是否正确!", c) return } planIdInt, planIdIntErr := strconv.ParseInt(requestData.PlanId, 10, 64) if planIdIntErr != nil { response.Result(104, requestData, "未知考核项目!请检查你的提交是否正确!", c) return } //获取考核项目内容 var programme assessmentmodel.QualitativeEvaluation judgeProgramme := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", planIdInt).First(&programme).Error if judgeProgramme != nil { response.Result(105, programme, "未知考核项目!请检查你的提交是否正确!", c) return } if requestData.Type == 0 { response.Result(106, requestData, "请问您是要进行加分还是减分?请指定,谢谢!", c) return } if requestData.Score == "" { response.Result(107, requestData, "请您输入要操作的分数,谢谢!", c) return } if requestData.Reason == "" { response.Result(108, requestData, "请输入您的原因,谢谢!", c) return } if requestData.Addtime == "" { response.Result(108, requestData, "请输入您的检查时间,谢谢!", c) return } if requestData.Rectification == 0 { requestData.Rectification = 1 } // happenTimeStr := fmt.Sprintf("%v:00", requestData.Addtime) // happenTime := commonus.DateToTimeStamp(happenTimeStr) operationTime := time.Now().Unix() keyNumber := commonus.GetFileNumberEs() var addScore assessmentmodel.ScoreFlow addScore.EvaluationPlan = planIdInt addScore.PlusReduceScore = requestData.Type // addScore.Score = requestData.Score addScore.Key = keyNumber addScore.Reason = requestData.Reason addScore.Time = operationTime addScore.EiteTime = operationTime addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr == nil { addScore.EvaluationDepartment = departmentId } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr == nil { addScore.EvaluationUser = userKey } userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { addScore.EvaluationGroup = userGroup } addScore.Year = commonus.ComputingTime(operationTime, 1) addScore.Quarter = commonus.ComputingTime(operationTime, 2) addScore.Month = commonus.ComputingTime(operationTime, 3) addScore.Week = commonus.ComputingTime(operationTime, 4) enclosure, enclosureErr := json.Marshal(requestData.Enclosure) if enclosureErr == nil { addScore.Enclosure = string(enclosure) } addScore.DutyGroup = programme.Group addScore.DutyDepartment = programme.AcceptEvaluation addScore.Rectification = requestData.Rectification addScore.Reply = 1 addErr := global.GVA_DB_Performanceappraisal.Create(&addScore).Error //步进内容 if addErr != nil { response.Result(109, addErr, "数据写入失败", c) return } commonus.StepAddData(keyNumber, 0, 2, 1, 1, 2, 1, userCont.Key) // /* // @flowID 流程ID // @userKey 操作人key // @roleGroupId 角色组Id // @stepName 步骤名称 // @stepInt 当前是第几部 // @nextStep 下一步 // */ // var evalProCont assessmentmodel.EvaluationProcess // judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", keyNumber).First(&evalProCont).Error // if judgeErr != nil { // var flowStepAryMaps []FlowStep // var flowSteping FlowStep // flowSteping.Step = 1 // flowSteping.Key = strconv.FormatInt(keyNumber, 10) // flowSteping.State = 1 // flowSteping.RoleGroup = 16118387069540343 // flowSteping.NextStep = 1 // flowSteping.ClickName = userCont.Key // flowSteping.AddTime = time.Now().Unix() // flowStepAryMaps = append(flowStepAryMaps, flowSteping) // //fmt.Printf("%v------------------>%v\n", flowSteping, flowStepAryMaps) // evalProCont.OrderKey = keyNumber // evalProCont.Step = 1 // evalProCont.State = 1 // evalProCont.RoleGroup = 16118387069540343 // evalProCont.Time = time.Now().Unix() // flowStepJson, flowStepErr := json.Marshal(flowStepAryMaps) // if flowStepErr == nil { // evalProCont.Content = string(flowStepJson) // } // // //fmt.Printf("------------------>%v\n", evalProCont) // global.GVA_DB_Performanceappraisal.Create(&evalProCont) // } else { // var flowStepAry []FlowStep // var flowStepArys []FlowStep // json.Unmarshal([]byte(evalProCont.Content), &flowStepAry) // for _, f_v := range flowStepAry { // if f_v.Step == evalProCont.Step { // f_v.State = 2 // } // flowStepArys = append(flowStepArys, f_v) // } // var flowStep FlowStep // flowStep.Step = evalProCont.Step + 1 // flowStep.Key = strconv.FormatInt(keyNumber, 10) // flowStep.State = 1 // flowStep.RoleGroup = 16118387069540343 // flowStep.NextStep = 1 // flowStep.ClickName = userCont.Key // flowStep.AddTime = time.Now().Unix() // flowStepArys = append(flowStepArys, flowStep) // saveData := commonus.MapOut() // saveData["ep_time"] = time.Now().Unix() // saveData["ep_role_group"] = 16118387069540343 // flowStepJson, flowStepErr := json.Marshal(flowStepArys) // if flowStepErr == nil { // saveData["ep_cont"] = string(flowStepJson) // } // EiteDutiesInfoes(evalProCont.Id, saveData) // //fmt.Printf("----------3-------->%v\n", evalProCont) // } //给相关部门内勤发送消息。确定相关责任人 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, programme.AcceptEvaluation) //获取对应部门内勤 if sendUserIsTrue != true { response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) return } // response.Result(0, sendUserList, "数据写入成功", c) // return var mainTitle string = "" var mainTitleDesc string = "" if programme.Type == 1 { detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) if detailedTargetErr == true { if detailedTargetCont.Title != "" { mainTitle = detailedTargetCont.Title } else { mainTitle = requestData.Reason } if programme.Content == "" { mainTitleDesc = detailedTargetCont.Content } else { mainTitleDesc = programme.Content } } else { mainTitle = strconv.FormatInt(programme.DetailedTarget, 10) mainTitleDesc = programme.Content } } else { targetCont, targetErr := commonus.GetTargetInfo(programme.Target) if targetErr == true { mainTitle = targetCont.Title mainTitleDesc = programme.Content } else { mainTitleDesc = programme.Content } } // 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, "请前往处理") outData := commonus.MapOut() // outData["callbakcMsg"] = string(callbakcMsg) // outData["isTrueCall"] = isTrueCall // outData["callBackCont"] = callBackCont outData["addScore"] = addScore outData["mainTitle"] = mainTitle outData["mainTitleDesc"] = mainTitleDesc response.Result(0, outData, "数据写入成功", c) } // 添加责任人 func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } var requestData DivisionResponsibilityType err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(102, err, "数据获取失败!", c) return } if requestData.Id == "" { response.Result(103, requestData, "未知考核项目!请检查你的提交是否正确!", c) return } orderId, orderIdIntErr := strconv.ParseInt(requestData.Id, 10, 64) if orderIdIntErr != nil { response.Result(104, requestData, "未知考核项目!请检查你的提交是否正确!", c) return } if len(requestData.UserList) < 1 { response.Result(105, requestData, "请选择要考核的人员!", c) return } var scoreFlowInfo assessmentmodel.ScoreFlow judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", orderId).First(&scoreFlowInfo).Error if judegFlowErr != nil { response.Result(106, judegFlowErr, "未知考核项目!请检查你的提交是否正确!", c) return } //获取考核项目内容 var programme assessmentmodel.QualitativeEvaluation judgeProgramme := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", scoreFlowInfo.EvaluationPlan).First(&programme).Error if judgeProgramme != nil { response.Result(105, programme, "未知考核项目!请检查你的提交是否正确!", c) return } //给相关部门内勤发送消息。确定相关责任人 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门内勤 if sendUserIsTrue != true { response.Result(109, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) return } var reason string var saveDataAry []assessmentmodel.DivisionResponsibilities var saveDataErrAry []assessmentmodel.DivisionResponsibilities for _, v := range requestData.UserList { var saveDataCont assessmentmodel.DivisionResponsibilities saveDataCont.ScoreFlow = orderId saveDataCont.Type = v.Type departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr == nil { saveDataCont.EvaluationDepartment = departmentId } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr == nil { saveDataCont.EvaluationUser = userKey } userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { saveDataCont.EvaluationGroup = userGroup } //获取操作人 userFileStr := "wm_number,qywx_key,wx_key" //操作人条件 userWherAry := commonus.MapOut() // userWherAry["wm_key"] = "WoBenShanLiang_3" //"WoBenShanLiang_3" userWherAry["wm_key"] = v.UserKey userConting, userIsTrue := commonus.GetUserInfoPublic(userFileStr, userWherAry) saveDataCont.UserName = v.UserName saveDataCont.Weight = v.Weight saveDataCont.Time = time.Now().Unix() saveDataCont.EiteTime = time.Now().Unix() saveDataCont.DistributionUser = commonus.GetFileNumberEs() var userWechatErr bool var userWechat commonus.PublicUserCont if userIsTrue == true { if userConting.Wechat != "" { userWechatErr, userWechat = commonus.GetUesrContForWechatID(userConting.Wechat) } if userConting.WorkWechat != "" { userWechatErr, userWechat = commonus.GetUesrContForWechatID(userConting.WorkWechat) } } if userWechatErr == true { saveDataCont.UserKey = userWechat.Key saveDataCont.Group = userWechat.Group saveDataCont.Department = userWechat.DepartmentId saveDataCont.Tema = userWechat.Tema var zeren string switch v.Type { case 1: zeren = "主要责任人" case 2: zeren = "互保责任人" case 3: zeren = "责任班组" case 4: zeren = "责任班组长" case 5: zeren = "主管" case 6: zeren = "三大员" case 7: zeren = "厂长、主任" default: zeren = "主要责任人" } reason = reason + fmt.Sprintf("%v:%v 责任占比:%v\n", zeren, v.UserName, v.Weight) saveDataAry = append(saveDataAry, saveDataCont) } else { saveDataErrAry = append(saveDataErrAry, saveDataCont) } } if len(saveDataAry) < 1 { response.Result(107, saveDataAry, "请检查您提交的要考核人员名单是否正确!", c) return } global.GVA_DB_Performanceappraisal.Where("`df_sf_id` = ?", orderId).Delete(&assessmentmodel.DivisionResponsibilities{}) writeDataErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error if writeDataErr != nil { response.Result(108, writeDataErr, "数据写入失败", c) return } flowSaveData := commonus.MapOut() flowSaveData["sf_reply"] = 2 flowSaveData["sf_eite_time"] = time.Now().Unix() EiteScoreFlow(orderId, flowSaveData) // return keyNumber := commonus.GetFileNumberEs() var evalProCont assessmentmodel.EvaluationProcess judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderId).First(&evalProCont).Error // //fmt.Printf("VVVVVVVVVVVVVVVVVVVVVVVVV%v\n", judgeErr) if judgeErr != nil { var flowStepAry []FlowStep var flowStep FlowStep flowStep.Step = 1 flowStep.Key = strconv.FormatInt(keyNumber, 10) flowStep.State = 1 flowStep.RoleGroup = 16182159043990656 flowStep.NextStep = 2 flowStep.ClickName = userCont.Key flowStep.AddTime = time.Now().Unix() flowStepAry = append(flowStepAry, flowStep) evalProCont.OrderKey = orderId evalProCont.Step = 1 evalProCont.State = 1 evalProCont.Time = time.Now().Unix() evalProCont.RoleGroup = 16182159043990656 flowStepJson, flowStepErr := json.Marshal(flowStepAry) if flowStepErr == nil { evalProCont.Content = string(flowStepJson) } global.GVA_DB_Performanceappraisal.Create(&evalProCont) // //fmt.Printf("VVVVV--->%v\n", jsh) } else { var flowStepAry []FlowStep var flowStepArys []FlowStep json.Unmarshal([]byte(evalProCont.Content), &flowStepAry) for _, f_v := range flowStepAry { if f_v.Step == evalProCont.Step { f_v.State = 2 } flowStepArys = append(flowStepArys, f_v) } var flowStep FlowStep flowStep.Step = evalProCont.Step + 1 flowStep.Key = strconv.FormatInt(keyNumber, 10) flowStep.State = 1 flowStep.RoleGroup = 16182159043990656 flowStep.NextStep = 2 flowStep.ClickName = userCont.Key flowStep.AddTime = time.Now().Unix() flowStepArys = append(flowStepArys, flowStep) saveData := commonus.MapOut() saveData["ep_time"] = time.Now().Unix() saveData["ep_role_group"] = 16182159043990656 saveData["ep_step"] = evalProCont.Step + 1 flowStepJson, flowStepErr := json.Marshal(flowStepArys) if flowStepErr == nil { saveData["ep_cont"] = string(flowStepJson) } EiteDutiesInfoes(evalProCont.Id, saveData) } // response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) var mainTitle string = "责任划分" var mainTitleDesc string = "" mainTitle = scoreFlowInfo.Reason if scoreFlowInfo.PlusReduceScore == 1 { mainTitleDesc = "增加:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit } else { mainTitleDesc = "扣除:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit } // if programme.Type == 1 { // detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) // if detailedTargetErr == true { // if detailedTargetCont.Title != "" { // mainTitle = detailedTargetCont.Title // } else { // targetCont, targetErr := commonus.GetTargetInfo(programme.Target) // if targetErr == true { // mainTitle = targetCont.Title // } else { // mainTitle = strconv.FormatInt(programme.Target, 10) // } // } // if programme.Content == "" { // mainTitleDesc = detailedTargetCont.Content // } else { // mainTitleDesc = programme.Content // } // } else { // mainTitle = strconv.FormatInt(programme.DetailedTarget, 10) // mainTitleDesc = programme.Content // } // } else { // targetCont, targetErr := commonus.GetTargetInfo(programme.Target) // if targetErr == true { // mainTitle = targetCont.Title // mainTitleDesc = programme.Content // } else { // mainTitleDesc = programme.Content // } // } subtitle := "责任划分" departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { departmentId = 1 } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr != nil { userKey = 0 } var buttonMap []sendmessage.ButtonListtype var buttonCont sendmessage.ButtonListtype buttonCont.Type = 0 buttonCont.Text = "批准" buttonCont.Style = 1 buttonCont.Key = fmt.Sprintf("duty_%v_1", orderId) buttonMap = append(buttonMap, buttonCont) buttonCont.Type = 0 buttonCont.Text = "驳回" buttonCont.Style = 3 buttonCont.Key = fmt.Sprintf("duty_%v_2", orderId) buttonMap = append(buttonMap, buttonCont) callbakcMsg, isTrueCall, callBackCont, ss := sendmessage.SendButtonPublic(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, orderId, buttonMap) outData := commonus.MapOut() outData["callbakcMsg"] = string(callbakcMsg) outData["isTrueCall"] = isTrueCall outData["callBackCont"] = callBackCont outData["addScore"] = ss // outData["sendTextMsg"] = sendTextMsg response.Result(0, outData, "数据写入成功", c) } // 添加整改措施 func (e *EvaluationInterface) AddCorrectiveMeasures(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr != nil { response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr != nil { response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } var requestData CorrectiveMeasuresType err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(105, err, "数据获取失败!", c) return } if requestData.OrderId == "" { response.Result(106, err, "数据异常!", c) return } orderidval, orderidvalErr := strconv.ParseInt(requestData.OrderId, 10, 64) if orderidvalErr != nil { response.Result(107, isTrue, "数据异常!!", c) return } if requestData.Content == "" { response.Result(108, err, "请输入整改内容!", c) return } var addRecMeas assessmentmodel.RectificationMeasures addRecMeas.UserKey = userKey addRecMeas.Department = departmentId addRecMeas.Group = userGroup addRecMeas.OrderKey = orderidval addRecMeas.State = 1 addRecMeas.Time = time.Now().Unix() addRecMeas.EiteTime = time.Now().Unix() addRecMeas.Content = requestData.Content enclosure, enclosureErr := json.Marshal(requestData.Enclosure) if enclosureErr == nil { addRecMeas.Enclosure = string(enclosure) } addErr := global.GVA_DB_Performanceappraisal.Create(&addRecMeas).Error //步进内容 if addErr != nil { response.Result(109, addErr, "数据写入失败", c) return } keyNumber := commonus.GetFileNumberEs() UpEvaluationProcessApproval(orderidval, 16182159043990656, keyNumber, 4, userCont.Key) _, sendUserList := commonus.GetSendMsgUser(16182159043990656, departmentId) //获取对应部门负责人(高科) var scoreFlowInfo assessmentmodel.ScoreFlow judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", orderidval).First(&scoreFlowInfo).Error if judegFlowErr != nil { response.Result(110, err, "审批发送失败!", c) return } var programme assessmentmodel.QualitativeEvaluation judgeProgramme := global.GVA_DB_Performanceappraisal.Where("`qe_id` = ?", scoreFlowInfo.EvaluationPlan).First(&programme).Error if judgeProgramme != nil { return } var mainTitle string = "" if programme.DetailedTarget != 0 { detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) if detailedTargetErr == true { mainTitle = detailedTargetCont.Title } } else { detailedTargetCont, detailedTargetErr := commonus.GetTargetInfo(programme.Target) if detailedTargetErr == true { mainTitle = detailedTargetCont.Title } } mainTitleDesc := scoreFlowInfo.Reason subtitle := "整改内容:" reason := requestData.Content callbakcMsg, isTrueCall, callBackCont := SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, scoreFlowInfo.DutyDepartment, userKey, keyNumber, scoreFlowInfo.Key, addRecMeas.Id) outData := commonus.MapOut() outData["callbakcMsg"] = string(callbakcMsg) outData["isTrueCall"] = isTrueCall outData["callBackCont"] = callBackCont outData["addRecMeas"] = addRecMeas response.Result(0, outData, "数据写入成功", c) } /* 发送文本任务卡 @sendUserList 接收信息人员 @Title 一级标题,建议不超过36个字 @Desc 标题辅助信息,建议不超过44个字 @Unit 考核计量单位 @Reason 二级文本标题 @handleUrl 访问Key @Type 1:加分;2:减分 @departmentId 执行考核部门 @userKey 执行考核人 @Score 考核分值 @keyNumber 任务卡ID @scoreReason 二级文本描述 @subTitleText 下级 组件标题"考核上报部门:" @formId 表单ID */ func SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason string, departmentId, userKey, keyNumber, orderId, formId int64) (callbakcMsg []byte, isTrueCall bool, callBackCont string) { if subtitle == "" { subtitle = "整改内容" } var buttonMap []sendmessage.ButtonListtype var buttonCont sendmessage.ButtonListtype buttonCont.Type = 0 buttonCont.Text = "批准" buttonCont.Style = 1 buttonCont.Key = fmt.Sprintf("duty_%v_1_%v", orderId, formId) buttonMap = append(buttonMap, buttonCont) buttonCont.Type = 0 buttonCont.Text = "驳回" buttonCont.Style = 3 buttonCont.Key = fmt.Sprintf("duty_%v_2_%v", orderId, formId) buttonMap = append(buttonMap, buttonCont) callbakcMsg, isTrueCall, callBackCont, _ = sendmessage.SendButtonPublic(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, orderId, buttonMap) return } // 获取定量考核任务列表 func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } var requestData GetRationFlowLog err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(102, err, "数据获取失败!", c) return } //获取当月的起止时间 // startMonth, endMonth := commonus.GetAppointMonthStarAndEndTimeInt(time.Now().Unix()) //获取当月内所有的审批流程的部门及指标ID // var qualEvalFlowLogList QualEvalFlowLog // var evalId []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLog{}).Select("fl_evaluation_id").Where("fl_time BETWEEN ? AND ?", startMonth, endMonth).Find(&evalId) // var qualEvaList []assessmentmodel.QualitativeEvaluation // var detailsId []int64 // listErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key).Group("qe_accept_evaluation").Find(&detailsId).Error // if listErr != nil || len(detailsId) < 1 { // response.Result(102, isTrue, "您没有要参加的考核项目!", c) // return // } // response.Result(0, detailsId, "用户端个人要执行的考核任务", c) // var qualEvaList []assessmentmodel.QualitativeEvaluation var qualEvaList []assessmentmodel.QualitativeEvaluation gormDbIng := global.GVA_DB_Performanceappraisal gormDbIng = gormDbIng.Where("`qe_type` = 2 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key) //判断是否已经提交上个月的数据 // if len(evalId) > 0 { // gormDbIng = gormDbIng.Not(map[string]interface{}{"qe_id": evalId}) // } if requestData.GroupId != "" { gormDbIng = gormDbIng.Where("qe_group = ?", requestData.GroupId) } if requestData.DepartmentID != "" { gormDbIng = gormDbIng.Where("qe_accept_evaluation = ?", requestData.DepartmentID) } if requestData.TargetId != "" { gormDbIng = gormDbIng.Where("qe_target = ?", requestData.TargetId) } if requestData.Title != "" { gormDbIng = gormDbIng.Where("et_title LIKE ?", "%"+requestData.Title+"%") } listErr := gormDbIng.Order("qe_type ASC,qe_group ASC,qe_accept_evaluation ASC,qe_dimension ASC,qe_target ASC,qe_target_sun ASC,qe_detailed_target ASC").Find(&qualEvaList).Error if listErr != nil || len(qualEvaList) < 1 { response.Result(102, qualEvaList, "您没有要参加的考核项目!", c) return } var uotContAry []TargetContOutCont for _, v := range qualEvaList { // kickOut := 1 //踢出设置 var uotCont TargetContOutCont uotCont.Id = strconv.FormatInt(v.Id, 10) uotCont.Type = v.Type uotCont.Group = strconv.FormatInt(v.Group, 10) where := commonus.MapOut() where["id"] = v.Group orgCont, _ := commonus.GetNewOrgCont(where, "id", "name") uotCont.GroupNAme = orgCont.Name whereDepart := commonus.MapOut() whereDepart["id"] = v.AcceptEvaluation orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name") uotCont.DepartmentName = orgContDepart.Name uotCont.PlanVersionNumber = v.QualEvalId // 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.ScoringMethod = int64(targetInfo.ScoringMethod) } if v.TargetSun != 0 { uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10) info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun) if infoErr == true { uotCont.TargetSunName = info.Title } } if v.DetailedTarget != 0 { 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}) usCont, usErr := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": u_v}, "number", "name") if usErr == true { var userCont QualEvalArrt userCont.Id = u_v userCont.Name = usCont.Name uotCont.UserListAry = append(uotCont.UserListAry, userCont) } } uotCont.DimensionWeight, uotCont.TargetWeight = getPlanVersionWeghit(v.QualEvalId, strconv.FormatInt(v.Dimension, 10), strconv.FormatInt(v.Target, 10)) //获取目标设定 quanTitWhere := commonus.MapOut() quanTitWhere["group"] = v.Group quanTitWhere["departmentid"] = v.AcceptEvaluation quanTitWhere["dimension"] = v.Dimension quanTitWhere["target"] = v.Target if v.DetailedTarget != 0 { quanTitWhere["targetconfig"] = v.DetailedTarget } quanTitWhere["year"] = commonus.TimeStampToDate(time.Now().Unix(), 11) quanTitWhere["timecopy"] = AllZreoConfig(v.Cycles) quanTitCont := commonus.GetQuantitativeConfig(quanTitWhere) // jsonCont, _ := json.Marshal(quanTitCont) // qualEvaListjsonCont, _ := json.Marshal(v) // fmt.Printf("quanTitWhere----------->%v\n-------->%v\n-------->%v\n", quanTitWhere, string(jsonCont), string(qualEvaListjsonCont)) uotCont.ZeroPrize = strconv.FormatFloat(float64(quanTitCont.Zeroprize)/100, 'f', -1, 64) uotCont.AllPrize = strconv.FormatFloat(float64(quanTitCont.Allprize)/100, 'f', -1, 64) uotCont.CappingVal = quanTitCont.CappingVal / 100 //获取实际值 shiJiZhi := commonus.MapOut() shiJiZhi["fl_evaluation_user"] = userCont.Key shiJiZhi["fl_evaluation_department"] = userCont.Deparment shiJiZhi["fl_evaluation_group"] = userCont.Company operationTime := time.Now().Unix() switch v.Cycles { case 1: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) case 2: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) case 3: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) case 4: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) case 5: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) case 6: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) default: shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) } actualValue := commonus.GetTimeIntervalDuty(shiJiZhi, v.Id) //实际值 uotCont.Actual = strconv.FormatFloat(actualValue/100, 'f', -1, 64) chuShuVal := actualValue - quanTitCont.Zeroprize beiChuShuVal := quanTitCont.Allprize - quanTitCont.Zeroprize if beiChuShuVal > 0 { uotCont.ReachScore = chuShuVal / beiChuShuVal } else { uotCont.ReachScore = 0 } // judgeActualValue := commonus.GetTimeIntervalDutyJudge(shiJiZhi, v.Id) //判断当前条件下时候又审批中和审批通过的 // if judgeActualValue > 0 { // kickOut = 2 // } //计算达成率 if quanTitCont.Zeroprize == 0 && quanTitCont.Allprize == 0 { uotCont.Reach = "未设置目标值" } else { // divisor := actualValue - float64(quanTitCont.Zeroprize) //除数 dividend := quanTitCont.Allprize - quanTitCont.Zeroprize //被除数 if dividend == 0 { uotCont.Reach = "未设置目标值" } else { uotCont.Reach = fmt.Sprintf("(实际值-零奖值)/(全奖值-零奖值)") // reachValue := ((divisor / 100) / (float64(dividend) / 100)) * 100 // if reachValue < 0 { // uotCont.Reach = "0%" // } else { // reachValueStr := strconv.FormatFloat(reachValue, 'f', -1, 64) // uotCont.Reach = fmt.Sprintf("%v%", reachValueStr) // } } } uotCont.Reason = "" uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10) // if kickOut == 1 { // uotContAry = append(uotContAry, uotCont) // } uotContAry = append(uotContAry, uotCont) } response.Result(0, uotContAry, "用户端个人要执行的考核任务", c) } // 添加定量考核项目 func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr != nil { response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr != nil { response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } todaying := commonus.ComputingTime(time.Now().Unix(), 5) if todaying > 10 { // response.Result(1051, todaying, "不在可提交数据提时间期限内!不可提交数据。请每月10号前提交数据!。", c) // return } var requestData AddRationFlowLog err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(105, err, "数据获取失败!", c) return } if requestData.GroupId == "" { response.Result(106, err, "数据异常!", c) return } if requestData.DepartmentID == "" { response.Result(107, err, "数据异常!", c) return } if len(requestData.List) < 1 { response.Result(108, err, "没有要考核的项目", c) return } //判断是否已经添加的条件 existenceProess := commonus.MapOut() existenceProess["fl_planversion"] = requestData.PlanVersionNumber operationTime := time.Now().Unix() keyNumber := commonus.GetFileNumberEs() var flowLog assessmentmodel.FlowLog flowLog.Key = keyNumber flowLog.Time = time.Now().Unix() flowLog.EiteTime = time.Now().Unix() flowLog.PlanVersion = requestData.PlanVersionNumber if requestData.Addtime != "" { timeOccurrence := commonus.DateToTimeStamp(requestData.Addtime) //发生时间 flowLog.Year = commonus.ComputingTime(timeOccurrence, 1) flowLog.Quarter = commonus.ComputingTime(timeOccurrence, 2) flowLog.Month = commonus.ComputingTime(timeOccurrence, 3) flowLog.Week = commonus.ComputingTime(timeOccurrence, 4) flowLog.ToDay = commonus.ComputingTime(timeOccurrence, 5) existenceProess["fl_year"] = commonus.ComputingTime(timeOccurrence, 1) existenceProess["fl_quarter"] = commonus.ComputingTime(timeOccurrence, 2) existenceProess["fl_month"] = commonus.ComputingTime(timeOccurrence, 3) existenceProess["fl_week"] = commonus.ComputingTime(timeOccurrence, 4) existenceProess["fl_day"] = commonus.ComputingTime(timeOccurrence, 5) } else { lastMonth, _, _ := commonus.GetLastMonth() lastMonthInt, lastMonthErr := commonus.DateToTimeStampEs(fmt.Sprintf("%v-10 12:00:00", lastMonth)) if lastMonthErr == true { operationTime = lastMonthInt } flowLog.Year = commonus.ComputingTime(operationTime, 1) flowLog.Quarter = commonus.ComputingTime(operationTime, 2) flowLog.Month = commonus.ComputingTime(operationTime, 3) flowLog.Week = commonus.ComputingTime(operationTime, 4) flowLog.ToDay = commonus.ComputingTime(operationTime, 5) existenceProess["fl_year"] = commonus.ComputingTime(operationTime, 1) existenceProess["fl_quarter"] = commonus.ComputingTime(operationTime, 2) existenceProess["fl_month"] = commonus.ComputingTime(operationTime, 3) existenceProess["fl_week"] = commonus.ComputingTime(operationTime, 4) existenceProess["fl_day"] = commonus.ComputingTime(operationTime, 5) } flowLog.EvaluationDepartment = departmentId flowLog.EvaluationUser = userKey flowLog.EvaluationGroup = userGroup // existenceProess["fl_evaluation_department"] = departmentId // existenceProess["fl_evaluation_user"] = userKey // existenceProess["fl_evaluation_group"] = userGroup dutyGroup, dutyGroupErr := strconv.ParseInt(requestData.GroupId, 10, 64) if dutyGroupErr == nil { flowLog.DutyGroup = dutyGroup existenceProess["fl_duty_group"] = dutyGroup } departIdInt, departIdIntErr := strconv.ParseInt(requestData.DepartmentID, 10, 64) if departIdIntErr == nil { flowLog.DutyDepartment = departIdInt existenceProess["fl_duty_department"] = departIdInt } flowLog.Reply = 1 var evaluationIdStr string global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLog{}).Select("fl_evaluation_id").Where(existenceProess).First(&evaluationIdStr) var evaluationIdStrAry []string if evaluationIdStr != "" { evaluationIdStrAry = strings.Split(evaluationIdStr, ",") } var flowDataLogAry []assessmentmodel.FlowLogData var reason string var evaluationPlan []string //方案ID var yiTianJianMingc []string // jsonMapStr, _ := json.Marshal(requestData.List) json.Marshal(requestData.List) //fmt.Printf("OutJsonMap-----1------>%\n", string(jsonMapStr)) for i, v := range requestData.List { if len(evaluationIdStrAry) > 0 { if commonus.IsItTrueString(v.Id, evaluationIdStrAry) == false { var flowDataLog assessmentmodel.FlowLogData evaluationPlan = append(evaluationPlan, v.Id) evaluationPlanid, evaluationPlanidErr := strconv.ParseInt(v.Id, 10, 64) if evaluationPlanidErr == nil { flowDataLog.EvaluationPlan = evaluationPlanid } flowDataLog.Key = keyNumber flowDataLog.Score = commonus.GetDuyCycle(v.Actual, 100) flowDataLog.Content = v.Reason flowDataLog.Enclosure = strings.Join(v.Enclosure, ",") if v.ScoringMethod == 2 { flowDataLog.ScoringMethod = 2 flowDataLog.ScoringScore = v.ScoringScore } else { flowDataLog.ScoringMethod = 1 flowDataLog.ScoringScore = 0 } // flowDataLog.PlanVersion = v.PlanVersionNumber flowDataLog.Time = time.Now().Unix() targetInfo, targetInfoErr := commonus.GetQualitativeEvaluation(strconv.FormatInt(evaluationPlanid, 10)) tarInfo, _ := commonus.GetTargetInfo(targetInfo.Target) if i == 0 { if targetInfoErr == true { if v.Reason != "" { reason = fmt.Sprintf("%v :%v%v\n备注:%v", tarInfo.Title, v.Actual, v.Unit, v.Reason) } else { reason = fmt.Sprintf("%v :%v%v", tarInfo.Title, v.Actual, v.Unit) } } } else { if targetInfoErr == true { if v.Reason != "" { reason = fmt.Sprintf("%v\n%v :%v%v\n备注:%v", reason, tarInfo.Title, v.Actual, v.Unit, v.Reason) } else { reason = fmt.Sprintf("%v\n%v :%v%v", reason, tarInfo.Title, v.Actual, v.Unit) } } } flowDataLogAry = append(flowDataLogAry, flowDataLog) } else { yiTianJianMingc = append(yiTianJianMingc, v.TargetName) } } else { var flowDataLog assessmentmodel.FlowLogData evaluationPlan = append(evaluationPlan, v.Id) evaluationPlanid, evaluationPlanidErr := strconv.ParseInt(v.Id, 10, 64) if evaluationPlanidErr == nil { flowDataLog.EvaluationPlan = evaluationPlanid } flowDataLog.Key = keyNumber flowDataLog.Score = commonus.GetDuyCycle(v.Actual, 100) flowDataLog.Content = v.Reason flowDataLog.Enclosure = strings.Join(v.Enclosure, ",") if v.ScoringMethod == 2 { flowDataLog.ScoringMethod = 2 flowDataLog.ScoringScore = v.ScoringScore } else { flowDataLog.ScoringMethod = 1 flowDataLog.ScoringScore = 0 } flowDataLog.PlanVersion = requestData.PlanVersionNumber flowDataLog.Time = time.Now().Unix() targetInfo, targetInfoErr := commonus.GetQualitativeEvaluation(strconv.FormatInt(evaluationPlanid, 10)) tarInfo, _ := commonus.GetTargetInfo(targetInfo.Target) if i == 0 { if targetInfoErr == true { if v.Reason != "" { reason = fmt.Sprintf("%v :%v%v\n备注:%v", tarInfo.Title, v.Actual, v.Unit, v.Reason) } else { reason = fmt.Sprintf("%v :%v%v", tarInfo.Title, v.Actual, v.Unit) } } } else { if targetInfoErr == true { if v.Reason != "" { reason = fmt.Sprintf("%v\n%v :%v%v\n备注:%v", reason, tarInfo.Title, v.Actual, v.Unit, v.Reason) } else { reason = fmt.Sprintf("%v\n%v :%v%v", reason, tarInfo.Title, v.Actual, v.Unit) } } } flowDataLogAry = append(flowDataLogAry, flowDataLog) } } gromDb := global.GVA_DB_Performanceappraisal.Begin() flowLog.EvaluationPlan = strings.Join(evaluationPlan, ",") if len(flowDataLogAry) <= 0 { response.Result(0, yiTianJianMingc, "您的数据已经提交!请不要重复提交!", c) return } addFlowLogErr := gromDb.Create(&flowLog).Error addFlowLogDataErr := gromDb.Create(&flowDataLogAry).Error commonus.StepAddData(keyNumber, 16182159043990656, 2, 7, 2, 1, 1, userCont.Key) // response.Result(0, flowLog, "数据写入成功", c) // return //暂停审核方便录入测试数据 //fmt.Printf("%v---------------------->%v\n", addFlowLogErr, addFlowLogDataErr) if addFlowLogErr == nil && addFlowLogDataErr == nil { affairDbErr := gromDb.Commit().Error if affairDbErr == nil { //发送消息 sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16182159043990656, departIdInt) //获取对应部门负责人 if sendUserIsTrue != true { // response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) // return } // UpEvaluationProcessApproval(keyNumber, 16182159043990656, keyNumber, 1, userCont.Key) commonus.StepAddData(keyNumber, 16182159043990656, 2, 7, 2, 1, 1, userCont.Key) mainTitle := fmt.Sprintf("%v数据表", commonus.TimeStampToDate(operationTime, 10)) mainTitleDesc := "" subtitle := "数据详情:" // reason := requestData.Content // callbakcMsg, isTrueCall, callBackCont := SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, keyNumber, 0) var buttonMap []sendmessage.ButtonListtype var buttonCont sendmessage.ButtonListtype buttonCont.Type = 0 buttonCont.Text = "批准" buttonCont.Style = 1 buttonCont.Key = fmt.Sprintf("ration_%v_1", keyNumber) buttonMap = append(buttonMap, buttonCont) buttonCont.Type = 0 buttonCont.Text = "驳回" buttonCont.Style = 3 buttonCont.Key = fmt.Sprintf("ration_%v_2", keyNumber) buttonMap = append(buttonMap, buttonCont) // callbakcMsg, isTrueCall, callBackCont, sendText := sendmessage.SendButtonPublicRation(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, keyNumber, buttonMap) sendmessage.SendButtonPublicRation(sendUserList, mainTitle, mainTitleDesc, subtitle, reason, departmentId, userKey, keyNumber, keyNumber, buttonMap) //fmt.Printf("1、更新发送信息返回:%v-----------%v----------->%v-----%v\n", string(callbakcMsg), isTrueCall, callBackCont, sendText) response.Result(0, yiTianJianMingc, "数据提交成功!", c) } else { gromDb.Rollback() response.Result(118, yiTianJianMingc, "数据提交失败!", c) } } else { affairDbErr := gromDb.Rollback().Error if affairDbErr == nil { response.Result(119, yiTianJianMingc, "数据提交失败!", c) } else { response.Result(120, yiTianJianMingc, "数据提交失败!", c) } } } // 查看定性考核审批列表 func (e *EvaluationInterface) LookDutkScoreFlow(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, userCont, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } 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 titleVal string = "" //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 titleVal = dimInfo.Title } } if qualEvalCont.Target != 0 { target, targetErr := commonus.GetTargetInfo(qualEvalCont.Target) if targetErr == true { dutyCecorFlowInfo.Target = target.Title titleVal = target.Title } } if qualEvalCont.TargetSun != 0 { tarsun, tarsunErr := commonus.GetQualitativeTargetInfo(qualEvalCont.TargetSun) if tarsunErr == true { dutyCecorFlowInfo.TargetSun = tarsun.Title // titleVal = tarsun.Title } } //单位划分 var danWeStr string if qualEvalCont.DetailedTarget != 0 { detaTar, detaTarErr := commonus.GetDetailedTargetInfo(qualEvalCont.DetailedTarget) if detaTarErr == true { var danWeStrAry []string danWeStrAry = strings.Split(detaTar.Company, "/") if len(danWeStrAry) > 0 { danWeStr = danWeStrAry[0] } dutyCecorFlowInfo.DetailedTarget = detaTar.Title dutyCecorFlowInfo.Content = detaTar.Content // titleVal = detaTar.Title if detaTar.MaxScore != 0 && detaTar.MinScore != 0 { dutyCecorFlowInfo.Content = fmt.Sprintf("%v-%v%v", float64(detaTar.MinScore)/100, float64(detaTar.MaxScore)/100, detaTar.Company) } else if detaTar.MaxScore != 0 && detaTar.MinScore == 0 { dutyCecorFlowInfo.Content = fmt.Sprintf("%v%v", float64(detaTar.MaxScore)/100, detaTar.Company) } else if detaTar.MaxScore == 0 && detaTar.MinScore != 0 { dutyCecorFlowInfo.Content = fmt.Sprintf("%v%v", float64(detaTar.MinScore)/100, detaTar.Company) } else { dutyCecorFlowInfo.Content = "未设置标准。" } } } fmt.Printf("7-------------------->%v\n", danWeStr) dutyCecorFlowInfo.Reason = addScore.Reason if addScore.Enclosure != "" { var fujian []EnclosureFormat json.Unmarshal([]byte(addScore.Enclosure), &fujian) dutyCecorFlowInfo.Enclosure = fujian // fmt.Printf("FileType----------------->%v------------->%v\n", jsonerr, addScore.Enclosure) // enclosure, enclosureErr := json.Marshal(addScore.Enclosure) // if enclosureErr == nil { // dutyCecorFlowInfo.Enclosure = string(enclosure) //附件 // } } // dutyCecorFlowInfo.Enclosure = //分数 sendScore := addScore.Score * int64(addScore.Count) if addScore.PlusReduceScore == 1 { dutyCecorFlowInfo.LanMuName = "考核加分" // dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("%v%v\n", float64(sendScore)/100, danWeStr) dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("%v\n", float64(sendScore)/100) } else { dutyCecorFlowInfo.LanMuName = "考核减分" // dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("考核减%v%v\n", float64(sendScore)/100, danWeStr) dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("%v\n", float64(sendScore)/100) } // 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) divBilInfo.Weight = d_v.Weight / 100 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) if r_v.Enclosure != "" && r_v.Enclosure != "null" { json.Unmarshal([]byte(r_v.Enclosure), &recMeasInfo.Enclosure) } 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 { fmt.Printf("evalProInfo.NextExecutor------->%v-------》userCont.Key------->%v\n", evalProInfo.NextExecutor, userCont.Key) dutyCecorFlowInfo.IsSet = 2 isSetUser := strings.Split(evalProInfo.NextExecutor, ",") if len(isSetUser) > 0 { if commonus.IsItTrueString(userCont.Key, isSetUser) == true { dutyCecorFlowInfo.IsSet = 1 } } 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) bf, bfErr := commonus.GetNewOrgCont(workUser.MainDeparment) //fmt.Printf("9-----------4-----3---->%v\n", bfErr) if bfErr == nil { getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo := commonus.GetOfficeWork(fw_v.RoleGroup, int64(bf.WechatOrganizationId)) //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) } } gErrs, groupInfos := commonus.GetGroupCont(clickUserInfo.Group) if gErrs == true { caoZuoRenInfnfo.GroupName = groupInfos.Name } caoZuoRenInfnfo.DepartmentName = clickUserInfo.DepartmentName caoZuoRenInfnfo.WorkShopName = clickUserInfo.WorkshopName caoZuoRenInfnfo.Postname = clickUserInfo.PostName caoZuoRenInfnfo.TeamName = clickUserInfo.TemaName caoZuoRenInfnfo.Icon = clickUserInfo.Icon 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) } } } //流程全面 var flowAllMapList []commonus.FlowAllMap // fmt.Printf("evalProInfo.NextContent----------->%v\n", evalProInfo.NextContent) jsonFlowErrers := json.Unmarshal([]byte(evalProInfo.NextContent), &flowAllMapList) // fmt.Printf("flowAllMapList----------->%v\n", flowAllMapList) if jsonFlowErrers == nil { dutyCecorFlowInfo.FlowMapAll = flowAllMapList } // fmt.Printf("flowAllMapList----------->%v\n", dutyCecorFlowInfo.FlowMapAll) } var flowLogList []assessmentmodel.AssessmentLogIng flowLogErr := global.GVA_DB_Performanceappraisal.Where("al_order_id = ?", requestData.Id).Order("al_id ASC").Find(&flowLogList).Error if flowLogErr == nil { for flli, fllv := range flowLogList { var flowListCont FlowContLog if fllv.DutyList == "" && flli == 0 { flowListCont.Content = "创建申请" } else { flowListCont.Content = fllv.DutyList } flowListCont.TimeVal = commonus.TimeStampToDate(fllv.ExecutorTime, 6) userFlowCont, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": fllv.ExecutorUser}) flowListCont.Name = userFlowCont.Name flowListCont.Icon = userFlowCont.Icon gorupCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": fllv.ExecutorDepart}, "`name`") flowListCont.DepartmentName = gorupCont.Name dutyCecorFlowInfo.ApprovalRecord = append(dutyCecorFlowInfo.ApprovalRecord, flowListCont) } } titlekUserInfo, _ := commonus.GetWorkUser(strconv.FormatInt(addScore.EvaluationUser, 10)) // titleStr := fmt.Sprintf("%v提交%v考核数据 %v", titlekUserInfo.Name, titleVal, commonus.TimeStampToDate(addScore.HappenTime,6)) BranchInfo, dErr := commonus.GetNewOrgCont(addScore.DutyDepartment, "name") if dErr == nil { dutyCecorFlowInfo.Title = fmt.Sprintf("%v提交%v%v考核数据 %v", titlekUserInfo.Name, BranchInfo.Name, titleVal, commonus.TimeStampToDate(addScore.HappenTime, 6)) } else { dutyCecorFlowInfo.Title = fmt.Sprintf("%v提交%v考核数据 %v", titlekUserInfo.Name, titleVal, commonus.TimeStampToDate(addScore.HappenTime, 6)) } response.Result(0, dutyCecorFlowInfo, "获取成功", c) } // 查看定量考核列表 func (d *EvaluationInterface) LookRationkScoreFlow(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, userCont, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } 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 flowLogInfo assessmentmodel.FlowLog getErrs := global.GVA_DB_Performanceappraisal.Where("`fl_key` = ?", requestData.Id).First(&flowLogInfo).Error var planVersioCont assessmentmodel.PlanVersio global.GVA_DB_Performanceappraisal.Where("`key` = ?", flowLogInfo.PlanVersion).First(&planVersioCont) var planVersioInfo []AddDutyNewCont if planVersioCont.Content != "" { json.Unmarshal([]byte(planVersioCont.Content), &planVersioInfo) // jsonErr := json.Unmarshal([]byte(planVersioCont.Content), &planVersioInfo) // if jsonErr == nil { // for _, v := range planVersioInfo { // for _, cv := range v.Child { // if cv.Id == strconv.FormatInt(planVersioCont.Id, 10) { // targetScore = cv.ReferenceScore // } // } // } // } } // var flowLogInfo var outList []RationOutStruct for _, v := range flowDataLog { var targetScore int64 = 0 var outContt RationOutStruct outContt.Id = strconv.FormatInt(v.Id, 10) outContt.FlowId = strconv.FormatInt(v.Key, 10) targetCont, targetContErr := commonus.LookRationInfo(v.EvaluationPlan) if targetContErr == true { outContt.Title = targetCont.Title outContt.Unit = targetCont.Unit outContt.Cycles = targetCont.Cycles outContt.CycleAttres = targetCont.CycleAttres var monthQues int64 = 1 switch targetCont.Cycles { case 5: monthQues = flowLogInfo.Quarter case 6: monthQues = 1 default: monthQues = flowLogInfo.Month } if len(planVersioInfo) > 0 { for _, pviv := range planVersioInfo { for _, pvivcv := range pviv.Child { if pvivcv.Id == strconv.FormatInt(targetCont.Target, 10) { targetScore = pvivcv.ReferenceScore } } } } outContt.Weight = float64(targetScore) //获取指标 var tarGetId int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target").Where("`qe_id` = ?", v.EvaluationPlan).First(&tarGetId) // outContt.Actual, outContt.AllPrize, outContt.ZeroPrize, outContt.CappingVal, outContt.Achievement = GetQuantitativeConfig(targetScore, float64(v.Score), strconv.FormatInt(flowLogInfo.DutyGroup, 10), strconv.FormatInt(flowLogInfo.DutyDepartment, 10), strconv.FormatInt(targetCont.Dimension, 10), strconv.FormatInt(tarGetId, 10), strconv.FormatInt(targetCont.DetailedTarget, 10), flowLogInfo.Year, monthQues) // targetScore = v.Score outContt.Actual, outContt.AllPrize, outContt.ZeroPrize, outContt.CappingVal, outContt.Achievement = GetQuantitativeConfig(targetScore, float64(v.Score), strconv.FormatInt(flowLogInfo.DutyGroup, 10), strconv.FormatInt(flowLogInfo.DutyDepartment, 10), strconv.FormatInt(targetCont.Dimension, 10), strconv.FormatInt(tarGetId, 10), strconv.FormatInt(targetCont.DetailedTarget, 10), flowLogInfo.Year, monthQues, 2) } 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 flowAllMapList []commonus.FlowAllMap 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) var isShenPi int = 2 if gerEvalErr == nil { var flowStepAryMaps []FlowStep jsonFlowErr := json.Unmarshal([]byte(evalProInfo.Content), &flowStepAryMaps) //fmt.Printf("9-----------2--------->%v\n", jsonFlowErr) 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) bf, bfErr := commonus.GetNewOrgCont(workUser.MainDeparment) // //fmt.Printf("9-----------4-----3---->%v\n", bfErr) if bfErr == nil { getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo := commonus.GetOfficeWork(fw_v.RoleGroup, int64(bf.WechatOrganizationId)) // //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) // jjsk, _ := json.Marshal(clickUserInfo) // //fmt.Printf("9-----------4--------->%v-->%v\n", string(jjsk), clickUserInfo.Key) 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) } } gErrs, groupInfos := commonus.GetGroupCont(clickUserInfo.Group) if gErrs == true { caoZuoRenInfnfo.GroupName = groupInfos.Name } caoZuoRenInfnfo.DepartmentName = clickUserInfo.DepartmentName caoZuoRenInfnfo.WorkShopName = clickUserInfo.WorkshopName caoZuoRenInfnfo.Postname = clickUserInfo.PostName caoZuoRenInfnfo.TeamName = clickUserInfo.TemaName caoZuoRenInfnfo.Icon = clickUserInfo.Icon 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) } } } //流程图全面 // flowAllMapList if evalProInfo.NextContent != "" { jsonFlowErr := json.Unmarshal([]byte(evalProInfo.NextContent), &flowAllMapList) if jsonFlowErr == nil { } } // fmt.Printf("evalProInfo.NextExecutor-------------->%v\n", evalProInfo.NextExecutor) if evalProInfo.NextExecutor != "" { zhiXingRenAry := strings.Split(evalProInfo.NextExecutor, ",") if commonus.IsItTrueString(userCont.Key, zhiXingRenAry) == true { isShenPi = 1 } } } outListMap := commonus.MapOut() outListMap["List"] = outList outListMap["flowLog"] = flowLogList outListMap["flowall"] = flowAllMapList outListMap["title"] = "" outListMap["isset"] = isShenPi outListMap["orderid"] = requestData.Id if getErrs == nil { titlekUserInfo, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": flowLogInfo.EvaluationUser}, "`name`") // titlekUserInfo, _ := commonus.GetWorkUser(strconv.FormatInt(flowLogInfo.EvaluationUser, 10)) titleStr := fmt.Sprintf("%v提交的", titlekUserInfo.Name) // gErr, groupInfo := commonus.GetGroupCont(flowLogInfo.DutyGroup) groupInfo, gErr := commonus.GetNewOrgCont(flowLogInfo.DutyGroup) if gErr == nil { outListMap["groupname"] = groupInfo.Name } else { outListMap["groupname"] = "" } // dErr, BranchInfo := commonus.GetBranchFactory(flowLogInfo.DutyDepartment) BranchInfo, dErr := commonus.GetNewOrgCont(flowLogInfo.DutyDepartment) if dErr == nil { outListMap["departmentname"] = BranchInfo.Name titleStr = fmt.Sprintf("%v%v", titleStr, BranchInfo.Name) } else { outListMap["departmentname"] = "" } titleStr = fmt.Sprintf("%v%v年%v月定量考核数据", titleStr, flowLogInfo.Year, flowLogInfo.Month) outListMap["title"] = titleStr } var flowLogListes []assessmentmodel.AssessmentLogIng var approvalRecord []FlowContLog flowLogErr := global.GVA_DB_Performanceappraisal.Where("al_order_id = ?", requestData.Id).Order("al_id ASC").Find(&flowLogListes).Error if flowLogErr == nil { for flli, fllv := range flowLogListes { var flowListCont FlowContLog if fllv.DutyList == "" && flli == 0 { flowListCont.Content = "创建申请" } else { flowListCont.Content = fllv.DutyList } flowListCont.TimeVal = commonus.TimeStampToDate(fllv.ExecutorTime, 6) userFlowCont, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": fllv.ExecutorUser}) flowListCont.Name = userFlowCont.Name flowListCont.Icon = userFlowCont.Icon gorupCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": fllv.ExecutorDepart}, "`name`") flowListCont.DepartmentName = gorupCont.Name approvalRecord = append(approvalRecord, flowListCont) } } outListMap["flowLogList"] = approvalRecord response.Result(0, outListMap, "查询成功", c) } // 获取权重 func getPlanVersionWeghit(planKey, dimensionId, targetId string) (dimensionIdWeghit, targetIdWeghit int64) { var planVersionCont assessmentmodel.PlanVersio err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Select("`content`").Where("`key` = ?", planKey).First(&planVersionCont).Error if err != nil { return } var planVersioInfo []AddDutyNewCont jsonErr := json.Unmarshal([]byte(planVersionCont.Content), &planVersioInfo) if jsonErr != nil { return } for _, v := range planVersioInfo { if v.Id == dimensionId { dimensionIdWeghit = int64(v.ZhiFraction) for _, cv := range v.Child { if cv.Id == targetId { targetIdWeghit = cv.ReferenceScore } } } } return } // 新查看定量考核列表 func (e *EvaluationInterface) NewLookRationkScoreFlow(c *gin.Context) { isTrue, userCont := commonus.ClientIdentity() if isTrue != true { response.Result(1001, userCont, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } 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 flowLogInfo assessmentmodel.FlowLog getErrs := global.GVA_DB_Performanceappraisal.Where("`fl_key` = ?", requestData.Id).First(&flowLogInfo).Error //获取 审批记录数据参考值 var allZreoCappVal []FlowLogAllZreo baseLineErr := json.Unmarshal([]byte(flowLogInfo.Baseline), &allZreoCappVal) //获取版本 var planVersioCont assessmentmodel.PlanVersio global.GVA_DB_Performanceappraisal.Where("`key` = ?", flowLogInfo.PlanVersion).First(&planVersioCont) //解析版本项目 var planVersioInfo []AddDutyNewCont if planVersioCont.Content != "" { json.Unmarshal([]byte(planVersioCont.Content), &planVersioInfo) } //指标列表 var outList []RationOutStruct //遍历流水 for _, v := range flowDataLog { var targetScore int64 = 0 //指标分值 var outContt RationOutStruct //指标内容 outContt.Id = strconv.FormatInt(v.Id, 10) outContt.FlowId = strconv.FormatInt(v.Key, 10) targetCont, targetContErr := commonus.LookRationInfo(v.EvaluationPlan) //查看定量考核数据 if targetContErr == true { outContt.Title = targetCont.Title outContt.Unit = targetCont.Unit outContt.Cycles = targetCont.Cycles outContt.CycleAttres = targetCont.CycleAttres var monthQues int64 = 1 switch targetCont.Cycles { case 5: monthQues = flowLogInfo.Quarter case 6: monthQues = 1 default: monthQues = flowLogInfo.Month } if len(planVersioInfo) > 0 { for _, pviv := range planVersioInfo { for _, pvivcv := range pviv.Child { if pvivcv.Id == strconv.FormatInt(targetCont.Target, 10) { targetScore = pvivcv.ReferenceScore } } } } outContt.Weight = float64(targetScore) if baseLineErr != nil { //当数据流不存在 全奖、零奖、封顶值 设定时 var tarGetId int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target").Where("`qe_id` = ?", v.EvaluationPlan).First(&tarGetId) outContt.Actual, outContt.AllPrize, outContt.ZeroPrize, outContt.CappingVal, outContt.Achievement = GetQuantitativeConfig(targetScore, float64(v.Score), strconv.FormatInt(flowLogInfo.DutyGroup, 10), strconv.FormatInt(flowLogInfo.DutyDepartment, 10), strconv.FormatInt(targetCont.Dimension, 10), strconv.FormatInt(tarGetId, 10), strconv.FormatInt(targetCont.DetailedTarget, 10), flowLogInfo.Year, monthQues, 2) } else { isExistence := false var allprizeVal float64 = 0 var zeroprizeVal float64 = 0 var cappingVal float64 = 0 if len(allZreoCappVal) > 0 { for _, azcv := range allZreoCappVal { if strconv.FormatInt(v.EvaluationPlan, 10) == azcv.Id { allprizeVal = azcv.Allprize zeroprizeVal = azcv.Zeroprize cappingVal = azcv.Capping isExistence = true break } } } if isExistence == true { outContt.Actual, outContt.AllPrize, outContt.ZeroPrize, outContt.CappingVal, outContt.Achievement = commonus.CalculateScore(targetScore, float64(v.Score), allprizeVal, zeroprizeVal, cappingVal, 2) } else { var tarGetId int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_target").Where("`qe_id` = ?", v.EvaluationPlan).First(&tarGetId) outContt.Actual, outContt.AllPrize, outContt.ZeroPrize, outContt.CappingVal, outContt.Achievement = GetQuantitativeConfig(targetScore, float64(v.Score), strconv.FormatInt(flowLogInfo.DutyGroup, 10), strconv.FormatInt(flowLogInfo.DutyDepartment, 10), strconv.FormatInt(targetCont.Dimension, 10), strconv.FormatInt(tarGetId, 10), strconv.FormatInt(targetCont.DetailedTarget, 10), flowLogInfo.Year, monthQues, 2) } } } 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 flowAllMapList []commonus.FlowAllMap 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) var isShenPi int = 2 if gerEvalErr == nil { var flowStepAryMaps []FlowStep jsonFlowErr := json.Unmarshal([]byte(evalProInfo.Content), &flowStepAryMaps) //fmt.Printf("9-----------2--------->%v\n", jsonFlowErr) 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) bf, bfErr := commonus.GetNewOrgCont(workUser.MainDeparment) // //fmt.Printf("9-----------4-----3---->%v\n", bfErr) if bfErr == nil { getGroupRoleInfoErr, getGroupRoleInfo, roleGroupInfo := commonus.GetOfficeWork(fw_v.RoleGroup, int64(bf.WechatOrganizationId)) // //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) // jjsk, _ := json.Marshal(clickUserInfo) // //fmt.Printf("9-----------4--------->%v-->%v\n", string(jjsk), clickUserInfo.Key) 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) } } gErrs, groupInfos := commonus.GetGroupCont(clickUserInfo.Group) if gErrs == true { caoZuoRenInfnfo.GroupName = groupInfos.Name } caoZuoRenInfnfo.DepartmentName = clickUserInfo.DepartmentName caoZuoRenInfnfo.WorkShopName = clickUserInfo.WorkshopName caoZuoRenInfnfo.Postname = clickUserInfo.PostName caoZuoRenInfnfo.TeamName = clickUserInfo.TemaName caoZuoRenInfnfo.Icon = clickUserInfo.Icon 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) } } } //流程图全面 // flowAllMapList if evalProInfo.NextContent != "" { jsonFlowErr := json.Unmarshal([]byte(evalProInfo.NextContent), &flowAllMapList) if jsonFlowErr == nil { } } // fmt.Printf("evalProInfo.NextExecutor-------------->%v\n", evalProInfo.NextExecutor) if evalProInfo.NextExecutor != "" { zhiXingRenAry := strings.Split(evalProInfo.NextExecutor, ",") if commonus.IsItTrueString(userCont.Key, zhiXingRenAry) == true { isShenPi = 1 } } } outListMap := commonus.MapOut() outListMap["List"] = outList outListMap["flowLog"] = flowLogList outListMap["flowall"] = flowAllMapList outListMap["title"] = "" outListMap["isset"] = isShenPi outListMap["orderid"] = strconv.FormatInt(requestData.Id, 10) if getErrs == nil { titlekUserInfo, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": flowLogInfo.EvaluationUser}, "`name`") // titlekUserInfo, _ := commonus.GetWorkUser(strconv.FormatInt(flowLogInfo.EvaluationUser, 10)) titleStr := fmt.Sprintf("%v提交的", titlekUserInfo.Name) // gErr, groupInfo := commonus.GetGroupCont(flowLogInfo.DutyGroup) groupInfo, gErr := commonus.GetNewOrgCont(flowLogInfo.DutyGroup) if gErr == nil { outListMap["groupname"] = groupInfo.Name } else { outListMap["groupname"] = "" } // dErr, BranchInfo := commonus.GetBranchFactory(flowLogInfo.DutyDepartment) BranchInfo, dErr := commonus.GetNewOrgCont(flowLogInfo.DutyDepartment) if dErr == nil { outListMap["departmentname"] = BranchInfo.Name titleStr = fmt.Sprintf("%v%v", titleStr, BranchInfo.Name) } else { outListMap["departmentname"] = "" } titleStr = fmt.Sprintf("%v%v年%v月定量考核数据", titleStr, flowLogInfo.Year, flowLogInfo.Month) outListMap["title"] = titleStr } var flowLogListes []assessmentmodel.AssessmentLogIng var approvalRecord []FlowContLog flowLogErr := global.GVA_DB_Performanceappraisal.Where("al_order_id = ?", requestData.Id).Order("al_id ASC").Find(&flowLogListes).Error if flowLogErr == nil { for flli, fllv := range flowLogListes { var flowListCont FlowContLog if fllv.DutyList == "" && flli == 0 { flowListCont.Content = "创建申请" } else { flowListCont.Content = fllv.DutyList } flowListCont.TimeVal = commonus.TimeStampToDate(fllv.ExecutorTime, 6) userFlowCont, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": fllv.ExecutorUser}) flowListCont.Name = userFlowCont.Name flowListCont.Icon = userFlowCont.Icon gorupCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": fllv.ExecutorDepart}, "`name`") flowListCont.DepartmentName = gorupCont.Name approvalRecord = append(approvalRecord, flowListCont) } } outListMap["flowLogList"] = approvalRecord response.Result(0, outListMap, "查询成功", c) }