ソースを参照

消防大数据统计

hanfucheng 1 年間 前
コミット
9c1fb22a28

+ 14 - 1
src/main/java/com/sooka/sponest/data/digitalfirecontrol/controller/FireControlBigDataController.java

@@ -10,6 +10,7 @@ import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
 import com.sooka.sponest.data.digitalemergency.domain.bo.VisuEmergencyCenterDataCountBO;
 import com.sooka.sponest.data.digitalemergency.domain.vo.VisuEmergencyCenterDataVO;
 import com.sooka.sponest.data.digitalfirecontrol.domain.*;
+import com.sooka.sponest.data.digitalfirecontrol.domain.vo.DataVisuFireCloudMapVO;
 import com.sooka.sponest.data.digitalfirecontrol.service.IFireControlBigDataService;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
@@ -139,7 +140,19 @@ public class FireControlBigDataController extends BaseController {
      */
     @ApiOperation(value = "查询水鹤+取水口+消火栓远端调用", notes = "查询水鹤+取水口+消火栓远端调用")
     @PostMapping("/selectBigDataNumWithDeptCount")
-    public R selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO) throws IOException {
+    public R selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO) {
         return R.ok(iFireControlBigDataService.selectBigDataNumWithDeptCount(visuForestCloudMapVO));
     }
+
+    /*
+    * 重点场所统计
+    *
+    * @author 韩福成
+    * @date 2023/10/31 16:21
+    */
+    @ApiOperation(value = "重点场所统计", notes = "重点场所统计")
+    @PostMapping("/selectKeyLocations")
+    public R selectKeyLocations(DataVisuFireCloudMapVO dataVisuFireCloudMapVO){
+        return R.ok(iFireControlBigDataService.selectKeyLocations(dataVisuFireCloudMapVO));
+    }
 }

+ 4 - 1
src/main/java/com/sooka/sponest/data/digitalfirecontrol/mapper/FireControlBigDataMapper.java

@@ -7,6 +7,7 @@ import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
 import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
 import com.sooka.sponest.data.digitalemergency.domain.vo.VisuEmergencyCenterDataVO;
 import com.sooka.sponest.data.digitalfirecontrol.domain.*;
+import com.sooka.sponest.data.digitalfirecontrol.domain.vo.DataVisuFireCloudMapVO;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestWeatherinformation;
@@ -33,7 +34,7 @@ public interface FireControlBigDataMapper {
 
     List<VisuForestCloudEventTypeBO> selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
 
-    List<VisuForestCloudEventTypeBO> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid);
+    List<Map<String, Object>> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid);
 
     List<Map<String, Object>> getbasiclinkageforeList(CenterdataTFirecontrolBasicLinkageForce centerdataTFirecontrolBasicLinkageForce);
 
@@ -51,4 +52,6 @@ public interface FireControlBigDataMapper {
      */
     List<Map<String, Object>> selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO);
 
+    List<Map<String, Object>> selectKeyLocations(DataVisuFireCloudMapVO dataVisuFireCloudMapVO);
+
 }

+ 11 - 2
src/main/java/com/sooka/sponest/data/digitalfirecontrol/service/IFireControlBigDataService.java

@@ -7,6 +7,7 @@ import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
 import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
 import com.sooka.sponest.data.digitalemergency.domain.vo.VisuEmergencyCenterDataVO;
 import com.sooka.sponest.data.digitalfirecontrol.domain.*;
+import com.sooka.sponest.data.digitalfirecontrol.domain.vo.DataVisuFireCloudMapVO;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.bo.CenterdataTForestWeatherinformationBigDataBO;
@@ -35,7 +36,7 @@ public interface IFireControlBigDataService {
 
     List<VisuForestCloudEventTypeBO> selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
 
-    List<VisuForestCloudEventTypeBO> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid);
+    List<Map<String,Object>> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid);
 
     List getbasiclinkageforeList(CenterdataTFirecontrolBasicLinkageForce centerdataTFirecontrolBasicLinkageForce);
 
@@ -51,6 +52,14 @@ public interface IFireControlBigDataService {
     /**
      * 水鹤+取水口+消火栓
      */
-    List<Map<String,Object>> selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO)throws IOException;
+    List<Map<String,Object>> selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO);
+
+    /*
+    * 重点场所
+    *
+    * @author 韩福成
+    * @date 2023/10/31 16:25
+    */
+    List<Map<String,Object>> selectKeyLocations(DataVisuFireCloudMapVO dataVisuFireCloudMapVO);
 
 }

+ 19 - 3
src/main/java/com/sooka/sponest/data/digitalfirecontrol/service/impl/FireControlBigDataServiceImpl.java

@@ -9,6 +9,7 @@ import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant;
 import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
 import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
 import com.sooka.sponest.data.digitalfirecontrol.domain.*;
+import com.sooka.sponest.data.digitalfirecontrol.domain.vo.DataVisuFireCloudMapVO;
 import com.sooka.sponest.data.digitalfirecontrol.mapper.FireControlBigDataMapper;
 import com.sooka.sponest.data.digitalfirecontrol.service.IFireControlBigDataService;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
@@ -95,9 +96,10 @@ public class FireControlBigDataServiceImpl extends BaseServiceImpl implements IF
 
     @DataScopeMutiDept(deptAlias = "d")
     @Override
-    public List<VisuForestCloudEventTypeBO> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid) {
+    public List<Map<String,Object>> selectBigDataFirecontrolFoamLiquidDeptCount(CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid) {
         setSookaDataBase(centerdataTFirecontrolFoamLiquid);
-        return fireControlBigDataMapper.selectBigDataFirecontrolFoamLiquidDeptCount(centerdataTFirecontrolFoamLiquid);
+        List<Map<String,Object>> mapList = fireControlBigDataMapper.selectBigDataFirecontrolFoamLiquidDeptCount(centerdataTFirecontrolFoamLiquid);
+        return deptLevelUtil.getDeptLevel(mapList);
     }
 
     @Override
@@ -136,9 +138,23 @@ public class FireControlBigDataServiceImpl extends BaseServiceImpl implements IF
      */
     @DataScopeMutiDept(deptAlias = "d")
     @Override
-    public List<Map<String,Object>> selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO) throws IOException {
+    public List<Map<String,Object>> selectBigDataNumWithDeptCount(VisuForestCloudMapVO visuForestCloudMapVO) {
         setSookaDataBase(visuForestCloudMapVO);
         List<Map<String,Object>> list = fireControlBigDataMapper.selectBigDataNumWithDeptCount(visuForestCloudMapVO);
         return deptLevelUtil.getDeptLevel(list);
     }
+
+    /*
+    * 重点场所
+    *
+    * @author 韩福成
+    * @date 2023/10/31 16:25
+    */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String,Object>> selectKeyLocations(DataVisuFireCloudMapVO dataVisuFireCloudMapVO) {
+        setSookaDataBase(dataVisuFireCloudMapVO);
+        List<Map<String,Object>> list = fireControlBigDataMapper.selectKeyLocations(dataVisuFireCloudMapVO);
+        return deptLevelUtil.getDeptLevel(list);
+    }
 }

+ 52 - 47
src/main/resources/mapper/digitalfirecontrol/FireControlBigDataMapper.xml

@@ -47,9 +47,12 @@
             left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
         where 1=1 ${params.dataScope}
         union all
-        select '消火栓' name,count(*) value from centerdata_t_forest_firehydrant a
-            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
-        where 1=1 ${params.dataScope}
+        SELECT a.dict_label name,count(b.firehydrant_type) value FROM ${database_system}.sys_dict_data a left join
+        (SELECT a.firehydrant_type FROM centerdata_t_forest_firehydrant a
+        left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        where 1=1 ${params.dataScope}) b on a.dict_value = b.firehydrant_type
+        where a.dict_type = 'firehydrant'
+        GROUP BY a.dict_value
         union all
         select '泡沫液' name,count(*) value from centerdata_t_firecontrol_foam_liquid a
             left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
@@ -97,26 +100,20 @@
         group by a.dept_id,a.dept_name
     </select>
     <select id="selectBigDataFirecontrolFoamLiquidDeptCount" parameterType="CenterdataTFirecontrolFoamLiquid"
-            resultMap="VisuForestCloudEventTypeBOResult">
-        select a.dept_name name,count(a.id) value from centerdata_t_firecontrol_foam_liquid a
-            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
-        where 1=1 ${params.dataScope}
-        group by a.dept_id,a.dept_name
+            resultMap="java.util.Map">
+        select d.ancestors ancestors,a.dept_id deptId,count(a.id) num
+        from centerdata_t_firecontrol_foam_liquid a
+        left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        where 1=1  ${params.dataScope}
+        group by a.dept_id
     </select>
 
     <select id="getbasiclinkageforeList" parameterType="CenterdataTFirecontrolBasicLinkageForce"
             resultType="map">
-        SELECT
-            '消防车数量' AS 'name',
-                sum( fire_fighting_truck_num ) AS 'value'
-        FROM
-            centerdata_t_firecontrol_basic_linkage_force
-        UNION
-        SELECT
-            '铲车数量' AS 'name',
-                sum( forklift_num ) AS 'value'
-        FROM
-            centerdata_t_firecontrol_basic_linkage_force
+       SELECT d.ancestors,a.dept_id,a.forklift_num forkliftNum,a.fire_fighting_truck_num fightingNum
+        from centerdata_t_firecontrol_basic_linkage_force a
+        left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
+        WHERE  1=1 ${params.dataScope}
     </select>
     <select  id="getOtherlinkageforceList" parameterType="CenterdataTFirecontrolOtherLinkageForce" resultType="java.util.Map">
         SELECT
@@ -141,42 +138,50 @@
     </select>
 
     <select id="selectBigDataFireforceDeptCount" resultType="java.util.Map">
-        select d.ancestors ancestors, a.dept_id deptId, a.dept_name name,count(a.id) value from centerdata_t_firecontrol_fire_force a
+        select d.ancestors ancestors, a.dept_id deptId,count(a.id) value from centerdata_t_firecontrol_fire_force a
         left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
         where 1=1 ${params.dataScope}
-        group by a.dept_id,a.dept_name
+        group by a.dept_id
     </select>
 
     <select id="selectBigDataNumWithDeptCount" parameterMap="pm_VisuForestCloudMapVO" resultType="map">
-    SELECT a.ancestors,a.deptId,
-         sum(CASE WHEN a.`name` = '消火栓' THEN a.value ELSE 0 END) AS '消火栓',
-         sum(CASE WHEN a.`name` = '取水口' THEN a.value ELSE 0 END) AS '取水口',
-         sum(CASE WHEN a.`name` = '水鹤' THEN a.value ELSE 0 END) AS '水鹤'
-FROM (
-    SELECT d.ancestors ancestors, a.dept_id deptId, '水鹤' name, COUNT(*) value
-    FROM centerdata_t_forest_watercrane a
-    LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
-    WHERE 1 = 1 ${params.dataScope}
-    AND del_flag = 0
-    GROUP BY a.dept_id
+        SELECT a.ancestors,a.deptId,
+             sum(CASE WHEN a.`name` = '消火栓' THEN a.value ELSE 0 END) AS '消火栓',
+             sum(CASE WHEN a.`name` = '取水口' THEN a.value ELSE 0 END) AS '取水口',
+             sum(CASE WHEN a.`name` = '水鹤' THEN a.value ELSE 0 END) AS '水鹤'
+        FROM (
+            SELECT d.ancestors ancestors, a.dept_id deptId, '水鹤' name, COUNT(*) value
+            FROM centerdata_t_forest_watercrane a
+            LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+            WHERE 1 = 1 ${params.dataScope}
+            AND del_flag = 0
+            GROUP BY a.dept_id
+
+            UNION ALL
 
-    UNION ALL
+            SELECT d.ancestors ancestors, a.dept_id deptId, '取水口' name, COUNT(*) value
+            FROM centerdata_t_forest_waterintake a
+            LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+            WHERE 1 = 1 ${params.dataScope}
+            AND del_flag = 0
+            GROUP BY a.dept_id
 
-    SELECT d.ancestors ancestors, a.dept_id deptId, '取水口' name, COUNT(*) value
-    FROM centerdata_t_forest_waterintake a
-    LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
-    WHERE 1 = 1 ${params.dataScope}
-    AND del_flag = 0
-    GROUP BY a.dept_id
+            UNION ALL
 
-    UNION ALL
+            SELECT d.ancestors ancestors, a.dept_id deptId, '消火栓' name, COUNT(*) value
+            FROM centerdata_t_forest_firehydrant a
+            LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+            WHERE 1 = 1 ${params.dataScope}
+            AND del_flag = 0
+            GROUP BY a.dept_id
+        ) a GROUP BY a.ancestors,a.deptId
+    </select>
 
-    SELECT d.ancestors ancestors, a.dept_id deptId, '消火栓' name, COUNT(*) value
-    FROM centerdata_t_forest_firehydrant a
-    LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
-    WHERE 1 = 1 ${params.dataScope}
-    AND del_flag = 0
-    GROUP BY a.dept_id
-) a GROUP BY a.ancestors,a.deptId
+    <select id="selectKeyLocations" resultType="java.util.Map">
+        SELECT d.ancestors ancestors,a.dept_id deptId,count(a.id) num
+        FROM centerdata_t_firecontrol_fire_key_places a
+        left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
+        WHERE 1=1 ${params.dataScope}
+        GROUP BY a.dept_id
     </select>
 </mapper>