From 024c9f73fce8ab5f94c3af0c237bcf102a547766 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期三, 25 六月 2025 17:09:11 +0800
Subject: [PATCH] 将实时模拟的帧数调整为可配置参数

---
 src/main/java/com/se/nsl/service/RealTimeSimulationService.java |   16 ++++++++--------
 src/main/java/com/se/nsl/config/RealTimeSimulationConfig.java   |   13 +++++++++++--
 src/main/resources/application-dev.yml                          |    3 ++-
 3 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/se/nsl/config/GaugeServer.java b/src/main/java/com/se/nsl/config/RealTimeSimulationConfig.java
similarity index 75%
rename from src/main/java/com/se/nsl/config/GaugeServer.java
rename to src/main/java/com/se/nsl/config/RealTimeSimulationConfig.java
index 1cb1fd4..f85f573 100644
--- a/src/main/java/com/se/nsl/config/GaugeServer.java
+++ b/src/main/java/com/se/nsl/config/RealTimeSimulationConfig.java
@@ -4,11 +4,12 @@
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConfigurationProperties(prefix = "gauge-server")
-public class GaugeServer {
+@ConfigurationProperties(prefix = "realtime-simulate-config")
+public class RealTimeSimulationConfig {
 
     private String url;
     private String token;
+    private int realTimeInterval;
     private int requestOffsetMinutes; //闆ㄩ噺璁¤姹傞棿闅旂殑鏃堕棿锛屼负浜嗕究浜庤幏鍙栦竴涓寖鍥村唴闆ㄩ噺鏁版嵁
     private double offsetDays;
 
@@ -28,6 +29,14 @@
         this.token = token;
     }
 
+    public int getRealTimeInterval() {
+        return realTimeInterval;
+    }
+
+    public void setRealTimeInterval(int realTimeInterval) {
+        this.realTimeInterval = realTimeInterval;
+    }
+
     public int getRequestOffsetMinutes() {
         return requestOffsetMinutes;
     }
diff --git a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
index c835224..404d4c3 100644
--- a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
+++ b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
@@ -3,7 +3,7 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.se.nsl.config.GaugeServer;
+import com.se.nsl.config.RealTimeSimulationConfig;
 import com.se.nsl.config.PropertiesConfig;
 import com.se.nsl.domain.dto.*;
 import com.se.nsl.domain.po.RainGauge;
@@ -47,7 +47,7 @@
 
     private final ObjectMapper mapper = new ObjectMapper();
     @Resource
-    private GaugeServer gaugeServer;
+    private RealTimeSimulationConfig rtsConfig;
     private static final long MILLIS_OF_ONE_DAY = 86400000;
 
     public String realTimeSimulate(Simu simu) throws IOException {
@@ -71,7 +71,7 @@
     }
 
     private long getCurrentTime() {
-        double offsetDays = gaugeServer.getOffsetDays();
+        double offsetDays = rtsConfig.getOffsetDays();
         long millis = (long) (offsetDays * MILLIS_OF_ONE_DAY);
         return System.currentTimeMillis() - millis;
     }
@@ -186,7 +186,7 @@
             configVo.setStation(stationFile.getAbsolutePath());
         }
         int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s
-        int realTimeInterval = 60; //姣忓抚鐨勯棿闅旀椂闂达紝榛樿涓�60s,60s鐢熸垚涓�甯�
+        int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂�
         List<String> rainGauge = new ArrayList<>();
         rainGauge.add(newDatFile.getAbsolutePath());//raingage file
         rainGauge.add("mm/min");
@@ -211,7 +211,7 @@
             configVo.setStation(stationFile.getAbsolutePath());
         }
         int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s
-        int realTimeInterval = 60; //姣忓抚鐨勯棿闅旀椂闂达紝榛樿涓�60s,60s鐢熸垚涓�甯�
+        int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂�
         configVo.getRaingage().set(0, newDatFile.getAbsolutePath()); //raingage file
         ResultVo result = configVo.getResult();
         Integer lastFrames = result.getLastFrames();
@@ -259,7 +259,7 @@
         int hour = dateTime.getHour();
         int minute = dateTime.getMinute();
         String id = gauge.getId();
-        long someMinutesAgo = currentTime - TimeUnit.MINUTES.toMillis(gaugeServer.getRequestOffsetMinutes());
+        long someMinutesAgo = currentTime - TimeUnit.MINUTES.toMillis(rtsConfig.getRequestOffsetMinutes());
         String startTime = TimeFormatUtil.formatTime(someMinutesAgo, YYYY_MM_DD_HH_MM_SS);
         String endTime = TimeFormatUtil.formatTime(currentTime, YYYY_MM_DD_HH_MM_SS);
         double intensity = getIntensityByDeviceId(id, startTime, endTime); //淇濈暀鎸囧畾浣嶆暟灏忔暟
@@ -276,8 +276,8 @@
         filterObject.setDeviceCode(deviceId);
         filterObject.setSendTimeList(Arrays.asList(startTime, endTime));
         input.setFilterObject(filterObject);
-        String url = gaugeServer.getUrl();
-        String token = gaugeServer.getToken();
+        String url = rtsConfig.getUrl();
+        String token = rtsConfig.getToken();
         ResponseEntity<String> post = HttpRequestUtil.post(url, input, String.class, token);
         String body = post.getBody();
         JsonNode jsonNode = mapper.readTree(body);
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index e2b3ccf..818ca20 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -170,9 +170,10 @@
   tifPath: D:\other\simu\uwsolver\5ca43c87cd8e48c5a9c5399a5da46dbc\tongzhou_raster_4548_1m_clip_river_fill.tif
   #tif涓殑楂樼▼鏂囦欢鍚嶈鍚湁dem锛屽湡鍦板埄鐢ㄨ鍚湁landuse锛岀珯鐐硅鍚湁station锛屼笉闄愬埗澶у皬鍐欙紝鏂囧瓧灏介噺鐢ㄨ嫳鏂囧瓧姣嶈〃杈�
   keyDitch: D:\other\simu\CudaUWSolver-2.2.1\KeyDitch
-gauge-server:
+realtime-simulate-config:
   url: http://192.168.56.106:9522/ylclyPacket/getData
   token: YjhhYjAwOWFhMjk1MTM1ZDA0NGU3ZWZlMDQzMzUzZDE1MGJmY2Q4ZWEyYjliNjQzZjcwMjhlNDY0ZjAxNWZjOTZmNzMwYmNmZDA2YmVmNTIzNjU0ZDgzODRjYTUxYTM1
+  realTimeInterval: 5
   #璇锋眰闆ㄩ噺璁℃暟鎹椂锛屾椂闂磋寖鍥寸浉宸灏戝垎閽�
   requestOffsetMinutes: 10
   #寰�鍓嶅亸绉诲灏戝ぉ锛屼负浜嗘柟渚垮疄鏃舵ā鎷熶互鍓嶇殑闄嶉洦鎯呭喌,璁剧疆涓�0琛ㄧず锛屼粠褰撳墠鏃堕棿寮�濮嬭绠�

--
Gitblit v1.9.3