19 changed files with 1655 additions and 25 deletions
@ -0,0 +1,16 @@ |
|||
package reply |
|||
|
|||
import ( |
|||
"github.com/flipped-aurora/gin-vue-admin/server/api/reply/qual" |
|||
"github.com/flipped-aurora/gin-vue-admin/server/api/reply/quan" |
|||
) |
|||
|
|||
//自建审批
|
|||
|
|||
//企业微信应用
|
|||
type ApiGroup struct { |
|||
QuanAipGroup quan.ApiGroup |
|||
QualApiGroup qual.ApiGroup |
|||
} |
|||
|
|||
var ApiGroupApp = new(ApiGroup) |
|||
@ -0,0 +1,674 @@ |
|||
package qual |
|||
|
|||
import ( |
|||
"fmt" |
|||
"strconv" |
|||
"strings" |
|||
"time" |
|||
|
|||
"github.com/flipped-aurora/gin-vue-admin/server/api/wechatapp/sendmessage" |
|||
"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 (a *ApiGroup) Operation(c *gin.Context) { |
|||
isTrue, userCont := commonus.ClientIdentity() |
|||
if isTrue != true { |
|||
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) |
|||
return |
|||
} |
|||
founderDepartId, _ := strconv.ParseInt(userCont.Deparment, 10, 64) |
|||
|
|||
var requestData ApprovalParameters |
|||
err := c.ShouldBindJSON(&requestData) |
|||
if err != nil { |
|||
response.Result(101, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.OrderId == "" { |
|||
response.Result(102, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
|
|||
var evalProcessInfo assessmentmodel.EvaluationProcess |
|||
evalErr := global.GVA_DB_Performanceappraisal.Where("ep_order_key = ?", requestData.OrderId).First(&evalProcessInfo).Error |
|||
if evalErr != nil { |
|||
response.Result(103, err, "审批流不存在!请检查您的数据!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.State == 3 || evalProcessInfo.NextStep <= 0 { |
|||
response.Result(104, err, "该流程已结束!不可进行操作!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.NextContent == "" { |
|||
response.Result(105, err, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
nextReplyUserMap := strings.Split(evalProcessInfo.NextExecutor, ",") |
|||
// fmt.Printf("userCont.Key:%v\n", userCont.Key)
|
|||
if commonus.IsItTrueString(userCont.Key, nextReplyUserMap) == false { |
|||
response.Result(106, nextReplyUserMap, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
|
|||
//2、获取审批单信息
|
|||
var scoreFlowInfo assessmentmodel.ScoreFlow |
|||
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", requestData.OrderId).First(&scoreFlowInfo).Error |
|||
if judegFlowErr != nil { |
|||
response.Result(107, err, "对不起!此审批流程已经关闭!请联系发起人!", 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 |
|||
} |
|||
|
|||
//确定标题
|
|||
var title string = "" |
|||
//一级标题副本内容
|
|||
var desc string = "" |
|||
detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) //获取指标细则
|
|||
if detailedTargetErr == true { |
|||
tarInf, tarErr := commonus.GetTargetInfo(detailedTargetCont.ParentId) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
desc = detailedTargetCont.Title //一级标题辅助信息,建议不超过44个字
|
|||
} else { |
|||
title = detailedTargetCont.Title //一级标题,建议不超过36个字
|
|||
} |
|||
} else { |
|||
tarInf, tarErr := commonus.GetTargetInfo(programme.Target) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
} else { |
|||
title = strconv.FormatInt(programme.DetailedTarget, 10) //一级标题,建议不超过36个字
|
|||
} |
|||
} |
|||
var quoteAreaTitle string //引用文献标题
|
|||
|
|||
orderIdInt, _ := strconv.ParseInt(requestData.OrderId, 10, 64) //流程Key
|
|||
// userKeyInt, _ := strconv.ParseInt(userCont.Key, 10, 64) //使用人KEY
|
|||
|
|||
sendScVal := float64(scoreFlowInfo.Score) / 100 |
|||
scoreFloat64ToStringsss := strconv.FormatFloat(sendScVal, 'f', -1, 64) |
|||
|
|||
outMap := commonus.MapOut() |
|||
if requestData.YesOrNo != 1 { |
|||
//驳回
|
|||
opinionCont := "不同意" |
|||
if requestData.Content != "" { |
|||
opinionCont = requestData.Content |
|||
} |
|||
// //执行原因
|
|||
var reason string |
|||
switch evalProcessInfo.NextStep { |
|||
case 0: |
|||
response.Result(104, err, "该流程已结束!不可进行操作!", c) |
|||
return |
|||
case 1: |
|||
//申请
|
|||
case 2: |
|||
//申请人部门负责人
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 1, 2, 1, 3, 2, userCont.Key) //审批步骤处理
|
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 3, commonus.GetSetpName(2), opinionCont) //写入审批流
|
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", requestData.OrderId).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 3 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
|
|||
reason = fmt.Sprintf("原因:%v\n", opinionCont) |
|||
|
|||
//获取发起人信息
|
|||
var sendUser string = "" |
|||
var sendUserAry []string |
|||
faQiRen, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": scoreFlowInfo.EvaluationUser}, "`wechat`", "`work_wechat`") |
|||
if faQiRen.Wechat != "" { |
|||
sendUser = faQiRen.Wechat |
|||
} |
|||
if faQiRen.WorkWechat != "" { |
|||
sendUser = faQiRen.WorkWechat |
|||
} |
|||
if sendUser != "" { |
|||
sendUserAry = append(sendUserAry, sendUser) |
|||
} |
|||
sendUserList := strings.Join(sendUserAry, "|") |
|||
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
|
|||
if scoreFlowInfo.PlusReduceScore != 1 { |
|||
quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", scoreFloat64ToStringsss) |
|||
} else { |
|||
quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", scoreFloat64ToStringsss) |
|||
} |
|||
|
|||
twoLevelTitle := "审批信息:" |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "驳回" |
|||
|
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
|
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 2 |
|||
|
|||
case 3: |
|||
//接受考核部门内勤(责任划分)
|
|||
case 4: |
|||
//接受考核部门负责人(责任划分确认)
|
|||
|
|||
//申请人部门负责人
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 3, 3, 1, 3, 4, userCont.Key) |
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 3, commonus.GetSetpName(3), opinionCont) //写入审批流
|
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", requestData.OrderId).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 3 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
|
|||
//判断是加分还是减分
|
|||
if scoreFlowInfo.PlusReduceScore != 1 { |
|||
quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", scoreFloat64ToStringsss) |
|||
} else { |
|||
quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", scoreFloat64ToStringsss) |
|||
} |
|||
//获取责任划分
|
|||
teamBility, teamErr := commonus.GetDivisionOfResponsibility(requestData.OrderId, 2) |
|||
if teamErr == nil { |
|||
for _, team_v := range teamBility { |
|||
if team_v["type"] != 3 { |
|||
reason = fmt.Sprintf("%v%v:%v 占比:%v%\n", reason, team_v["typename"], team_v["username"], team_v["weight"]) |
|||
} else { |
|||
reason = fmt.Sprintf("%v%v:%v 占比:%v%\n", reason, team_v["typename"], team_v["temaname"], team_v["weight"]) |
|||
} |
|||
} |
|||
} |
|||
|
|||
reason = fmt.Sprintf("驳回原因:%v\n", opinionCont) |
|||
|
|||
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤
|
|||
if sendUserIsTrue != true { |
|||
response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!", c) |
|||
return |
|||
} |
|||
|
|||
//生成唯一编号
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderIdInt) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrlTitle := "请前往处理" |
|||
sourceDesc := "驳回" |
|||
|
|||
twoLevelTitle := "审批信息:" |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
|
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 2 |
|||
|
|||
case 5: |
|||
//主要责任人整改(提交)
|
|||
case 6: |
|||
//接受考核部门负责人(整改确认)
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 5, 5, 1, 3, 6, userCont.Key) |
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 3, commonus.GetSetpName(5), opinionCont) //写入审批流
|
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", requestData.OrderId).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 3 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
//获取主要责任人
|
|||
var personLiable []string |
|||
teamBility, teamErr := commonus.GetDivisionOfResponsibility(requestData.OrderId, 1) |
|||
if teamErr == nil { |
|||
for _, tm_v := range teamBility { |
|||
if tm_v["type"] == 1 { |
|||
personLiable = append(personLiable, tm_v["wechatid"].(string)) |
|||
} |
|||
} |
|||
} |
|||
if len(personLiable) < 1 { |
|||
response.Result(0, personLiable, "未指定相关部门处理人!未能向相关人员发送考核项目!", c) |
|||
return |
|||
} |
|||
sendUserList := strings.Join(personLiable, "|") |
|||
|
|||
//判断是加分还是减分
|
|||
if scoreFlowInfo.PlusReduceScore != 1 { |
|||
quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", scoreFloat64ToStringsss) |
|||
} else { |
|||
quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", scoreFloat64ToStringsss) |
|||
} |
|||
|
|||
reason = fmt.Sprintf("驳回原因:%v\n", opinionCont) |
|||
|
|||
//生成唯一编号
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderIdInt) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/rectification?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrlTitle := "请前往处理" |
|||
sourceDesc := "驳回" |
|||
|
|||
twoLevelTitle := "审批信息:" |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
|
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 2 |
|||
case 7: |
|||
//发起人验收
|
|||
default: |
|||
response.Result(404, err, "未知操作!", c) |
|||
return |
|||
} |
|||
} else { |
|||
opinionCont := "同意" |
|||
if requestData.Content != "" { |
|||
opinionCont = requestData.Content |
|||
} |
|||
//执行原因
|
|||
reason := fmt.Sprintf("原因:%v\n", opinionCont) |
|||
|
|||
//同意
|
|||
switch evalProcessInfo.NextStep { |
|||
case 0: |
|||
response.Result(104, err, "该流程已结束!不可进行操作!", c) |
|||
return |
|||
case 1: |
|||
//申请
|
|||
case 2: |
|||
//申请人部门负责人
|
|||
|
|||
//判断是加分还是减分
|
|||
if scoreFlowInfo.PlusReduceScore == 1 { |
|||
//加分
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 0, 2, 1, 2, 2, userCont.Key) //审批步骤处理
|
|||
|
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 2, commonus.GetSetpName(2), opinionCont) //写入审批流
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", requestData.OrderId).Updates(&eiteScoreFlow) |
|||
} else { |
|||
//减分
|
|||
quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", scoreFloat64ToStringsss) |
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 3, 2, 1, 2, 2, userCont.Key) //审批步骤处理
|
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 1, commonus.GetSetpName(2), opinionCont) //写入审批流
|
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 2 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", requestData.OrderId).Updates(&eiteScoreFlow) |
|||
|
|||
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, scoreFlowInfo.DutyDepartment) //获取对应部门内勤
|
|||
if sendUserIsTrue != true { |
|||
response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!", c) |
|||
return |
|||
} |
|||
|
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrlTitle := "请前往划分责任人" |
|||
sourceDesc := "责任划分" |
|||
|
|||
twoLevelTitle := "审批信息:" |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
|
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 2 |
|||
// fmt.Printf("sendClick----->%v\n", outMap)
|
|||
} |
|||
case 3: |
|||
//接受考核部门内勤(责任划分)
|
|||
case 4: |
|||
//接受考核部门负责人(责任划分确认)
|
|||
//是否需要整改
|
|||
if scoreFlowInfo.Rectification == 1 { |
|||
//需要整改
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 5, 7, 1, 2, 4, userCont.Key) |
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 2, commonus.GetSetpName(7), opinionCont) //写入审批流
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 2 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", orderIdInt).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 2 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
//步骤内容写入
|
|||
|
|||
//获取主要责任人
|
|||
var personLiable []string |
|||
teamBility, teamErr := commonus.GetDivisionOfResponsibility(requestData.OrderId, 1) |
|||
if teamErr == nil { |
|||
for _, tm_v := range teamBility { |
|||
if tm_v["type"] == 1 { |
|||
personLiable = append(personLiable, tm_v["wechatid"].(string)) |
|||
} |
|||
} |
|||
} |
|||
if len(personLiable) < 1 { |
|||
fmt.Printf("发送整改通知!没有主要负责人%v\n", teamBility) |
|||
} |
|||
sendUserList := strings.Join(personLiable, "|") |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/rectification?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
|
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "整改通知" |
|||
twoLevelTitle := "审批信息:" |
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 41 |
|||
|
|||
} else { |
|||
//不要整改
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 0, 2, 1, 2, 4, userCont.Key) |
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 2, commonus.GetSetpName(2), opinionCont) //写入审批流
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", orderIdInt).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 3 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
|
|||
//获取发起人信息
|
|||
var sendUser string = "" |
|||
// faQiRen, _ := commonus.GetWorkUser(strconv.FormatInt(scoreFlowInfo.EvaluationUser, 10))
|
|||
faQiRen, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": scoreFlowInfo.EvaluationUser}, "`wechat`", "`work_wechat`") |
|||
if faQiRen.Wechat != "" { |
|||
sendUser = faQiRen.Wechat |
|||
} |
|||
if faQiRen.WorkWechat != "" { |
|||
sendUser = faQiRen.WorkWechat |
|||
} |
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
//抄送发起人
|
|||
if sendUser != "" { |
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "抄送" |
|||
twoLevelTitle := "审批信息:" |
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUser, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 41 |
|||
} |
|||
|
|||
} |
|||
case 5: |
|||
//主要责任人整改(提交)
|
|||
case 6: |
|||
//接受考核部门负责人(整改确认)
|
|||
commonus.StepAddData(orderIdInt, 16182159043990656, 0, 7, 1, 2, 6, userCont.Key) |
|||
commonus.WriteReplyLog(orderIdInt, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 2, commonus.GetSetpName(7), opinionCont) //写入审批流
|
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 3 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", orderIdInt).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 3 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderIdInt).Updates(&evalProcSaveData) |
|||
|
|||
//2、获取要抄送人员名单
|
|||
var sendUserAry []string |
|||
//2.1 获取发起人部门负责人
|
|||
launchUserIsTrue, launchUserList := commonus.GetSendMsgUserAry(16182159043990656, scoreFlowInfo.EvaluationDepartment) //获取发起人部门负责人
|
|||
if launchUserIsTrue == true { |
|||
for _, lau_v := range launchUserList { |
|||
sendUserAry = append(sendUserAry, lau_v) |
|||
} |
|||
} |
|||
//2.2、获取职责部门负责人
|
|||
dutyUserIsTrue, dutyUserList := commonus.GetSendMsgUserAry(16182159043990656, scoreFlowInfo.DutyDepartment) //获取职责部门负责人
|
|||
if dutyUserIsTrue == true { |
|||
for _, duty_v := range dutyUserList { |
|||
sendUserAry = append(sendUserAry, duty_v) |
|||
} |
|||
} |
|||
//2.3、获取发起人信息
|
|||
var sendUser string = "" |
|||
// faQiRen, _ := commonus.GetWorkUser(strconv.FormatInt(scoreFlowInfo.EvaluationUser, 10))
|
|||
faQiRen, _ := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": scoreFlowInfo.EvaluationUser}, "`wechat`", "`work_wechat`") |
|||
if faQiRen.Wechat != "" { |
|||
sendUser = faQiRen.Wechat |
|||
} |
|||
if faQiRen.WorkWechat != "" { |
|||
sendUser = faQiRen.WorkWechat |
|||
} |
|||
if sendUser != "" { |
|||
sendUserAry = append(sendUserAry, sendUser) |
|||
} |
|||
sendMsgToUserList := strings.Join(sendUserAry, "|") |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(founderDepartId) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerCont assessmentmodel.Register |
|||
registerCont.Number = registerNumber |
|||
registerCont.State = 1 |
|||
registerCont.Time = time.Now().Unix() |
|||
registerCont.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v&num=%v", orderIdInt, strconv.FormatInt(registerNumber, 10)) |
|||
|
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "抄送" |
|||
twoLevelTitle := "审批信息:" |
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendMsgToUserList, strconv.FormatInt(registerNumber, 10), title, desc, quoteAreaTitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 41 |
|||
|
|||
case 7: |
|||
//发起人验收
|
|||
default: |
|||
response.Result(404, err, "未知操作!", c) |
|||
return |
|||
} |
|||
} |
|||
response.Result(0, outMap, "审批流不存在!请检查您的数据!", c) |
|||
|
|||
} |
|||
@ -0,0 +1,536 @@ |
|||
package qual |
|||
|
|||
import ( |
|||
"encoding/json" |
|||
"fmt" |
|||
"strconv" |
|||
"strings" |
|||
"time" |
|||
|
|||
"github.com/flipped-aurora/gin-vue-admin/server/api/wechatapp/sendmessage" |
|||
"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 (a *ApiGroup) DivisionResponsibility(c *gin.Context) { |
|||
isTrue, userCont := commonus.ClientIdentity() |
|||
if isTrue != true { |
|||
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) |
|||
return |
|||
} |
|||
var requestData DivisionPeople |
|||
err := c.ShouldBindJSON(&requestData) |
|||
if err != nil { |
|||
response.Result(101, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.OrderId == "" { |
|||
response.Result(102, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.Number == "" { |
|||
response.Result(102, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
var registerCont assessmentmodel.Register |
|||
regErr := registerCont.GetCont(map[string]interface{}{"number": requestData.Number}, "`id`", "`state`") |
|||
if regErr != nil { |
|||
response.Result(102, regErr, "对不起!您没有权限进行此操作!", c) |
|||
return |
|||
} |
|||
if registerCont.State != 1 { |
|||
response.Result(102, regErr, "对不起!您已经执行了此操作!请不要重复执行!谢谢!", c) |
|||
return |
|||
} |
|||
|
|||
if len(requestData.UserList) < 1 { |
|||
response.Result(105, requestData, "请选择要考核的人员!", c) |
|||
return |
|||
} |
|||
for _, u_v := range requestData.UserList { |
|||
if len(u_v.UserKey) < 1 { |
|||
response.Result(105, requestData, "您有未输入的考核的人员选项!", c) |
|||
return |
|||
} |
|||
} |
|||
orderId, _ := strconv.ParseInt(requestData.OrderId, 10, 64) //将字符串转化成int64
|
|||
var evalProcessInfo assessmentmodel.EvaluationProcess |
|||
evalErr := global.GVA_DB_Performanceappraisal.Where("ep_order_key = ?", requestData.OrderId).First(&evalProcessInfo).Error |
|||
if evalErr != nil { |
|||
response.Result(103, err, "审批流不存在!请检查您的数据!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.State == 3 || evalProcessInfo.NextStep <= 0 { |
|||
response.Result(104, err, "该流程已结束!不可进行操作!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.NextContent == "" { |
|||
response.Result(105, err, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
nextReplyUserMap := strings.Split(evalProcessInfo.NextExecutor, ",") |
|||
// fmt.Printf("userCont.Key:%v\n", userCont.Key)
|
|||
if commonus.IsItTrueString(userCont.Key, nextReplyUserMap) == false { |
|||
response.Result(106, nextReplyUserMap, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
//2、获取审批单信息
|
|||
var scoreFlowInfo assessmentmodel.ScoreFlow |
|||
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", requestData.OrderId).First(&scoreFlowInfo).Error |
|||
if judegFlowErr != nil { |
|||
response.Result(107, err, "对不起!此审批流程已经关闭!请联系发起人!", 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 |
|||
} |
|||
// founderDepartId, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
|
|||
// userKeyInt, _ := strconv.ParseInt(userCont.Key, 10, 64) //使用人KEY
|
|||
opinionCont := "责任划分" |
|||
|
|||
commonus.StepAddData(orderId, 16118387069540343, 4, 3, 1, 2, 3, userCont.Key) //更新审批流
|
|||
commonus.WriteReplyLog(orderId, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 1, commonus.GetSetpName(3), opinionCont) //写入审批流
|
|||
|
|||
//确定相关责任人
|
|||
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人
|
|||
if sendUserIsTrue != true { |
|||
response.Result(109, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) |
|||
return |
|||
} |
|||
|
|||
var saveDataAry []assessmentmodel.DivisionResponsibilities |
|||
var userKeyAry []int64 |
|||
var userKeyMainAry []int64 |
|||
var MainResponsiblePerson MainResponsiblePersonType |
|||
var teamIsTrue int = 1 |
|||
var reason string //引用文本描述
|
|||
for _, v := range requestData.UserList { |
|||
var saveDataCont assessmentmodel.DivisionResponsibilities |
|||
saveDataCont.ScoreFlow = orderId //流程Key
|
|||
saveDataCont.Type = v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任)
|
|||
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 //测评人集团
|
|||
} |
|||
if v.Type != 3 { |
|||
userKeyLen := len(v.UserKey) |
|||
if userKeyLen < 1 { |
|||
userKeyLen = 1 |
|||
} |
|||
//分配权限
|
|||
weightFloat := float64(v.Weight) / float64(userKeyLen) |
|||
weightInt := commonus.Round(weightFloat, 2) * 100 |
|||
weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'f', -1, 64), 10, 64) |
|||
//不是班组选项
|
|||
for _, ua_v := range v.UserKey { |
|||
userConting, userIsTrue := commonus.GetWorkUser(ua_v) |
|||
if userIsTrue == true { |
|||
} |
|||
saveDataCont.UserName = userConting.Name |
|||
saveDataCont.Weight = weightInt64 |
|||
saveDataCont.Time = time.Now().Unix() |
|||
saveDataCont.EiteTime = time.Now().Unix() |
|||
saveDataCont.DistributionUser = commonus.GetFileNumberEs() |
|||
|
|||
saveDataCont.UserKey = userConting.Key |
|||
saveDataCont.Group = userConting.Group |
|||
saveDataCont.Department = userConting.DepartmentId |
|||
saveDataCont.Tema = userConting.Tema |
|||
if v.Type != 3 { |
|||
userKeyAry = append(userKeyAry, userConting.Key) |
|||
} |
|||
var zeren string |
|||
switch v.Type { |
|||
case 1: |
|||
zeren = "主要责任人" |
|||
MainResponsiblePerson.UserKey = userConting.Key |
|||
MainResponsiblePerson.Group = userConting.Group |
|||
MainResponsiblePerson.Department = userConting.DepartmentId |
|||
MainResponsiblePerson.WorkshopId = userConting.WorkshopId |
|||
MainResponsiblePerson.Tema = userConting.Tema |
|||
userKeyMainAry = append(userKeyMainAry, userConting.Key) |
|||
case 2: |
|||
zeren = "互保责任人" |
|||
case 3: |
|||
zeren = "责任班组" |
|||
case 4: |
|||
zeren = "责任班组长" |
|||
case 5: |
|||
zeren = "主管" |
|||
case 6: |
|||
zeren = "三大员" |
|||
case 7: |
|||
zeren = "主任" |
|||
case 8: |
|||
zeren = "厂长" |
|||
default: |
|||
zeren = "主要责任人" |
|||
} |
|||
reason = fmt.Sprintf("%v%v:%v 责任占比:%v\n", reason, zeren, userConting.Name, weightInt64/100) |
|||
|
|||
saveDataAry = append(saveDataAry, saveDataCont) |
|||
} |
|||
} else { |
|||
teamIsTrue = 2 |
|||
} |
|||
} |
|||
|
|||
//遍历班组情况
|
|||
if teamIsTrue == 2 { |
|||
for _, t_v := range requestData.UserList { |
|||
if t_v.Type == 3 { |
|||
|
|||
var saveDataContTeam assessmentmodel.DivisionResponsibilities |
|||
saveDataContTeam.ScoreFlow = orderId //流程Key
|
|||
saveDataContTeam.Type = t_v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任)
|
|||
departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) |
|||
if departmentIdErr == nil { |
|||
saveDataContTeam.EvaluationDepartment = departmentId //测评人部门
|
|||
} |
|||
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) |
|||
if userKeyErr == nil { |
|||
saveDataContTeam.EvaluationUser = userKey //测评人
|
|||
} |
|||
userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) |
|||
if userGroupErr == nil { |
|||
saveDataContTeam.EvaluationGroup = userGroup //测评人集团
|
|||
} |
|||
for _, tt_v := range t_v.UserKey { |
|||
teamIdInt64, _ := strconv.ParseInt(tt_v, 10, 64) |
|||
teamContErr, teamCont := commonus.GetTeaming(teamIdInt64) |
|||
if teamContErr == true { |
|||
reason = fmt.Sprintf("%v%v:%v 责任占比:%v\n", reason, "责任班组", teamCont.Name, t_v.Weight) |
|||
} |
|||
teamGroup := strconv.FormatInt(MainResponsiblePerson.Group, 10) |
|||
teamDepartment := strconv.FormatInt(MainResponsiblePerson.Department, 10) |
|||
teamWorkshopId := strconv.FormatInt(MainResponsiblePerson.WorkshopId, 10) |
|||
teamUserList, teamUserErr := commonus.GetTeamUserList(teamGroup, teamDepartment, teamWorkshopId, tt_v) |
|||
if teamUserErr == true { |
|||
var jiShuQi int64 = 0 |
|||
for _, tu_v := range teamUserList { |
|||
|
|||
if commonus.IsItTrue(tu_v.Key, userKeyAry) == false { |
|||
jiShuQi++ |
|||
} |
|||
} |
|||
if jiShuQi < 1 { |
|||
jiShuQi = 1 |
|||
} |
|||
//分配权限
|
|||
weightFloat := float64(t_v.Weight) / float64(jiShuQi) |
|||
weightInt := commonus.Round(weightFloat, 2) * 100 |
|||
weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'f', -1, 64), 10, 64) |
|||
|
|||
for _, tu_v := range teamUserList { |
|||
if commonus.IsItTrue(tu_v.Key, userKeyAry) == false { |
|||
saveDataContTeam.UserName = tu_v.Name |
|||
saveDataContTeam.Weight = weightInt64 |
|||
saveDataContTeam.Time = time.Now().Unix() |
|||
saveDataContTeam.EiteTime = time.Now().Unix() |
|||
saveDataContTeam.DistributionUser = commonus.GetFileNumberEs() |
|||
|
|||
saveDataContTeam.UserKey = tu_v.Key |
|||
saveDataContTeam.Group = tu_v.Group |
|||
saveDataContTeam.Department = tu_v.DepartmentId |
|||
saveDataContTeam.Tema = tu_v.Tema |
|||
|
|||
saveDataAry = append(saveDataAry, saveDataContTeam) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
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 |
|||
} |
|||
registerCont.EiteCont(map[string]interface{}{"id": registerCont.Id}, map[string]interface{}{"state": 2, "`time`": time.Now().Unix()}) |
|||
|
|||
//修改定性审批流状态
|
|||
eiteScoreFlow := commonus.MapOut() |
|||
eiteScoreFlow["sf_eite_time"] = time.Now().Unix() |
|||
eiteScoreFlow["sf_reply"] = 2 |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_key` = ?", orderId).Updates(&eiteScoreFlow) |
|||
evalProcSaveData := commonus.MapOut() |
|||
evalProcSaveData["ep_state"] = 2 |
|||
evalProcSaveData["ep_time"] = time.Now().Unix() |
|||
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("`ep_order_key` = ?", orderId).Updates(&evalProcSaveData) |
|||
|
|||
//获取执行结果
|
|||
var mainTitleDesc string = "" |
|||
|
|||
//分数
|
|||
sendScore := scoreFlowInfo.Score * int64(scoreFlowInfo.Count) |
|||
if scoreFlowInfo.PlusReduceScore == 1 { |
|||
mainTitleDesc = fmt.Sprintf("考核加分:%v\n", commonus.Decimal(float64(sendScore)/100)) |
|||
} else { |
|||
mainTitleDesc = fmt.Sprintf("考核减分:%v\n", commonus.Decimal(float64(sendScore)/100)) |
|||
} |
|||
|
|||
//确定标题
|
|||
var title string = "" |
|||
//一级标题副本内容
|
|||
var desc string = "" |
|||
detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) //获取指标细则
|
|||
if detailedTargetErr == true { |
|||
tarInf, tarErr := commonus.GetTargetInfo(detailedTargetCont.ParentId) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
desc = detailedTargetCont.Title //一级标题辅助信息,建议不超过44个字
|
|||
} else { |
|||
title = detailedTargetCont.Title //一级标题,建议不超过36个字
|
|||
} |
|||
} else { |
|||
tarInf, tarErr := commonus.GetTargetInfo(programme.Target) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
} else { |
|||
title = strconv.FormatInt(programme.DetailedTarget, 10) //一级标题,建议不超过36个字
|
|||
} |
|||
} |
|||
|
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerContIng assessmentmodel.Register |
|||
registerContIng.Number = registerNumber |
|||
registerContIng.State = 1 |
|||
registerContIng.Time = time.Now().Unix() |
|||
registerContIng.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderId, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", orderId, strconv.FormatInt(registerNumber, 10)) |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(scoreFlowInfo.DutyDepartment) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "审批" |
|||
twoLevelTitle := "责任划分人:" |
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, mainTitleDesc, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
outMap := commonus.MapOut() |
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 41 |
|||
response.Result(0, outMap, "数据写入成功", c) |
|||
} |
|||
|
|||
//填写整改措施
|
|||
func (a *ApiGroup) AmendMeasures(c *gin.Context) { |
|||
isTrue, userCont := commonus.ClientIdentity() |
|||
if isTrue != true { |
|||
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) |
|||
return |
|||
} |
|||
var requestData AmendType |
|||
err := c.ShouldBindJSON(&requestData) |
|||
if err != nil { |
|||
response.Result(101, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.OrderId == "" { |
|||
response.Result(102, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.Number == "" { |
|||
response.Result(102, err, "参数错误!请重新提交!", c) |
|||
return |
|||
} |
|||
if requestData.Content == "" { |
|||
response.Result(102, err, "请输入整改措施!", c) |
|||
return |
|||
} |
|||
var registerCont assessmentmodel.Register |
|||
regErr := registerCont.GetCont(map[string]interface{}{"number": requestData.Number}, "`id`", "`state`") |
|||
if regErr != nil { |
|||
response.Result(102, regErr, "对不起!您没有权限进行此操作!", c) |
|||
return |
|||
} |
|||
if registerCont.State != 1 { |
|||
response.Result(102, regErr, "对不起!您已经执行了此操作!请不要重复执行!谢谢!", c) |
|||
return |
|||
} |
|||
|
|||
var evalProcessInfo assessmentmodel.EvaluationProcess |
|||
evalErr := global.GVA_DB_Performanceappraisal.Where("ep_order_key = ?", requestData.OrderId).First(&evalProcessInfo).Error |
|||
if evalErr != nil { |
|||
response.Result(103, err, "审批流不存在!请检查您的数据!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.State == 3 || evalProcessInfo.NextStep <= 0 { |
|||
response.Result(104, err, "该流程已结束!不可进行操作!", c) |
|||
return |
|||
} |
|||
if evalProcessInfo.NextContent == "" { |
|||
response.Result(105, err, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
nextReplyUserMap := strings.Split(evalProcessInfo.NextExecutor, ",") |
|||
if commonus.IsItTrueString(userCont.Key, nextReplyUserMap) == false { |
|||
response.Result(106, nextReplyUserMap, "对不起!您没有权限对此流程进行操作!", c) |
|||
return |
|||
} |
|||
userKey, _ := strconv.ParseInt(userCont.Key, 10, 64) |
|||
departmentId, _ := strconv.ParseInt(userCont.Deparment, 10, 64) |
|||
userGroup, _ := strconv.ParseInt(userCont.Company, 10, 64) |
|||
orderidval, _ := strconv.ParseInt(requestData.OrderId, 10, 64) |
|||
|
|||
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 |
|||
if len(requestData.Enclosure) > 0 { |
|||
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 |
|||
} |
|||
|
|||
//2、获取审批单信息
|
|||
var scoreFlowInfo assessmentmodel.ScoreFlow |
|||
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", requestData.OrderId).First(&scoreFlowInfo).Error |
|||
if judegFlowErr != nil { |
|||
response.Result(107, err, "对不起!此审批流程已经关闭!请联系发起人!", 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 |
|||
} |
|||
opinionCont := fmt.Sprintf("整改措施:%v", requestData.Content) |
|||
//写入流程步骤
|
|||
commonus.StepAddDataEs(orderidval, 0, 6, 4, 1, 2, 5, userCont.Key, requestData.Enclosure) //更新审批流
|
|||
commonus.WriteReplyLog(orderidval, scoreFlowInfo.DutyDepartment, scoreFlowInfo.EvaluationDepartment, scoreFlowInfo.EvaluationUser, 1, commonus.GetSetpName(3), opinionCont) //写入审批流
|
|||
|
|||
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16182159043990656, scoreFlowInfo.DutyDepartment) //获取对应部门负责人
|
|||
if sendUserIsTrue != true { |
|||
response.Result(109, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c) |
|||
return |
|||
} |
|||
|
|||
//确定标题
|
|||
var title string = "" |
|||
//一级标题副本内容
|
|||
var desc string = "" |
|||
detailedTargetCont, detailedTargetErr := commonus.GetDetailedTargetInfo(programme.DetailedTarget) //获取指标细则
|
|||
if detailedTargetErr == true { |
|||
tarInf, tarErr := commonus.GetTargetInfo(detailedTargetCont.ParentId) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
desc = detailedTargetCont.Title //一级标题辅助信息,建议不超过44个字
|
|||
} else { |
|||
title = detailedTargetCont.Title //一级标题,建议不超过36个字
|
|||
} |
|||
} else { |
|||
tarInf, tarErr := commonus.GetTargetInfo(programme.Target) //获取指标信息
|
|||
if tarErr == true { |
|||
title = tarInf.Title //一级标题,建议不超过36个字
|
|||
} else { |
|||
title = strconv.FormatInt(programme.DetailedTarget, 10) //一级标题,建议不超过36个字
|
|||
} |
|||
} |
|||
|
|||
//获取执行结果
|
|||
var mainTitleDesc string = "" |
|||
|
|||
//分数
|
|||
sendScore := scoreFlowInfo.Score * int64(scoreFlowInfo.Count) |
|||
if scoreFlowInfo.PlusReduceScore == 1 { |
|||
mainTitleDesc = fmt.Sprintf("考核加分:%v\n", commonus.Decimal(float64(sendScore)/100)) |
|||
} else { |
|||
mainTitleDesc = fmt.Sprintf("考核减分:%v\n", commonus.Decimal(float64(sendScore)/100)) |
|||
} |
|||
|
|||
var reason string |
|||
reason = fmt.Sprintf("整改措施:\n%v", requestData.Content) |
|||
//将步骤写入 判断该步骤是否已经操作
|
|||
registerNumber := commonus.GetFileNumberEs() |
|||
var registerContIng assessmentmodel.Register |
|||
registerContIng.Number = registerNumber |
|||
registerContIng.State = 1 |
|||
registerContIng.Time = time.Now().Unix() |
|||
registerContIng.AddCont() |
|||
//审批卡片跳转链接
|
|||
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", requestData.OrderId, strconv.FormatInt(registerNumber, 10)) |
|||
jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v&num=%v", requestData.OrderId, strconv.FormatInt(registerNumber, 10)) |
|||
|
|||
jumpUrlTitle := "查看详情" |
|||
sourceDesc := "审批" |
|||
twoLevelTitle := "整改人:" |
|||
|
|||
twoLevelKeyName := "" |
|||
execDerpat, execDerpatErr := commonus.GetNewOrgCont(scoreFlowInfo.DutyDepartment) |
|||
if execDerpatErr == nil { |
|||
twoLevelKeyName = execDerpat.Name |
|||
} |
|||
var twoLevelKeyValue string = "" |
|||
var twoLevelUserId string = "" |
|||
//获取操作人
|
|||
if userCont.Wechat != "" { |
|||
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) |
|||
if userWechatErr == true { |
|||
twoLevelKeyValue = userWechat.Name |
|||
twoLevelUserId = userCont.Wechat |
|||
} |
|||
} |
|||
|
|||
var sendTextMsg sendmessage.TextNoticeTemplateMedium |
|||
callbakcMsg, isTrueCall, callBackCont := sendTextMsg.SendMsgTextShare(sendUserList, strconv.FormatInt(registerNumber, 10), title, desc, mainTitleDesc, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc) |
|||
outMap := commonus.MapOut() |
|||
outMap["callbakcMsg"] = string(callbakcMsg) |
|||
outMap["isTrueCall"] = isTrueCall |
|||
outMap["callBackCont"] = callBackCont |
|||
outMap["setval"] = 41 |
|||
response.Result(0, outMap, "数据写入成功", c) |
|||
} |
|||
@ -0,0 +1,57 @@ |
|||
package qual |
|||
|
|||
import ( |
|||
"github.com/flipped-aurora/gin-vue-admin/server/commonus" |
|||
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" |
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
//企业微信回调
|
|||
type ApiGroup struct { |
|||
} |
|||
|
|||
//入口
|
|||
func (a *ApiGroup) Index(c *gin.Context) { |
|||
outPut := commonus.MapOut() |
|||
response.Result(0, outPut, "定性审批端获取成功", c) |
|||
} |
|||
|
|||
//审批参数
|
|||
type ApprovalParameters struct { |
|||
OrderId string `json:"orderid"` //流程单KEY
|
|||
YesOrNo int `json:"yesorno"` //1:同意;2:驳回
|
|||
Content string `json:"content"` //审批意见
|
|||
} |
|||
|
|||
type orderIdOrNumber struct { |
|||
OrderId string `json:"id"` //流程单KEY
|
|||
Number string `json:"number"` //1:同意;2:驳回
|
|||
} |
|||
|
|||
type DivisionPeople struct { |
|||
orderIdOrNumber |
|||
UserList []DivisionResponsibilityUsers `json:"userlist"` //责任人
|
|||
} |
|||
|
|||
type DivisionResponsibilityUsers struct { |
|||
Type int `json:"type"` //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长;8、主任)
|
|||
UserKey []string `json:"userkey"` //责任人key
|
|||
// UserName string `json:"username"` //责任人姓名
|
|||
Weight int64 `json:"weight"` //权重
|
|||
|
|||
} |
|||
|
|||
type MainResponsiblePersonType struct { |
|||
UserKey int64 `json:"userkey"` |
|||
Department int64 `json:"department"` |
|||
Group int64 `json:"group"` |
|||
WorkshopId int64 `json:"workshopid"` |
|||
Tema int64 `json:"tema"` |
|||
Weight int64 `json:"weight"` |
|||
} |
|||
|
|||
type AmendType struct { |
|||
orderIdOrNumber |
|||
Content string `json:"content"` //整改内容
|
|||
Enclosure []commonus.EnclosureFormat `json:"enclosure"` //附件
|
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
package quan |
|||
|
|||
import ( |
|||
"github.com/flipped-aurora/gin-vue-admin/server/commonus" |
|||
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" |
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
//企业微信回调
|
|||
type ApiGroup struct { |
|||
} |
|||
|
|||
//入口
|
|||
func (a *ApiGroup) Index(c *gin.Context) { |
|||
outPut := commonus.MapOut() |
|||
response.Result(0, outPut, "定量审批端获取成功", c) |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
package replyrouter |
|||
|
|||
import ( |
|||
"github.com/flipped-aurora/gin-vue-admin/server/api/reply" |
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
type RouterGroup struct { |
|||
} |
|||
|
|||
func (r *RouterGroup) InitShiyanRouter(Router *gin.RouterGroup) { |
|||
quanRouter := Router.Group("quan") //定量
|
|||
var quanApi = reply.ApiGroupApp.QuanAipGroup |
|||
{ |
|||
quanRouter.POST("", quanApi.Index) //入口
|
|||
quanRouter.POST("/", quanApi.Index) //入口
|
|||
quanRouter.GET("", quanApi.Index) //入口
|
|||
quanRouter.GET("/", quanApi.Index) //入口
|
|||
|
|||
} |
|||
qualRouter := Router.Group("qual") //定性
|
|||
var qualApi = reply.ApiGroupApp.QualApiGroup |
|||
{ |
|||
qualRouter.POST("", qualApi.Index) //入口
|
|||
qualRouter.POST("/", qualApi.Index) //入口
|
|||
qualRouter.GET("", qualApi.Index) //入口
|
|||
qualRouter.GET("/", qualApi.Index) //入口
|
|||
|
|||
qualRouter.POST("operation", qualApi.Operation) //定性审批
|
|||
qualRouter.POST("divisionresponsibility", qualApi.DivisionResponsibility) //责任划分
|
|||
qualRouter.POST("amendmeasures", qualApi.AmendMeasures) //整改措施
|
|||
|
|||
} |
|||
} |
|||
Loading…
Reference in new issue