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