Commit 758194f0 by 王志超

feat: 子单提交执行结果时增加主单节点校验,必须主单到达执行变更方案节点才能提交

parent 2e703e6a
Pipeline #86657 passed with stages
in 1 minute 53 seconds
......@@ -379,6 +379,17 @@ public class ChangeSubFlowBiz {
case CHANGE_SUB_FLOW_CONFIRM:
// 提交执行结果节点,填写变更结论
// 判断主单节点必须是NEW_CHANGE_FLOW_EXE,否则不允许提交
ChangeRecord mainRecordForCheck = changeRecordMapper.selectByPrimaryKey(subFlowRecord.getChangeRecordId());
if (mainRecordForCheck == null) {
throw ExceptionFactory.createBiz(ResponseCode.BAD_REQUEST, "主工单不存在");
}
String mainFlowNode = mainRecordForCheck.getFlowNode();
if (!ChangeFlowEnum.NEW_CHANGE_FLOW_EXE.getNodeId().equals(mainFlowNode)) {
throw ExceptionFactory.createBiz(ResponseCode.BAD_REQUEST,
String.format("主工单未到达执行变更方案节点,当前主单节点:%s,不允许提交执行结果", mainFlowNode));
}
Integer subFlowChangeResult = changeSubFlowSubmitReq.getChangeResult();
ChangeResultEnum subFlowResultStatus = ChangeResultEnum.getByStatus(subFlowChangeResult);
if (subFlowResultStatus == null) {
......@@ -687,6 +698,8 @@ public class ChangeSubFlowBiz {
changeFlowVO.setTopoId(ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId());
// flowNode:应该使用子单的数据,而不是主单的数据
changeFlowVO.setFlowNode(subFlowRecord.getSubFlowNode());
// mainFlowNode:设置主单的节点,用于前端判断是否允许提交执行结果
changeFlowVO.setMainFlowNode(mainRecord.getFlowNode());
// 只保留该变更行动工单下绑定的行动项
List<ChangeExecRecord> execRecords = changeFlowExecService.getBySubFlowRecordId(subFlowRecordId);
......
......@@ -202,6 +202,11 @@ public class ChangeFlowVO {
private String flowNode;
/**
* 主单节点(用于子单详情页面判断,当子单到达CHANGE_SUB_FLOW_CONFIRM但主单未到达NEW_CHANGE_FLOW_EXE时,隐藏提交内容)
*/
private String mainFlowNode;
/**
* 变更行动工单ID列表(即subFlowId列表)
*/
private List<String> subFlowIds;
......
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