|
@@ -71,6 +71,7 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
|
|
|
break;
|
|
|
|
|
|
case BRANCH: // 分支
|
|
|
+ handleBranch(processNodeButtonList, processNode);
|
|
|
break;
|
|
|
|
|
|
case END: // 结束
|
|
@@ -82,6 +83,7 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
|
|
|
saveBatch(processNodeButtonList);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 开始节点处理
|
|
|
*/
|
|
@@ -89,7 +91,7 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
|
|
|
Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
|
|
|
ProcessNode processNode) {
|
|
|
// 下一步
|
|
|
- ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.ADOPT);
|
|
|
+ ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.START);
|
|
|
processNodeButtonList.add(next);
|
|
|
}
|
|
|
|
|
@@ -129,22 +131,46 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
|
|
|
Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
|
|
|
ProcessNode processNode) {
|
|
|
// 完成
|
|
|
- ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.complete);
|
|
|
+ ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.COMPLETE);
|
|
|
processNodeButtonList.add(next);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 分支
|
|
|
+ */
|
|
|
+ private void handleBranch(List<ProcessNodeButton> processNodeButtonList, ProcessNode processNode) {
|
|
|
+ ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, ButtonNameEnum.BRANCH);
|
|
|
+ processNodeButtonList.add(processNodeButton);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 跳转上一节点
|
|
|
*/
|
|
|
private ProcessNodeButton previous(Map<Long, List<ProcessNode>> ProcessNodeGroupById,
|
|
|
ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
|
|
|
ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, buttonNameEnum);
|
|
|
+
|
|
|
// 赋值跳转到上一节点
|
|
|
List<ProcessNode> previousProcessNodeList = ProcessNodeGroupById.get(processNode.getParentId());
|
|
|
if (previousProcessNodeList == null || previousProcessNodeList.size() != 1) {
|
|
|
throw new ServiceException(String.format(FlowExplainConstant.PREVIOUS_ERROR, processNode.getName()));
|
|
|
}
|
|
|
- processNodeButton.setJumpNodeId(previousProcessNodeList.get(0).getId());
|
|
|
+
|
|
|
+ // 如果上一节点是分支,再往上一层级流转
|
|
|
+ ProcessNode node = previousProcessNodeList.get(0);
|
|
|
+ if (node.getType().equals(ProcessNodeTypeEnum.BRANCH.getType())) {
|
|
|
+
|
|
|
+ previousProcessNodeList = ProcessNodeGroupById.get(node.getParentId());
|
|
|
+ if (previousProcessNodeList == null || previousProcessNodeList.size() != 1) {
|
|
|
+ throw new ServiceException(String.format(FlowExplainConstant.PREVIOUS_ERROR, processNode.getName()));
|
|
|
+ }
|
|
|
+
|
|
|
+ processNodeButton.setJumpNodeId(node.getParentId());
|
|
|
+ } else {
|
|
|
+ processNodeButton.setJumpNodeId(node.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return processNodeButton;
|
|
|
}
|
|
|
|