浏览代码

重点防火地块 植树造林数据中台

朴弘宇 1 年之前
父节点
当前提交
5149d28423

+ 10 - 9
src/main/java/com/sooka/sponest/data/digitalforest/controller/ForestBigDataController.java

@@ -152,26 +152,26 @@ public class ForestBigDataController extends BaseController {
     }
 
     @ApiOperation(value = "远端调用查询巡查计划", notes = "远端调用查询巡查计划")
-    @GetMapping("selectCenterdataTForestPlanHz")
-    public AjaxResult selectCenterdataTForestPlanHz() {
-        return forestBigDataService.selectCenterdataTForestPlanHz();
+    @PostMapping("selectCenterdataTForestPlanHz")
+    public R selectCenterdataTForestPlanHz(@RequestBody CenterdataTAfforestationTask centerdataTAfforestationTask) {
+        return R.ok(forestBigDataService.selectCenterdataTForestPlanHz(centerdataTAfforestationTask));
     }
 
 
-
-    @GetMapping ("/linLeaderCount")
+    @GetMapping("/linLeaderCount")
     public R linLeaderCount(CenterdataTForestLinleader centerdataTForestLinleader) {
         return R.ok(forestBigDataService.linLeaderCount(centerdataTForestLinleader));
     }
 
 
-    @GetMapping ("/focusOnFire")
-    public R focusOnFire(CenterdataTForestKeyFireproofPlots centerdataTForestKeyFireproofPlots) {
+    @PostMapping("/focusOnFire")
+    public R focusOnFire(@RequestBody CenterdataTForestKeyFireproofPlots centerdataTForestKeyFireproofPlots) {
         return R.ok(forestBigDataService.focusOnFire(centerdataTForestKeyFireproofPlots));
     }
 
     /**
      * 林业资源(市级用用户按区县,区县用户按乡镇统计林区面积)
+     *
      * @return
      */
     @ApiOperation(value = "林业资源(市级用用户按区县,区县用户按乡镇统计林区面积)", notes = "林业资源(市级用用户按区县,区县用户按乡镇统计林区面积)")
@@ -182,16 +182,17 @@ public class ForestBigDataController extends BaseController {
 
     /**
      * 林业网格(市级用用户按区县,区县用户按乡镇统计林业网格数量)
+     *
      * @return
      */
     @ApiOperation(value = "林业网格(市级用用户按区县,区县用户按乡镇统计林业网格数量)", notes = "林业网格(市级用用户按区县,区县用户按乡镇统计林业网格数量)")
-    @PostMapping ("/forestGridCount")
+    @PostMapping("/forestGridCount")
     public R selectForestGridCount(@RequestBody CenterdataTForestGridLevelVo centerdataTForestGridLevel) throws IOException {
         return R.ok(forestBigDataService.selectForestGridCount(centerdataTForestGridLevel));
     }
 
     @ApiOperation(value = "珍稀古树(市级用用户按区县,区县用户按乡镇统计珍稀古树数量)", notes = "珍稀古树(市级用用户按区县,区县用户按乡镇统计珍稀古树数量)")
-    @PostMapping ("/selectTreeCount")
+    @PostMapping("/selectTreeCount")
     public R selectTreeCount(@RequestBody CenterdataTForestTrees centerdataTForestTrees) {
         return R.ok(forestBigDataService.selectTreeCount(centerdataTForestTrees));
     }

+ 1 - 1
src/main/java/com/sooka/sponest/data/digitalforest/mapper/ForestBigDataMapper.java

@@ -52,7 +52,7 @@ public interface ForestBigDataMapper {
 
     CenterdataTForestPlanTj selectCenterdataTForestPlanHz();
 
-    List<String> queryTaskArea(@Param("status") String status);
+    List<Map<String, Object>> queryTaskArea(CenterdataTAfforestationTask centerdataTAfforestationTask);
 
 
     List<Map<String, Object>> linLeaderCount(CenterdataTForestLinleader centerdataTForestLinleader);

+ 1 - 1
src/main/java/com/sooka/sponest/data/digitalforest/service/IForestBigDataService.java

@@ -49,7 +49,7 @@ public interface IForestBigDataService {
 
     Map<String, Object> selectCqpm();
 
-    AjaxResult selectCenterdataTForestPlanHz();
+    List<Map<String,Object>> selectCenterdataTForestPlanHz(CenterdataTAfforestationTask centerdataTAfforestationTask);
 
 
     List<Map<String, Object>> linLeaderCount(CenterdataTForestLinleader centerdataTForestLinleader);

+ 7 - 20
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/ForestBigDataServiceImpl.java

@@ -171,28 +171,14 @@ public class ForestBigDataServiceImpl extends BaseServiceImpl implements IForest
         map.put("data", mapList);
         return map;
     }
+
     @Override
-    public AjaxResult selectCenterdataTForestPlanHz() {
-        JSONObject resultData = new JSONObject();
-        for (int i = 1; i <= 3; i++) {
-            List<String> dataList =  forestBigDataMapper.queryTaskArea(String.valueOf(i));
-            switch (i){
-                case 1:
-                    resultData.put("notBegin" ,dataList);
-                    break;
-                case 2:
-                    resultData.put("begin" ,dataList);
-                    break;
-                case 3:
-                    resultData.put("success" ,dataList);
-                    break;
-            }
-        }
-        return AjaxResult.success(resultData);
+    public List<Map<String, Object>> selectCenterdataTForestPlanHz(CenterdataTAfforestationTask centerdataTAfforestationTask) {
+        setSookaDataBase(centerdataTAfforestationTask);
+        List<Map<String,Object>> list = forestBigDataMapper.queryTaskArea(centerdataTAfforestationTask);
+        return deptLevelUtil.getDeptLevel(list,String.valueOf(centerdataTAfforestationTask.getDeptId()));
     }
 
-
-
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> linLeaderCount(CenterdataTForestLinleader centerdataTForestLinleader) {
@@ -204,7 +190,8 @@ public class ForestBigDataServiceImpl extends BaseServiceImpl implements IForest
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> focusOnFire(CenterdataTForestKeyFireproofPlots centerdataTForestKeyFireproofPlots) {
         setSookaDataBase(centerdataTForestKeyFireproofPlots);
-        return forestBigDataMapper.focusOnFire(centerdataTForestKeyFireproofPlots);
+        List<Map<String,Object>> list = forestBigDataMapper.focusOnFire(centerdataTForestKeyFireproofPlots);
+        return deptLevelUtil.getDeptLevel(list,String.valueOf(centerdataTForestKeyFireproofPlots.getDeptId()));
     }
 
     @DataScopeMutiDept(deptAlias = "d")

+ 19 - 11
src/main/resources/mapper/digitalforest/ForestBigDataMapper.xml

@@ -119,7 +119,7 @@
         left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
         <where>
             <if test="forestGridLevel != null and forestGridLevel != ''">
-             and a.forest_grid_level = #{forestGridLevel}
+                and a.forest_grid_level = #{forestGridLevel}
             </if>
             ${params.dataScope}
         </where>
@@ -163,7 +163,7 @@
     </select>
 
     <select id="selectCarCount" parameterType="CenterdataTForestCar" resultType="Map">
-        select count(a.id) value, b.dict_label name from centerdata_t_forest_car  a
+        select count(a.id) value, b.dict_label name from centerdata_t_forest_car a
         left join ${database_system}.sys_dict_data b on a.forest_brand = b.dict_value
         left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
         <where>
@@ -198,8 +198,14 @@
         from centerdata_t_forest_plan ) a, (select sum(area) as totalarea  from centerdata_t_forest_afforestationarea) b
     </select>
 
-    <select id="queryTaskArea" resultType="String" parameterType="String">
-        select area from centerdata_t_afforestation_task WHERE task_status = #{status}
+    <select id="queryTaskArea" resultType="map">
+        SELECT d.ancestors ,a.dept_id deptId,
+       SUM(CASE WHEN task_status = 1 THEN 1 ELSE 0 END) AS begin,
+       SUM(CASE WHEN task_status = 2 THEN 1 ELSE 0 END) AS notbegin,
+       SUM(CASE WHEN task_status = 3 THEN 1 ELSE 0 END) AS success
+       FROM centerdata_t_afforestation_task a
+       LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+       GROUP BY a.dept_id
     </select>
 
     <select id="linLeaderCount" resultType="map">
@@ -226,12 +232,14 @@
 
 
     <select id="focusOnFire" resultType="map">
-        SELECT SUM(a.plots_area) as area ,COUNT(DISTINCT a.forest_species)as species,a.dept_name as deptName FROM `centerdata_t_forest_keyfireproofplots` a
-            left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
-        <where>
-            ${params.dataScope}
-        </where>
-        GROUP BY deptName
+        SELECT d.ancestors,
+       a.dept_id AS deptId,
+       COALESCE(MAX(CASE WHEN a.forest_species = 'dominant_tree_species0' THEN a.plots_area END), 0) AS dominant_tree_species0,
+       COALESCE(MAX(CASE WHEN a.forest_species = 'dominant_tree_species1' THEN a.plots_area END), 0) AS dominant_tree_species1
+       FROM centerdata_t_forest_keyfireproofplots a
+       LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+       WHERE a.forest_species IN ('dominant_tree_species0', 'dominant_tree_species1')
+       GROUP BY d.ancestors, a.dept_id;
     </select>
 
     <select id="selectResourcesAreaCount" resultType="java.util.Map">
@@ -251,7 +259,7 @@
         from centerdata_t_forest_grid_level a
         left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
         <where>
-        and a.forest_grid_level = "3"
+            and a.forest_grid_level = "3"
             ${params.dataScope}
         </where>
         group by a.dept_id