From 668190dcd99b0039bb467bf5e83516af341f326a Mon Sep 17 00:00:00 2001 From: wzy-warehouse <18135009705@163.com> Date: Tue, 28 Apr 2026 09:28:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E5=8C=96=E9=9A=90=E6=82=A3=E7=82=B9?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XianHiddenDangerSpotsController.java | 3 +- .../xian/entity/XianHiddenDangerSpots.java | 2 +- .../com/gis/xian/enums/DisasterTypeEnum.java | 6 +- .../mapper/XianHiddenDangerSpotsMapper.java | 3 +- .../service/XianHiddenDangerSpotsService.java | 3 +- .../IXianHiddenDangerSpotsServiceImpl.java | 84 +++++-------- .../com/gis/xian/task/InitializeData.java | 115 ++++++------------ .../mapper/XianHiddenDangerSpotsMapper.xml | 7 +- src/main/resources/config/redis/redis-key.yml | 13 +- 9 files changed, 77 insertions(+), 159 deletions(-) diff --git a/src/main/java/com/gis/xian/controller/XianHiddenDangerSpotsController.java b/src/main/java/com/gis/xian/controller/XianHiddenDangerSpotsController.java index 1ba8bc0..a3954a0 100644 --- a/src/main/java/com/gis/xian/controller/XianHiddenDangerSpotsController.java +++ b/src/main/java/com/gis/xian/controller/XianHiddenDangerSpotsController.java @@ -18,9 +18,8 @@ public class XianHiddenDangerSpotsController extends BaseController{ @GetMapping("/base-points") public ApiResponse> getBasePoints( - @RequestParam String type, @RequestParam(required = false) String disasterType) { - return ApiResponse.ok(xianHiddenDangerSpotsService.getBasePoints(type, disasterType)); + return ApiResponse.ok(xianHiddenDangerSpotsService.getBasePoints(disasterType)); } @GetMapping("point-detail/{id}") diff --git a/src/main/java/com/gis/xian/entity/XianHiddenDangerSpots.java b/src/main/java/com/gis/xian/entity/XianHiddenDangerSpots.java index 15afd9e..287732e 100644 --- a/src/main/java/com/gis/xian/entity/XianHiddenDangerSpots.java +++ b/src/main/java/com/gis/xian/entity/XianHiddenDangerSpots.java @@ -3,7 +3,7 @@ package com.gis.xian.entity; import lombok.Data; /** - * 地质灾害隐患点 + * 隐患点(滑坡、泥石流、山洪、内涝) * @TableName xian_hidden_danger_spots */ @Data diff --git a/src/main/java/com/gis/xian/enums/DisasterTypeEnum.java b/src/main/java/com/gis/xian/enums/DisasterTypeEnum.java index 4668c33..a88a522 100644 --- a/src/main/java/com/gis/xian/enums/DisasterTypeEnum.java +++ b/src/main/java/com/gis/xian/enums/DisasterTypeEnum.java @@ -4,11 +4,7 @@ import lombok.Getter; @Getter public enum DisasterTypeEnum { - // 第一级:灾害大类 - RAINSTORM("rainstorm", "暴雨"), - EARTHQUAKE("earthquake", "地震"), - - // 第二级:具体灾害类型(暴雨类) + // 具体灾害类型 LANDSLIDE("landslide", "滑坡"), DEBRIS_FLOW("debris_flow", "泥石流"), FLASH_FLOOD("flash_flood", "山洪"), diff --git a/src/main/java/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.java b/src/main/java/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.java index a23cd06..b1beddc 100644 --- a/src/main/java/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.java +++ b/src/main/java/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.java @@ -13,11 +13,10 @@ import java.util.List; public interface XianHiddenDangerSpotsMapper { /** * 获取所有基础点:滑坡、泥石流、山洪、内涝 - * @param type 灾害大类(rainstorm-暴雨, earthquake-地震) * @param disasterType 具体灾害类型(landslide-滑坡, debris_flow-泥石流, flash_flood-山洪, water_logging-内涝),可选 * @return 基础点列表 */ - List getBasePoints(String type, String disasterType); + List getBasePoints(String disasterType); /** * 根据id获取隐患点详情 diff --git a/src/main/java/com/gis/xian/service/XianHiddenDangerSpotsService.java b/src/main/java/com/gis/xian/service/XianHiddenDangerSpotsService.java index a17558a..bacab73 100644 --- a/src/main/java/com/gis/xian/service/XianHiddenDangerSpotsService.java +++ b/src/main/java/com/gis/xian/service/XianHiddenDangerSpotsService.java @@ -9,11 +9,10 @@ public interface XianHiddenDangerSpotsService { /** * 获取所有基础点:滑坡、泥石流、山洪、内涝 - * @param type 灾害大类(rainstorm-暴雨, earthquake-地震) * @param disasterType 具体灾害类型(landslide-滑坡, debris_flow-泥石流, flash_flood-山洪, water_logging-内涝),可选 * @return 基础点列表 */ - List getBasePoints(String type, String disasterType); + List getBasePoints(String disasterType); /** * 根据id获取隐患点详情 diff --git a/src/main/java/com/gis/xian/service/impl/IXianHiddenDangerSpotsServiceImpl.java b/src/main/java/com/gis/xian/service/impl/IXianHiddenDangerSpotsServiceImpl.java index 252e2c6..088bd14 100644 --- a/src/main/java/com/gis/xian/service/impl/IXianHiddenDangerSpotsServiceImpl.java +++ b/src/main/java/com/gis/xian/service/impl/IXianHiddenDangerSpotsServiceImpl.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON; import com.gis.xian.entity.XianHiddenDangerSpots; import com.gis.xian.vo.XianHiddenDangerSpotsBasePointVo; import com.gis.xian.vo.XianHiddenDangerSpotsPointDetailVo; -import com.gis.xian.enums.DisasterTypeEnum; import com.gis.xian.mapper.XianHiddenDangerSpotsMapper; import com.gis.xian.service.XianHiddenDangerSpotsService; import jakarta.annotation.Resource; @@ -23,34 +22,25 @@ public class IXianHiddenDangerSpotsServiceImpl implements XianHiddenDangerSpotsS @Resource private XianHiddenDangerSpotsMapper xianHiddenDangerSpotsMapper; - @Value("${init.data.base-points.hidden-danger.rainstorm}") - private String rainstormBasePointsKey; + @Value("${init.data.base-points.hidden-danger.all}") + private String allBasePointsKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-landslide}") - private String rainstormLandslideKey; + @Value("${init.data.base-points.hidden-danger.landslide}") + private String landslideKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-debris-flow}") - private String rainstormDebrisFlowKey; + @Value("${init.data.base-points.hidden-danger.debris-flow}") + private String debrisFlowKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-flash-flood}") - private String rainstormMountainFloodKey; + @Value("${init.data.base-points.hidden-danger.flash-flood}") + private String flashFloodKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-water-logging}") - private String rainstormWaterLoggingKey; - - @Value("${init.data.base-points.hidden-danger.earthquake}") - private String earthquakeBasePointsKey; - - @Value("${init.data.base-points.hidden-danger.earthquake-landslide}") - private String earthquakeLandslideKey; - - @Value("${init.data.base-points.hidden-danger.earthquake-debris-flow}") - private String earthquakeDebrisFlowKey; + @Value("${init.data.base-points.hidden-danger.water-logging}") + private String waterLoggingKey; @Override - public List getBasePoints(String type, String disasterType) { + public List getBasePoints(String disasterType) { // 构建Redis key - String redisKey = buildRedisKey(type, disasterType); + String redisKey = buildRedisKey(disasterType); // 从redis中读取基础点信息 Object data = redisTemplate.opsForValue().get(redisKey); @@ -58,7 +48,7 @@ public class IXianHiddenDangerSpotsServiceImpl implements XianHiddenDangerSpotsS if (data == null) { // 从数据库查询 List basePoints = - XianHiddenDangerSpotsBasePointVo.entity2Vo(xianHiddenDangerSpotsMapper.getBasePoints(type, disasterType)); + XianHiddenDangerSpotsBasePointVo.entity2Vo(xianHiddenDangerSpotsMapper.getBasePoints(disasterType)); // 存入Redis redisTemplate.opsForValue().set(redisKey, JSON.toJSONString(basePoints)); @@ -69,40 +59,24 @@ public class IXianHiddenDangerSpotsServiceImpl implements XianHiddenDangerSpotsS } /** - * 根据type和disasterType构建Redis key + * 根据disasterType构建Redis key */ - private String buildRedisKey(String type, String disasterType) { - if (DisasterTypeEnum.RAINSTORM.getType().equals(type)) { - if (disasterType == null || disasterType.isEmpty()) { - return rainstormBasePointsKey; - } - switch (disasterType) { - case "landslide": - return rainstormLandslideKey; - case "debris_flow": - return rainstormDebrisFlowKey; - case "flash_flood": - return rainstormMountainFloodKey; - case "waterlogging": - return rainstormWaterLoggingKey; - default: - return rainstormBasePointsKey; - } - } else if (DisasterTypeEnum.EARTHQUAKE.getType().equals(type)) { - if (disasterType == null || disasterType.isEmpty()) { - return earthquakeBasePointsKey; - } - switch (disasterType) { - case "landslide": - return earthquakeLandslideKey; - case "debris_flow": - return earthquakeDebrisFlowKey; - default: - return earthquakeBasePointsKey; - } + private String buildRedisKey(String disasterType) { + if (disasterType == null || disasterType.isEmpty()) { + return allBasePointsKey; + } + switch (disasterType) { + case "landslide": + return landslideKey; + case "debris_flow": + return debrisFlowKey; + case "flash_flood": + return flashFloodKey; + case "waterlogging": + return waterLoggingKey; + default: + return allBasePointsKey; } - // 默认返回暴雨的key - return rainstormBasePointsKey; } @Override diff --git a/src/main/java/com/gis/xian/task/InitializeData.java b/src/main/java/com/gis/xian/task/InitializeData.java index b778a95..d7b6554 100644 --- a/src/main/java/com/gis/xian/task/InitializeData.java +++ b/src/main/java/com/gis/xian/task/InitializeData.java @@ -1,7 +1,6 @@ package com.gis.xian.task; import com.alibaba.fastjson2.JSON; -import com.gis.xian.enums.DisasterTypeEnum; import com.gis.xian.mapper.*; import com.gis.xian.vo.*; import jakarta.annotation.Resource; @@ -58,29 +57,20 @@ public class InitializeData { @Resource RedisTemplate redisTemplate; - @Value("${init.data.base-points.hidden-danger.rainstorm}") - private String rainstormBasePointsKey; + @Value("${init.data.base-points.hidden-danger.all}") + private String allBasePointsKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-landslide}") - private String rainstormLandslideKey; + @Value("${init.data.base-points.hidden-danger.landslide}") + private String landslideKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-debris-flow}") - private String rainstormDebrisFlowKey; + @Value("${init.data.base-points.hidden-danger.debris-flow}") + private String debrisFlowKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-flash-flood}") - private String rainstormMountainFloodKey; + @Value("${init.data.base-points.hidden-danger.flash-flood}") + private String flashFloodKey; - @Value("${init.data.base-points.hidden-danger.rainstorm-water-logging}") - private String rainstormWaterLoggingKey; - - @Value("${init.data.base-points.hidden-danger.earthquake}") - private String earthquakeBasePointsKey; - - @Value("${init.data.base-points.hidden-danger.earthquake-landslide}") - private String earthquakeLandslideKey; - - @Value("${init.data.base-points.hidden-danger.earthquake-debris-flow}") - private String earthquakeDebrisFlowKey; + @Value("${init.data.base-points.hidden-danger.water-logging}") + private String waterLoggingKey; @Value("${init.data.base-points.risk}") private String riskBasePointsKey; @@ -118,84 +108,54 @@ public class InitializeData { log.info("开始初始化数据"); // 并行执行所有数据库查询和Redis写入 - // 暴雨类隐患点 - 总体 - CompletableFuture rainstormFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(rainstormBasePointsKey, JSON.toJSONString( + // 隐患点 - 总体 + CompletableFuture allFuture = CompletableFuture.runAsync(() -> { + redisTemplate.opsForValue().set(allBasePointsKey, JSON.toJSONString( XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.RAINSTORM.getType(), null)) + xianHiddenDangerSpotsMapper.getBasePoints(null)) ) ); - log.info("加载暴雨隐患点信息(总体)并写入redis完成"); + log.info("加载隐患点信息(总体)并写入redis完成"); }); - // 暴雨类隐患点 - 滑坡 - CompletableFuture rainstormLandslideFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(rainstormLandslideKey, JSON.toJSONString( + // 隐患点 - 滑坡 + CompletableFuture landslideFuture = CompletableFuture.runAsync(() -> { + redisTemplate.opsForValue().set(landslideKey, JSON.toJSONString( XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.RAINSTORM.getType(), "landslide")) + xianHiddenDangerSpotsMapper.getBasePoints("landslide")) ) ); - log.info("加载暴雨隐患点信息(滑坡)并写入redis完成"); + log.info("加载隐患点信息(滑坡)并写入redis完成"); }); - // 暴雨类隐患点 - 泥石流 - CompletableFuture rainstormDebrisFlowFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(rainstormDebrisFlowKey, JSON.toJSONString( + // 隐患点 - 泥石流 + CompletableFuture debrisFlowFuture = CompletableFuture.runAsync(() -> { + redisTemplate.opsForValue().set(debrisFlowKey, JSON.toJSONString( XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.RAINSTORM.getType(), "debris_flow")) + xianHiddenDangerSpotsMapper.getBasePoints("debris_flow")) ) ); - log.info("加载暴雨隐患点信息(泥石流)并写入redis完成"); + log.info("加载隐患点信息(泥石流)并写入redis完成"); }); - // 暴雨类隐患点 - 山洪 - CompletableFuture rainstormMountainFloodFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(rainstormMountainFloodKey, JSON.toJSONString( + // 隐患点 - 山洪 + CompletableFuture flashFloodFuture = CompletableFuture.runAsync(() -> { + redisTemplate.opsForValue().set(flashFloodKey, JSON.toJSONString( XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.RAINSTORM.getType(), "flash_flood")) + xianHiddenDangerSpotsMapper.getBasePoints("flash_flood")) ) ); - log.info("加载暴雨隐患点信息(山洪)并写入redis完成"); + log.info("加载隐患点信息(山洪)并写入redis完成"); }); - // 暴雨类隐患点 - 内涝 - CompletableFuture rainstormWaterLoggingFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(rainstormWaterLoggingKey, JSON.toJSONString( + // 隐患点 - 内涝 + CompletableFuture waterLoggingFuture = CompletableFuture.runAsync(() -> { + redisTemplate.opsForValue().set(waterLoggingKey, JSON.toJSONString( XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.RAINSTORM.getType(), "water_logging")) + xianHiddenDangerSpotsMapper.getBasePoints("water_logging")) ) ); - log.info("加载暴雨隐患点信息(内涝)并写入redis完成"); - }); - - // 地震类隐患点 - 总体 - CompletableFuture earthquakeFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(earthquakeBasePointsKey, JSON.toJSONString( - XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.EARTHQUAKE.getType(), null)) - ) - ); - log.info("加载地震隐患点信息(总体)并写入redis完成"); - }); - - // 地震类隐患点 - 滑坡 - CompletableFuture earthquakeLandslideFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(earthquakeLandslideKey, JSON.toJSONString( - XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.EARTHQUAKE.getType(), "landslide")) - ) - ); - log.info("加载地震隐患点信息(滑坡)并写入redis完成"); - }); - - // 地震类隐患点 - 泥石流 - CompletableFuture earthquakeDebrisFlowFuture = CompletableFuture.runAsync(() -> { - redisTemplate.opsForValue().set(earthquakeDebrisFlowKey, JSON.toJSONString( - XianHiddenDangerSpotsBasePointVo.entity2Vo( - xianHiddenDangerSpotsMapper.getBasePoints(DisasterTypeEnum.EARTHQUAKE.getType(), "debris_flow")) - ) - ); - log.info("加载地震隐患点信息(泥石流)并写入redis完成"); + log.info("加载隐患点信息(内涝)并写入redis完成"); }); CompletableFuture riskFuture = CompletableFuture.runAsync(() -> { @@ -290,9 +250,8 @@ public class InitializeData { // 等待所有任务完成 CompletableFuture.allOf( - rainstormFuture, rainstormLandslideFuture, rainstormDebrisFlowFuture, - rainstormMountainFloodFuture, rainstormWaterLoggingFuture, - earthquakeFuture, earthquakeLandslideFuture, earthquakeDebrisFlowFuture, + allFuture, landslideFuture, debrisFlowFuture, + flashFloodFuture, waterLoggingFuture, riskFuture, hospitalsFuture, dangerousSourceFuture, emergencyShelterFuture, firefighterFuture, storePointsFuture, schoolFuture, bridgeFuture, reservoirFuture, subwayFuture diff --git a/src/main/resources/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.xml b/src/main/resources/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.xml index 2d202a6..b2f80e2 100644 --- a/src/main/resources/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.xml +++ b/src/main/resources/com/gis/xian/mapper/XianHiddenDangerSpotsMapper.xml @@ -30,12 +30,7 @@ SELECT id, disaster_name, lon, lat, disaster_type FROM xian_hidden_danger_spots is_delete = 0 - - AND disaster_type IN('滑坡', '泥石流', '山洪', '内涝') - - - AND disaster_type IN('滑坡', '泥石流') - + AND disaster_type IN('滑坡', '泥石流', '山洪', '内涝') diff --git a/src/main/resources/config/redis/redis-key.yml b/src/main/resources/config/redis/redis-key.yml index c8c04a4..da1ac91 100644 --- a/src/main/resources/config/redis/redis-key.yml +++ b/src/main/resources/config/redis/redis-key.yml @@ -11,14 +11,11 @@ init: # 基础信息点数据:滑坡、泥石流、山洪、内涝 base-points: hidden-danger: - rainstorm: 'xian:init:data:base-points:hidden-danger:rainstorm' - rainstorm-landslide: 'xian:init:data:base-points:hidden-danger:rainstorm:landslide' - rainstorm-debris-flow: 'xian:init:data:base-points:hidden-danger:rainstorm:debris_flow' - rainstorm-flash-flood: 'xian:init:data:base-points:hidden-danger:rainstorm:flash_flood' - rainstorm-water-logging: 'xian:init:data:base-points:hidden-danger:rainstorm:water_logging' - earthquake: 'xian:init:data:base-points:hidden-danger:earthquake' - earthquake-landslide: 'xian:init:data:base-points:hidden-danger:earthquake:landslide' - earthquake-debris-flow: 'xian:init:data:base-points:hidden-danger:earthquake:debris_flow' + all: 'xian:init:data:base-points:hidden-danger:all' + landslide: 'xian:init:data:base-points:hidden-danger:landslide' + debris-flow: 'xian:init:data:base-points:hidden-danger:debris_flow' + flash-flood: 'xian:init:data:base-points:hidden-danger:flash_flood' + water-logging: 'xian:init:data:base-points:hidden-danger:water_logging' risk: 'xian:init:data:base-points:risk' hospitals: 'xian:init:data:base-points:hospitals' dangerous-source: 'xian:init:data:base-points:dangerous-source'