From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-flowable/jnpf-flowable-entity/src/main/java/jnpf/flowable/model/util/FlowContextHolder.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/jnpf-flowable/jnpf-flowable-entity/src/main/java/jnpf/flowable/model/util/FlowContextHolder.java b/jnpf-flowable/jnpf-flowable-entity/src/main/java/jnpf/flowable/model/util/FlowContextHolder.java
new file mode 100644
index 0000000..6be276e
--- /dev/null
+++ b/jnpf-flowable/jnpf-flowable-entity/src/main/java/jnpf/flowable/model/util/FlowContextHolder.java
@@ -0,0 +1,104 @@
+package jnpf.flowable.model.util;
+
+import cn.hutool.core.util.ObjectUtil;
+import jnpf.constant.JnpfConst;
+import jnpf.util.JsonUtil;
+import jnpf.util.StringUtil;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 浜嬩欢鏁版嵁娣诲姞
+ *
+ * @author JNPF寮�鍙戝钩鍙扮粍
+ * @version V3.1.0
+ * @copyright 寮曡繄淇℃伅鎶�鏈湁闄愬叕鍙�
+ * @date 2022/8/20 8:49
+ */
+public class FlowContextHolder {
+
+    private FlowContextHolder() {}
+
+    // 瀛愭祦绋嬭〃鍗曟暟鎹�
+    private static final ThreadLocal<Map<String, Map<String, Object>>> CHILD_DATA = new ThreadLocal<>();
+
+    // 淇濆瓨琛ㄥ崟鐨凨ey闆嗗悎
+    private static final ThreadLocal<List<String>> WRITE_ID_LIST = new ThreadLocal<>();
+
+    // 琛ㄥ崟鏉冮檺
+    private static final ThreadLocal<Map<String, List<Map<String, Object>>>> FORM_OPERATES_DATA = new ThreadLocal<>();
+
+    /**
+     * 鑾峰彇鏁版嵁
+     */
+    public static Map<String, Map<String, Object>> getAllData() {
+        return CHILD_DATA.get() != null ? CHILD_DATA.get() : new HashMap<>();
+    }
+
+    /**
+     * 鑾峰彇淇濆瓨鐨凨ey闆嗗悎
+     */
+    public static List<String> getWriteIdList() {
+        return WRITE_ID_LIST.get() != null ? WRITE_ID_LIST.get() : new ArrayList<>();
+    }
+
+    /**
+     * 娓呴櫎鏁版嵁
+     */
+    public static void clearAll() {
+        CHILD_DATA.remove();
+        WRITE_ID_LIST.remove();
+        FORM_OPERATES_DATA.remove();
+    }
+
+
+    /**
+     * 娣诲姞鏁版嵁
+     */
+    public static void addChildData(String taskId, String formId, Map<String, Object> parameterMap, List<Map<String, Object>> formOperates, boolean isWrite) {
+        if (StringUtil.isNotEmpty(taskId) && StringUtil.isNotEmpty(formId)) {
+            Map<String, Map<String, Object>> map = CHILD_DATA.get() != null ? CHILD_DATA.get() : new HashMap<>();
+            String key = taskId + JnpfConst.SIDE_MARK + formId;
+            map.put(key, JsonUtil.entityToMap(parameterMap));
+            CHILD_DATA.set(map);
+            Map<String, List<Map<String, Object>>> formMap = FORM_OPERATES_DATA.get() != null ? FORM_OPERATES_DATA.get() : new HashMap<>();
+            if (ObjectUtil.isEmpty(formMap.get(key))) {
+                formMap.put(key, formOperates);
+                FORM_OPERATES_DATA.set(formMap);
+            }
+            if (isWrite) {
+                List<String> writeList = getWriteIdList();
+                writeList.add(key);
+                WRITE_ID_LIST.set(writeList);
+            }
+        }
+    }
+
+    /**
+     * 鑾峰彇鏉冮檺
+     */
+    public static Map<String, List<Map<String, Object>>> getFormOperates() {
+        return FORM_OPERATES_DATA.get() != null ? FORM_OPERATES_DATA.get() : new HashMap<>();
+    }
+
+    /**
+     * 鍒犻櫎鏁版嵁
+     */
+    public static void delete(String taskId, String formId) {
+        Map<String, Map<String, Object>> data = CHILD_DATA.get() != null ? CHILD_DATA.get() : new HashMap<>();
+        String key = taskId + JnpfConst.SIDE_MARK + formId;
+        data.remove(key);
+        CHILD_DATA.set(data);
+    }
+
+    /**
+     * 鍒犻櫎鏉冮檺
+     */
+    public static void deleteFormOperator() {
+        FORM_OPERATES_DATA.remove();
+    }
+
+}

--
Gitblit v1.8.0