Jelajahi Sumber

四长增加按级别统计

hanfucheng 11 bulan lalu
induk
melakukan
87139d2e49

+ 12 - 0
src/main/java/com/sooka/sponest/data/digitalwater/controller/WaterViewController.java

@@ -61,6 +61,18 @@ public class WaterViewController extends BaseController {
         return AjaxResult.success(waterViewService.getPointByDeptId(waterConservancyViewBO));
     }
 
+    /*
+    * 按级别获取人数(河长、路长、田长)
+    *
+    * @author 韩福成
+    * @date 2024/7/16 上午8:55
+    */
+    @ApiOperation(value = "按级别获取人数(河长、路长、田长)", notes = "按级别获取人数(河长、路长、田长)")
+    @GetMapping("/getNumByLevel")
+    public AjaxResult getNumByLevel(WaterConservancyViewBO waterConservancyViewBO) {
+        return AjaxResult.success(waterViewService.getNumByLevel(waterConservancyViewBO));
+    }
+
     /**
      * 获取人员信息(河长、路长、田长)可视化端
      *

+ 2 - 0
src/main/java/com/sooka/sponest/data/digitalwater/domain/WaterConservancyViewBO.java

@@ -48,6 +48,8 @@ public class WaterConservancyViewBO extends BaseBusinessEntity {
     @ApiModelProperty(value = "类型(2.河长 3.路长 6.田长)", required = false)
     private String leadType;
 
+    private String level;
+
     //字典项
     @ApiModelProperty(value = "字典项", required = false,hidden = true)
     private String dictType;

+ 2 - 0
src/main/java/com/sooka/sponest/data/digitalwater/mapper/WaterConservancyViewMapper.java

@@ -25,4 +25,6 @@ public interface WaterConservancyViewMapper {
     List<Map<String, Object>> getFarmLandList(WaterConservancyViewBO waterConservancyViewBO);
 
     List<RegionalFlag> getFlagList(WaterConservancyViewBO waterConservancyViewBO);
+
+    List<Map<String, Object>> getNumByLevel(WaterConservancyViewBO waterConservancyViewBO);
 }

+ 2 - 0
src/main/java/com/sooka/sponest/data/digitalwater/service/IWaterViewService.java

@@ -21,6 +21,8 @@ public interface IWaterViewService extends IBaseService {
 
     List<Map<String, Object>> getPointByDeptId(WaterConservancyViewBO waterConservancyViewBO);
 
+    List<Map<String, Object>> getNumByLevel(WaterConservancyViewBO waterConservancyViewBO);
+
     Map<String, Object> getRyList(WaterConservancyViewBO waterConservancyViewBO);
 
     List<Map<String, Object>> getRyListByJob(WaterConservancyViewBO waterConservancyViewBO);

+ 7 - 0
src/main/java/com/sooka/sponest/data/digitalwater/service/impl/WaterViewServiceImpl.java

@@ -67,6 +67,13 @@ public class WaterViewServiceImpl extends BaseServiceImpl implements IWaterViewS
         return pointList;
     }
 
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> getNumByLevel(WaterConservancyViewBO waterConservancyViewBO) {
+        setSookaDataBase(waterConservancyViewBO);
+        return waterConservancyViewMapper.getNumByLevel(waterConservancyViewBO);
+    }
+
     private void getCameraLists(List<Map<String, Object>> pointList) {
         List<String> ids = pointList.stream().map(item -> MapUtils.getString(item, "id")).collect(Collectors.toList());
         List<Map<String, Object>> cameraList = this.getCameraList(ids);

+ 1 - 1
src/main/resources/mapper/digitalforest/ForestViewMapper.xml

@@ -127,7 +127,7 @@
         SELECT
             a.dict_label name,
             a.dict_value level,
-            b.num
+            IFNULL(b.num,0) num
         FROM
             ${database_system}.sys_dict_data a
             LEFT JOIN (

+ 23 - 1
src/main/resources/mapper/digitalwater/WaterConservancyViewMapper.xml

@@ -68,6 +68,7 @@
                 LEFT JOIN ${database_system}.sys_dept d ON a.dept_id = d.dept_id
             WHERE
                 a.type = #{leadType}
+        <if test="level != null  and level != ''">AND a.lin_level = #{level}</if>
         <choose>
             <when test="deptId != null and deptId != ''">and FIND_IN_SET( #{deptId}, CONCAT(d.ancestors,',',d.dept_id) )</when>
             <otherwise>${params.dataScope}</otherwise>
@@ -207,4 +208,25 @@
         WHERE
             event_id = #{id} ORDER by flag
     </select>
-</mapper>
+
+    <select id="getNumByLevel" parameterType="WaterConservancyViewBO" resultType="map">
+        SELECT
+            a.dict_value level,
+            a.dict_label name,
+            IFNULL(b.num,0) num
+        FROM
+            ${database_system}.sys_dict_data a
+            LEFT JOIN (
+            SELECT
+                a.lin_level,
+                count( a.id ) num
+            FROM
+                centerdata_t_hydraulic_river_length a
+                    LEFT JOIN ${database_system}.sys_dept d ON a.dept_id = d.dept_id
+            where a.type = #{leadType}
+                ${params.dataScope}
+            GROUP BY a.lin_level
+            ) b ON a.dict_value = b.lin_level
+        WHERE a.dict_type = 'forest_lin_level'
+    </select>
+</mapper>