You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
5.3 KiB
197 lines
5.3 KiB
package evaluation
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strconv"
|
|
"time"
|
|
|
|
"gin_server_admin/commonus"
|
|
"gin_server_admin/global"
|
|
"gin_server_admin/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()
|
|
evalProc.StartTime = 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()
|
|
evalProc.StartTime = 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
|
|
}
|
|
|