package evaluation import ( "encoding/json" "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" ) //编辑流程步进器 func EiteDutiesInfoes(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) { isTrue = false infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_id` = ?", saveId).Updates(saveData).Error if infoErr != nil { return } isTrue = true return } //编辑分数流水 func EiteScoreFlow(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) { isTrue = false infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", saveId).Updates(saveData).Error if infoErr != nil { return } isTrue = true return } //更新审批流程(驳回) /* @orderKey 流程ID @roleGroup 角色组Id @keyNumber 卡片TaskID @nextStep 下一步 */ func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep int, userkey string) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) { isTrue = false judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error if judgeErr != nil { return } var flowLog []FlowStep jsonFlowErr := json.Unmarshal([]byte(evalProc.Content), &flowLog) if jsonFlowErr != nil { return } roleGroupStep := len(flowLog) - 1 if roleGroupStep < 0 { roleGroupStep = 0 } if len(flowLog) < 1 { var rejectFlow FlowStep rejectFlow.Step = 1 rejectFlow.Key = strconv.FormatInt(orderKey, 10) rejectFlow.State = 1 rejectFlow.RoleGroup = roleGroup rejectFlow.NextStep = 2 rejectFlow.ClickName = userkey rejectFlow.AddTime = time.Now().Unix() flowLog = append(flowLog, rejectFlow) evalProc.OrderKey = orderKey evalProc.Step = 1 evalProc.State = 1 evalProc.RoleGroup = roleGroup evalProc.Time = time.Now().Unix() flowStepJson, flowStepErr := json.Marshal(flowLog) if flowStepErr == nil { evalProc.Content = string(flowStepJson) } adErr := global.GVA_DB_Performanceappraisal.Create(&evalProc).Error if adErr != nil { return } } else { var flowStepArys []FlowStep for _, f_v := range flowLog { if f_v.Step == evalProc.Step { f_v.State = 2 } flowStepArys = append(flowStepArys, f_v) } var flowStep FlowStep flowStep.Step = evalProc.Step + 1 flowStep.Key = strconv.FormatInt(orderKey, 10) flowStep.State = 1 flowStep.RoleGroup = roleGroup flowStep.NextStep = nextStep flowStep.ClickName = userkey flowStep.AddTime = time.Now().Unix() flowStepArys = append(flowStepArys, flowStep) saveData := commonus.MapOut() saveData["ep_time"] = time.Now().Unix() saveData["ep_role_group"] = roleGroup saveData["ep_step"] = evalProc.Step + 1 flowStepJson, flowStepErr := json.Marshal(flowStepArys) if flowStepErr == nil { saveData["ep_cont"] = string(flowStepJson) } isTrueErr, _ := EiteDutiesInfoes(evalProc.Id, saveData) if isTrueErr != true { return } } isTrue = true return } //更新审批流程(批准) /* orderKey 流程Key roleGroup 角色数组 nextStep 下一步 */ func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep int, userkey string) (evalProc assessmentmodel.EvaluationProcess, isTrue bool) { isTrue = false judgeErr := global.GVA_DB_Performanceappraisal.Where("`ep_order_key` = ?", orderKey).First(&evalProc).Error if judgeErr != nil { // return } var flowLog []FlowStep jsonFlowErr := json.Unmarshal([]byte(evalProc.Content), &flowLog) if jsonFlowErr != nil { // return } roleGroupStep := len(flowLog) - 1 if roleGroupStep < 0 { roleGroupStep = 0 } if len(flowLog) < 1 { var rejectFlow FlowStep rejectFlow.Step = 1 rejectFlow.Key = strconv.FormatInt(keyNumber, 10) rejectFlow.State = 1 rejectFlow.RoleGroup = roleGroup rejectFlow.NextStep = nextStep rejectFlow.ClickName = userkey rejectFlow.AddTime = time.Now().Unix() flowLog = append(flowLog, rejectFlow) evalProc.OrderKey = orderKey evalProc.Step = 1 evalProc.State = 1 evalProc.RoleGroup = roleGroup evalProc.Time = time.Now().Unix() flowStepJson, flowStepErr := json.Marshal(flowLog) if flowStepErr == nil { evalProc.Content = string(flowStepJson) } adErr := global.GVA_DB_Performanceappraisal.Create(&evalProc).Error if adErr != nil { return } } else { var flowStepArys []FlowStep for _, f_v := range flowLog { if f_v.Step == evalProc.Step { f_v.State = 2 } flowStepArys = append(flowStepArys, f_v) } var flowStep FlowStep flowStep.Step = evalProc.Step + 1 flowStep.Key = strconv.FormatInt(keyNumber, 10) flowStep.State = 1 flowStep.RoleGroup = roleGroup flowStep.NextStep = nextStep flowStep.AddTime = time.Now().Unix() flowStepArys = append(flowStepArys, flowStep) saveData := commonus.MapOut() saveData["ep_time"] = time.Now().Unix() saveData["ep_role_group"] = roleGroup saveData["ep_step"] = evalProc.Step + 1 flowStepJson, flowStepErr := json.Marshal(flowStepArys) if flowStepErr == nil { saveData["ep_cont"] = string(flowStepJson) } isTrueErr, _ := EiteDutiesInfoes(evalProc.Id, saveData) if isTrueErr != true { return } } isTrue = true return }