|
@@ -2,6 +2,7 @@ package com.sooka.sponest.data.digitalagriculture.service.impl;
|
|
|
|
|
|
import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
|
|
import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
|
|
import com.ruoyi.common.security.utils.DictUtils;
|
|
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.base.service.impl.BaseServiceImpl;
|
|
import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
|
|
import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
|
|
import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
|
|
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.digitalagriculture.service.IAgricultureBigDataService;
|
|
import com.sooka.sponest.data.utils.DeptLevelUtil;
|
|
import com.sooka.sponest.data.utils.DeptLevelUtil;
|
|
import com.sooka.sponest.data.utils.DictUtil;
|
|
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.apache.commons.collections4.MapUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -185,15 +188,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
|
|
public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
|
|
public List<Map<String, Object>> getSeedStock(AgricultureBigDataBO agricultureBigDataBO) {
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
List<Map<String, Object>> list = agricultureBigDataMapper.getSeedStock(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) {
|
|
public List<Map<String, Object>> getSeedStockByType(AgricultureBigDataBO agricultureBigDataBO) {
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
List<Map<String, Object>> seedStockByType = agricultureBigDataMapper.getSeedStockByType(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<>();
|
|
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
|
objectObjectHashMap.put("ancestors", 0);
|
|
objectObjectHashMap.put("ancestors", 0);
|
|
objectObjectHashMap.put("deptId", 0);
|
|
objectObjectHashMap.put("deptId", 0);
|
|
objectObjectHashMap.put("salesVolumeNum", 0);
|
|
objectObjectHashMap.put("salesVolumeNum", 0);
|
|
objectObjectHashMap.put("stockNum", 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));
|
|
List<Map<String, Object>> statisticsByYear = getStatisticsByYear(agricultureBigDataBO, String.valueOf(i));
|
|
deptLevel.addAll(deptLevelUtil.getDeptLevel(statisticsByYear,String.valueOf(agricultureBigDataBO.getDeptId())));
|
|
deptLevel.addAll(deptLevelUtil.getDeptLevel(statisticsByYear,String.valueOf(agricultureBigDataBO.getDeptId())));
|
|
}
|
|
}
|
|
|
|
+ // 根据name(年份)进行分组
|
|
return deptLevel.stream().collect(Collectors.groupingBy(map -> (String) map.get("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) {
|
|
public List<Map<String, Object>> getAgriculturalSubsidyBySubclass(AgricultureBigDataBO agricultureBigDataBO) {
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
setSookaDataBase(agricultureBigDataBO);
|
|
List<Map<String, Object>> agriculturalSubsidyBySubclass = new ArrayList<>();
|
|
List<Map<String, Object>> agriculturalSubsidyBySubclass = new ArrayList<>();
|
|
- List<Map<String, Object>> maps;
|
|
|
|
-
|
|
|
|
|
|
+ // 判断农业小类
|
|
if ("farm_subsidy_type".equals(agricultureBigDataBO.getDictValue())) {
|
|
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())) {
|
|
} 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())) {
|
|
} 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;
|
|
return agriculturalSubsidyBySubclass;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -406,6 +409,7 @@ public class AgricultureBigDataServiceImpl extends BaseServiceImpl implements IA
|
|
int drivenFarmersNumSum = getStatisticsSum(statisticsByDrivenFarmersNum);
|
|
int drivenFarmersNumSum = getStatisticsSum(statisticsByDrivenFarmersNum);
|
|
List<Map<String, Object>> statisticsByDrivenFarmersNumList = 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++){
|
|
for (int i = 0; i <cooperativesStatistics.size();i++){
|
|
cooperativesStatistics.get(i).put("示范级别",statisticsByLeaseTermList.get(i).get("num"));
|
|
cooperativesStatistics.get(i).put("示范级别",statisticsByLeaseTermList.get(i).get("num"));
|
|
cooperativesStatistics.get(i).put("成员出资额",statisticsByRegisterCapitalList.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"));
|
|
cooperativesStatistics.get(i).put("带动农户",statisticsByDrivenFarmersNumList.get(i).get("num"));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 数据求和
|
|
Map<String, Object> registerCapitalSumMap = new HashMap<>();
|
|
Map<String, Object> registerCapitalSumMap = new HashMap<>();
|
|
registerCapitalSumMap.put("name", "成员出资额总额");
|
|
registerCapitalSumMap.put("name", "成员出资额总额");
|
|
registerCapitalSumMap.put("num", registerCapitalSum);
|
|
registerCapitalSumMap.put("num", registerCapitalSum);
|