Browse Source

环保大数据统计

hanfucheng 1 năm trước cách đây
mục cha
commit
9b53899390

+ 29 - 1
src/main/java/com/sooka/sponest/data/digitalenvironment/controller/EnvironmentBigDataController.java

@@ -7,6 +7,7 @@ import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
+import com.sooka.sponest.data.digitalenvironment.domain.vo.EnvironmentBigDataVo;
 import com.sooka.sponest.data.digitalenvironment.service.IEnvironmentBigDataService;
 import com.sooka.sponest.data.digitalenvironment.service.IEnvironmentBigDataService;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
@@ -18,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 import springfox.documentation.annotations.ApiIgnore;
 
 
+import java.io.IOException;
+
 @RestController
 @RestController
 @RequestMapping("/environmentBigData")
 @RequestMapping("/environmentBigData")
 @Api(tags = "可视化大数据控制器")
 @Api(tags = "可视化大数据控制器")
@@ -63,7 +66,7 @@ public class EnvironmentBigDataController extends BaseController {
     @PostMapping("/selectBigDataByYearMonthFegin")
     @PostMapping("/selectBigDataByYearMonthFegin")
     public R selectBigDataByYearMonthFegin(@ApiIgnore @RequestBody CenterdataTForestWeatherinformationBigDataVO centerdataTForestWeatherinformationBigDataVO) {
     public R selectBigDataByYearMonthFegin(@ApiIgnore @RequestBody CenterdataTForestWeatherinformationBigDataVO centerdataTForestWeatherinformationBigDataVO) {
         return R.ok(environmentBigDataService.selectBigDataByYearMonth(centerdataTForestWeatherinformationBigDataVO));
         return R.ok(environmentBigDataService.selectBigDataByYearMonth(centerdataTForestWeatherinformationBigDataVO));
-    }//
+    }
 
 
     /* 数字环保远端调用
     /* 数字环保远端调用
      *
      *
@@ -155,4 +158,29 @@ public class EnvironmentBigDataController extends BaseController {
         CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise = new CenterdataTEnvironmentKeyEnterprise();
         CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise = new CenterdataTEnvironmentKeyEnterprise();
         return AjaxResult.success(environmentBigDataService.waterQualityFindDataByMonth(centerdataTEnvironmentKeyEnterprise));
         return AjaxResult.success(environmentBigDataService.waterQualityFindDataByMonth(centerdataTEnvironmentKeyEnterprise));
     }
     }
+
+    /*
+    * 大数据查询秸秆离田
+    *
+    * @author 韩福成
+    * @date 2023/10/27 11:07
+    */
+    @ApiOperation(value = "大数据查询秸秆离田" , notes = "大数据查询秸秆离田")
+    @GetMapping("/leaveField")
+    public AjaxResult leaveField(EnvironmentBigDataVo environmentBigDataVo) throws IOException {
+        return AjaxResult.success(environmentBigDataService.leaveField(environmentBigDataVo));
+    }
+    
+    /*
+    * 大数据按类型和分类统计排污口
+    *
+    * @author 韩福成
+    * @date 2023/10/27 11:29
+    */
+    @ApiOperation(value = "大数据按类型和分类统计排污口" , notes = "大数据按类型和分类统计排污口")
+    @GetMapping("/sewageoutlet")
+    public R sewageoutlet(EnvironmentBigDataVo environmentBigDataVo) {
+        return R.ok(environmentBigDataService.sewageoutlet(environmentBigDataVo));
+    }
+
 }
 }

+ 20 - 0
src/main/java/com/sooka/sponest/data/digitalenvironment/domain/vo/EnvironmentBigDataVo.java

@@ -0,0 +1,20 @@
+package com.sooka.sponest.data.digitalenvironment.domain.vo;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@ApiModel(value = "大数据统计入参实体类对象", description = "大数据统计入参实体类对象")
+public class EnvironmentBigDataVo extends BaseBusinessEntity {
+
+    @ApiModelProperty(value = "类型", required = false)
+    private String type;
+
+    @ApiModelProperty(value = "部门id", required = false)
+    private String deptId;
+
+}

+ 34 - 0
src/main/java/com/sooka/sponest/data/digitalenvironment/mapper/CenterdataTEnvironmentBigDataMapper.java

@@ -4,6 +4,7 @@ import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
+import com.sooka.sponest.data.digitalenvironment.domain.vo.EnvironmentBigDataVo;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
@@ -90,4 +91,37 @@ public interface CenterdataTEnvironmentBigDataMapper {
      * @return 结果
      * @return 结果
      */
      */
     List<Map<String, Object>> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise);
     List<Map<String, Object>> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise);
+
+    /*
+    * 大数据按排口类型统计排污口
+    *
+    * @author 韩福成
+    * @date 2023/10/27 13:20
+    */
+    List<Map<String, Object>> sewageoutletByType(EnvironmentBigDataVo environmentBigDataVo);
+
+    /*
+    * 大数据按一级分类统计排污口
+    *
+    * @author 韩福成
+    * @date 2023/10/27 13:54
+    */
+    List<Map<String, Object>> sewageoutletByOneclassification(EnvironmentBigDataVo environmentBigDataVo);
+
+    /*
+    * 大数据按二级分类统计排污口
+    *
+    * @author 韩福成
+    * @date 2023/10/27 13:55
+    */
+    List<Map<String, Object>> sewageoutletByTwoclassification(EnvironmentBigDataVo environmentBigDataVo);
+
+    /*
+    * 大数据统计秸秆离田
+    *
+    * @author 韩福成
+    * @date 2023/10/27 15:00
+    */
+    List<Map<String,Object>> leaveField(EnvironmentBigDataVo environmentBigDataVo);
+
 }
 }

+ 17 - 1
src/main/java/com/sooka/sponest/data/digitalenvironment/service/IEnvironmentBigDataService.java

@@ -4,12 +4,14 @@ import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
+import com.sooka.sponest.data.digitalenvironment.domain.vo.EnvironmentBigDataVo;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea;
 import com.sooka.sponest.data.generalbusiness.domain.bo.CenterdataTForestWeatherinformationBigDataBO;
 import com.sooka.sponest.data.generalbusiness.domain.bo.CenterdataTForestWeatherinformationBigDataBO;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
 
 
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -84,5 +86,19 @@ public interface IEnvironmentBigDataService {
      */
      */
     Map<String, Object> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise);
     Map<String, Object> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise);
 
 
-
+    /*
+    * 大数据统计秸秆离田
+    *
+    * @author 韩福成
+    * @date 2023/10/27 11:16
+    */
+    List<Map<String,Object>> leaveField(EnvironmentBigDataVo environmentBigDataVo) throws IOException;
+
+    /*
+    * 大数据按类型和分类统计排污口
+    *
+    * @author 韩福成
+    * @date 2023/10/27 13:17
+    */
+    List<Map<String,Object>> sewageoutlet(EnvironmentBigDataVo environmentBigDataVo);
 }
 }

+ 34 - 1
src/main/java/com/sooka/sponest/data/digitalenvironment/service/impl/EnvironmentBigDataServiceImpl.java

@@ -10,6 +10,7 @@ import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentKeyEnterprise;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentProhibitionArea;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
 import com.sooka.sponest.data.digitalenvironment.domain.CenterdataTEnvironmentSourcePollution;
+import com.sooka.sponest.data.digitalenvironment.domain.vo.EnvironmentBigDataVo;
 import com.sooka.sponest.data.digitalenvironment.mapper.CenterdataTEnvironmentBigDataMapper;
 import com.sooka.sponest.data.digitalenvironment.mapper.CenterdataTEnvironmentBigDataMapper;
 import com.sooka.sponest.data.digitalenvironment.service.IEnvironmentBigDataService;
 import com.sooka.sponest.data.digitalenvironment.service.IEnvironmentBigDataService;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
 import com.sooka.sponest.data.digitalfirecontrol.domain.CenterdataTFirecontrolBasicLinkageForce;
@@ -19,9 +20,12 @@ import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestWeatherinf
 import com.sooka.sponest.data.generalbusiness.domain.bo.CenterdataTForestWeatherinformationBigDataBO;
 import com.sooka.sponest.data.generalbusiness.domain.bo.CenterdataTForestWeatherinformationBigDataBO;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
 import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO;
 import com.sooka.sponest.data.utils.DataConstants;
 import com.sooka.sponest.data.utils.DataConstants;
+import com.sooka.sponest.data.utils.DeptLevelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -33,6 +37,9 @@ public class EnvironmentBigDataServiceImpl extends BaseServiceImpl implements IE
     @Autowired
     @Autowired
     private CenterdataTEnvironmentBigDataMapper centerdataTEnvironmentBigDataMapper;
     private CenterdataTEnvironmentBigDataMapper centerdataTEnvironmentBigDataMapper;
 
 
+    @Autowired
+    private DeptLevelUtil deptLevelUtil;
+
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     @Override
     @Override
     public List<VisuForestCloudEventTypeBO> selectBigDataImportareaDeptCount(CenterdataTForestImportarea centerdataTForestImportarea) {
     public List<VisuForestCloudEventTypeBO> selectBigDataImportareaDeptCount(CenterdataTForestImportarea centerdataTForestImportarea) {
@@ -152,7 +159,6 @@ public class EnvironmentBigDataServiceImpl extends BaseServiceImpl implements IE
         return dataByMonth(list,DataConstants.DAY,DataConstants.MONTH,"conductivity","temperature","humidity");
         return dataByMonth(list,DataConstants.DAY,DataConstants.MONTH,"conductivity","temperature","humidity");
     }
     }
 
 
-
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     @Override
     @Override
     public Map<String, Object> waterQualityFindDataByYear(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise) {
     public Map<String, Object> waterQualityFindDataByYear(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise) {
@@ -163,12 +169,39 @@ public class EnvironmentBigDataServiceImpl extends BaseServiceImpl implements IE
 
 
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     @Override
     @Override
+    public List<Map<String,Object>> leaveField(EnvironmentBigDataVo environmentBigDataVo) throws IOException {
+        setSookaDataBase(environmentBigDataVo);
+        List<Map<String,Object>> list = centerdataTEnvironmentBigDataMapper.leaveField(environmentBigDataVo);
+        return deptLevelUtil.getDeptLevel(list);
+    }
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
     public Map<String, Object> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise) {
     public Map<String, Object> waterQualityFindDataByMonth(CenterdataTEnvironmentKeyEnterprise centerdataTEnvironmentKeyEnterprise) {
         setSookaDataBase(centerdataTEnvironmentKeyEnterprise);
         setSookaDataBase(centerdataTEnvironmentKeyEnterprise);
         List<Map<String, Object>> list = centerdataTEnvironmentBigDataMapper.waterQualityFindDataByMonth(centerdataTEnvironmentKeyEnterprise);
         List<Map<String, Object>> list = centerdataTEnvironmentBigDataMapper.waterQualityFindDataByMonth(centerdataTEnvironmentKeyEnterprise);
         return dataByMonth(list,DataConstants.DAY,DataConstants.MONTH,"chemical_oxygen_demand","total_organic_carbon","ammonia_nitrogen");
         return dataByMonth(list,DataConstants.DAY,DataConstants.MONTH,"chemical_oxygen_demand","total_organic_carbon","ammonia_nitrogen");
     }
     }
 
 
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> sewageoutlet(EnvironmentBigDataVo environmentBigDataVo) {
+        setSookaDataBase(environmentBigDataVo);
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        switch (environmentBigDataVo.getType()){
+            case "0"://排口类型
+                mapList = centerdataTEnvironmentBigDataMapper.sewageoutletByType(environmentBigDataVo);
+                break;
+            case "1"://一级分类
+                mapList = centerdataTEnvironmentBigDataMapper.sewageoutletByOneclassification(environmentBigDataVo);
+                break;
+            case "2"://一级分类
+                mapList = centerdataTEnvironmentBigDataMapper.sewageoutletByTwoclassification(environmentBigDataVo);
+                break;
+        }
+        return mapList;
+    }
+
     private Map<String,Object> dataByMonth(List<Map<String, Object>> list,String date1,String date2,String map1
     private Map<String,Object> dataByMonth(List<Map<String, Object>> list,String date1,String date2,String map1
     ,String map2,String map3){
     ,String map2,String map3){
         double[] data = new double[31];
         double[] data = new double[31];

+ 52 - 0
src/main/java/com/sooka/sponest/data/utils/DeptLevelUtil.java

@@ -0,0 +1,52 @@
+package com.sooka.sponest.data.utils;
+
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.RemoteDeptService;
+import com.ruoyi.system.api.domain.SysDept;
+import net.bytebuddy.implementation.bytecode.Throw;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class DeptLevelUtil {
+
+    @Autowired
+    private RemoteDeptService remoteDeptService;
+
+    public List<Map<String, Object>> getDeptLevel(List<Map<String,Object>> list) throws IOException {
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        if (list.isEmpty()||!list.get(0).containsKey("ancestors")){
+            throw new IOException("入参为空或入参没有key:'ancestors'");
+        }
+        String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString();
+        List<SysDept> sysDeptList = remoteDeptService.selectChildrenCountyOrVillagesDeptListByDeptId(deptId).getData();
+        for (SysDept sysDept : sysDeptList){//部门
+            Map<String,Object> map = new HashMap<>();
+            //map中增加key
+            for (String key : list.get(0).keySet()) {
+                if (!key.equals("ancestors")&&!key.equals("deptId")){
+                    map.put(key,0);
+                }
+            }
+            for (Map<String,Object> ancestors : list){//资源数据
+                if (ancestors.get("ancestors").toString().concat(",").concat(ancestors.get("deptId").toString()).contains(sysDept.getAncestors().concat(",").concat(sysDept.getDeptId().toString()))){
+                    for (String key : ancestors.keySet()) {
+                        if (!key.equals("ancestors")&&!key.equals("deptId")){
+                            map.put(key,Long.parseLong(map.get(key).toString())+Long.parseLong(ancestors.get(key).toString()));
+                        }
+                    }
+                }
+            }
+            map.put("deptId",sysDept.getDeptId());
+            map.put("deptName",sysDept.getDeptName());
+            mapList.add(map);
+        }
+        return mapList;
+    }
+}

+ 31 - 0
src/main/resources/mapper/digitalenvironment/CenterdataTEnvironmentBigDataMapper.xml

@@ -427,4 +427,35 @@
         ORDER BY
         ORDER BY
             month(b.create_time)
             month(b.create_time)
     </select>
     </select>
+
+    <select id="sewageoutletByType" resultType="java.util.Map">
+        SELECT a.dict_label,count(b.id) FROM ${database_system}.sys_dict_data a  left join
+        (SELECT a.id,a.type FROM centerdata_t_environment_sewage_outlet a
+        left JOIN ${database_system}.sys_dept d on a.dept_id = d.dept_id where 1=1 ${params.dataScope} ) b on a.dict_value = b.type
+        where a.dict_type ='centerdata_sewage_type'
+        group by a.dict_value
+    </select>
+
+    <select id="sewageoutletByOneclassification" resultType="java.util.Map">
+        SELECT a.dict_label,count(b.id) FROM ${database_system}.sys_dict_data a  left join
+        (SELECT a.id,a.sewage_one_classification FROM centerdata_t_environment_sewage_outlet a
+        left JOIN ${database_system}.sys_dept d on a.dept_id = d.dept_id where 1=1 ${params.dataScope} ) b on a.dict_value = b.sewage_one_classification
+        where a.dict_type ='centerdata_sewage_oneclassification'
+        group by a.dict_value
+    </select>
+
+    <select id="sewageoutletByTwoclassification" resultType="java.util.Map">
+        SELECT a.dict_label,count(b.id) FROM ${database_system}.sys_dict_data a  left join
+        (SELECT a.id,a.sewage_two_classification FROM centerdata_t_environment_sewage_outlet a
+        left JOIN ${database_system}.sys_dept d on a.dept_id = d.dept_id where 1=1 ${params.dataScope}) b on a.dict_value = b.sewage_two_classification
+        where a.dict_type ='centerdata_sewage_twoclassification'
+        group by a.dict_value
+    </select>
+
+    <select id="leaveField" resultType="java.util.Map">
+        SELECT d.ancestors ancestors,a.dept_id deptId,count(*) num FROM centerdata_t_straw_leave_field 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>
 </mapper>