|
@@ -39,8 +39,8 @@ public class LandService extends BaseService<Land,Long> {
|
|
|
Map<Integer,String> namesMap = townService.getNames(districtCode);
|
|
|
TownStat sumStat = new TownStat();
|
|
|
sumStat.setTownName("汇总信息");
|
|
|
- sumStat.setSumMap(new HashMap<>());
|
|
|
townStatList.add(sumStat);
|
|
|
+ HashMap<String,LandAreaStat > sumMap = new HashMap<>();
|
|
|
|
|
|
for(Object[] o : res){
|
|
|
if(currentTownId == null || !o[0].toString().equals(currentTownId.toString())){
|
|
@@ -62,15 +62,21 @@ public class LandService extends BaseService<Land,Long> {
|
|
|
bean.setCount(Integer.valueOf(o[3].toString()));
|
|
|
townStat.getList().add(bean);
|
|
|
//汇总信息
|
|
|
- LandAreaStat sum = sumStat.getSumMap().get(bean.getParcelType());
|
|
|
+ LandAreaStat sum = sumMap.get(bean.getParcelType());
|
|
|
if(sum == null){
|
|
|
sum = new LandAreaStat(bean.getParcelType(), bean.getName(), bean.getColor());
|
|
|
- sumStat.getSumMap().put(bean.getParcelType().toString(), sum);
|
|
|
+ sumMap.put(bean.getParcelType().toString(), sum);
|
|
|
}
|
|
|
sum.setArea(sum.getArea() + bean.getArea());
|
|
|
sum.setCount(sum.getCount() + bean.getCount());
|
|
|
}
|
|
|
|
|
|
+ //组装汇总List
|
|
|
+ LandAreaStat[] sumArrays = new LandAreaStat[sumMap.size()];
|
|
|
+ for(String key : sumMap.keySet()){
|
|
|
+ sumArrays[Integer.valueOf(key)] = sumMap.get(key);
|
|
|
+ }
|
|
|
+ sumStat.setList(Arrays.asList(sumArrays));
|
|
|
return townStatList;
|
|
|
}
|
|
|
|
|
@@ -84,31 +90,48 @@ public class LandService extends BaseService<Land,Long> {
|
|
|
return percent;
|
|
|
}
|
|
|
|
|
|
- public List<CropAreaStat> getCropAreaStat(String district, Integer townId, Date date) {
|
|
|
+ public List<TownStatCrop> getCropAreaStat(Date date, String districtCode) {
|
|
|
Double percent = getPercent(date);
|
|
|
+ List<Object[]> res = landRepository.statParcelTypeAll();
|
|
|
+ List<TownStat> townStatList = new ArrayList<>(30);
|
|
|
+ Integer currentTownId = null;
|
|
|
+ TownStat townStat = null;
|
|
|
+ Map<Integer,String> namesMap = townService.getNames(districtCode);
|
|
|
+ TownStat sumStat = new TownStat();
|
|
|
+ sumStat.setTownName("汇总信息");
|
|
|
+// sumStat.setSumMap(new HashMap<>());
|
|
|
+ townStatList.add(sumStat);
|
|
|
|
|
|
- List<CropAreaStat> list = new ArrayList<>();
|
|
|
- List<Object[]> res = null;
|
|
|
- if(townId != null) {
|
|
|
- String wkt = townService.findWktById(townId);
|
|
|
- res = landRepository.statCropType(wkt);
|
|
|
- }else if(StringUtils.isNotBlank(district)) {
|
|
|
- String wkt = districtRepository.findWktByCode(district);
|
|
|
- res = landRepository.statCropType(wkt);
|
|
|
- }else{
|
|
|
- res =landRepository.statCropTypeAll();
|
|
|
- }
|
|
|
- res.stream().forEach(o -> {
|
|
|
- Double area = (Double)o[1];
|
|
|
- CropAreaStat bean = new CropAreaStat();
|
|
|
- bean.setName(CropAreaStat.castName(o[0].toString()));
|
|
|
- bean.setColor(CropAreaStat.castColor(o[0].toString()));
|
|
|
+ for(Object[] o : res){
|
|
|
+ if(currentTownId == null || !o[0].toString().equals(currentTownId.toString())){
|
|
|
+ townStat = new TownStat();
|
|
|
+ townStat.setList(new ArrayList<>());
|
|
|
+ currentTownId = Integer.valueOf(o[0].toString());
|
|
|
+ townStat.setTownId(currentTownId);
|
|
|
+ townStat.setTownName(namesMap.get(currentTownId));
|
|
|
+ townStatList.add(townStat);
|
|
|
+ }
|
|
|
+
|
|
|
+ LandAreaStat bean = new LandAreaStat();
|
|
|
+ bean.setParcelType(Integer.valueOf(o[1].toString()));
|
|
|
+ bean.setColor(LandAreaStat.castColor(bean.getParcelType()));
|
|
|
+ bean.setName(LandAreaStat.castName(bean.getParcelType()));
|
|
|
+ Double area = (Double)o[2];
|
|
|
bean.setArea((area + area / 2) / 1000);
|
|
|
bean.setArea(bean.getArea() * percent);
|
|
|
- bean.setCount(Integer.valueOf(o[2].toString()));
|
|
|
- list.add(bean);
|
|
|
- });
|
|
|
- return list;
|
|
|
+ bean.setCount(Integer.valueOf(o[3].toString()));
|
|
|
+ townStat.getList().add(bean);
|
|
|
+ //汇总信息
|
|
|
+// LandAreaStat sum = sumStat.getSumMap().get(bean.getParcelType());
|
|
|
+// if(sum == null){
|
|
|
+// sum = new LandAreaStat(bean.getParcelType(), bean.getName(), bean.getColor());
|
|
|
+// sumStat.getSumMap().put(bean.getParcelType().toString(), sum);
|
|
|
+// }
|
|
|
+// sum.setArea(sum.getArea() + bean.getArea());
|
|
|
+// sum.setCount(sum.getCount() + bean.getCount());
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
public List<Land> list(String district, Integer townId, Integer limit, String cropType){
|