From e7c885a54186f697beb73b1ed449a78ed3142538 Mon Sep 17 00:00:00 2001 From: fangjiakai <450850793@qq.com> Date: Wed, 11 Jun 2025 18:24:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(kangzai):=20=E5=9C=B0=E5=9B=BE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zcloud/common/utils/BaiduMapUtil.java | 9 +- .../kangzai/controller/Mapcontroller.java | 180 ++++++++++++++++++ .../kangzai/dto/EmergencyStorageDTO.java | 13 ++ .../kangzai/dto/MountainFloodVillageDTO.java | 13 ++ .../kangzai/dto/ReservoirBasicDTO.java | 13 ++ .../kangzai/dto/TailingsReservoirDTO.java | 15 ++ 6 files changed, 239 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/zcloud/modules/kangzai/controller/Mapcontroller.java create mode 100644 src/main/java/com/zcloud/modules/kangzai/dto/EmergencyStorageDTO.java create mode 100644 src/main/java/com/zcloud/modules/kangzai/dto/MountainFloodVillageDTO.java create mode 100644 src/main/java/com/zcloud/modules/kangzai/dto/ReservoirBasicDTO.java create mode 100644 src/main/java/com/zcloud/modules/kangzai/dto/TailingsReservoirDTO.java diff --git a/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java b/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java index 06715cf..4b6f829 100644 --- a/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java +++ b/src/main/java/com/zcloud/common/utils/BaiduMapUtil.java @@ -2,6 +2,7 @@ package com.zcloud.common.utils; import com.alibaba.fastjson.JSONObject; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -67,10 +68,10 @@ public class BaiduMapUtil { List> list = result.getObject("result", List.class); Map point = list.get(0); - return new double[]{ - ((Double) point.get("x")), - ((Double) point.get("y")) - }; + double x = ((BigDecimal) point.get("x")).doubleValue(); + double y = ((BigDecimal) point.get("y")).doubleValue(); + + return new double[]{x, y}; } /** diff --git a/src/main/java/com/zcloud/modules/kangzai/controller/Mapcontroller.java b/src/main/java/com/zcloud/modules/kangzai/controller/Mapcontroller.java new file mode 100644 index 0000000..6e1427b --- /dev/null +++ b/src/main/java/com/zcloud/modules/kangzai/controller/Mapcontroller.java @@ -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 list = busReservoirBasicService.queryListByFlexibleParams("is_delete",0); + List sysDictionaries = sysDictionariesService.queryListParentId("a8b7c6d5e4f3g2h1i0j9k8l7m6n5o4p"); + + Map dictMap = new HashMap<>(); + for (SysDictionariesEntity entity : sysDictionaries) { + dictMap.put(entity.getBianma(), entity.getName()); + } + + Map 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 dtoList = new ArrayList<>(); + for (Map.Entry 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 list = busMountainFloodVillageService.queryListByFlexibleParams("is_delete",0); + List sysDictionaries = sysDictionariesService.queryListParentId("e72d17163f3b4045a2f1eef8e55ea835"); + + Map dictMap = new HashMap<>(); + for (SysDictionariesEntity entity : sysDictionaries) { + dictMap.put(entity.getBianma(), entity.getName()); + } + + Map 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 dtoList = new ArrayList<>(); + for (Map.Entry 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 list = busTailingsReservoirService.queryListByFlexibleParams("is_delete",0); + List runningStateList = sysDictionariesService.queryListParentId("b62cbaa90f9936bca50e48e8e853150a"); + List designGradeList = sysDictionariesService.queryListParentId("f32b9172ba95c27041c2289d03e6133f"); + + Map runningStateDictMap = new HashMap<>(); + for (SysDictionariesEntity entity : runningStateList) { + runningStateDictMap.put(entity.getBianma(), entity.getName()); + } + Map designGradeDictMap = new HashMap<>(); + for (SysDictionariesEntity entity : designGradeList) { + designGradeDictMap.put(entity.getBianma(), entity.getName()); + } + + // 分组统计:designGrade -> runningStatus -> count + Map> 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 dtoList = new ArrayList<>(); + for (Map.Entry> 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 list = busEmergencyStorageService.queryListByFlexibleParams("is_delete",0); + List sysDictionaries = sysDictionariesService.queryListParentId("e72d17163f3b4045a2f1eef8e55ea835"); + + Map dictMap = new HashMap<>(); + for (SysDictionariesEntity entity : sysDictionaries) { + dictMap.put(entity.getBianma(), entity.getName()); + } + + Map 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 dtoList = new ArrayList<>(); + for (Map.Entry 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); + } + +} diff --git a/src/main/java/com/zcloud/modules/kangzai/dto/EmergencyStorageDTO.java b/src/main/java/com/zcloud/modules/kangzai/dto/EmergencyStorageDTO.java new file mode 100644 index 0000000..ab450eb --- /dev/null +++ b/src/main/java/com/zcloud/modules/kangzai/dto/EmergencyStorageDTO.java @@ -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; +} diff --git a/src/main/java/com/zcloud/modules/kangzai/dto/MountainFloodVillageDTO.java b/src/main/java/com/zcloud/modules/kangzai/dto/MountainFloodVillageDTO.java new file mode 100644 index 0000000..9b1fae2 --- /dev/null +++ b/src/main/java/com/zcloud/modules/kangzai/dto/MountainFloodVillageDTO.java @@ -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; +} diff --git a/src/main/java/com/zcloud/modules/kangzai/dto/ReservoirBasicDTO.java b/src/main/java/com/zcloud/modules/kangzai/dto/ReservoirBasicDTO.java new file mode 100644 index 0000000..3e50364 --- /dev/null +++ b/src/main/java/com/zcloud/modules/kangzai/dto/ReservoirBasicDTO.java @@ -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; +} diff --git a/src/main/java/com/zcloud/modules/kangzai/dto/TailingsReservoirDTO.java b/src/main/java/com/zcloud/modules/kangzai/dto/TailingsReservoirDTO.java new file mode 100644 index 0000000..1737602 --- /dev/null +++ b/src/main/java/com/zcloud/modules/kangzai/dto/TailingsReservoirDTO.java @@ -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 count; +}