Commit 3ad7df1f by 王志超

feat: 终止变更无需填写取消原因

parent 3cc96765
Pipeline #86989 passed with stages
in 1 minute 34 seconds
...@@ -980,15 +980,19 @@ public class ChangeFlowBiz { ...@@ -980,15 +980,19 @@ public class ChangeFlowBiz {
// 构建提交内容 // 构建提交内容
Map<String, Object> subFlowContent = buildFlowContent(FlowOperationTypeEnum.REFUSE); Map<String, Object> subFlowContent = buildFlowContent(FlowOperationTypeEnum.REFUSE);
// 流转子工单到结束节点 // 流转子工单到结束节点,使用 paramMap 方式,type=2 表示取消
String subFlowCancelNodeId = flowService.submitFlow(subFlowRecord.getSubFlowId(), subFlowDataDTO, uid, Map<String, Object> cancelParamMap = new HashMap<>();
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(subFlowContent), false, cancelParamMap.put("type", FlowTransitionType.TYPE_CANCEL);
String subFlowCancelNodeId = flowService.submitFlowWithParamMap(subFlowRecord.getSubFlowId(), subFlowDataDTO, uid,
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(subFlowContent), cancelParamMap,
FlowxOperationEnum.CANCEL.getName(), "主工单取消,取消行动工单", subFlowRecord.getCreateTime()); FlowxOperationEnum.CANCEL.getName(), "主工单取消,取消行动工单", subFlowRecord.getCreateTime());
// 更新子工单状态为已取消 // 更新子工单状态为已取消
subFlowRecord.setSubFlowNode(subFlowCancelNodeId); subFlowRecord.setSubFlowNode(subFlowCancelNodeId);
subFlowRecord.setStatus(ChangeSubFlowStatusEnum.CANCELLED.getStatus()); subFlowRecord.setStatus(ChangeSubFlowStatusEnum.CANCELLED.getStatus());
subFlowRecord.setCancelReason("主工单取消:" + cancelReason); // 处理 cancelReason 为 null 的情况(终止变更时可能为 null)
String cancelReasonText = StringUtils.isNotBlank(cancelReason) ? cancelReason : "";
subFlowRecord.setCancelReason("主工单取消:" + cancelReasonText);
subFlowRecord.setUpdateTime(DateUtils.getCurrentTime()); subFlowRecord.setUpdateTime(DateUtils.getCurrentTime());
changeSubFlowRecordService.update(subFlowRecord); changeSubFlowRecordService.update(subFlowRecord);
......
...@@ -476,9 +476,11 @@ public class ChangeSubFlowBiz { ...@@ -476,9 +476,11 @@ public class ChangeSubFlowBiz {
private String handleSubFlowFinish(ChangeSubFlowRecord subFlowRecord, ChangeSubFlowSubmitReq req, private String handleSubFlowFinish(ChangeSubFlowRecord subFlowRecord, ChangeSubFlowSubmitReq req,
FlowDataDTO flowDataDTO, String uid, Object content, ChangeResultEnum resultStatus, FlowDataDTO flowDataDTO, String uid, Object content, ChangeResultEnum resultStatus,
String oldNodeId, String oldNodeName) { String oldNodeId, String oldNodeName) {
// 提交子单流程到结束节点 // 提交子单流程到结束节点,使用 paramMap 方式,type=1 表示通过
String endNodeId = flowService.submitFlow(subFlowRecord.getSubFlowId(), flowDataDTO, uid, Map<String, Object> finishParamMap = new HashMap<>();
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), true, finishParamMap.put("type", FlowTransitionType.TYPE_APPROVED);
String endNodeId = flowService.submitFlowWithParamMap(subFlowRecord.getSubFlowId(), flowDataDTO, uid,
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), finishParamMap,
FlowxOperationEnum.SUBMIT.getName(), "提交执行结果", subFlowRecord.getCreateTime()); FlowxOperationEnum.SUBMIT.getName(), "提交执行结果", subFlowRecord.getCreateTime());
// 更新子单状态为FINISHED // 更新子单状态为FINISHED
...@@ -517,9 +519,11 @@ public class ChangeSubFlowBiz { ...@@ -517,9 +519,11 @@ public class ChangeSubFlowBiz {
// 2. 保存取消原因 // 2. 保存取消原因
subFlowRecord.setCancelReason(req.getCancelReason()); subFlowRecord.setCancelReason(req.getCancelReason());
// 3. 提交子单流程到结束节点 // 3. 提交子单流程到结束节点,使用 paramMap 方式,type=1 表示通过
String cancelNodeId = flowService.submitFlow(subFlowRecord.getSubFlowId(), flowDataDTO, uid, Map<String, Object> cancelParamMap = new HashMap<>();
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), true, cancelParamMap.put("type", FlowTransitionType.TYPE_APPROVED);
String cancelNodeId = flowService.submitFlowWithParamMap(subFlowRecord.getSubFlowId(), flowDataDTO, uid,
ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId(), JSON.toJSONString(content), cancelParamMap,
FlowxOperationEnum.SUBMIT.getName(), "取消工单", subFlowRecord.getCreateTime()); FlowxOperationEnum.SUBMIT.getName(), "取消工单", subFlowRecord.getCreateTime());
// 5. 更新子单状态为CANCELLED // 5. 更新子单状态为CANCELLED
......
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