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