cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package cn.ksource.web.service.cmdb;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
 
import org.apache.commons.lang.StringUtils;
 
import cn.ksource.core.util.ConvertUtil;
 
/**
 * CI属性元数据
 */
public class CIPropertityMetadata {
    
    private Integer level;
    
    //所属分类信息
    private Map catetory = new HashMap();
    
    
    //通用属性元数据
    private List<Map> commonPropertityMetadata = new LinkedList<Map>();
    
    //一级属性元数据
    private List<Map> firstLevelPropertityMetadata = new LinkedList<Map>();
    //二级属性元数据
    private List<Map> secondLevelPropertityMetadata = new LinkedList<Map>();
    //三级属性元数据
    private List<Map> thirdLevelPropertityMetadata = new LinkedList<Map>();
    
    //属性分组列表
    private List<Map> metadataList = new ArrayList<Map>();
    
    public List<Map> getGroupMetadataList(String group_id){
        
        List<Map> groupMetadataList = new LinkedList<Map>();
        
        Map metadataMap = new HashMap();
        
        for (Map map2 : metadataList) {
            metadataMap.put(map2.get("ID"), map2);
        }
        
        Map cacheMap = new HashMap();
        Map groupMap = new LinkedHashMap();
        
        
        for (Map map : secondLevelPropertityMetadata) {
            initGroup(groupMetadataList, metadataMap, cacheMap, map,group_id);
        }
        for (Map map : thirdLevelPropertityMetadata) {
            initGroup(groupMetadataList, metadataMap, cacheMap, map,group_id);
        }
        return groupMetadataList;
    }
 
 
    private void initGroup(List<Map> groupMetadataList, Map metadataMap,Map cacheMap, Map map,String group_id) {
        if (StringUtils.isNotBlank(group_id) && !StringUtils.equalsIgnoreCase(group_id, ConvertUtil.obj2Str(map.get("CMDB_CI_PRO_GROUP_ID")))) {
            return;
        }
        if (!cacheMap.containsKey(map.get("CMDB_CI_PRO_GROUP_ID"))) {
            List<Map> dataList = new ArrayList<Map>();
            dataList.add(map);    
            Map metadata = (Map)metadataMap.get(map.get("CMDB_CI_PRO_GROUP_ID"));
            if (metadata != null) {
                groupMetadataList.add(metadata);
                metadata.put("METADATALIST", dataList);
                cacheMap.put(map.get("CMDB_CI_PRO_GROUP_ID"),metadata);
            }
        } else {
            List<Map> tempList = (List<Map>)((Map)cacheMap.get(map.get("CMDB_CI_PRO_GROUP_ID"))).get("METADATALIST");
            tempList.add(map);
        }
    }
    
    
    public List<Map> getMetadataList() {
        return metadataList;
    }
    
    public void setMetadataList(List<Map> metadataList) {
        this.metadataList = metadataList;
    }
    
    public Map getCatetory() {
        return catetory;
    }
    
    public void setCatetory(Map catetory) {
        this.catetory = catetory;
    }
    
    public Integer getLevel() {
        return level;
    }
    
    public void setLevel(Integer level) {
        this.level = level;
    }
    
    public List<Map> getCommonPropertityMetadata() {
        return commonPropertityMetadata;
    }
    
    public void setCommonPropertityMetadata(List<Map> commonPropertityMetadata) {
        this.commonPropertityMetadata = commonPropertityMetadata;
    }
    
    public List<Map> getFirstLevelPropertityMetadata() {
        return firstLevelPropertityMetadata;
    }
 
    public void setFirstLevelPropertityMetadata(List<Map> firstLevelPropertityMetadata) {
        this.firstLevelPropertityMetadata = firstLevelPropertityMetadata;
    }
    
    public List<Map> getSecondLevelPropertityMetadata() {
        return secondLevelPropertityMetadata;
    }
 
    public void setSecondLevelPropertityMetadata(List<Map> secondLevelPropertityMetadata) {
        this.secondLevelPropertityMetadata = secondLevelPropertityMetadata;
    }
    
    public List<Map> getThirdLevelPropertityMetadata() {
        return thirdLevelPropertityMetadata;
    }
 
    public void setThirdLevelPropertityMetadata(List<Map> thirdLevelPropertityMetadata) {
        this.thirdLevelPropertityMetadata = thirdLevelPropertityMetadata;
    }
}