소스 검색

数字中台-数字农业去除冗余、补充注释

吕宣芝 1 년 전
부모
커밋
b650fb8c0f
1개의 변경된 파일32개의 추가작업 그리고 27개의 파일을 삭제
  1. 32 27
      src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

+ 32 - 27
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -2,6 +2,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.ruoyi.system.api.domain.SysDictData;
 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;
@@ -9,6 +10,8 @@ import com.sooka.sponest.data.digitalagriculture.mapper.AgricultureBigDataMapper
 import com.sooka.sponest.data.digitalagriculture.service.IAgricultureBigDataService;
 import com.sooka.sponest.data.utils.DeptLevelUtil;
 import com.sooka.sponest.data.utils.DictUtil;
+import org.apache.commons.collections4.IterableMap;
+import org.apache.commons.collections4.MapIterator;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -185,15 +188,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(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,String.valueOf(agricultureBigDataBO.getDeptId()));
+        return getMaps(agricultureBigDataBO, list);
 
     }
 
@@ -209,17 +204,29 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     public List<Map<String, Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(agricultureBigDataBO);
         List<Map<String, Object>> seedStockByType = agricultureBigDataMapper.getSeedStockByType(agricultureBigDataBO);
-        if (seedStockByType == null || seedStockByType.isEmpty()) {
+        return getMaps(agricultureBigDataBO, seedStockByType);
+    }
+
+    /**
+     * (分类)种子库存判断查询数据是否为空
+     *
+     * @param agricultureBigDataBO
+     * @param list
+     * @return
+     */
+    private List<Map<String, Object>> getMaps(AgricultureBigDataBO agricultureBigDataBO, List<Map<String, Object>> list) {
+        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);
-            seedStockByType.add(objectObjectHashMap);
+            list.add(objectObjectHashMap);
         }
-        return deptLevelUtil.getDeptLevel(seedStockByType,String.valueOf(agricultureBigDataBO.getDeptId()));
+        return deptLevelUtil.getDeptLevel(list,String.valueOf(agricultureBigDataBO.getDeptId()));
     }
 
+
     /**
      * 耕种统计
      *
@@ -245,6 +252,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
             List<Map<String, Object>> statisticsByYear = getStatisticsByYear(agricultureBigDataBO, String.valueOf(i));
             deptLevel.addAll(deptLevelUtil.getDeptLevel(statisticsByYear,String.valueOf(agricultureBigDataBO.getDeptId())));
         }
+        // 根据name(年份)进行分组
         return deptLevel.stream().collect(Collectors.groupingBy(map -> (String) map.get("name")));
     }
 
@@ -302,28 +310,23 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
     public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
         setSookaDataBase(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,String.valueOf(agricultureBigDataBO.getDeptId())));
+            List<SysDictData> farmSubsidyType = DictUtils.getDictCache("farm_subsidy_type");
+            for (int i = 0; i < farmSubsidyType.size(); i++) {
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, farmSubsidyType.get(i).getDictLabel()),String.valueOf(agricultureBigDataBO.getDeptId())));
             }
         } 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,String.valueOf(agricultureBigDataBO.getDeptId())));
+            List<SysDictData> farmMacType = DictUtils.getDictCache("farm_mac_type");
+            for (int i = 0; i < farmMacType.size(); i++) {
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, farmMacType.get(i).getDictLabel()),String.valueOf(agricultureBigDataBO.getDeptId())));
             }
         } 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,String.valueOf(agricultureBigDataBO.getDeptId())));
+            List<SysDictData> farmBreedType = DictUtils.getDictCache("farm_breed_type");
+            for (int i = 0; i < farmBreedType.size(); i++) {
+                agriculturalSubsidyBySubclass.addAll(deptLevelUtil.getDeptLevel(getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, farmBreedType.get(i).getDictLabel()),String.valueOf(agricultureBigDataBO.getDeptId())));
             }
         }
-
         return agriculturalSubsidyBySubclass;
     }
 
@@ -406,6 +409,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         int drivenFarmersNumSum = getStatisticsSum(statisticsByDrivenFarmersNum);
         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"));
@@ -413,6 +417,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
             cooperativesStatistics.get(i).put("带动农户",statisticsByDrivenFarmersNumList.get(i).get("num"));
         }
 
+        // 数据求和
         Map<String, Object> registerCapitalSumMap = new HashMap<>();
         registerCapitalSumMap.put("name", "成员出资额总额");
         registerCapitalSumMap.put("num", registerCapitalSum);