首页 > 其他 > 详细

菜单树数据形成

时间:2019-08-16 16:08:34      阅读:53      评论:0      收藏:0      [点我收藏+]
String sql="select * from STS_MALFUNC_SOLUTION s start with s.step_id=? connect by prior s.step_id = s.step_dept_id order by s.step_type Asc";

这是查询当前节点( s.step_id=? )的所有子孙节点(包含当前节点),并按照升序排序。

//菜单树的数据结构
public class GoJsData {
    private Integer id;
    private String  text;
    private Integer size;
    private String color;
    private String weight;
    private List<GoJsData> causes = new ArrayList<GoJsData>(); // 子节点集合
    
    public GoJsData(Integer id, String text, Integer size, String color, String weight, List<GoJsData> causes) {
        super();
        this.id = id;
        this.text = text;
        this.size = size;
        this.color = color;
        this.weight = weight;
        this.causes = causes;
    }
    
    
    public GoJsData() {
        super();
    }
}

具体的操作,如下:

@Test
    public void content() throws IOException {
        // 1 . 查询数据      STEP_ID:当前节点ID ;STEP_DEPT_ID:父节点ID
        String sql="select * from STS_MALFUNC_SOLUTION s start with s.step_id=? connect by prior s.step_id = s.step_dept_id order by s.step_type Asc";
        List<Map<String,Object>> list= baseDao.queryForList(sql, new Object[] {"11000"});
        
        // 2 .  剥离 当前节点,创建根数据   
        GoJsData g=null ;        
        for (Map<String, Object> map : list) {
            String pstepId = String.valueOf(map.get("STEP_DEPT_ID"));
            if(Integer.valueOf(pstepId)==1) {
                g = new GoJsData( Integer.valueOf( String.valueOf(map.get("STEP_ID")) ),  
                        String.valueOf(map.get("STEP_CONTENT")),  18, "red",  "Bold",  new ArrayList<GoJsData>());
                list.remove(map);
                break;
            }
        }
        //3 . 递归形成最终树数据
        dd(list,g);
        System.out.println(JSONObject.toJSONString(g));
    }
    // 递归操作
    public GoJsData dd(List<Map<String,Object>> list,GoJsData g) {    
        for (Map<String, Object> map : list) {
            int pstepId = Integer.valueOf(String.valueOf(map.get("STEP_DEPT_ID")));
            System.out.println(pstepId);
            if(g.getId() == pstepId) {
                GoJsData gj = new GoJsData( Integer.valueOf( String.valueOf(map.get("STEP_ID")) ),  
                        String.valueOf(map.get("STEP_CONTENT")),  14, "red",  "Bold",  new ArrayList<GoJsData>());
                g.getCauses().add(gj);                    
                dd(list,gj);
            }
        }        
        return g;    
    }

 

菜单树数据形成

原文:https://www.cnblogs.com/wdp1990/p/11364379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!