ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

宿舍树结构

2022-01-10 19:32:51  阅读:199  来源: 互联网

标签:get JSONObject 树结构 add 宿舍 map1 put new



// service 代码
public RestResponse<JSONObject> getDormTreeByWorkshop( @RequestParam("workshopId") String workshopId,@RequestParam("sex") String sex) { List<Map> dormitoryAllList = iDormManageDao.getDormitoryBydept(workshopId,sex); //1. 所有区域 JSONArray areas = new JSONArray(); //1.1 所有区域id List<String> areaIdList = new LinkedList<>(); //2. 所有楼 JSONArray floors = new JSONArray(); //2.1 所有楼id List<String> floorIdList = new LinkedList<>(); //1. 所有房间 JSONArray rooms = new JSONArray(); //1.1 所有房间id List<String> roomIdList = new LinkedList<>(); //1. 所有床位 JSONArray beds = new JSONArray(); //1.1 所有床位id List<String> bedIdList = new LinkedList<>(); //1.2 循环把id放进区域id中 for (Map map1 : dormitoryAllList) { Optional<String> optional = areaIdList.stream().filter(e -> e.equals( map1.get("areaId"))).findFirst(); if (!optional.isPresent()){ areaIdList.add((String) map1.get("areaId")); JSONObject area = new JSONObject(); area.put("value",map1.get("areaId")); area.put("label",map1.get("area")); //1.3 相对应的区域信息也放进所有区域中 areas.add(area); } Optional<String> optional1 = floorIdList.stream().filter(e -> e.equals( map1.get("lId"))).findFirst(); if (!optional1.isPresent()){ floorIdList.add((String) map1.get("lId")); JSONObject floor = new JSONObject(); floor.put("value",map1.get("lId")); floor.put("parentId",map1.get("areaId")); floor.put("label",map1.get("lmc")); //1.3 相对应的区域信息也放进所有区域中 floors.add(floor); }Optional<String> optional2 = roomIdList.stream().filter(e -> e.equals( map1.get("fjId"))).findFirst(); if (!optional2.isPresent()){ roomIdList.add((String) map1.get("fjId")); JSONObject room = new JSONObject(); room.put("value",map1.get("fjId")); room.put("parentId",map1.get("lId")); room.put("label",map1.get("fjmc")); //1.3 相对应的区域信息也放进所有区域中 rooms.add(room); }Optional<String> optional3 = bedIdList.stream().filter(e -> e.equals( map1.get("bedId"))).findFirst(); if (!optional3.isPresent()){ bedIdList.add((String) map1.get("bedId")); JSONObject bed = new JSONObject(); bed.put("value",map1.get("bedId")); bed.put("parentId",map1.get("fjId")); bed.put("label",map1.get("bedName")); //1.3 相对应的区域信息也放进所有区域中 beds.add(bed); } } List<JSONObject> areaList = JSONObject.parseArray(areas.toJSONString(), JSONObject.class); List<JSONObject> floorList = JSONObject.parseArray(floors.toJSONString(), JSONObject.class); List<JSONObject> roomsList = JSONObject.parseArray(rooms.toJSONString(), JSONObject.class); List<JSONObject> bedsList = JSONObject.parseArray(beds.toJSONString(), JSONObject.class); try { //循环房间 和 床位的关系
       //先循环大的再循环小的 for (JSONObject room : roomsList) { ArrayList<JSONObject> bedjson = new ArrayList<>(); for (JSONObject bed : bedsList) { if (bed.getString("parentId").equals(room.getString("value"))){ bedjson.add(bed); } } room.put("children",bedjson); } //楼 和 房间的关系 for (JSONObject floor : floorList) { ArrayList<JSONObject> romjson = new ArrayList<>(); for (JSONObject rom : roomsList) { if (rom.getString("parentId").equals(floor.getString("value"))){ romjson.add(rom); } } floor.put("children",romjson); } //区域 和 楼的关系 for (JSONObject area : areaList) { ArrayList<JSONObject> floorjson = new ArrayList<>(); for (JSONObject floor : floorList) { if (floor.getString("parentId").equals(area.getString("value"))){ floorjson.add(floor); } } area.put("children",floorjson); } }catch (Exception e){ e.printStackTrace(); } return new RestResponse(areaList); }

  数据库sql

SELECT
	q.mc area,
	q.id areaId,
	l.id lId,
	l.mc lmc,
	f.id fjId,
	f.mc fjmc,
	c.bh,
	c.id,
	f.sslb,
	f.cjid 
FROM
	t_sys_sscwxx c
	INNER JOIN t_sys_ssfjxx f ON c.bh LIKE concat ( f.bh, '%' )
	INNER JOIN t_sys_sslxx l ON f.bh LIKE concat ( l.bh, '%' )
	INNER JOIN t_sys_ssxx q ON l.bh LIKE concat ( q.bh, '%' ) 
WHERE
	c.zt = 0 
	AND f.sslb= '女' 
	AND f.cjid= '12' /*部门ID*/

  数据库结果集

 

标签:get,JSONObject,树结构,add,宿舍,map1,put,new
来源: https://www.cnblogs.com/lilulin/p/15785663.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有