cy
2022-06-23 da30b02214ab3a35a3b2ac163afce87e70a39ff4
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
package cn.ksource.config;
 
import cn.ksource.core.dao.BaseDao;
 
import java.util.*;
 
public class DictionaryManager {
 
 
    public  static Map<String, Map> dtGroupMap=new HashMap<String, Map>();//字典分组map:key="group_code"
    public static Map<String, Map> dicMap=new HashMap<String, Map>();//key="groupCode_dtCcde"
    //key="group_code"
    public static Map<String, List<Map>> groupDicMap=new HashMap<String, List<Map>>();
    
    
    /**
     * 得到所有字典表分类
     * @return    字典分类列表List
     */
    
    public static Collection<Map> getDtGroups() {
        return dtGroupMap.values();
    }
    
    /**
     * 字典列表List
     * @param groupCode 分类代码
     * @return    字典列表List
     */
    
    public static List<Map> getDictList(String groupCode) {
        return groupDicMap.get(groupCode);
    }
    
    public static Map getDtGroup(String groupCode) {
        return dtGroupMap.get(groupCode);
    }
    
    public static Map getDictionary(String groupCode,String dicCode) {
        return dicMap.get(groupCode+"_"+dicCode);
    }
    
    public static void init(BaseDao baseDao) throws Exception{
        //清理
        dtGroupMap.clear();
        dicMap.clear();
        groupDicMap.clear();
        Integer active = 1;
 
        List<Map> dicList= baseDao.queryForList("select * from dictionary where active="+active+" order by group_code,serial");
        List<Map> dtGroupList=baseDao.queryForList("select * from dt_group where active="+active+" order by serial");
        
        List<Map> isEachDics=new ArrayList<Map>();//已经处理过的Dictionary
        for(int i=0;i<dtGroupList.size();i++){
            isEachDics.clear();
            Map dtGroup = dtGroupList.get(i);
            //加入到dtGroupMap
            dtGroupMap.put((String)dtGroup.get("GROUP_CODE"),dtGroup);
            for(int j=0;j<dicList.size();j++){
                Map dic = dicList.get(j);
                //加入到dicMap
                dicMap.put(dic.get("GROUP_CODE")+"_"+dic.get("DT_CODE"), dic);
                if(dic.get("GROUP_CODE").equals(dtGroup.get("GROUP_CODE"))){
                    //加入到groupDicMap
                    List<Map> dics = groupDicMap.get(dic.get("GROUP_CODE"));
                    if(dics==null){
                        dics = new ArrayList<Map>();
                        groupDicMap.put((String)dic.get("GROUP_CODE"),dics);
                    }
                    dics.add(dic);
                    isEachDics.add(dic);
                }
            }
            dicList.removeAll(isEachDics);
            isEachDics.clear();
        }
    }
    public static void removeDtGroup(String groupCode) {
        dtGroupMap.remove(groupCode);
        for(Map dic:groupDicMap.get(groupCode)){
            dicMap.remove(groupCode+"_"+dic.get("DT_CODE"));
        }
        groupDicMap.remove(groupCode);
 
    }
}