From e9d3a1a9c1f34263bf2bbe9b319506ba92e66bf3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 07 二月 2025 17:30:46 +0800
Subject: [PATCH] 任务是否能跳过、容缺的回显

---
 flowable/src/main/java/com/ycl/service/common/TaskCommonService.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
index ac3d23e..9debdb2 100644
--- a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
+++ b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
@@ -85,7 +85,7 @@
             throw new RuntimeException("鏈壘鍒拌浠诲姟鐨勬祦绋嬪畾涔夎妭鐐�");
         }
 
-        // 鑾峰彇褰撳墠鑺傜偣鐨勮緭鍏�
+        // 鑾峰彇褰撳墠鑺傜偣鐨勪俊鎭�
         List<FormDetailVO> defKeys = new ArrayList<>(2);
         FormDetailVO formDetailVO = new FormDetailVO();
         formDetailVO.setCurrent(Boolean.TRUE);
@@ -103,6 +103,8 @@
                 formDetailVO.setFormJsonObj(data);
             }
         }
+        formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT));
+        formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT));
         defKeys.add(formDetailVO);
         this.beforeNodeInfo(currentElement, defKeys);
 
@@ -170,6 +172,8 @@
                         FormDetailVO formDetailVO = new FormDetailVO();
                         formDetailVO.setBeforeNodeDefId(incomingFlow.getSourceFlowElement().getId());
                         formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName());
+                        formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT));
+                        formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT));
                         defKeys.add(formDetailVO);
                     } else {
                         beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys);
@@ -184,6 +188,8 @@
                         FormDetailVO formDetailVO = new FormDetailVO();
                         formDetailVO.setBeforeNodeDefId(incomingFlow.getSourceFlowElement().getId());
                         formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName());
+                        formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT));
+                        formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT));
                         defKeys.add(formDetailVO);
                     } else {
                         beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys);
@@ -241,30 +247,29 @@
 
 
     /**
-     * 妫�鏌ヤ换鍔¤妭鐐规槸鍚﹂厤缃簡锛氶渶瑕佸鏍�  鐨勬墿灞曞睘鎬�
+     * 妫�鏌ヤ换鍔¤妭鐐规槸鍚﹂厤缃簡鏌愪釜鐨勬墿灞曞睘鎬�
      *
      * @param extensionElements 鎵╁睍鍒楄〃
      * @return
      */
-    public Boolean checkTaskNeedAuditing(List<ExtensionElement> extensionElements) {
+    public Boolean checkHasExeProperty(List<ExtensionElement> extensionElements, String exePropertyName) {
         if (CollectionUtils.isEmpty(extensionElements)) {
             return Boolean.FALSE;
         }
-        for (ExtensionElement extensionElement : extensionElements) {
+        return extensionElements.stream().anyMatch(extensionElement -> {
             if (CollectionUtils.isEmpty(extensionElement.getAttributes())) { // 濡傛灉鏈韩娌℃湁灞炴�э紝鍒欓�掑綊child
-                return checkTaskNeedAuditing(extensionElement.getChildElements().get("property"));
+                return checkHasExeProperty(extensionElement.getChildElements().get("property"), exePropertyName);
             } else {
-                // 鍚﹀垯鍏堟煡鏈韩鐨勫睘鎬ф湁涓嶆湁锛氶渶瑕佸鏍� 鐨勫睘鎬э紝娌℃湁涔熸槸閫掑綊child
-                if (extensionElement.getAttributes().get("name").stream().anyMatch(attribute -> ProcessConstants.EXTENSION_PROPERTY_NEED_AUDITING_TEXT.equals(attribute.getValue()))
-                        && extensionElement.getAttributes().get("value").stream().anyMatch(attribute -> ProcessConstants.EXTENSION_PROPERTY_NEED_AUDITING_VALUE.equals(attribute.getValue()))
+                // 鍚﹀垯鍏堟煡鏈韩鐨勫睘鎬ф湁涓嶆湁锛屾病鏈変篃鏄�掑綊child
+                if (extensionElement.getAttributes().get("name").stream().anyMatch(attribute -> exePropertyName.equals(attribute.getValue()))
+                        && extensionElement.getAttributes().get("value").stream().anyMatch(attribute -> ProcessConstants.EXTENSION_PROPERTY_VALUE.equals(attribute.getValue()))
                 ) {
                     return Boolean.TRUE;
                 } else {
-                    return checkTaskNeedAuditing(extensionElement.getChildElements().get("property"));
+                    return checkHasExeProperty(extensionElement.getChildElements().get("property"), exePropertyName);
                 }
             }
-        }
-        return Boolean.FALSE;
+        });
     }
 
 

--
Gitblit v1.8.0