Просмотр исходного кода

数字中台-数字农业-农业补贴小类(不可切换、只含各小类总数)

吕宣芝 1 год назад
Родитель
Сommit
0a944792d6

+ 15 - 22
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/AgricultureBigDataServiceImpl.java

@@ -312,38 +312,31 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
         List<Map<String, Object>> agriculturalSubsidyBySubclass = new ArrayList<>();
         // 根据字典类型进行处理
         if ("farm_subsidy_type".equals(agricultureBigDataBO.getDictValue())) {
-            processAgriculturalSubsidy("farm_subsidy_type", agricultureBigDataBO, agriculturalSubsidyBySubclass);
+            agriculturalSubsidyBySubclass = processAgriculturalSubsidy("farm_subsidy_type", agricultureBigDataBO);
         } else if ("farm_mac_type".equals(agricultureBigDataBO.getDictValue())) {
-            processAgriculturalSubsidy("farm_mac_type", agricultureBigDataBO, agriculturalSubsidyBySubclass);
+            agriculturalSubsidyBySubclass = processAgriculturalSubsidy("farm_mac_type", agricultureBigDataBO);
         } else if ("farm_breed_type".equals(agricultureBigDataBO.getDictValue())) {
-            processAgriculturalSubsidy("farm_breed_type", agricultureBigDataBO, agriculturalSubsidyBySubclass);
+            agriculturalSubsidyBySubclass = processAgriculturalSubsidy("farm_breed_type", agricultureBigDataBO);
         }
         return agriculturalSubsidyBySubclass;
     }
 
     /**
      * 处理农业小类补贴
-     * @param dictType 字典类型
-     * @param agricultureBigDataBO 农业大数据对象
-     * @param result 存储结果的列表
+     * @param dictType
+     * @param agricultureBigDataBO
+     * @return
      */
-    private void processAgriculturalSubsidy(String dictType, AgricultureBigDataBO agricultureBigDataBO, List<Map<String, Object>> result) {
+    private List<Map<String, Object>> processAgriculturalSubsidy(String dictType, AgricultureBigDataBO agricultureBigDataBO) {
         List<SysDictData> dictData = DictUtils.getDictCache(dictType);
-        for (int i = 0; i < dictData.size(); i++) {
-            Map<String,Object> map = new HashMap<>();
-            String dictLabel = dictData.get(i).getDictLabel();
-            List<Map<String, Object>> subClassResults = getAgriculturalSubsidyBySubclass(agricultureBigDataBO, i, dictLabel);
-            String deptId = String.valueOf(agricultureBigDataBO.getDeptId());
-            result.addAll(deptLevelUtil.getDeptLevel(subClassResults, deptId));
-            double sum = 0.0;
-            for (Map<String, Object> m : subClassResults) {
-                Number moneyNum = (Number) m.get("MoneyNum");
-                sum += moneyNum.doubleValue();
-            }
-            map.put(dictLabel,sum);
-            result.add(map);
-        }
-
+        return dictData.stream().map(dict -> {
+            Map<String, Object> map = new HashMap<>();
+            String dictLabel = dict.getDictLabel();
+            List<Map<String, Object>> subClassResults = getAgriculturalSubsidyBySubclass(agricultureBigDataBO, dictData.indexOf(dict), dictLabel);
+            double sum = subClassResults.stream().mapToDouble(m -> ((Number) m.get("MoneyNum")).doubleValue()).sum();
+            map.put(dictLabel, sum);
+            return map;
+        }).collect(Collectors.toList());
     }
 
     /**