Quellcode durchsuchen

系统 设备台账 - 编辑模式关联系统后,再查询还是显示未关联系统

lvxianyun vor 3 Jahren
Ursprung
Commit
667f4300e8

+ 15 - 21
src/main/java/com/persagy/proxy/adm/controller/AdmSystemController.java

@@ -227,20 +227,18 @@ public class AdmSystemController {
     @PostMapping("/query-new")
     public AdmResponse queryNew(@QueryParam("buildingId") String buildingId,
                                 @QueryParam("floorId") String floorId, @RequestBody AdmQueryCriteria request) throws Exception {
+        request.setName(AdmSystem.OBJ_TYPE);
         AdmResponse syses = new AdmResponse();
         List<AdmSystem> admSystemList = new ArrayList<>();
         if(StrUtil.isAllEmpty(buildingId,floorId)){
             //case one 查询全部系统,级联建筑,建筑级联楼层
             AdmQueryCriteria admQueryCriteriaBd = new AdmQueryCriteria();
             admQueryCriteriaBd.setName("buildingList");
-            List<AdmQueryCriteria> cascadeBd = new ArrayList<>(1);
             AdmQueryCriteria admQueryCriteriaFl = new AdmQueryCriteria();
-            admQueryCriteriaFl.setName("floor");
-            cascadeBd.add(admQueryCriteriaFl);
-            admQueryCriteriaBd.setCascade(cascadeBd);
-
+            admQueryCriteriaFl.setName("floorList");
             List<AdmQueryCriteria> cascade = new ArrayList<>(1);
             cascade.add(admQueryCriteriaBd);
+            cascade.add(admQueryCriteriaFl);
             request.setCascade(cascade);
             syses = service.doQuery(AdmContextUtil.toDmpContext(),request,AdmSystem.class);
             //处理数据 BuildingFloorInfo
@@ -251,25 +249,23 @@ public class AdmSystemController {
                     List<AdmBuilding> buildingList = admSystem.getBuildingList();
                     if(CollUtil.isNotEmpty(buildingList)){
                         buildingList.stream().forEach(admBuilding -> {
-                            List<AdmFloor> admFloorList = admBuilding.getFloor();
+                            ObjectNode info = JsonNodeFactory.instance.objectNode();
+                            info.put("BuildID",admBuilding.getId());
+                            info.put("BuildName",admBuilding.getLocalName());
+
+                            List<AdmFloor> admFloorList = admSystem.getFloorList();
                             if(CollUtil.isNotEmpty(admFloorList)){
-                                admFloorList.stream().forEach(floor -> {
-                                    ObjectNode info = JsonNodeFactory.instance.objectNode();
-                                    info.put("BuildID",admBuilding.getId());
-                                    info.put("BuildName",admBuilding.getLocalName());
-                                    info.put("FloorID",floor.getId());
-                                    info.put("FloorName",floor.getLocalName());
-                                    buildingFloorInfoList.add(info);
-                                });
-                            }else{
-                                ObjectNode info = JsonNodeFactory.instance.objectNode();
-                                info.put("BuildID",admBuilding.getId());
-                                info.put("BuildName",admBuilding.getLocalName());
-                                buildingFloorInfoList.add(info);
+                                Map<String, AdmFloor> admFloorMap = CollUtil.fieldValueMap(admFloorList, "buildingId");
+                                if(admFloorMap.containsKey(admBuilding.getId())){
+                                    info.put("FloorID",admFloorMap.get(admBuilding.getId()).getId());
+                                    info.put("FloorName",admFloorMap.get(admBuilding.getId()).getLocalName());
+                                }
                             }
+                            buildingFloorInfoList.add(info);
                         });
                         admSystem.setBuildingFloorInfoList(buildingFloorInfoList);
                         admSystem.setBuildingList(null);
+                        admSystem.setFloorList(null);
                     } else{
                         admSystem.setBuildingFloorInfoList(buildingFloorInfoList);
                     }
@@ -282,8 +278,6 @@ public class AdmSystemController {
             if(JSONUtil.isNull(criteria)){
                 return AdmResponse.failure("请求参数错误");
             }
-            criteria.put("objType", AdmSystem.OBJ_TYPE);
-
             if (StrUtil.isAllNotEmpty(buildingId, floorId)) {
                 if(!"1".equals(floorId)){
                     //case two 明确建筑、明确楼层的 系统