Преглед на файлове

Merge remote-tracking branch 'origin/dev-2.0' into dev-2.0

hanfucheng преди 1 година
родител
ревизия
6a1713e328

+ 16 - 2
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureBigDataController.java

@@ -270,6 +270,7 @@ public class AgricultureBigDataController {
 
     /**
      * 分类种子库存
+     * dictValue 传递 分类种子的value
      *
      * @author lvxuanzhi
      * @date 2023-10-26 09:53:19
@@ -293,7 +294,7 @@ public class AgricultureBigDataController {
     }
 
     /**
-     * 农业补贴
+     * 农业补贴(之下未完成)
      *
      * @author lvxuanzhi
      * @date 2023-10-26 09:53:19
@@ -332,7 +333,20 @@ public class AgricultureBigDataController {
 
 
     /**
-     * 农民合作社统计(等dev合并)
+     * 耕地资源
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-31 09:50:35
+     */
+    @ApiOperation(value = "耕地资源", notes = "耕地资源")
+    @PostMapping("/getFarmlandStatistics")
+    public AjaxResult getFarmlandStatistics(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getFarmlandStatistics(agricultureBigDataBO));
+    }
+
+
+    /**
+     * 农民合作社统计
      *
      * @author lvxuanzhi
      * @date 2023-10-27 10:07:00

+ 10 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/mapper/AgricultureBigDataMapper.java

@@ -3,6 +3,7 @@ package com.sooka.sponest.data.digitalagriculture.mapper;
 import com.ruoyi.system.api.domain.SysDept;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -54,13 +55,21 @@ public interface AgricultureBigDataMapper {
 
     List<Map<String,Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
+    List<Map<String,Object>> getCultivationStatisticsByYear(@Param("agricultureBigDataBO") AgricultureBigDataBO agricultureBigDataBO,@Param("year") String year);
+
     List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
 
     List<Map<String,Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO);
 
     List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
-    List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCooperativesStatistics1(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCooperativesStatistics2(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getCooperativesStatistics3(AgricultureBigDataBO agricultureBigDataBO);
 
     SysDept selectDetermineDeptLevel(Long deptId);
 

+ 3 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/service/IAgricultureBigDataService.java

@@ -52,7 +52,7 @@ public interface IAgricultureBigDataService {
 
     List<Map<String,Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
-    List<Map<String,Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO);
 
     List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO);
 
@@ -64,6 +64,8 @@ public interface IAgricultureBigDataService {
 
     List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
+    List<Map<String,Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO);
+
     List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
 }

+ 88 - 19
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -7,13 +7,12 @@ import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgricultu
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
 import com.sooka.sponest.data.digitalagriculture.mapper.AgricultureBigDataMapper;
 import com.sooka.sponest.data.digitalagriculture.service.IAgricultureBigDataService;
+import com.sooka.sponest.data.utils.DeptLevelUtil;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IAgricultureBigDataService {
@@ -21,6 +20,9 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     @Autowired
     private AgricultureBigDataMapper agricultureBigDataMapper;
 
+    @Autowired
+    private DeptLevelUtil deptLevelUtil;
+
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getSixNum(AgricultureBigDataBO agricultureBigDataBO) {
@@ -65,10 +67,10 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         for (int a = 1; a <= 12; a++) {
             for (Map<String, Object> map : list) {
                 if (String.valueOf(a).equals(MapUtils.getString(map, "mon"))) {
-                    result.put("mon"+a, map.get("num"));
+                    result.put("mon" + a, map.get("num"));
                 }
             }
-            result.putIfAbsent("mon"+a, 0);
+            result.putIfAbsent("mon" + a, 0);
         }
         return result;
     }
@@ -159,43 +161,95 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
 
     @Override
     @DataScopeMutiDept(deptAlias = "d")
-    public List<Map<String,Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+    public List<Map<String, Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         return agricultureBigDataMapper.getResourceStatistics(agricultureBigDataBO);
     }
 
     @Override
-    public List<Map<String,Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        // 查询部门所属层级
-//        determineDeptLevel(deptId);
-        return agricultureBigDataMapper.getSeedStock(agricultureBigDataBO);
+        List<Map<String, Object>> list = agricultureBigDataMapper.getSeedStock(agricultureBigDataBO);
+        if (list == null || list.isEmpty()) {
+            HashMap<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("salesVolumeNum", 0);
+            objectObjectHashMap.put("stockNum", 0);
+            list.add(objectObjectHashMap);
+        }
+        return deptLevelUtil.getDeptLevel(list);
+
     }
 
     @Override
-    public List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        // 查询部门所属层级
-//        determineDeptLevel(deptId);
-        return agricultureBigDataMapper.getSeedStockByType(agricultureBigDataBO);
+        List<Map<String, Object>> seedStockByType = agricultureBigDataMapper.getSeedStockByType(agricultureBigDataBO);
+        if (seedStockByType == null || seedStockByType.isEmpty()) {
+            HashMap<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("salesVolumeNum", 0);
+            objectObjectHashMap.put("stockNum", 0);
+            seedStockByType.add(objectObjectHashMap);
+        }
+        return deptLevelUtil.getDeptLevel(seedStockByType);
     }
 
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        return agricultureBigDataMapper.getCultivationStatistics(agricultureBigDataBO);
+        // 获取当前时间
+        Date currentTime = new Date();
+        // 创建Calendar对象,并设置当前时间
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(currentTime);
+        // 获取当前年份
+        int currentYear = calendar.get(Calendar.YEAR);
+        List<Map<String, Object>> deptLevel;
+        // 获取当前年份的数据
+        List<Map<String, Object>> currentYearStatistics = getStatisticsByYear(agricultureBigDataBO, String.valueOf(currentYear));
+        deptLevel = deptLevelUtil.getDeptLevel(currentYearStatistics);
+        // 获取过去五年的数据
+        for (int i = currentYear - 1; i >= currentYear - 4; i--) {
+            List<Map<String, Object>> statisticsByYear = getStatisticsByYear(agricultureBigDataBO, String.valueOf(i));
+            deptLevel.addAll(deptLevelUtil.getDeptLevel(statisticsByYear));
+        }
+        return deptLevel;
+    }
+
+    /**
+     * getCultivationStatistics的附加判断方法
+     */
+    List<Map<String, Object>> getStatisticsByYear(AgricultureBigDataBO agricultureBigDataBO, String year) {
+        List<Map<String, Object>> statisticsByYear = agricultureBigDataMapper.getCultivationStatisticsByYear(agricultureBigDataBO, year);
+        if (statisticsByYear == null || statisticsByYear.isEmpty()) {
+            Map<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("name", year);
+            objectObjectHashMap.put("landAreaNum", 0);
+            objectObjectHashMap.put("estimatedProductionNum", 0);
+            objectObjectHashMap.put("actualOutputNum", 0);
+            statisticsByYear.add(objectObjectHashMap);
+        }
+        return statisticsByYear;
     }
 
     @Override
     public List<Map<String, Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        return agricultureBigDataMapper.getAgriculturalSubsidy(agricultureBigDataBO);
+        return deptLevelUtil.getDeptLevel(agricultureBigDataMapper.getAgriculturalSubsidy(agricultureBigDataBO));
     }
 
     @Override
     public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        return agricultureBigDataMapper.getAgriculturalSubsidyBySubclass(agricultureBigDataBO);
+        return deptLevelUtil.getDeptLevel(agricultureBigDataMapper.getAgriculturalSubsidyBySubclass(agricultureBigDataBO));
     }
 
     @Override
@@ -205,17 +259,32 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     }
 
     @Override
+    public List<Map<String, Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        List<Map<String, Object>> farmlandStatistics = null;
+        for (int i = 1 ; i <= 5 ; i++){
+            agricultureBigDataBO.setDictValue(String.valueOf(i));
+             farmlandStatistics = agricultureBigDataMapper.getFarmlandStatistics(agricultureBigDataBO);
+        }
+        return deptLevelUtil.getDeptLevel(farmlandStatistics);
+    }
+
+    @Override
     public List<Map<String, Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        return agricultureBigDataMapper.getCooperativesStatistics(agricultureBigDataBO);
+        List<Map<String, Object>> cooperativesStatistics = agricultureBigDataMapper.getCooperativesStatistics1(agricultureBigDataBO);
+        cooperativesStatistics.addAll(agricultureBigDataMapper.getCooperativesStatistics2(agricultureBigDataBO));
+        cooperativesStatistics.addAll(agricultureBigDataMapper.getCooperativesStatistics3(agricultureBigDataBO));
+        return cooperativesStatistics;
     }
 
 
     /**
      * 查询部门所属层级
+     *
      * @param deptId
      */
     private void determineDeptLevel(Long deptId) {
-        SysDept deptInfo =  agricultureBigDataMapper.selectDetermineDeptLevel(deptId);
+        SysDept deptInfo = agricultureBigDataMapper.selectDetermineDeptLevel(deptId);
     }
 }

+ 1 - 1
src/main/java/com/sooka/sponest/data/digitalemergency/service/impl/EmergencyBigDataServiceImpl.java

@@ -74,7 +74,7 @@ public class EmergencyBigDataServiceImpl extends BaseServiceImpl implements IEme
         VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
         setSookaDataBase(visuForestCloudMapVO);
         List list = emergencyBigDataMapper.getEmergencyResourceCount(vo);
-        list.addAll(fireControlBigDataMapper.selectBigDataNumWithDeptCount(visuForestCloudMapVO));
+        list.addAll(fireControlBigDataMapper.geFireControltTotal(visuForestCloudMapVO));
         return list;
     }
 

+ 2 - 1
src/main/java/com/sooka/sponest/data/digitalresource/mapper/DigitalResourcesBigDataMapper.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.digitalresource.mapper;
 
+import com.ruoyi.system.api.domain.SysDictData;
 import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
 import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGrid;
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
@@ -80,7 +81,7 @@ public interface DigitalResourcesBigDataMapper {
      * @return
      */
 
-    List<Map<String, Object>> selectFarmBasicFarmlandCount(CenterdataTFarmBasicFarmland centerdataTFarmBasicFarmland);
+    List<Map<String, Object>> selectFarmBasicFarmlandCount(List<SysDictData> list);
     List<Map<String, Object>> selectDept(CenterdataTFarmBasicFarmland centerdataTFarmBasicFarmland);
 
     /**

+ 2 - 16
src/main/java/com/sooka/sponest/data/digitalresource/service/impl/ResourceBigDataServiceImpl.java

@@ -2,6 +2,7 @@ package com.sooka.sponest.data.digitalresource.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.DictUtils;
 import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGrid;
@@ -18,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -154,20 +153,7 @@ public class ResourceBigDataServiceImpl extends BaseServiceImpl implements IReso
     @DataScopeMutiDept(deptAlias = "d")
     @Override
     public List<Map<String, Object>> selectFarmBasicFarmlandCount(CenterdataTFarmBasicFarmland centerdataTFarmBasicFarmland) {
-        setSookaDataBase(centerdataTFarmBasicFarmland);
-        List<Map<String, Object>> listMap=new ArrayList<>();
-        digitalResourcesBigDataMapper.selectDept(centerdataTFarmBasicFarmland).forEach(item ->{
-            CenterdataTFarmBasicFarmland farmBasicFarmland = new CenterdataTFarmBasicFarmland();
-            farmBasicFarmland.setDeptId(Long.parseLong(String.valueOf(item.get("dept_id"))));
-            setSookaDataBase(farmBasicFarmland);
-            Map<String, Object> map = new HashMap<>();
-            map.put("deptName",item.get("dept_name"));
-            digitalResourcesBigDataMapper.selectFarmBasicFarmlandCount(farmBasicFarmland).forEach(items ->{
-                map.put(String.valueOf(items.get("name")),items.get("value")) ;
-            });
-            listMap.add(map);
-        });
-        return listMap;
+        return deptLevelUtil.getDeptLevel(digitalResourcesBigDataMapper.selectFarmBasicFarmlandCount(DictUtils.getDictCache("farm_field_attribute")));
     }
     /**
      * 地质灾害易发区

+ 155 - 19
src/main/resources/mapper/digitalagriculture/AgricultureBigDataMapper.xml

@@ -273,6 +273,22 @@
 
     <select id="getResourceStatistics" parameterType="AgricultureBigDataBO" resultType="map">
         SELECT
+            '耕地面积' AS category, IFNULL(SUM(area), 0) AS num
+        FROM
+            centerdata_t_farm_land_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
+            '畜保站' AS category, COUNT(*) AS num
+        FROM
+            centerdata_t_farm_livestock_protect_info a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>${params.dataScope}</where>
+        UNION ALL
+        SELECT
             '农民合作社' AS category, COUNT(*) AS num
         FROM
             centerdata_t_farm_agricultural_cooperatives a
@@ -375,7 +391,7 @@
         <where>${params.dataScope}</where>
         UNION ALL
         SELECT
-            '种子库存' AS category, SUM(stock) AS num
+            '种子库存' AS category, ifnull(SUM(stock),0) AS num
         FROM
             centerdata_t_farm_seed_info a
         left join
@@ -383,7 +399,7 @@
         <where>${params.dataScope}</where>
         UNION ALL
         SELECT
-            '化肥库存' AS category, SUM(stock) AS num
+            '化肥库存' AS category, ifnull(SUM(stock),0) AS num
         FROM
             centerdata_t_farm_chemical_fertilizer_info a
         left join
@@ -391,7 +407,7 @@
         <where>${params.dataScope}</where>
         UNION ALL
         SELECT
-            '预估产量' AS category, SUM(estimated_production) AS num
+            '预估产量' AS category, ifnull(SUM(estimated_production),0) AS num
         FROM
             centerdata_t_farm_plant_info a
         left join
@@ -417,36 +433,41 @@
 
     <select id="getSeedStock" resultType="map" parameterType="AgricultureBigDataBO">
         SELECT
-            SUM(stock) AS stockNum ,
-            SUM( sales_volume ) AS salesVolumeNum
+            d.ancestors ancestors,
+            a.dept_id deptId,
+            IFNULL(SUM(stock),0) AS stockNum ,
+            IFNULL(SUM( sales_volume ),0) AS salesVolumeNum
         FROM
             centerdata_t_farm_seed_info a
         left join
             ${database_system}.sys_dept d on d.dept_id = a.dept_id
         <where>${params.dataScope}</where>
+        group by
+            a.dept_id
     </select>
 
     <select id="getSeedStockByType" resultType="map" parameterType="AgricultureBigDataBO">
         SELECT
-            a.dict_label AS category,
-            COALESCE ( SUM( sales_volume ), 0 ) AS salesVolumeNum ,
-            COALESCE ( SUM( stock ), 0 ) AS stockNum
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( b.dept_id ), 0 ) deptId,
+            ifnull ( SUM( b.sales_volume ), 0 ) AS salesVolumeNum,
+            ifnull ( SUM( b.stock ), 0 ) AS stockNum
         FROM
-            ${database_system}.sys_dict_data a
-        LEFT JOIN centerdata_t_farm_seed_info b ON b.seed_type = a.dict_value
-        left join
-            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+            centerdata_t_farm_seed_info b
+                LEFT JOIN onest_system.sys_dept d ON d.dept_id = b.dept_id
         <where>
-            a.dict_type = "farm_seed_type"
+            AND b.seed_type = #{dictValue}
             ${params.dataScope}
         </where>
-        GROUP BY
-            a.dict_value
+        group by
+            b.dept_id
     </select>
 
     <select id="getCultivationStatistics" resultType="map" parameterType="AgricultureBigDataBO">
         SELECT
-            year ,
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            year as name ,
             SUM( estimated_production ) AS estimatedProductionNum,
             SUM( actual_output ) AS actualOutputNum
         FROM
@@ -457,24 +478,51 @@
         GROUP BY
             year
         ORDER BY
+            a.dept_id,
             year desc
     </select>
 
+    <select id="getCultivationStatisticsByYear" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            ifnull( MAX( #{year} ), #{year} )  AS name,
+            ifnull( SUM( land_area ), 0 ) AS landAreaNum,
+            ifnull( SUM( estimated_production ), 0 ) AS estimatedProductionNum,
+            ifnull( SUM( actual_output ), 0 ) AS actualOutputNum
+        FROM
+            centerdata_t_farm_plant_info a
+        LEFT JOIN onest_system.sys_dept d ON d.dept_id = a.dept_id
+        <where>
+            and YEAR = #{year}
+            ${agricultureBigDataBO.params.dataScope}
+        </where>
+        GROUP BY
+            a.dept_id
+    </select>
+
+
     <select id="getAgriculturalSubsidy" resultType="map" parameterType="AgricultureBigDataBO">
         SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
             COALESCE ( SUM( subsidy_money ), 0 ) AS subsidyMoneyNum,
             COALESCE ( SUM( farm_mac_money ), 0 ) AS farmMacMoneyNum,
             COALESCE ( SUM( breed_money ), 0 ) AS breedMoneyNum
         FROM
-            centerdata_t_farm_subsidy_info
+            centerdata_t_farm_subsidy_info a
         left join
             ${database_system}.sys_dept d on d.dept_id = a.dept_id
         <where>${params.dataScope}</where>
+        GROUP BY
+            a.dept_id
     </select>
 
     <select id="getAgriculturalSubsidyBySubclass" resultType="map" parameterType="AgricultureBigDataBO">
         SELECT
-            a.dict_label AS category,
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( b.dept_id ), 0 ) deptId,
+            a.dict_label AS name,
             <if test="name == 'farm_subsidy_type'">
                 COALESCE ( SUM( subsidy_money ), 0 ) AS MoneyNum
             </if>
@@ -535,8 +583,96 @@
         </where>
     </select>
 
-    <select id="getCooperativesStatistics" resultType="map">
+    <select id="getFarmlandStatistics" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( b.dept_id ), 0 ) deptId,
+            a.dict_label AS name,
+            COALESCE ( SUM( area ), 0 ) AS areaNum
+        FROM
+            ${database_system}.sys_dict_data a
+        LEFT JOIN centerdata_t_farm_land_info b ON b.attribute = a.dict_value
+        left join
+            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+        <where>
+            a.dict_type = "farm_field_attribute"
+            and b.attribute = #{dictValue}
+            ${params.dataScope}
+        </where>
+        GROUP BY
+            b.dept_id,
+            a.dict_value
+    </select>
 
+    <select id="getCooperativesStatistics1" resultType="map">
+        SELECT
+            modes.land_use_mode,
+            COUNT(cooperatives.land_use_mode) AS count
+        FROM
+            (SELECT '全程托管' AS land_use_mode
+            UNION ALL
+            SELECT '流转+机械'
+            UNION ALL
+            SELECT '流转'
+            UNION ALL
+            SELECT '流转+托管') AS modes
+            LEFT JOIN
+            centerdata_t_farm_agricultural_cooperatives AS cooperatives
+        ON
+            modes.land_use_mode = cooperatives.land_use_mode
+        GROUP BY
+            modes.land_use_mode
+    </select>
+
+    <select id="getCooperativesStatistics2" resultType="map">
+        SELECT
+            modes.business_type,
+            COUNT(cooperatives.land_use_mode) AS count
+        FROM
+            (SELECT '股份制' AS business_type
+            UNION ALL
+            SELECT '土地托管型'
+            UNION ALL
+            SELECT '提供服务'
+            UNION ALL
+            SELECT '农民专业合作经济组织') AS modes
+            LEFT JOIN
+            centerdata_t_farm_agricultural_cooperatives AS cooperatives
+        ON
+            modes.business_type = cooperatives.business_type
+        GROUP BY
+            modes.business_type
+    </select>
+
+    <select id="getCooperativesStatistics3" resultType="map">
+        SELECT
+            CASE
+                WHEN modes.Lease_term IN ('区', '县') THEN '区县'
+                WHEN modes.Lease_term IN ('乡', '镇', '村') THEN '乡镇村'
+                ELSE modes.Lease_term
+                END AS Lease_term,
+            COUNT(cooperatives.Lease_term) AS count
+        FROM
+            (SELECT '省' AS Lease_term
+            UNION ALL
+            SELECT '市'
+            UNION ALL
+            SELECT '区'
+            UNION ALL
+            SELECT '县'
+            UNION ALL
+            SELECT '乡'
+            UNION ALL
+            SELECT '镇'
+            UNION ALL
+            SELECT '街'
+            UNION ALL
+            SELECT '村') AS modes
+            LEFT JOIN
+            centerdata_t_farm_agricultural_cooperatives AS cooperatives
+        ON cooperatives.Lease_term LIKE CONCAT('%', modes.Lease_term, '%')
+        GROUP BY
+            Lease_term
     </select>
 
 </mapper>

+ 1 - 1
src/main/resources/mapper/digitalemergency/EmergencyBigDataMapper.xml

@@ -39,7 +39,7 @@
         GROUP BY
             b.dict_label
     </select>
-    <select id="getEmergencyResourceCount" parameterMap="resourceParm" resultMap="countResult">
+    <select id="getEmergencyResourceCount" parameterMap="resourceParm" resultType="map">
         SELECT
             'centerdata_t_emergency_warehouse' resourceTable,
             '应急仓库' resourceName,

+ 48 - 43
src/main/resources/mapper/digitalresource/DigitalResourcesBigDataMapper.xml

@@ -297,51 +297,56 @@
         group by dict.dict_value
     </select>
 
-    <select id="selectDept" parameterType="CenterdataTFarmBasicFarmland" resultType="java.util.Map">
+    <select id="selectDept" parameterType="list" resultType="java.util.Map">
         select d.dept_id,d.dept_name from ${database_system}.sys_dept d where dept_type="sys_dept_type_17"
     </select>
     <select id="selectFarmBasicFarmlandCount" parameterType="CenterdataTFarmBasicFarmland" resultType="java.util.Map">
-        select dict.dict_label name,IFNULL(sum(a.area),0) value from ${database_system}.sys_dict_data dict
-            left join ( select a.* from centerdata_t_farm_basic_farmland a
-            left join ${database_system}.sys_dept d on  a.dept_id=d.dept_id
-            where (a.dept_id =#{deptId}  or FIND_IN_SET( #{deptId}, d.ancestors )) ${params.dataScope}
-            )a on a.attribute = dict.dict_value
-        where dict.dict_type = 'farm_field_attribute'
-        group by dict.dict_label
-    </select>
+        select
+        a.dept_id deptId,d.ancestors,
+        <foreach item="item" collection="list" open="" separator="," close="">
+            ifnull(MAX(CASE WHEN a.attribute = #{item.dictValue} THEN a.area END) ,0) AS #{item.dictLabel}
+        </foreach>
+        FROM
+        centerdata_t_farm_basic_farmland a
+        LEFT JOIN onest_system.sys_dept d ON a.dept_id = d.dept_id
+        LEFT JOIN onest_system.sys_dict_data dict ON a.attribute = dict.dict_value
+        WHERE
+        dict.dict_type = 'farm_field_attribute'
+        GROUP BY a.id
+   </select>
 
-    <select id="getHydraulicPatrolTask" parameterType="CenterdataTHydraulicPatrolTask" resultType="java.util.Map">
-        SELECT t1.deptId, t1.ancestors,t1.patrolTrajectory,ifnull(TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(t2.length/1000,2))),0) realLength FROM (
-        select a.id,a.create_time,a.dept_id deptId ,d.ancestors ancestors,
-        a.patrol_trajectory patrolTrajectory
-        from centerdata_t_hydraulic_patrol_task a
-        left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
-        <where>
-            <if test="type != null  and type != ''">and a.type = #{type}</if>
-            ${params.dataScope}
-        </where>
-        ) t1
-        LEFT JOIN (
-        SELECT task_id, sum( c.juli ) length FROM (
-        SELECT a.task_id,
-        IFNULL( st_distance_sphere ( point ( a.longitude, a.latitude ), point ( b.longitude, b.latitude ) ), 0 ) AS juli
-        FROM (
-        SELECT a.*,(@i := @i + 1) AS xh FROM (
-        SELECT a.task_id,b.longitude,b.latitude
-        FROM centerdata_t_hydraulic_patrol_plan_record a
-        LEFT JOIN centerdata_t_hydraulic_patrol_track b ON b.record_id = a.id
-        ORDER BY b.create_time) a,(SELECT @i := 1) AS itable
-        ) a
-        LEFT JOIN (
-        SELECT a.*,(@j := @j + 1) AS xh FROM(
-        SELECT a.task_id,b.longitude,b.latitude
-        FROM centerdata_t_hydraulic_patrol_plan_record a
-        LEFT JOIN centerdata_t_hydraulic_patrol_track b ON b.record_id = a.id
-        ORDER BY b.create_time) a,(SELECT @j := 0) AS itable
-        ) b ON a.xh = b.xh AND a.task_id = b.task_id
-        ) c
-        GROUP BY task_id
-        ) t2 ON t2.task_id = t1.id
-        ORDER BY t1.create_time DESC
-    </select>
+   <select id="getHydraulicPatrolTask" parameterType="CenterdataTHydraulicPatrolTask" resultType="java.util.Map">
+       SELECT t1.deptId, t1.ancestors,t1.patrolTrajectory,ifnull(TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(t2.length/1000,2))),0) realLength FROM (
+       select a.id,a.create_time,a.dept_id deptId ,d.ancestors ancestors,
+       a.patrol_trajectory patrolTrajectory
+       from centerdata_t_hydraulic_patrol_task a
+       left join ${database_system}.sys_dept d on a.dept_id = d.dept_id
+       <where>
+           <if test="type != null  and type != ''">and a.type = #{type}</if>
+           ${params.dataScope}
+       </where>
+       ) t1
+       LEFT JOIN (
+       SELECT task_id, sum( c.juli ) length FROM (
+       SELECT a.task_id,
+       IFNULL( st_distance_sphere ( point ( a.longitude, a.latitude ), point ( b.longitude, b.latitude ) ), 0 ) AS juli
+       FROM (
+       SELECT a.*,(@i := @i + 1) AS xh FROM (
+       SELECT a.task_id,b.longitude,b.latitude
+       FROM centerdata_t_hydraulic_patrol_plan_record a
+       LEFT JOIN centerdata_t_hydraulic_patrol_track b ON b.record_id = a.id
+       ORDER BY b.create_time) a,(SELECT @i := 1) AS itable
+       ) a
+       LEFT JOIN (
+       SELECT a.*,(@j := @j + 1) AS xh FROM(
+       SELECT a.task_id,b.longitude,b.latitude
+       FROM centerdata_t_hydraulic_patrol_plan_record a
+       LEFT JOIN centerdata_t_hydraulic_patrol_track b ON b.record_id = a.id
+       ORDER BY b.create_time) a,(SELECT @j := 0) AS itable
+       ) b ON a.xh = b.xh AND a.task_id = b.task_id
+       ) c
+       GROUP BY task_id
+       ) t2 ON t2.task_id = t1.id
+       ORDER BY t1.create_time DESC
+   </select>
 </mapper>