public class XzqhDto {
@ApiModelProperty("另加數據")
private String label;
@ApiModelProperty("另加數據")
private String value;
@ApiModelProperty("當前本身數據")
private Xzqh xzqh;
@ApiModelProperty("子元素")
List<Object> children = new ArrayList<>();
}
/**
* 處理思路
* 1、首先按照順序查找所有的元素
* 2、轉成map<key,value>形式 提取所有的父類Map1 所有子類map2
* 3、遍歷map2 根據key 值塞入 map1中
*
* @return
*/
public Object queryAllAboutXcx() {
//查詢所以的數據
List<Xzqh> xzqhList = xzqhMapper.queryXzqh(null, null);
// TreeMap 能保證順序相同
Map<String, XzqhDto> map = new TreeMap<>();
Map<String, XzqhDto> result = new TreeMap<>();
//轉成所有的map
for (Xzqh xzqh : xzqhList) {
XzqhDto xzqhDto = new XzqhDto().setXzqh(xzqh).setLabel(xzqh.getXzqhdmCd()).setValue(xzqh.getXzqhmcNm());
if (xzqh.getSjxzqhdm().length() == 1) {
result.put(xzqh.getXzqhdmCd(), xzqhDto);
} else {
map.put(xzqh.getXzqhdmCd(), xzqhDto);
}
}
//遍歷map2
for (Map.Entry<String, XzqhDto> entry : map.entrySet()) {
String key = entry.getKey();
if (key.length() == 4) {
String k = key.substring(0, 2);
List<Object> xzqhs = result.get(k).getChildren();
xzqhs.add(entry.getValue());
result.get(k).setChildren(xzqhs);
} else if (key.length() == 6) {
String k = key.substring(0, 4);
List<Object> xzqhs = map.get(k).getChildren();
xzqhs.add(entry.getValue());
map.get(k).setChildren(xzqhs);
}
}
return result;
}