|
@@ -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());
|
|
|
}
|
|
|
|
|
|
/**
|