feat(kangzai): 地图统计
parent
4bb5abbfd9
commit
e7c885a541
|
@ -2,6 +2,7 @@ package com.zcloud.common.utils;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -67,10 +68,10 @@ public class BaiduMapUtil {
|
||||||
List<Map<String, Object>> list = result.getObject("result", List.class);
|
List<Map<String, Object>> list = result.getObject("result", List.class);
|
||||||
Map<String, Object> point = list.get(0);
|
Map<String, Object> point = list.get(0);
|
||||||
|
|
||||||
return new double[]{
|
double x = ((BigDecimal) point.get("x")).doubleValue();
|
||||||
((Double) point.get("x")),
|
double y = ((BigDecimal) point.get("y")).doubleValue();
|
||||||
((Double) point.get("y"))
|
|
||||||
};
|
return new double[]{x, y};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,180 @@
|
||||||
|
package com.zcloud.modules.kangzai.controller;
|
||||||
|
|
||||||
|
import com.zcloud.common.utils.R;
|
||||||
|
import com.zcloud.modules.kangzai.dto.EmergencyStorageDTO;
|
||||||
|
import com.zcloud.modules.kangzai.dto.MountainFloodVillageDTO;
|
||||||
|
import com.zcloud.modules.kangzai.dto.ReservoirBasicDTO;
|
||||||
|
import com.zcloud.modules.kangzai.dto.TailingsReservoirDTO;
|
||||||
|
import com.zcloud.modules.kangzai.entity.BusEmergencyStorageEntity;
|
||||||
|
import com.zcloud.modules.kangzai.entity.BusMountainFloodVillageEntity;
|
||||||
|
import com.zcloud.modules.kangzai.entity.BusReservoirBasicEntity;
|
||||||
|
import com.zcloud.modules.kangzai.entity.BusTailingsReservoirEntity;
|
||||||
|
import com.zcloud.modules.kangzai.service.BusEmergencyStorageService;
|
||||||
|
import com.zcloud.modules.kangzai.service.BusMountainFloodVillageService;
|
||||||
|
import com.zcloud.modules.kangzai.service.BusReservoirBasicService;
|
||||||
|
import com.zcloud.modules.kangzai.service.BusTailingsReservoirService;
|
||||||
|
import com.zcloud.modules.sys.controller.AbstractController;
|
||||||
|
import com.zcloud.modules.sys.entity.SysDictionariesEntity;
|
||||||
|
import com.zcloud.modules.sys.service.SysDictionariesService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fangjiakai
|
||||||
|
* @date 2025/06/11 15:41
|
||||||
|
*/
|
||||||
|
@Api(tags = "应急储备库信息表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("map")
|
||||||
|
public class Mapcontroller extends AbstractController {
|
||||||
|
@Autowired
|
||||||
|
private SysDictionariesService sysDictionariesService;
|
||||||
|
@Autowired
|
||||||
|
private BusReservoirBasicService busReservoirBasicService;
|
||||||
|
@Autowired
|
||||||
|
private BusMountainFloodVillageService busMountainFloodVillageService;
|
||||||
|
@Autowired
|
||||||
|
private BusTailingsReservoirService busTailingsReservoirService;
|
||||||
|
@Autowired
|
||||||
|
private BusEmergencyStorageService busEmergencyStorageService;
|
||||||
|
|
||||||
|
@RequestMapping("/reservoir")
|
||||||
|
public R reservoir() {
|
||||||
|
List<BusReservoirBasicEntity> list = busReservoirBasicService.queryListByFlexibleParams("is_delete",0);
|
||||||
|
List<SysDictionariesEntity> sysDictionaries = sysDictionariesService.queryListParentId("a8b7c6d5e4f3g2h1i0j9k8l7m6n5o4p");
|
||||||
|
|
||||||
|
Map<String, String> dictMap = new HashMap<>();
|
||||||
|
for (SysDictionariesEntity entity : sysDictionaries) {
|
||||||
|
dictMap.put(entity.getBianma(), entity.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Long> typeCountMap = new HashMap<>();
|
||||||
|
for (BusReservoirBasicEntity entity : list) {
|
||||||
|
String reservoirLevelCode = entity.getReservoirLevel();
|
||||||
|
|
||||||
|
String reservoirLevelName = dictMap.get(reservoirLevelCode);
|
||||||
|
|
||||||
|
typeCountMap.compute(reservoirLevelName, (k, v) -> v == null ? 1 : v + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ReservoirBasicDTO> dtoList = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, Long> entry : typeCountMap.entrySet()) {
|
||||||
|
ReservoirBasicDTO dto = new ReservoirBasicDTO();
|
||||||
|
dto.setReservoirLevel(entry.getKey());
|
||||||
|
dto.setCount(entry.getValue());
|
||||||
|
dtoList.add(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok().put("data", dtoList).put("reservoirType", sysDictionaries);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/mountainFloodVillage")
|
||||||
|
public R mountainFloodVillage() {
|
||||||
|
List<BusMountainFloodVillageEntity> list = busMountainFloodVillageService.queryListByFlexibleParams("is_delete",0);
|
||||||
|
List<SysDictionariesEntity> sysDictionaries = sysDictionariesService.queryListParentId("e72d17163f3b4045a2f1eef8e55ea835");
|
||||||
|
|
||||||
|
Map<String, String> dictMap = new HashMap<>();
|
||||||
|
for (SysDictionariesEntity entity : sysDictionaries) {
|
||||||
|
dictMap.put(entity.getBianma(), entity.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Long> countyCountMap = new HashMap<>();
|
||||||
|
for (BusMountainFloodVillageEntity entity : list) {
|
||||||
|
String county = entity.getCounty();
|
||||||
|
|
||||||
|
String countyName = dictMap.get(county);
|
||||||
|
|
||||||
|
countyCountMap.compute(countyName, (k, v) -> v == null ? 1 : v + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MountainFloodVillageDTO> dtoList = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, Long> entry : countyCountMap.entrySet()) {
|
||||||
|
MountainFloodVillageDTO dto = new MountainFloodVillageDTO();
|
||||||
|
dto.setCounty(entry.getKey());
|
||||||
|
dto.setCount(entry.getValue());
|
||||||
|
dtoList.add(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok().put("data", dtoList).put("county", sysDictionaries);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/tailingsReservoir")
|
||||||
|
public R tailingsReservoir() {
|
||||||
|
List<BusTailingsReservoirEntity> list = busTailingsReservoirService.queryListByFlexibleParams("is_delete",0);
|
||||||
|
List<SysDictionariesEntity> runningStateList = sysDictionariesService.queryListParentId("b62cbaa90f9936bca50e48e8e853150a");
|
||||||
|
List<SysDictionariesEntity> designGradeList = sysDictionariesService.queryListParentId("f32b9172ba95c27041c2289d03e6133f");
|
||||||
|
|
||||||
|
Map<String, String> runningStateDictMap = new HashMap<>();
|
||||||
|
for (SysDictionariesEntity entity : runningStateList) {
|
||||||
|
runningStateDictMap.put(entity.getBianma(), entity.getName());
|
||||||
|
}
|
||||||
|
Map<String, String> designGradeDictMap = new HashMap<>();
|
||||||
|
for (SysDictionariesEntity entity : designGradeList) {
|
||||||
|
designGradeDictMap.put(entity.getBianma(), entity.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分组统计:designGrade -> runningStatus -> count
|
||||||
|
Map<String, Map<String, Long>> groupedData = new HashMap<>();
|
||||||
|
|
||||||
|
for (BusTailingsReservoirEntity entity : list) {
|
||||||
|
String rawRunningStatus = entity.getRunningStatus();
|
||||||
|
String rawDesignGrade = entity.getDesignGrade();
|
||||||
|
|
||||||
|
String runningStatus = runningStateDictMap.get(rawRunningStatus);
|
||||||
|
String designGrade = designGradeDictMap.get(rawDesignGrade);
|
||||||
|
|
||||||
|
groupedData
|
||||||
|
.computeIfAbsent(designGrade, k -> new HashMap<>())
|
||||||
|
.compute(runningStatus, (k, v) -> v == null ? 1 : v + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为 DTO 列表
|
||||||
|
List<TailingsReservoirDTO> dtoList = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, Map<String, Long>> entry : groupedData.entrySet()) {
|
||||||
|
TailingsReservoirDTO dto = new TailingsReservoirDTO();
|
||||||
|
dto.setDesignGrade(entry.getKey());
|
||||||
|
dto.setCount(entry.getValue());
|
||||||
|
dtoList.add(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok().put("data", dtoList).put("runningStateList", runningStateList).put("designGradeList", designGradeList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/emergencyStorage")
|
||||||
|
public R emergencyStorage() {
|
||||||
|
List<BusEmergencyStorageEntity> list = busEmergencyStorageService.queryListByFlexibleParams("is_delete",0);
|
||||||
|
List<SysDictionariesEntity> sysDictionaries = sysDictionariesService.queryListParentId("e72d17163f3b4045a2f1eef8e55ea835");
|
||||||
|
|
||||||
|
Map<String, String> dictMap = new HashMap<>();
|
||||||
|
for (SysDictionariesEntity entity : sysDictionaries) {
|
||||||
|
dictMap.put(entity.getBianma(), entity.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Long> countyCountMap = new HashMap<>();
|
||||||
|
for (BusEmergencyStorageEntity entity : list) {
|
||||||
|
String county = entity.getCounty();
|
||||||
|
|
||||||
|
String countyName = dictMap.get(county);
|
||||||
|
|
||||||
|
countyCountMap.compute(countyName, (k, v) -> v == null ? 1 : v + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<EmergencyStorageDTO> dtoList = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, Long> entry : countyCountMap.entrySet()) {
|
||||||
|
EmergencyStorageDTO dto = new EmergencyStorageDTO();
|
||||||
|
dto.setCounty(entry.getKey());
|
||||||
|
dto.setCount(entry.getValue());
|
||||||
|
dtoList.add(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok().put("data", dtoList).put("county", sysDictionaries);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.zcloud.modules.kangzai.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fangjiakai
|
||||||
|
* @date 2025/06/11 16:32
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class EmergencyStorageDTO {
|
||||||
|
private String county;
|
||||||
|
private Long count;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.zcloud.modules.kangzai.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fangjiakai
|
||||||
|
* @date 2025/06/11 16:04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MountainFloodVillageDTO {
|
||||||
|
private String county;
|
||||||
|
private Long count;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.zcloud.modules.kangzai.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fangjiakai
|
||||||
|
* @date 2025/06/11 15:46
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ReservoirBasicDTO {
|
||||||
|
private String reservoirLevel;
|
||||||
|
private Long count;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.zcloud.modules.kangzai.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fangjiakai
|
||||||
|
* @date 2025/06/11 16:14
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TailingsReservoirDTO {
|
||||||
|
private String designGrade;
|
||||||
|
private Map<String,Long> count;
|
||||||
|
}
|
Loading…
Reference in New Issue