Sfoglia il codice sorgente

数字中台-耕地资源数据格式

吕宣芝 1 anno fa
parent
commit
9dadbd94ca

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

@@ -63,7 +63,7 @@ public interface AgricultureBigDataMapper {
 
     List<Map<String,Object>> getFertilizerStatistics(AgricultureBigDataBO agricultureBigDataBO);
 
-    List<Map<String,Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO);
+    List<Map<String,Object>> getFarmlandStatistics(@Param("map") Map<String,Object> map);
 
     List<Map<String,Object>> getCooperativesStatisticsByLeaseTerm(AgricultureBigDataBO agricultureBigDataBO);
 

+ 5 - 16
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -1,6 +1,7 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.DictUtils;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
 import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
@@ -370,21 +371,10 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     @DataScopeMutiDept(deptAlias = "d")
     public List<Map<String, Object>> getFarmlandStatistics(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
-        List<Map<String, Object>> farmlandStatistics = new ArrayList<>();
-        for (int i = 1 ; i <= 5 ; i++){
-            agricultureBigDataBO.setDictValue(String.valueOf(i));
-            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,String.valueOf(agricultureBigDataBO.getDeptId())));
-        }
-        return farmlandStatistics;
+        Map<String, Object> map = new HashMap<>();
+        map.put("agricultureBigDataBO",agricultureBigDataBO);
+        map.put("dictList", DictUtils.getDictCache("farm_field_attribute"));
+        return deptLevelUtil.getDeptLevel(agricultureBigDataMapper.getFarmlandStatistics(map),String.valueOf(agricultureBigDataBO.getDeptId()));
     }
 
     /**
@@ -399,7 +389,6 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         setSookaDataBase(agricultureBigDataBO);
         // 示范级别
         List<Map<String, Object>> statisticsByLeaseTerm = agricultureBigDataMapper.getCooperativesStatisticsByLeaseTerm(agricultureBigDataBO);
-        int leaseTermSum = getStatisticsSum(statisticsByLeaseTerm);
         List<Map<String, Object>> cooperativesStatistics = new ArrayList<>(deptLevelUtil.getDeptLevel(statisticsByLeaseTerm,String.valueOf(agricultureBigDataBO.getDeptId())));
         // 成员出资额
         List<Map<String, Object>> statisticsByRegisterCapital = agricultureBigDataMapper.getCooperativesStatisticsByRegisterCapital(agricultureBigDataBO);

+ 12 - 18
src/main/resources/mapper/digitalagriculture/AgricultureBigDataMapper.xml

@@ -595,24 +595,18 @@
     </select>
 
     <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
+        a.dept_id deptId,d.ancestors,
+        <foreach item="item" collection="map.dictList" open="" separator="," close="">
+            IFNULL(CASE WHEN a.attribute = #{item.dictValue} THEN a.area END ,0) AS #{item.dictLabel}
+        </foreach>
+        FROM
+        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'
+        GROUP BY a.id
     </select>
 
     <select id="getCooperativesStatisticsByLeaseTerm" resultType="map">