diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StakeMarkUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StakeMarkUtils.java
index 6c61fa9a..4a42e0a3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StakeMarkUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StakeMarkUtils.java
@@ -2,15 +2,33 @@ package com.ruoyi.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.regex.Pattern;
/**
- * @Description 桩号计算工具
+ * @Description 桩号工具
*
* @author liuwenge
* @date 2024/1/17 14:43
*/
public class StakeMarkUtils {
+ /**
+ * @Description 桩号格式校验
+ *
+ * 正确格式: K060+010
+ * @author liuwenge
+ * @date 2024/3/22 20:05
+ * @param stakeMark
+ * @return boolean
+ */
+ public static boolean checkStakeMark(String stakeMark){
+ if (StringUtils.isEmpty(stakeMark)){
+ return false;
+ }
+ Pattern pattern = Pattern.compile("^K\\d{3}\\+\\d{3}$");
+ return pattern.matcher(stakeMark).matches();
+ }
+
/**
* @Description 桩号转公里数
*
@@ -20,12 +38,13 @@ public class StakeMarkUtils {
* @return 公里数:123.123
*/
public static String formatKilometre(String stakeMark){
- if (StringUtils.isEmpty(stakeMark)){
+ if (!checkStakeMark(stakeMark)){
return "";
}
- return stakeMark.toLowerCase().replace("k","").replace("+",".");
+ return stakeMark.replace("K","").replace("+",".");
}
+
/**
* @Description 桩号转米
*
@@ -34,11 +53,18 @@ public class StakeMarkUtils {
* @param stakeMark 桩号:"K123+123"
* @return 公里数:123123
*/
+ public static Long formatMetreLong(String stakeMark){
+ if (!checkStakeMark(stakeMark)){
+ return null;
+ }
+ return Long.valueOf(stakeMark.replace("K","").replace("+",""));
+ }
+
public static String formatMetre(String stakeMark){
- if (StringUtils.isEmpty(stakeMark)){
+ if (!checkStakeMark(stakeMark)){
return "";
}
- return stakeMark.toLowerCase().replace("k","").replace("+","");
+ return stakeMark.replace("K","").replace("+","");
}
/**
@@ -51,11 +77,11 @@ public class StakeMarkUtils {
* @return java.math.BigDecimal 距离
*/
public static BigDecimal getKilometre(String startStakeMark, String endStakeMark){
- if (StringUtils.isEmpty(startStakeMark) || StringUtils.isEmpty(endStakeMark)){
+ if (!checkStakeMark(startStakeMark) || !checkStakeMark(endStakeMark)){
return BigDecimal.ZERO;
}
- String start = startStakeMark.toLowerCase().replace("k","").replace("+",".");
- String end = endStakeMark.toLowerCase().replace("k","").replace("+",".");
+ String start = startStakeMark.replace("K","").replace("+",".");
+ String end = endStakeMark.replace("K","").replace("+",".");
BigDecimal startKilometre = new BigDecimal(start);
BigDecimal endKilometre = new BigDecimal(end);
if (startKilometre.compareTo(endKilometre) > 0){
@@ -75,11 +101,11 @@ public class StakeMarkUtils {
* @return java.math.BigDecimal 距离
*/
public static BigDecimal getMetre(String startStakeMark, String endStakeMark){
- if (StringUtils.isEmpty(startStakeMark) || StringUtils.isEmpty(endStakeMark)){
+ if (!checkStakeMark(startStakeMark) || !checkStakeMark(endStakeMark)){
return BigDecimal.ZERO;
}
- String start = startStakeMark.toLowerCase().replace("k","").replace("+",".");
- String end = endStakeMark.toLowerCase().replace("k","").replace("+",".");
+ String start = startStakeMark.replace("K","").replace("+",".");
+ String end = endStakeMark.replace("K","").replace("+",".");
BigDecimal startKilometre = new BigDecimal(start);
BigDecimal endKilometre = new BigDecimal(end);
if (startKilometre.compareTo(endKilometre) > 0){
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 9d288e65..046648e7 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -69,7 +69,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public boolean matches(HttpServletRequest request) {
// 获取请求的IP
- String requestIP = request.getRemoteAddr();
+ String requestIP = request.getHeader("X-Forwarded-For");
// 将配置文件中的IP字符串分割为数组
String[] ips = allowedIPs.split(",");
// 检查请求的IP是否在允许的IP数组中
diff --git a/zc-business/pom.xml b/zc-business/pom.xml
index c0017e0b..6b870a73 100644
--- a/zc-business/pom.xml
+++ b/zc-business/pom.xml
@@ -47,6 +47,31 @@
com.ruoyi
ruoyi-system
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.1.2
+
+
+ org.apache.poi
+ poi-ooxml-schemas
+ 4.1.2
+
+
+ org.apache.poi
+ poi
+ 4.1.2
+
+
+
+
+ com.deepoove
+ poi-tl
+ 1.9.1
+
+
com.zc
1.0.0
diff --git a/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java b/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java
index 1163548e..d6b84c89 100644
--- a/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java
+++ b/zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java
@@ -126,6 +126,15 @@ public class DcEmergencyPlansController extends BaseController {
return AjaxResult.success(dcEmergencyPlansService.executionEventConfirmation(dcEventAnDcEmergencyPlans));
}
+ /**
+ * 根据事件id-查询预案事件关联表
+ */
+ @ApiOperation("根据事件id-查询预案事件关联表")
+ @GetMapping("/event/assoc/{id}")
+ public AjaxResult eventConfirm(@PathVariable("id") String id) {
+ return AjaxResult.success(dcEmergencyPlansService.selectEventPlanAssocByEventId(id));
+ }
+
/**
* 感知事件确定
*/
diff --git a/zc-business/src/main/java/com/zc/business/controller/DcEventController.java b/zc-business/src/main/java/com/zc/business/controller/DcEventController.java
index 028532e5..f7dcbe6d 100644
--- a/zc-business/src/main/java/com/zc/business/controller/DcEventController.java
+++ b/zc-business/src/main/java/com/zc/business/controller/DcEventController.java
@@ -162,4 +162,6 @@ public class DcEventController extends BaseController
Map map = dcEventService.selectCount();
return map;
}
+
+
}
diff --git a/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java b/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java
new file mode 100644
index 00000000..7fcfdea9
--- /dev/null
+++ b/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java
@@ -0,0 +1,42 @@
+package com.zc.business.controller;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.zc.business.domain.DcEvent;
+import com.zc.business.domain.DcMeteorologicalDetectorData;
+import com.zc.business.service.IDcEventService;
+import com.zc.business.service.IDcMeteorologicalDetectorDataService;
+import com.zc.business.service.impl.DcMeteorologicalDetectorDataServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ */
+@Api(tags = "气象设备")
+@RestController
+@RequestMapping("/dc/system/meteorologicalDetector")
+public class DcMeteorologicalDetectorController extends BaseController {
+ @Autowired
+ private IDcMeteorologicalDetectorDataService dcMeteorologicalDetectorDataService;
+
+ @ApiOperation("统计气象设备信息列表")
+ @GetMapping("/{deviceName}")
+ public TableDataInfo list(@PathVariable("deviceName") String deviceName)
+ {
+ List