Forráskód Böngészése

数字中台-数字农业接口(已完成待联调)

吕宣芝 1 éve
szülő
commit
62c6073fe7

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

@@ -294,7 +294,7 @@ public class AgricultureBigDataController {
     }
     }
 
 
     /**
     /**
-     * 农业补贴(之下未完成)
+     * 农业补贴
      *
      *
      * @author lvxuanzhi
      * @author lvxuanzhi
      * @date 2023-10-26 09:53:19
      * @date 2023-10-26 09:53:19
@@ -307,7 +307,7 @@ public class AgricultureBigDataController {
 
 
     /**
     /**
      * 农业小类补贴
      * 农业小类补贴
-     * name 传递dict_value
+     * dictValue 传递dict_value
      *
      *
      * @author lvxuanzhi
      * @author lvxuanzhi
      * @date 2023-10-26 09:53:19
      * @date 2023-10-26 09:53:19
@@ -358,4 +358,43 @@ public class AgricultureBigDataController {
     }
     }
 
 
 
 
+    /**
+     * 用地方式
+     *
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
+     */
+    @ApiOperation(value = "用地方式", notes = "用地方式")
+    @PostMapping("/getLandUseMethod")
+    public AjaxResult getLandUseMethod(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getLandUseMethod(agricultureBigDataBO));
+    }
+
+
+    /**
+     * 经营类型
+     *
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
+     */
+    @ApiOperation(value = "经营类型", notes = "经营类型")
+    @PostMapping("/getBusinessType")
+    public AjaxResult getBusinessType(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getBusinessType(agricultureBigDataBO));
+    }
+
+
+    /**
+     * 秸秆还田
+     *
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
+     */
+    @ApiOperation(value = "秸秆还田", notes = "秸秆还田")
+    @PostMapping("/getStrawTurnover")
+    public AjaxResult getStrawTurnover(@RequestBody AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getStrawTurnover(agricultureBigDataBO));
+    }
+
+
 }
 }

+ 11 - 5
src/main/java/com/sooka/sponest/data/digitalagriculture/mapper/AgricultureBigDataMapper.java

@@ -59,18 +59,24 @@ public interface AgricultureBigDataMapper {
 
 
     List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
     List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
 
 
-    List<Map<String,Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getAgriculturalSubsidyBySubclass(@Param("agricultureBigDataBO") AgricultureBigDataBO agricultureBigDataBO,@Param("type") String type);
 
 
     List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
     List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
 
     List<Map<String,Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO);
     List<Map<String,Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
 
-    List<Map<String,Object>> getCooperativesStatistics1(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getCooperativesStatisticsByLeaseTerm(AgricultureBigDataBO agricultureBigDataBO);
 
 
-    List<Map<String,Object>> getCooperativesStatistics2(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getCooperativesStatisticsByRegisterCapital(AgricultureBigDataBO agricultureBigDataBO);
 
 
-    List<Map<String,Object>> getCooperativesStatistics3(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getCooperativesStatisticsByMembersNum(AgricultureBigDataBO agricultureBigDataBO);
 
 
-    SysDept selectDetermineDeptLevel(Long deptId);
+    List<Map<String,Object>> getCooperativesStatisticsByDrivenFarmersNum(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getLandUseMethod(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getBusinessType(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getStrawTurnover(AgricultureBigDataBO agricultureBigDataBO);
 
 
 }
 }

+ 6 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/IAgricultureBigDataService.java

@@ -68,4 +68,10 @@ public interface IAgricultureBigDataService {
 
 
     List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
     List<Map<String,Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
 
+    List<Map<String,Object>> getLandUseMethod(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getBusinessType(AgricultureBigDataBO agricultureBigDataBO);
+
+    List<Map<String,Object>> getStrawTurnover(AgricultureBigDataBO agricultureBigDataBO);
+
 }
 }

+ 223 - 14
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -1,13 +1,13 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
 
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
-import com.ruoyi.system.api.domain.SysDept;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
 import com.sooka.sponest.data.digitalagriculture.mapper.AgricultureBigDataMapper;
 import com.sooka.sponest.data.digitalagriculture.mapper.AgricultureBigDataMapper;
 import com.sooka.sponest.data.digitalagriculture.service.IAgricultureBigDataService;
 import com.sooka.sponest.data.digitalagriculture.service.IAgricultureBigDataService;
 import com.sooka.sponest.data.utils.DeptLevelUtil;
 import com.sooka.sponest.data.utils.DeptLevelUtil;
+import com.sooka.sponest.data.utils.DictUtil;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -159,6 +159,12 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         return agricultureBigDataMapper.getLItianDept(centerdataTFarmAgriculturalCooperatives);
         return agricultureBigDataMapper.getLItianDept(centerdataTFarmAgriculturalCooperatives);
     }
     }
 
 
+    /**
+     * 农业资源统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-25 14:38:44
+     */
     @Override
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getResourceStatistics(AgricultureBigDataBO agricultureBigDataBO) {
@@ -166,6 +172,12 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         return agricultureBigDataMapper.getResourceStatistics(agricultureBigDataBO);
         return agricultureBigDataMapper.getResourceStatistics(agricultureBigDataBO);
     }
     }
 
 
+    /**
+     * 种子库存
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
@@ -183,6 +195,13 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
 
 
     }
     }
 
 
+    /**
+     * 分类种子库存
+     * dictValue 传递 分类种子的value
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
@@ -199,6 +218,12 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         return deptLevelUtil.getDeptLevel(seedStockByType);
         return deptLevelUtil.getDeptLevel(seedStockByType);
     }
     }
 
 
+    /**
+     * 耕种统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
     @DataScopeMutiDept(deptAlias = "d")
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
@@ -223,8 +248,9 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     }
     }
 
 
     /**
     /**
-     * getCultivationStatistics的附加判断方法
+     * 耕种统计的附加判断方法
      */
      */
+    @DataScopeMutiDept(deptAlias = "d")
     List<Map<String, Object>> getStatisticsByYear(AgricultureBigDataBO agricultureBigDataBO, String year) {
     List<Map<String, Object>> getStatisticsByYear(AgricultureBigDataBO agricultureBigDataBO, String year) {
         List<Map<String, Object>> statisticsByYear = agricultureBigDataMapper.getCultivationStatisticsByYear(agricultureBigDataBO, year);
         List<Map<String, Object>> statisticsByYear = agricultureBigDataMapper.getCultivationStatisticsByYear(agricultureBigDataBO, year);
         if (statisticsByYear == null || statisticsByYear.isEmpty()) {
         if (statisticsByYear == null || statisticsByYear.isEmpty()) {
@@ -240,51 +266,234 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         return statisticsByYear;
         return statisticsByYear;
     }
     }
 
 
+    /**
+     * 农业补贴
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         setSookaDataBase(agricultureBigDataBO);
-        return deptLevelUtil.getDeptLevel(agricultureBigDataMapper.getAgriculturalSubsidy(agricultureBigDataBO));
+        List<Map<String, Object>> agriculturalSubsidy = agricultureBigDataMapper.getAgriculturalSubsidy(agricultureBigDataBO);
+        if (agriculturalSubsidy == null || agriculturalSubsidy.isEmpty()) {
+            Map<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("subsidyMoneyNum", 0);
+            objectObjectHashMap.put("farmMacMoneyNum", 0);
+            objectObjectHashMap.put("breedMoneyNum", 0);
+            agriculturalSubsidy.add(objectObjectHashMap);
+        }
+        return deptLevelUtil.getDeptLevel(agriculturalSubsidy);
     }
     }
 
 
+    /**
+     * 农业小类补贴
+     * dictValue 传递dict_value
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         setSookaDataBase(agricultureBigDataBO);
-        return deptLevelUtil.getDeptLevel(agricultureBigDataMapper.getAgriculturalSubsidyBySubclass(agricultureBigDataBO));
+        List<Map<String, Object>> agriculturalSubsidyBySubclass = new ArrayList<>();
+        List<Map<String, Object>> maps;
+
+        if ("farm_subsidy_type".equals(agricultureBigDataBO.getDictValue())) {
+            for (int i = 1; i <= 3; i++) {
+                String label = DictUtil.getLabel("farm_subsidy_type", String.valueOf(i));
+                maps = getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, label);
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(maps));
+            }
+        } else if ("farm_mac_type".equals(agricultureBigDataBO.getDictValue())) {
+            for (int i = 1; i <= 14; i++) {
+                String label = DictUtil.getLabel("farm_mac_type", String.valueOf(i));
+                maps = getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, label);
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(maps));
+            }
+        } else if ("farm_breed_type".equals(agricultureBigDataBO.getDictValue())) {
+            for (int i = 1; i <= 4; i++) {
+                String label = DictUtil.getLabel("farm_breed_type", String.valueOf(i));
+                maps = getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, label);
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(maps));
+            }
+        }
+
+        return agriculturalSubsidyBySubclass;
+    }
+
+    /**
+     * 农业小类补贴附加判断方法
+     * @param agricultureBigDataBO
+     * @param i
+     * @param label
+     * @return
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    private List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO, int i, String label) {
+        List<Map<String, Object>> maps = agricultureBigDataMapper.getAgriculturalSubsidyBySubclass(agricultureBigDataBO, String.valueOf(i));
+        if (maps == null || maps.isEmpty()) {
+            Map<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("name", label);
+            objectObjectHashMap.put("MoneyNum", 0);
+            maps.add(objectObjectHashMap);
+        }
+        return maps;
     }
     }
 
 
+    /**
+     * 化肥统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-26 09:53:19
+     */
     @Override
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         setSookaDataBase(agricultureBigDataBO);
         return agricultureBigDataMapper.getFertilizerStatistics(agricultureBigDataBO);
         return agricultureBigDataMapper.getFertilizerStatistics(agricultureBigDataBO);
     }
     }
 
 
+    /**
+     * 耕地资源
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-31 09:50:35
+     */
     @Override
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         setSookaDataBase(agricultureBigDataBO);
-        List<Map<String, Object>> farmlandStatistics = null;
+        List<Map<String, Object>> farmlandStatistics = new ArrayList<>();
         for (int i = 1 ; i <= 5 ; i++){
         for (int i = 1 ; i <= 5 ; i++){
             agricultureBigDataBO.setDictValue(String.valueOf(i));
             agricultureBigDataBO.setDictValue(String.valueOf(i));
-             farmlandStatistics = agricultureBigDataMapper.getFarmlandStatistics(agricultureBigDataBO);
+            List<Map<String, Object>> maps = agricultureBigDataMapper.getFarmlandStatistics(agricultureBigDataBO);
+            if (maps == null || maps.isEmpty()) {
+                Map<String, Object> objectObjectHashMap = new HashMap<>();
+                objectObjectHashMap.put("ancestors", 0);
+                objectObjectHashMap.put("deptId", 0);
+                objectObjectHashMap.put("name", DictUtil.getLabel("farm_field_attribute", String.valueOf(i)));
+                objectObjectHashMap.put("areaNum", 0);
+                maps.add(objectObjectHashMap);
+            }
+            farmlandStatistics.addAll(deptLevelUtil.getDeptLevel(maps));
         }
         }
-        return deptLevelUtil.getDeptLevel(farmlandStatistics);
+        return farmlandStatistics;
     }
     }
 
 
+    /**
+     * 农民合作社统计
+     *
+     * @author lvxuanzhi
+     * @date 2023-10-27 10:07:00
+     */
     @Override
     @Override
+    @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO) {
     public List<Map<String, Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         setSookaDataBase(agricultureBigDataBO);
-        List<Map<String, Object>> cooperativesStatistics = agricultureBigDataMapper.getCooperativesStatistics1(agricultureBigDataBO);
-        cooperativesStatistics.addAll(agricultureBigDataMapper.getCooperativesStatistics2(agricultureBigDataBO));
-        cooperativesStatistics.addAll(agricultureBigDataMapper.getCooperativesStatistics3(agricultureBigDataBO));
+        // 示范级别
+        List<Map<String, Object>> statisticsByLeaseTerm = agricultureBigDataMapper.getCooperativesStatisticsByLeaseTerm(agricultureBigDataBO);
+        int leaseTermSum = getStatisticsSum(statisticsByLeaseTerm);
+        List<Map<String, Object>> cooperativesStatistics = new ArrayList<>(deptLevelUtil.getDeptLevel(statisticsByLeaseTerm));
+        // 成员出资额
+        List<Map<String, Object>> statisticsByRegisterCapital = agricultureBigDataMapper.getCooperativesStatisticsByRegisterCapital(agricultureBigDataBO);
+        int registerCapitalSum = getStatisticsSum(statisticsByRegisterCapital);
+        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByRegisterCapital));
+        // 入社人员
+        List<Map<String, Object>> statisticsByMembersNum = agricultureBigDataMapper.getCooperativesStatisticsByMembersNum(agricultureBigDataBO);
+        int membersNumSum = getStatisticsSum(statisticsByMembersNum);
+        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByMembersNum));
+        // 带动农户
+        List<Map<String, Object>> statisticsByDrivenFarmersNum = agricultureBigDataMapper.getCooperativesStatisticsByDrivenFarmersNum(agricultureBigDataBO);
+        int drivenFarmersNumSum = getStatisticsSum(statisticsByDrivenFarmersNum);
+        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByDrivenFarmersNum));
+
+        Map<String, Object> registerCapitalSumMap = new HashMap<>();
+        registerCapitalSumMap.put("name", "成员出资额总额");
+        registerCapitalSumMap.put("num", registerCapitalSum);
+        cooperativesStatistics.add(registerCapitalSumMap);
+
+        Map<String, Object> membersNumSumMap = new HashMap<>();
+        membersNumSumMap.put("name", "入社人员总数");
+        membersNumSumMap.put("num", membersNumSum);
+        cooperativesStatistics.add(membersNumSumMap);
+
+        Map<String, Object> drivenFarmersNumSumMap = new HashMap<>();
+        drivenFarmersNumSumMap.put("name", "带动农户总数");
+        drivenFarmersNumSumMap.put("num", drivenFarmersNumSum);
+        cooperativesStatistics.add(drivenFarmersNumSumMap);
+
         return cooperativesStatistics;
         return cooperativesStatistics;
     }
     }
 
 
+    /**
+     * 农民合作社统计附带计算方法
+     * @param statistics
+     * @return
+     */
+    private int getStatisticsSum(List<Map<String, Object>> statistics) {
+        int sum = 0;
+        for (Map<String, Object> map : statistics) {
+            if (map.containsKey("num")) {
+                Object numValue = map.get("num");
+                if (numValue instanceof Number) {
+                    sum += ((Number) numValue).intValue();
+                }
+            }
+        }
+        return sum;
+    }
 
 
     /**
     /**
-     * 查询部门所属层级
+     * 用地方式
      *
      *
-     * @param deptId
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
      */
      */
-    private void determineDeptLevel(Long deptId) {
-        SysDept deptInfo = agricultureBigDataMapper.selectDetermineDeptLevel(deptId);
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getLandUseMethod(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getLandUseMethod(agricultureBigDataBO);
+    }
+
+    /**
+     * 经营类型
+     *
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
+     */
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getBusinessType(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        return agricultureBigDataMapper.getBusinessType(agricultureBigDataBO);
+    }
+
+    /**
+     * 秸秆还田
+     *
+     * @author lvxuanzhi
+     * @date 2023-11-01 16:25:02
+     */
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getStrawTurnover(AgricultureBigDataBO agricultureBigDataBO) {
+        setSookaDataBase(agricultureBigDataBO);
+        List<Map<String, Object>> strawTurnover = agricultureBigDataMapper.getStrawTurnover(agricultureBigDataBO);
+        if (strawTurnover == null || strawTurnover.isEmpty()) {
+            Map<String, Object> objectObjectHashMap = new HashMap<>();
+            objectObjectHashMap.put("ancestors", 0);
+            objectObjectHashMap.put("deptId", 0);
+            objectObjectHashMap.put("stillAreaNum", 0);
+            strawTurnover.add(objectObjectHashMap);
+        }
+        return deptLevelUtil.getDeptLevel(strawTurnover);
     }
     }
 }
 }

+ 114 - 49
src/main/resources/mapper/digitalagriculture/AgricultureBigDataMapper.xml

@@ -523,34 +523,45 @@
             ifnull( MAX( d.ancestors ), 0 ) ancestors,
             ifnull( MAX( d.ancestors ), 0 ) ancestors,
             ifnull( MAX( b.dept_id ), 0 ) deptId,
             ifnull( MAX( b.dept_id ), 0 ) deptId,
             a.dict_label AS name,
             a.dict_label AS name,
-            <if test="name == 'farm_subsidy_type'">
+            <if test="agricultureBigDataBO.dictValue == 'farm_subsidy_type'">
                 COALESCE ( SUM( subsidy_money ), 0 ) AS MoneyNum
                 COALESCE ( SUM( subsidy_money ), 0 ) AS MoneyNum
             </if>
             </if>
-            <if test="name == 'farm_mac_type'">
+            <if test="agricultureBigDataBO.dictValue == 'farm_mac_type'">
                 COALESCE ( SUM( farm_mac_money ), 0 ) AS MoneyNum
                 COALESCE ( SUM( farm_mac_money ), 0 ) AS MoneyNum
             </if>
             </if>
-            <if test="name == 'farm_breed_type'">
+            <if test="agricultureBigDataBO.dictValue == 'farm_breed_type'">
                 COALESCE ( SUM( breed_money ), 0 ) AS MoneyNum
                 COALESCE ( SUM( breed_money ), 0 ) AS MoneyNum
             </if>
             </if>
         FROM
         FROM
-            ${database_system}.sys_dict_data a
+            ${agricultureBigDataBO.database_system}.sys_dict_data a
         LEFT JOIN centerdata_t_farm_subsidy_info b ON
         LEFT JOIN centerdata_t_farm_subsidy_info b ON
-                <if test="name == 'farm_subsidy_type'">
+                <if test="agricultureBigDataBO.dictValue == 'farm_subsidy_type'">
                     b.subsidy_type = a.dict_value
                     b.subsidy_type = a.dict_value
                 </if>
                 </if>
-                <if test="name == 'farm_mac_type'">
+                <if test="agricultureBigDataBO.dictValue == 'farm_mac_type'">
                     b.farm_mac_type = a.dict_value
                     b.farm_mac_type = a.dict_value
                 </if>
                 </if>
-                <if test="name == 'farm_breed_type'">
+                <if test="agricultureBigDataBO.dictValue == 'farm_breed_type'">
                     b.breed_type = a.dict_value
                     b.breed_type = a.dict_value
                 </if>
                 </if>
         left join
         left join
-            ${database_system}.sys_dept d on d.dept_id = b.dept_id
+            ${agricultureBigDataBO.database_system}.sys_dept d on d.dept_id = b.dept_id
         <where>
         <where>
-            and a.dict_type = #{name}
-            ${params.dataScope}
+            and a.dict_type = #{agricultureBigDataBO.dictValue}
+            and
+            <if test="agricultureBigDataBO.dictValue == 'farm_subsidy_type'">
+                b.subsidy_type = #{type}
+            </if>
+            <if test="agricultureBigDataBO.dictValue == 'farm_mac_type'">
+                b.farm_mac_type = #{type}
+            </if>
+            <if test="agricultureBigDataBO.dictValue == 'farm_breed_type'">
+                b.breed_type = #{type}
+            </if>
+            ${agricultureBigDataBO.params.dataScope}
         </where>
         </where>
         GROUP BY
         GROUP BY
+            b.dept_id,
             a.dict_value
             a.dict_value
     </select>
     </select>
 
 
@@ -604,75 +615,129 @@
             a.dict_value
             a.dict_value
     </select>
     </select>
 
 
-    <select id="getCooperativesStatistics1" resultType="map">
+    <select id="getCooperativesStatisticsByLeaseTerm" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            '示范级别' as name,
+            COALESCE ( count( * ), 0 ) AS num
+        FROM
+            centerdata_t_farm_agricultural_cooperatives a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE
+            Lease_term in ('省','市','区县','乡镇街','村')
+            ${params.dataScope}
+        GROUP BY
+            a.dept_id
+    </select>
+
+    <select id="getCooperativesStatisticsByRegisterCapital" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            '成员出资额' as name,
+            COALESCE ( SUM( register_capital ), 0 ) AS num
+        FROM
+            centerdata_t_farm_agricultural_cooperatives 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="getCooperativesStatisticsByMembersNum" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            '入社人员' as name,
+            COALESCE ( SUM( members_num ), 0 ) AS num
+        FROM
+            centerdata_t_farm_agricultural_cooperatives 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="getCooperativesStatisticsByDrivenFarmersNum" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            '带动农户' as name,
+            COALESCE ( SUM( driven_farmers_num ), 0 ) AS num
+        FROM
+            centerdata_t_farm_agricultural_cooperatives 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="getLandUseMethod" resultType="map">
         SELECT
         SELECT
             modes.land_use_mode,
             modes.land_use_mode,
             COUNT(cooperatives.land_use_mode) AS count
             COUNT(cooperatives.land_use_mode) AS count
         FROM
         FROM
-            (SELECT '全程托管' AS land_use_mode
-            UNION ALL
-            SELECT '流转+机械'
-            UNION ALL
-            SELECT '流转'
-            UNION ALL
-            SELECT '流转+托管') AS modes
-            LEFT JOIN
+        (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
             centerdata_t_farm_agricultural_cooperatives AS cooperatives
         ON
         ON
             modes.land_use_mode = cooperatives.land_use_mode
             modes.land_use_mode = cooperatives.land_use_mode
+        <where>${params.dataScope}</where>
         GROUP BY
         GROUP BY
             modes.land_use_mode
             modes.land_use_mode
     </select>
     </select>
 
 
-    <select id="getCooperativesStatistics2" resultType="map">
+    <select id="getBusinessType" resultType="map">
         SELECT
         SELECT
             modes.business_type,
             modes.business_type,
             COUNT(cooperatives.land_use_mode) AS count
             COUNT(cooperatives.land_use_mode) AS count
         FROM
         FROM
-            (SELECT '股份制' AS business_type
+        (SELECT '股份制' AS business_type
             UNION ALL
             UNION ALL
             SELECT '土地托管型'
             SELECT '土地托管型'
             UNION ALL
             UNION ALL
             SELECT '提供服务'
             SELECT '提供服务'
             UNION ALL
             UNION ALL
             SELECT '农民专业合作经济组织') AS modes
             SELECT '农民专业合作经济组织') AS modes
-            LEFT JOIN
+        LEFT JOIN
             centerdata_t_farm_agricultural_cooperatives AS cooperatives
             centerdata_t_farm_agricultural_cooperatives AS cooperatives
         ON
         ON
             modes.business_type = cooperatives.business_type
             modes.business_type = cooperatives.business_type
+        <where>${params.dataScope}</where>
         GROUP BY
         GROUP BY
             modes.business_type
             modes.business_type
     </select>
     </select>
 
 
-    <select id="getCooperativesStatistics3" resultType="map">
+    <select id="getStrawTurnover" resultType="map">
         SELECT
         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
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            COALESCE ( SUM( still_area ), 0 ) AS stillAreaNum
         FROM
         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, '%')
+            centerdata_t_straw_still_field a
+        left join
+            ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        <where>
+            ${params.dataScope}
+        </where>
         GROUP BY
         GROUP BY
-            Lease_term
+            a.dept_id
     </select>
     </select>
-
 </mapper>
 </mapper>