绩效考核
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

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
}