Commit 5cb06801 by 王志超

fix bug: 使用自定义工单审核方法

parent 90bc983c
Pipeline #86537 passed with stages
in 1 minute 35 seconds
...@@ -228,6 +228,7 @@ public class ChangeSubFlowBiz { ...@@ -228,6 +228,7 @@ public class ChangeSubFlowBiz {
// 检查是否需要审批 // 检查是否需要审批
if (needApprove(expectedDepartment)) { if (needApprove(expectedDepartment)) {
log.info("[CHANGE_SUB_FLOW_START] 部门[{}]需要审批,等待上级审批", expectedDepartment);
// 需要审批:设置上级领导为审批人,停留在审批节点 // 需要审批:设置上级领导为审批人,停留在审批节点
subFlowRecord.setSubFlowNode(nextNodeId); subFlowRecord.setSubFlowNode(nextNodeId);
subFlowRecord.setStatus(ChangeSubFlowStatusEnum.WAIT_APPROVE_ACTION_PLAN.getStatus()); subFlowRecord.setStatus(ChangeSubFlowStatusEnum.WAIT_APPROVE_ACTION_PLAN.getStatus());
...@@ -245,7 +246,6 @@ public class ChangeSubFlowBiz { ...@@ -245,7 +246,6 @@ public class ChangeSubFlowBiz {
// 设置审批人为上级领导(JSON 数组格式) // 设置审批人为上级领导(JSON 数组格式)
subFlowRecord.setApprover(JSON.toJSONString(Collections.singletonList(leaderEmail))); subFlowRecord.setApprover(JSON.toJSONString(Collections.singletonList(leaderEmail)));
changeSubFlowRecordService.update(subFlowRecord); changeSubFlowRecordService.update(subFlowRecord);
log.info("[CHANGE_SUB_FLOW_START] 部门[{}]需要审批,等待上级审批", expectedDepartment);
log.info("[checkUpdateAndSubmit] 子单流转完成 <<< subFlowId:{}, 原节点:{}-{}, 新节点:{}-审批行动方案", log.info("[checkUpdateAndSubmit] 子单流转完成 <<< subFlowId:{}, 原节点:{}-{}, 新节点:{}-审批行动方案",
subFlowId, oldNodeId, oldNodeName, nextNodeId); subFlowId, oldNodeId, oldNodeName, nextNodeId);
return nextNodeId; return nextNodeId;
...@@ -259,8 +259,12 @@ public class ChangeSubFlowBiz { ...@@ -259,8 +259,12 @@ public class ChangeSubFlowBiz {
throw ExceptionFactory.createBiz(ResponseCode.DETAIL_FLOW_ERROR, "子流程工单查询错误,不存在"); throw ExceptionFactory.createBiz(ResponseCode.DETAIL_FLOW_ERROR, "子流程工单查询错误,不存在");
} }
String autoNextNodeId = flowService.submitFlow(subFlowId, latestFlowDataDTO, uid, // 使用paramMap控制流转方向(type=1表示审批通过)
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), true, Map<String, Object> paramMap = new HashMap<>();
paramMap.put("type", 1);
String autoNextNodeId = flowService.submitFlowWithParamMap(subFlowId, latestFlowDataDTO, uid,
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), paramMap,
FlowxOperationEnum.SUBMIT.getName(), "自动审批通过", subFlowRecord.getCreateTime()); FlowxOperationEnum.SUBMIT.getName(), "自动审批通过", subFlowRecord.getCreateTime());
subFlowRecord.setSubFlowNode(autoNextNodeId); subFlowRecord.setSubFlowNode(autoNextNodeId);
subFlowRecord.setStatus(ChangeSubFlowStatusEnum.WAIT_APPROVE_CHANGE_PLAN.getStatus()); subFlowRecord.setStatus(ChangeSubFlowStatusEnum.WAIT_APPROVE_CHANGE_PLAN.getStatus());
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
package com.netease.mail.yanxuan.change.biz.service.rpc; package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.List; import java.util.List;
import java.util.Map;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean; import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -166,4 +167,56 @@ public class FlowService { ...@@ -166,4 +167,56 @@ public class FlowService {
approverDTO.setOperateResult(FlowxOperationEnum.DELIVER.getName()); approverDTO.setOperateResult(FlowxOperationEnum.DELIVER.getName());
flowRpcService.updateApprovers(CommonConstants.FLOWX_PRODUCT, approverDTO); flowRpcService.updateApprovers(CommonConstants.FLOWX_PRODUCT, approverDTO);
} }
/**
* 提交工单(使用paramMap控制流转方向)
* @param flowId
* @param flowDataDTO
* @param uid
* @param topoId
* @param content
* @param paramMap 流转参数(例如:type=1表示通过,type=0表示不通过)
* @param operateResult
* @param remark
* @param createTime
* @return
*/
public String submitFlowWithParamMap(String flowId, FlowDataDTO flowDataDTO, String uid, String topoId, String content,
Map<String, Object> paramMap, String operateResult, String remark, Long createTime) {
String name = RequestLocalBean.getName();
// 系统自动提交,没有登录态获取不到名字,查询ius系统填充人名,还未查询到以邮箱兜底
if (StringUtils.isBlank(name)) {
IusUserInfoRsp user = iusService.queryUserInfo(uid);
name = user == null || StringUtils.isBlank(user.getName()) ? uid : user.getName();
}
NodeSubmitReqDTO nodeSubmitReqDTO = new NodeSubmitReqDTO();
nodeSubmitReqDTO.setFlowId(flowId);
nodeSubmitReqDTO.setNodeId(flowDataDTO.getFlowMeta().getCurrNodeDataList().get(0).getNodeId());
nodeSubmitReqDTO.setUid(uid);
nodeSubmitReqDTO.setUserName(name);
nodeSubmitReqDTO.setTopoId(topoId);
nodeSubmitReqDTO.setContent(content);
nodeSubmitReqDTO.setOperateResult(operateResult);
nodeSubmitReqDTO.setRemark(remark);
nodeSubmitReqDTO.setCreateTime(createTime);
nodeSubmitReqDTO.setParamMap(paramMap);
nodeSubmitReqDTO.setOccLock(flowDataDTO.getOccLock() + 1);
log.info("[submitFlowWithParamMap] nodeSubmitReqDTO={}", JSON.toJSONString(nodeSubmitReqDTO));
List<String> nextNodeIdList;
// 提交工单
AjaxResponse<List<String>> submitResponse = flowRpcService.submit(CommonConstants.FLOWX_PRODUCT,
nodeSubmitReqDTO);
if (ResponseCodeEnum.SUCCESS.getCode() == submitResponse.getCode()) {
nextNodeIdList = submitResponse.getData();
log.info("[submitFlowWithParamMap] nextNodeIdList={}", JSON.toJSONString(nextNodeIdList));
} else {
log.error("[submitFlowWithParamMap] submit flow failed, query={}, errMsg={}", JSON.toJSONString(nodeSubmitReqDTO),
JSON.toJSONString(submitResponse));
throw ExceptionFactory.createBiz(ResponseCode.SUBMIT_FLOW_ERROR, "提交工单错误");
}
if (CollectionUtils.isEmpty(nextNodeIdList)) {
return ChangeFlowEnum.END.getNodeId();
}
return nextNodeIdList.get(0);
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment