From 8d8e33f84d124ca16287451d65114c7e21857d76 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 20 三月 2024 17:40:59 +0800
Subject: [PATCH] 按项目统计各类数据

---
 src/main/java/com/lf/server/mapper/sys/ReportMapper.java             |   10 ++++
 src/main/resources/mapper/sys/ReportMapper.xml                       |   51 +++++++++++++++++++++++++
 src/main/java/com/lf/server/controller/data/DataCountController.java |   22 ++++++++++
 src/main/java/com/lf/server/service/sys/ReportService.java           |    7 +++
 4 files changed, 87 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/data/DataCountController.java b/src/main/java/com/lf/server/controller/data/DataCountController.java
index aa23343..1d2ee3a 100644
--- a/src/main/java/com/lf/server/controller/data/DataCountController.java
+++ b/src/main/java/com/lf/server/controller/data/DataCountController.java
@@ -391,7 +391,7 @@
     }
 
     @SysLog()
-    @ApiOperation(value = "鎸夐」鐩粺璁″湴璐ㄦā鍨嬮潰绉�")
+    @ApiOperation(value = "鎸夐」鐩粺璁′笁缁村湴璐ㄦā鍨嬮潰绉�")
     @GetMapping(value = "/countGeoModelAreaByPrj")
     public ResponseMsg<Object> countGeoModelAreaByPrj() {
         try {
@@ -415,4 +415,24 @@
             return fail(ex, null);
         }
     }
+
+    @SysLog()
+    @ApiOperation(value = "鎸夐」鐩粺璁″悇绫绘暟鎹�")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "code", value = "椤圭洰缂栫爜", dataType = "String", paramType = "query", example = "0B")
+    })
+    @GetMapping(value = "/countVariousDataByPrj")
+    public ResponseMsg<Object> countVariousDataByPrj(String code) {
+        try {
+            if (StringHelper.isEmpty(code)) {
+                return fail("椤圭洰缂栫爜涓嶈兘涓虹┖");
+            }
+
+            List<CountEntity> list = reportService.countVariousDataByPrj(code);
+
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex, null);
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/mapper/sys/ReportMapper.java b/src/main/java/com/lf/server/mapper/sys/ReportMapper.java
index a2a6ab6..cc5b3bf 100644
--- a/src/main/java/com/lf/server/mapper/sys/ReportMapper.java
+++ b/src/main/java/com/lf/server/mapper/sys/ReportMapper.java
@@ -271,7 +271,7 @@
 
 
     /**
-     * 鎸夐」鐩粺璁″湴璐ㄦā鍨嬮潰绉�
+     * 鎸夐」鐩粺璁′笁缁村湴璐ㄦā鍨嬮潰绉�
      *
      * @return
      */
@@ -283,4 +283,12 @@
      * @return
      */
     public List<CountEntity> countGeologicHazardByPrj();
+
+    /**
+     * 鎸夐」鐩粺璁″悇绫绘暟鎹�
+     *
+     * @param code
+     * @return
+     */
+    public List<CountEntity> countVariousDataByPrj(String code);
 }
diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java
index 3d6eb56..9afeee4 100644
--- a/src/main/java/com/lf/server/service/sys/ReportService.java
+++ b/src/main/java/com/lf/server/service/sys/ReportService.java
@@ -245,6 +245,13 @@
         return reportMapper.countGeologicHazardByPrj();
     }
 
+    @Override
+    public List<CountEntity> countVariousDataByPrj(String code) {
+        code = StringHelper.getRightLike(code);
+
+        return reportMapper.countVariousDataByPrj(code);
+    }
+
     /**
      * 缁熻閽诲瓟鐐归潰绉�
      */
diff --git a/src/main/resources/mapper/sys/ReportMapper.xml b/src/main/resources/mapper/sys/ReportMapper.xml
index 28c455d..8124092 100644
--- a/src/main/resources/mapper/sys/ReportMapper.xml
+++ b/src/main/resources/mapper/sys/ReportMapper.xml
@@ -304,7 +304,7 @@
         order by code;
     </select>
 
-    <!-- 鎸夐」鐩粺璁″湴璐ㄦā鍨嬮潰绉� -->
+    <!-- 鎸夐」鐩粺璁′笁缁村湴璐ㄦā鍨嬮潰绉� -->
     <select id="countGeoModelAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
         select name "m1",
           (select cast( coalesce(sum(b.area), 0) as decimal(20, 2) )
@@ -322,4 +322,53 @@
         where pid = 0
         order by code;
     </select>
+
+    <!-- 鎸夐」鐩粺璁″悇绫绘暟鎹� -->
+    <select id="countVariousDataByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        (select '鏁板瓧绾垮垝鍥�' "m1", 0 "count", cast( coalesce(sum(area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_line_buffer where code like #{code})
+        union all
+        (select '鏁板瓧楂樼▼妯″瀷' "m1", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b inner join lf.sys_dir c on b.dircode = c.code
+            where c.name = '鏁板瓧楂樼▼妯″瀷' and b.type in ('dem', 'tif', 'tiff') and b.dircode like #{code})
+        union all
+        (select '鏁板瓧姝e皠褰卞儚鍥�' "m1", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b inner join lf.sys_dir c on b.dircode = c.code
+            where c.name = '鏁板瓧姝e皠褰卞儚鍥�' and b.type in ('img', 'tif', 'tiff') and b.dircode like #{code})
+        union all
+        (select '鍊炬枩鎽勫奖妯″瀷' "m1", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b where b.type = 'osgb' and b.dircode like #{code})
+        union all
+        (select '婵�鍏夌偣浜戞ā鍨�' "m1", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b where b.type in ('las', 'laz') and b.dircode like #{code})
+        union all
+        (select '绠$嚎闀垮害' "m1", 0 "count", 0 "area", cast( coalesce(sum( ST_Length( ST_GeographyFromText( ST_AsText(geom) ) ) ) / 1000, 0) as decimal(20, 2) ) "len"
+            from bs.m_pipeline b where b.dirid like #{code})
+        union all
+        (select '鍕樻帰鐐�' "m1", count(*), 0 "area", 0 "len" from bs.s_explorationpoint b where b.dirid like #{code})
+        union all
+        (select '鍕樺療宸ョ偣' "m1", count(*), 0 "area", 0 "len" from bs.s_surveyworksite b where b.dirid like #{code})
+        union all
+        (select '鍕樺療鎶ュ憡' "m1", count(*), 0 "area", 0 "len" from bs.s_explorationpoint b
+            inner join lf.sys_attach c on b.eventid = c.tab_guid where b.dirid like #{code})
+        union all
+        (select '涓夌淮鍦拌川妯″瀷' "m1", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b where b.type in ('fbx', 'ifc') and b.dircode like #{code})
+        union all
+        (select '鍦扮伨鐐�' "m1", count(*), 0 "area", 0 "len" from bd.b_geologic_hazard b where b.dirid like #{code})
+        union all
+        (select '宕╁' "m1", count(*), 0 "area", 0 "len" from bs.g_collapse b where b.dirid like #{code})
+        union all
+        (select '娉ョ煶娴�' "m1", count(*), 0 "area", 0 "len" from bs.g_debrisflow b where b.dirid like #{code})
+        union all
+        (select '鍦伴潰濉岄櫡' "m1", count(*), 0 "area", 0 "len" from bs.g_ground_collapse b where b.dirid like #{code})
+        union all
+        (select '楂橀櫋杈瑰潯' "m1", count(*), 0 "area", 0 "len" from bs.g_highandsteep_slope b where b.dirid like #{code})
+        union all
+        (select '婊戝潯' "m1", count(*), 0 "area", 0 "len" from bs.g_landslide b where b.dirid like #{code})
+        union all
+        (select '涓嶇ǔ瀹氭枩鍧�' "m1", count(*), 0 "area", 0 "len" from bs.g_unstable_slope b where b.dirid like #{code})
+        union all
+        (select '姘存瘉' "m1", count(*), 0 "area", 0 "len" from bs.g_water_damage b where b.dirid like #{code});
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3