Browse Source

增加设施树接口

learshaw 6 months ago
parent
commit
bfa1bb21b5

+ 43 - 18
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/EmsFacsController.java

@@ -31,7 +31,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -143,14 +142,13 @@ public class EmsFacsController extends BaseController {
     /**
      * 查询区域树 (根据设施类型过滤)
      *
-     * @param facsCategory    设施类别
-     * @param facsSubCategory 设施类别
+     * @param parentCode   父区域编码
+     * @param facsCategory 设施类别
      */
-    @GetMapping("/getAreaTreeByFacsCategory")
-    public AjaxResult getAreaTreeByFacsCategory(
+    @GetMapping("/getFacsCategoryTree")
+    public AjaxResult getFacsCategoryTree(
         @RequestParam(name = "parentCode", required = false, defaultValue = "0") String parentCode,
-        @RequestParam(name = "facsCategory", required = false) String facsCategory,
-        @RequestParam(name = "facsSubCategory", required = false) String facsSubCategory) {
+        @RequestParam(name = "facsCategory", required = false) String facsCategory) {
 
         // 查询区域树
         List<Area> areaTree = areaService.selectAreaTree(parentCode, false);
@@ -158,29 +156,56 @@ public class EmsFacsController extends BaseController {
         // 查询设施列表
         EmsFacs facsParam = new EmsFacs();
         facsParam.setFacsCategory(facsCategory);
-        facsParam.setFacsSubCategory(facsSubCategory);
         List<EmsFacs> facsList = facsService.selectEmsFacsList(facsParam);
-        Set<String> facsAreaCodes = facsList.stream().map(EmsFacs::getRefArea).collect(Collectors.toSet());
-        Map<String, List<EmsFacs>> groupByCaregory = facsList.stream()
+        Map<String, List<EmsFacs>> groupByArea = facsList.stream()
             .collect(Collectors.groupingBy(EmsFacs::getRefArea, Collectors.toList()));
 
-        // 过滤树节点
-        areaTree = AreaUtils.filterTree(areaTree, facsAreaCodes);
         List<TreeEntity> retList = AreaUtils.convertAreaTree(areaTree);
 
         for (TreeEntity treeEntity : retList) {
-            List<TreeEntity> facsCategoryList = new ArrayList<TreeEntity>();
-
-            if (groupByCaregory.containsKey(FacsCategoryType.E.name())) {
-
-            }
+            List<EmsFacs> facsTemp = groupByArea.get(treeEntity.getId());
 
+            if (CollectionUtils.isNotEmpty(facsTemp)) {
+                Map<String, List<EmsFacs>> groupByCaregory = facsTemp.stream()
+                    .collect(Collectors.groupingBy(EmsFacs::getFacsCategory, Collectors.toList()));
 
-            if (CollectionUtils.isNotEmpty(facsCategoryList)) {
+                List<TreeEntity> facsCategoryList = new ArrayList<>();
+                facsCategoryList.addAll(buildSubTree(FacsCategoryType.E, groupByCaregory));
+                facsCategoryList.addAll(buildSubTree(FacsCategoryType.W, groupByCaregory));
+                facsCategoryList.addAll(buildSubTree(FacsCategoryType.C, groupByCaregory));
+                facsCategoryList.addAll(buildSubTree(FacsCategoryType.Z, groupByCaregory));
                 treeEntity.setChildren(facsCategoryList);
             }
         }
 
         return success(retList);
     }
+
+    private List<TreeEntity> buildSubTree(FacsCategoryType type, Map<String, List<EmsFacs>> groupByCaregory) {
+        List<TreeEntity> retList = new ArrayList<>();
+        List<EmsFacs> facsList = groupByCaregory.get(type.name());
+
+        if (CollectionUtils.isNotEmpty(facsList)) {
+            TreeEntity cnEntity = new TreeEntity();
+            cnEntity.setId(type.name());
+            cnEntity.setLabel(type.getTypeName());
+            cnEntity.setChildren(convertEntity(facsList));
+            retList.add(cnEntity);
+        }
+
+        return retList;
+    }
+
+    public static List<TreeEntity> convertEntity(List<EmsFacs> facsList) {
+        List<TreeEntity> retList = new ArrayList<>();
+
+        facsList.forEach(facs -> {
+            TreeEntity treeEntity = new TreeEntity();
+            treeEntity.setId(facs.getFacsCode());
+            treeEntity.setLabel(facs.getFacsName());
+            retList.add(treeEntity);
+        });
+
+        return retList;
+    }
 }