浏览代码

数字中台-数字农业耕种统计、农民合作社统计返回修改

吕宣芝 1 年之前
父节点
当前提交
9938e87fac

+ 2 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/mapper/AgricultureBigDataMapper.java

@@ -65,6 +65,8 @@ public interface AgricultureBigDataMapper {
 
     List<Map<String,Object>> getFarmlandStatistics(@Param("map") Map<String,Object> map);
 
+    List<Map<String,Object>> getCooperativesStatisticsByCooperatives(AgricultureBigDataBO agricultureBigDataBO);
+
     List<Map<String,Object>> getCooperativesStatisticsByLeaseTerm(AgricultureBigDataBO agricultureBigDataBO);
 
     List<Map<String,Object>> getCooperativesStatisticsByRegisterCapital(AgricultureBigDataBO agricultureBigDataBO);

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

@@ -56,7 +56,7 @@ public interface IAgricultureBigDataService {
 
     List<Map<String,Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO);
 
-    List<Map<String,Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO);
+    Map<String, List<Map<String, Object>>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
     List<Map<String,Object>> getAgriculturalSubsidy(AgricultureBigDataBO agricultureBigDataBO);
 

+ 18 - 8
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IAgricultureBigDataService {
@@ -227,7 +228,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
      */
     @Override
     @DataScopeMutiDept(deptAlias = "d")
-    public List<Map<String, Object>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
+    public Map<String, List<Map<String, Object>>> getCultivationStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         // 获取当前时间
         Date currentTime = new Date();
@@ -236,16 +237,15 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         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,String.valueOf(agricultureBigDataBO.getDeptId()));
+        List<Map<String, Object>> deptLevel = deptLevelUtil.getDeptLevel(currentYearStatistics,String.valueOf(agricultureBigDataBO.getDeptId()));
         // 获取过去五年的数据
         for (int i = currentYear - 1; i >= currentYear - 4; i--) {
             List<Map<String, Object>> statisticsByYear = getStatisticsByYear(agricultureBigDataBO, String.valueOf(i));
             deptLevel.addAll(deptLevelUtil.getDeptLevel(statisticsByYear,String.valueOf(agricultureBigDataBO.getDeptId())));
         }
-        return deptLevel;
+        return deptLevel.stream().collect(Collectors.groupingBy(map -> (String) map.get("name")));
     }
 
     /**
@@ -387,21 +387,31 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getCooperativesStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
+        // 合作社数量
+        List<Map<String, Object>> cooperativesStatisticsByCooperatives = agricultureBigDataMapper.getCooperativesStatisticsByCooperatives(agricultureBigDataBO);
+        List<Map<String, Object>> cooperativesStatistics = new ArrayList<>(deptLevelUtil.getDeptLevel(cooperativesStatisticsByCooperatives,String.valueOf(agricultureBigDataBO.getDeptId())));
         // 示范级别
         List<Map<String, Object>> statisticsByLeaseTerm = agricultureBigDataMapper.getCooperativesStatisticsByLeaseTerm(agricultureBigDataBO);
-        List<Map<String, Object>> cooperativesStatistics = new ArrayList<>(deptLevelUtil.getDeptLevel(statisticsByLeaseTerm,String.valueOf(agricultureBigDataBO.getDeptId())));
+        List<Map<String, Object>> statisticsByLeaseTermList = deptLevelUtil.getDeptLevel(statisticsByLeaseTerm, String.valueOf(agricultureBigDataBO.getDeptId()));
         // 成员出资额
         List<Map<String, Object>> statisticsByRegisterCapital = agricultureBigDataMapper.getCooperativesStatisticsByRegisterCapital(agricultureBigDataBO);
         int registerCapitalSum = getStatisticsSum(statisticsByRegisterCapital);
-        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByRegisterCapital,String.valueOf(agricultureBigDataBO.getDeptId())));
+        List<Map<String, Object>> statisticsByRegisterCapitalList = deptLevelUtil.getDeptLevel(statisticsByRegisterCapital, String.valueOf(agricultureBigDataBO.getDeptId()));
         // 入社人员
         List<Map<String, Object>> statisticsByMembersNum = agricultureBigDataMapper.getCooperativesStatisticsByMembersNum(agricultureBigDataBO);
         int membersNumSum = getStatisticsSum(statisticsByMembersNum);
-        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByMembersNum,String.valueOf(agricultureBigDataBO.getDeptId())));
+        List<Map<String, Object>> statisticsByMembersNumList = deptLevelUtil.getDeptLevel(statisticsByMembersNum, String.valueOf(agricultureBigDataBO.getDeptId()));
         // 带动农户
         List<Map<String, Object>> statisticsByDrivenFarmersNum = agricultureBigDataMapper.getCooperativesStatisticsByDrivenFarmersNum(agricultureBigDataBO);
         int drivenFarmersNumSum = getStatisticsSum(statisticsByDrivenFarmersNum);
-        cooperativesStatistics.addAll(deptLevelUtil.getDeptLevel(statisticsByDrivenFarmersNum,String.valueOf(agricultureBigDataBO.getDeptId())));
+        List<Map<String, Object>> statisticsByDrivenFarmersNumList = deptLevelUtil.getDeptLevel(statisticsByDrivenFarmersNum, String.valueOf(agricultureBigDataBO.getDeptId()));
+
+        for (int i = 0; i <cooperativesStatistics.size();i++){
+            cooperativesStatistics.get(i).put("示范级别",statisticsByLeaseTermList.get(i).get("num"));
+            cooperativesStatistics.get(i).put("成员出资额",statisticsByRegisterCapitalList.get(i).get("num"));
+            cooperativesStatistics.get(i).put("入社人员",statisticsByMembersNumList.get(i).get("num"));
+            cooperativesStatistics.get(i).put("带动农户",statisticsByDrivenFarmersNumList.get(i).get("num"));
+        }
 
         Map<String, Object> registerCapitalSumMap = new HashMap<>();
         registerCapitalSumMap.put("name", "成员出资额总额");

+ 24 - 5
src/main/resources/mapper/digitalagriculture/AgricultureBigDataMapper.xml

@@ -492,7 +492,7 @@
             ifnull( SUM( actual_output ), 0 ) AS actualOutputNum
         FROM
             centerdata_t_farm_plant_info a
-        LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
+        LEFT JOIN ${agricultureBigDataBO.database_system}.sys_dept d ON d.dept_id = a.dept_id
         <where>
             and YEAR = #{year}
             ${agricultureBigDataBO.params.dataScope}
@@ -584,8 +584,9 @@
                 </where>
             )
         b ON b.chemical_fertilizer_type = a.dict_value
-        WHERE
+        <where>
             a.dict_type = "farm_chemical_type"
+        </where>
         GROUP BY
             a.dict_value
         UNION ALL
@@ -612,11 +613,28 @@
         centerdata_t_farm_land_info a
         LEFT JOIN ${map.agricultureBigDataBO.database_system}.sys_dept d ON a.dept_id = d.dept_id
         LEFT JOIN ${map.agricultureBigDataBO.database_system}.sys_dict_data dict ON a.attribute = dict.dict_value
-        WHERE
-        dict.dict_type = 'farm_field_attribute'
+        <where>
+            dict.dict_type = 'farm_field_attribute'
+        </where>
         GROUP BY a.id
     </select>
 
+    <select id="getCooperativesStatisticsByCooperatives" resultType="map">
+        SELECT
+            ifnull( MAX( d.ancestors ), 0 ) ancestors,
+            ifnull( MAX( a.dept_id ), 0 ) deptId,
+            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>
+            ${params.dataScope}
+        </where>
+        GROUP BY
+            a.dept_id
+    </select>
+
     <select id="getCooperativesStatisticsByLeaseTerm" resultType="map">
         SELECT
             ifnull( MAX( d.ancestors ), 0 ) ancestors,
@@ -627,9 +645,10 @@
             centerdata_t_farm_agricultural_cooperatives a
         left join
             ${database_system}.sys_dept d on d.dept_id = a.dept_id
-        WHERE
+        <where>
             Lease_term in ('省','市','区县','乡镇街','村')
             ${params.dataScope}
+        </where>
         GROUP BY
             a.dept_id
     </select>