From 6ea777d584e70a8480a3eebff66b640e4a4bed7b Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期一, 08 四月 2024 21:32:27 +0800
Subject: [PATCH] Merge branch 'dev' of https://gitee.com/dromara/RuoYi-Vue-Plus into dev
---
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java
index dff3e4e..7c5377e 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java
@@ -156,7 +156,13 @@
if (!(targetFlowElement instanceof UserTask) && !subtask) {
throw new ServerException("寮�濮嬭妭鐐瑰悗绗竴涓妭鐐瑰繀椤绘槸鐢ㄦ埛浠诲姟锛�");
}
-
+ //寮�濮嬭妭鐐瑰悗绗竴涓妭鐐圭敵璇蜂汉鑺傜偣
+ if ((targetFlowElement instanceof UserTask) && !subtask) {
+ UserTask userTask = (UserTask) targetFlowElement;
+ if (StringUtils.isBlank(userTask.getFormKey())) {
+ throw new ServerException("鐢宠浜鸿妭鐐瑰繀椤婚�夋嫨琛ㄥ崟锛�");
+ }
+ }
List<EndEvent> endEventList = flowElements.stream().filter(EndEvent.class::isInstance).map(EndEvent.class::cast).collect(Collectors.toList());
if (CollUtil.isEmpty(endEventList)) {
throw new ServerException(subtask ? "瀛愭祦绋嬪繀椤诲瓨鍦ㄧ粨鏉熻妭鐐癸紒" : "蹇呴』瀛樺湪缁撴潫鑺傜偣锛�");
@@ -168,7 +174,7 @@
*
* @param processDefinitionId 娴佺▼瀹氫箟id
*/
- public static List<UserTask> getuserTaskFlowElements(String processDefinitionId) {
+ public static List<UserTask> getUserTaskFlowElements(String processDefinitionId) {
BpmnModel bpmnModel = PROCESS_ENGINE.getRepositoryService().getBpmnModel(processDefinitionId);
List<UserTask> list = new ArrayList<>();
List<Process> processes = bpmnModel.getProcesses();
@@ -264,4 +270,20 @@
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(taskDefinitionKey);
return flowNode instanceof UserTask;
}
+
+ /**
+ * 鑾峰彇鐢宠浜鸿妭鐐�
+ *
+ * @param processDefinitionId 娴佺▼瀹氫箟id
+ * @return 缁撴灉
+ */
+ public static UserTask getApplyUserTask(String processDefinitionId) {
+ BpmnModel bpmnModel = PROCESS_ENGINE.getRepositoryService().getBpmnModel(processDefinitionId);
+ Collection<FlowElement> flowElements = bpmnModel.getMainProcess().getFlowElements();
+ List<StartEvent> startEventList = flowElements.stream().filter(StartEvent.class::isInstance).map(StartEvent.class::cast).collect(Collectors.toList());
+ StartEvent startEvent = startEventList.get(0);
+ List<SequenceFlow> outgoingFlows = startEvent.getOutgoingFlows();
+ FlowElement targetFlowElement = outgoingFlows.get(0).getTargetFlowElement();
+ return (UserTask) targetFlowElement;
+ }
}
--
Gitblit v1.9.3