From ffe7921a138331185186fd100846fe50dcaf841c Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 七月 2026 10:08:02 +0800
Subject: [PATCH] 1.采购管理-采购申请恢复
---
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java | 34 +++++++++++++++++++++++++---------
1 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
index 4c91611..565deb8 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
@@ -25,8 +25,10 @@
import org.flowable.engine.impl.util.CommandContextUtil;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.TaskInfo;
+import tools.jackson.databind.JsonNode;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -245,10 +247,10 @@
}
// 瑙f瀽琛ㄥ崟閰嶇疆
- Map<String, BpmFormFieldVO> formFieldsMap = new HashMap<>();
+ Map<String, BpmFormFieldVO> formFieldsMap = new LinkedHashMap<>();
processDefinitionInfo.getFormFields().forEach(formFieldStr -> {
- BpmFormFieldVO formField = JsonUtils.parseObject(formFieldStr, BpmFormFieldVO.class);
- parseFormField(formField, formFieldsMap);
+ JsonNode formFieldNode = JsonUtils.parseObject(formFieldStr, JsonNode.class);
+ parseFormField(formFieldNode, formFieldsMap);
});
// 鎯呭喌涓�锛氬綋鑷畾涔変簡鎽樿
@@ -275,18 +277,32 @@
/**
* 閫掑綊瑙f瀽琛ㄥ崟瀛楁
*/
- private static void parseFormField(BpmFormFieldVO formField, Map<String, BpmFormFieldVO> formFieldsMap) {
- if (formField == null) {
+ private static void parseFormField(JsonNode formFieldNode, Map<String, BpmFormFieldVO> formFieldsMap) {
+ if (formFieldNode == null || !formFieldNode.isObject()) {
return;
}
- // 濡傛灉瀛樺湪 children -> 璇存槑鏄竷灞�缁勪欢
- if (formField.getChildren() != null && !formField.getChildren().isEmpty()) {
- for (BpmFormFieldVO child : formField.getChildren()) {
+
+ // 濡傛灉 children 閲屽瓨鍦ㄥ璞¤妭鐐癸紝璇存槑鏄竷灞�缁勪欢锛涘瓧绗︿覆鑺傜偣鏄垎鍓茬嚎銆佹爣绛俱�佹枃瀛楃瓑灞曠ず缁勪欢鍐呭锛岀洿鎺ヨ烦杩囥��
+ JsonNode children = formFieldNode.get("children");
+ if (children != null && children.isArray() && children.size() > 0) {
+ boolean hasObjectChild = false;
+ for (JsonNode child : children) {
+ if (!child.isObject()) {
+ continue;
+ }
+ hasObjectChild = true;
parseFormField(child, formFieldsMap);
}
- return;
+ if (hasObjectChild) {
+ return;
+ }
}
+
// 鐪熷疄瀛楁鎵嶅姞鍏� map
+ BpmFormFieldVO formField = new BpmFormFieldVO()
+ .setType(JsonUtils.getText(formFieldNode, "type"))
+ .setField(JsonUtils.getText(formFieldNode, "field"))
+ .setTitle(JsonUtils.getText(formFieldNode, "title"));
if (StrUtil.isNotBlank(formField.getField())) {
formFieldsMap.put(formField.getField(), formField);
}
--
Gitblit v1.9.3