SQL语句:将数据层次分出
SELECT LBBM, FDM, DM, MC, QC, SM, PXM, BZ
FROM JDGL_DM_MX d
WHERE LBBM = #{LBBM}
START WITH d.FDM = '0'
CONNECT BY PRIOR d.DM = d.FDM
order by pxm
查询时处理生成树形数据:
public static List<DmbBean> queryDmmxTree(List<DmbBean> list, String pValue){
if(pValue==null || "".equals(pValue)){
pValue = "0";
}
List<DmbBean> arr = new ArrayList<>();
if (list!= null && !list.isEmpty()){
for (DmbBean damx : list) {
if(damx.getFDM() != null && (pValue.equals(damx.getFDM()) || "".equals(damx.getFDM()))
|| (damx.getFDM() != null && damx.getFDM().equals(pValue)) ){
String id = damx.getDm();
boolean childrenFlag=false;
for(int i=0;i<list.size();i++){
if(list.get(i).getFDM().equals(id)){
childrenFlag=true;
break;
}
}
if(childrenFlag){
damx.setChildren(queryDmmxTree(list, id));
}
arr.add(damx);
}
}
}
return arr;
}
树形数据已经有了那么添加的时候可能将树形数据解析成普通list
// 解析树形数据
public static List<DmbBean> tree2list(List<DmbBean> list){
List<DmbBean> result = new ArrayList<>();
for (DmbBean dmbBean: list) {
List<DmbBean> d = dmbBean.getChildren();
result.add(dmbBean);
if (!CollectionUtils.isEmpty(d)){
result.addAll(tree2list(d));
dmbBean.setChildren(null);
}
}
return result;
}
// 将解析出来的数据存入
public JsonMessage updateDmmx(List<DmbBean> list){
List<DmbBean> result=tree2list(list);
mybatisRepository.update(this.namespace + "updateDmmx",result);
return new JsonMessage().success(1);
}