From c87bea5a7275779007f2959a247d6d6353414d99 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 3 Jun 2024 12:50:07 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E3=80=91BPM=EF=BC=9Areview=20simple=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E3=80=81seq=20=E8=BF=9E=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/model/simple/BpmSimpleModelNodeVO.java | 1 + .../flowable/core/util/SimpleModelUtils.java | 69 ++----------------- .../definition/BpmModelServiceImpl.java | 1 - 3 files changed, 7 insertions(+), 64 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java index a32449c21..e13253e99 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java @@ -29,6 +29,7 @@ public class BpmSimpleModelNodeVO { private String name; // TODO @jason:要不改成 placeholder 和一般 Element-Plus 组件一致。占位符,用于展示。@芋艿。这个不是 placeholder 占位符的含义。节点配置后。节点展示的内容,不知道取什么名字好??? + // TODO @jason:【回复】占位文本(showText)是指当一个文本框没有被 focus 的时候显示的是提示文字,当他被点击之后就显示空白。。。虽然不是完全精准,但是 placeholder 相对正式点~ @Schema(description = "节点展示内容", example = "指定成员: 芋道源码") private String showText; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java index 8901f63e7..dcb829c16 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java @@ -95,27 +95,21 @@ public class SimpleModelUtils { return bpmnModel; } + // TODO @芋艿:在优化下这个注释 private static void traverseNodeToBuildSequenceFlow(Process process, BpmSimpleModelNodeVO node, String targetNodeId) { - // 1.无效节点返回 + // 1.1 无效节点返回 if (!isValidNode(node)) { return; } - - // 如果是网关分支节点. 后续节点可能为 null。但不是 END_EVENT 节点 - // TODO-DONE @芋艿:这个要不要挪到 START_NODE - INCLUSIVE_BRANCH_JOIN_NODE 待定;感觉 switch 那最终是分三个情况;branch、子节点、结束了;(每种情况的注释,需要写的更完整) -// if (!BpmSimpleModelNodeType.isBranchNode(node.getType()) && (childNode == null || childNode.getId() == null)) { -// SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), targetNodeId, null, null, null); -// process.addFlowElement(sequenceFlow); -// return; -// } + // 1.2 END_NODE 直接返回 BpmSimpleModelNodeType nodeType = BpmSimpleModelNodeType.valueOf(node.getType()); Assert.notNull(nodeType, "模型节点类型不支持"); - if (nodeType == END_NODE) { return; } + + // 2.1 情况一:普通节点 BpmSimpleModelNodeVO childNode = node.getChildNode(); - // 2.1 普通节点 if (!BpmSimpleModelNodeType.isBranchNode(node.getType())) { if (!isValidNode(childNode)) { // 2.1.1 普通节点且无孩子节点。分两种情况 @@ -130,7 +124,7 @@ public class SimpleModelUtils { traverseNodeToBuildSequenceFlow(process, childNode, targetNodeId); } } else { - // 2.2 分支节点 + // 2.2 情况二:分支节点 List conditionNodes = node.getConditionNodes(); Assert.notEmpty(conditionNodes, "分支节点的条件节点不能为空"); // 分支终点节点 Id @@ -177,57 +171,6 @@ public class SimpleModelUtils { // 4.递归调用后续节点 继续递归建立 D->E 的连线 traverseNodeToBuildSequenceFlow(process, childNode, targetNodeId); } - - // TODO @jason:下面的 PARALLEL_BRANCH_FORK_NODE、CONDITION_BRANCH_NODE、INCLUSIVE_BRANCH_FORK_NODE 是不是就是 isBranchNode?如果是的话,貌似不用 swtich,而是 if else 分类处理呢。 -// switch (nodeType) { -// case START_NODE: -// case APPROVE_NODE: -// case COPY_NODE: -// case PARALLEL_BRANCH_JOIN_NODE: -// case INCLUSIVE_BRANCH_JOIN_NODE: { -// SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), childNode.getId(), null, null, null); -// process.addFlowElement(sequenceFlow); -// // 递归调用后续节点 -// buildAndAddBpmnSequenceFlow(process, childNode, targetNodeId); -// break; -// } -// case PARALLEL_BRANCH_FORK_NODE: -// case CONDITION_BRANCH_NODE: -// case INCLUSIVE_BRANCH_FORK_NODE: { -// // TODO @jason:这里 sequenceFlowTargetId 不建议做这样的 default。万一可能有 bug 哈;直接弄到对应的 136- 146 会更安全一点。 -// String sequenceFlowTargetId = (childNode == null || childNode.getId() == null) ? targetNodeId : childNode.getId(); -// List conditionNodes = node.getConditionNodes(); -// Assert.notEmpty(conditionNodes, "网关节点的条件节点不能为空"); -// for (BpmSimpleModelNodeVO item : conditionNodes) { -// // 构建表达式 -// // TODO @jason:条件分支的情况下,需要分 item 搞的条件,和 conditionNodes 搞的条件 -// String conditionExpression = buildConditionExpression(item); -// -// BpmSimpleModelNodeVO nextNodeOnCondition = item.getChildNode(); -// // TODO @jason:isValidNode -// if (nextNodeOnCondition != null && nextNodeOnCondition.getId() != null) { -// // TODO @jason:会存在 item.name 未空的情况么?这个时候,要不要兜底处理拼接 -// SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), nextNodeOnCondition.getId(), -// item.getId(), item.getName(), conditionExpression); -// process.addFlowElement(sequenceFlow); -// // 递归调用后续节点 -// // TODO @jason:最好也有个例子,嘿嘿;S4 -// buildAndAddBpmnSequenceFlow(process, nextNodeOnCondition, sequenceFlowTargetId); -// } else { -// SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), sequenceFlowTargetId, -// item.getId(), item.getName(), conditionExpression); -// process.addFlowElement(sequenceFlow); -// } -// } -// // 递归调用后续节点 TODO @jason:最好有个例子哈 -// buildAndAddBpmnSequenceFlow(process, childNode, targetNodeId); -// break; -// } -// default: { -// // TODO 其它节点类型的实现 -// } -// } - } /** diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java index ef421a2e3..b39ec7212 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java @@ -238,7 +238,6 @@ public class BpmModelServiceImpl implements BpmModelService { saveModelSimpleJson(model.getId(), JsonUtils.toJsonByte(reqVO.getSimpleModel())); } - /** * 校验流程表单已配置 *