瀏覽代碼

更新二维实体图层树查询功能

DESKTOP-2K9OVK9\siwei 4 月之前
父節點
當前提交
4748bf7cfe

+ 2 - 2
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/controller/dimentity/DimEntityController.java

@@ -28,8 +28,8 @@ public class DimEntityController {
     private DimEntityService dimEntityService;
 
     @GetMapping("/entity/code/table/tree")
-    public RequestResult queryEntityCodeTableTree() throws IOException {
-        return RequestResult.success(dimEntityService.queryEntityCodeTableTree());
+    public RequestResult queryEntityCodeTableTree(String id) throws IOException {
+        return RequestResult.success(dimEntityService.queryEntityCodeTableTree(id));
     }
 
     @GetMapping("/entity/data")

+ 1 - 1
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/dimentity/DimEntityService.java

@@ -6,7 +6,7 @@ import java.util.List;
 import java.util.Map;
 
 public interface DimEntityService {
-    List<EntityCodeTreeVo> queryEntityCodeTableTree();
+    List<EntityCodeTreeVo> queryEntityCodeTableTree(String id);
 
     List<Map<String, Object>> queryEntityData(String entityid);
 }

+ 45 - 11
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/dimentity/impl/DimEntityServiceImpl.java

@@ -19,11 +19,24 @@ public class DimEntityServiceImpl implements DimEntityService {
     private DimEntityMapper dimEntityMapper;
 
     @Override
-    public List<EntityCodeTreeVo> queryEntityCodeTableTree() {
+    public List<EntityCodeTreeVo> queryEntityCodeTableTree(String id) {
+        int level = 1;
+        if (StringUtils.isNotEmpty(id)) {
+            int len = id.length();
+            if (len == 1) {
+                level = 2;
+            } else if (len == 2) {
+                level = 3;
+            } else if (len == 4) {
+                level = 4;
+            } else if (len == 6) {
+                level = 5;
+            }
+        }
         //创建视图
         String viewTableName = StringUtils.getTemporaryTableName();
         createView(viewTableName);
-        return queryEntityCodeTableTreeData(null, 1, viewTableName);
+        return queryEntityCodeTableTreeData(id, level, viewTableName);
     }
 
     @Override
@@ -51,9 +64,8 @@ public class DimEntityServiceImpl implements DimEntityService {
         if (viewsList != null && viewsList.size() > 0) {
             return;
         }
-
         //获取所有的实体关系表
-        List<String> tablesList = dimEntityMapper.querySchemaTableByName("vector", "实体关系表");
+        List<String> tablesList = dimEntityMapper.querySchemaTableByName("vector", "实体图元关联表");
 
         //通过实体关系表,获取实体关系表中,所有映射的实体代理点。此处创建视图,视图将一个小时后删除
         StringBuilder viewSql = new StringBuilder();
@@ -69,24 +81,46 @@ public class DimEntityServiceImpl implements DimEntityService {
     }
 
     private List<EntityCodeTreeVo> queryEntityCodeTableTreeData(String code, Integer level, String viewTableName) {
+        List<EntityCodeTreeVo> entityCodeTreeVos = new ArrayList<>();
+        if (level <= 4) {
+            entityCodeTreeVos = dimEntityMapper.queryEntityCodeTable(code, level);
+            for (EntityCodeTreeVo entityCodeTreeVo : entityCodeTreeVos) {
+                entityCodeTreeVo.setCount(0L);
+                List<String> d0_tables = dimEntityMapper.queryTablesNameByViewCode(viewTableName, entityCodeTreeVo.getId());
+                if (d0_tables.size() > 0) {
+                    entityCodeTreeVo.setCount(dimEntityMapper.queryEntityCodeTableCountByCode(entityCodeTreeVo.getId(), d0_tables));
+                }
+            }
+        } else {
+            List<String> d0_tables = dimEntityMapper.queryTablesNameByViewCode(viewTableName, code);
+            if (d0_tables.size() > 0) {
+                entityCodeTreeVos = dimEntityMapper.queryEntityCodeTableTreeDataByCode(code, d0_tables);
+            }
+        }
+        return entityCodeTreeVos;
+    }
+
+
+    private List<EntityCodeTreeVo> queryEntityCodeTableTreeDatabak(String code, Integer level, String viewTableName) {
         Long count = 0L;
         List<EntityCodeTreeVo> entityCodeTreeVos = dimEntityMapper.queryEntityCodeTable(code, level);
         if (level < 4) {
             for (EntityCodeTreeVo entityCodeTreeVo : entityCodeTreeVos) {
                 entityCodeTreeVo.setCount(0L);
-//                List<String> d0_tables = dimEntityMapper.queryTablesNameByViewCode(viewTableName, entityCodeTreeVo.getId());
-//                if (d0_tables.size() > 0) {
-//                    entityCodeTreeVo.setCount(dimEntityMapper.queryEntityCodeTableCountByCode(entityCodeTreeVo.getId(), d0_tables));
-//                }
-                entityCodeTreeVo.setChildren(queryEntityCodeTableTreeData(entityCodeTreeVo.getId(), level + 1, viewTableName));
+                List<String> d0_tables = dimEntityMapper.queryTablesNameByViewCode(viewTableName, entityCodeTreeVo.getId());
+                if (d0_tables.size() > 0) {
+                    entityCodeTreeVo.setCount(dimEntityMapper.queryEntityCodeTableCountByCode(entityCodeTreeVo.getId(), d0_tables));
+                }
+//                entityCodeTreeVo.setChildren(queryEntityCodeTableTreeData(entityCodeTreeVo.getId(), level + 1, viewTableName));
             }
         } else {
             for (EntityCodeTreeVo entityCodeTreeVo : entityCodeTreeVos) {
                 entityCodeTreeVo.setCount(0L);
                 List<String> d0_tables = dimEntityMapper.queryTablesNameByViewCode(viewTableName, entityCodeTreeVo.getId());
                 if (d0_tables.size() > 0) {
-//                    entityCodeTreeVo.setCount(dimEntityMapper.queryEntityCodeTableCountByCode(entityCodeTreeVo.getId(), d0_tables));
-                    entityCodeTreeVo.setChildren(dimEntityMapper.queryEntityCodeTableTreeDataByCode(entityCodeTreeVo.getId(), d0_tables));
+                    entityCodeTreeVo.setCount(dimEntityMapper.queryEntityCodeTableCountByCode(entityCodeTreeVo.getId(), d0_tables));
+//                    entityCodeTreeVo.setChildren(dimEntityMapper.queryEntityCodeTableTreeDataByCode(entityCodeTreeVo.getId(), d0_tables));
+//                    entityCodeTreeVo.setCount((long) entityCodeTreeVo.getChildren().size());
                 }
             }
         }

+ 1 - 1
onemap-modules/onemap-apply/src/main/resources/mapper/postgresql/dimentity/DimEntityMapper.xml

@@ -47,7 +47,7 @@
     <select id="queryEntityCodeTableTreeDataByCode" parameterType="String" resultMap="EntityCodeTreeVoResult">
         select * from (
         <foreach item="item" index="index" collection="tables" separator="UNION ALL" >
-            select entityid as id, case when entityname = 'null' then entityid else  entityname end as label,
+            select entityid::varchar as id, case when entityname::varchar = 'null' then entityid::varchar else  entityname::varchar  end as label,
             false disabled,0 as count
             from vector.${item} where classid::varchar like concat(#{code},'%')
         </foreach>