ny
昨天 b6f169fe43a2b13f351aefc152374fc7f0bc8cb7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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 static final ThreadLocal<Map<String, Map<String, Object>>> CHILD_DATA = new ThreadLocal<>();
 
    // 保存表单的Key集合
    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() {
        Map<String, Map<String, Object>> data = CHILD_DATA.get() != null ? CHILD_DATA.get() : new HashMap<>();
        return data;
    }
 
    /**
     * 获取保存的Key集合
     */
    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() {
        Map<String, List<Map<String, Object>>> data = FORM_OPERATES_DATA.get() != null ? FORM_OPERATES_DATA.get() : new HashMap<>();
        return data;
    }
 
    /**
     * 删除数据
     */
    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();
    }
 
}