From 97629da6a002b534da10f828187fd6cd65941aa4 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期一, 07 七月 2025 17:14:13 +0800
Subject: [PATCH] 模拟间隔支持毫秒级

---
 src/main/java/com/se/nsl/service/RealTimeSimulationService.java |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
index 9c1622b..308b480 100644
--- a/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
+++ b/src/main/java/com/se/nsl/service/RealTimeSimulationService.java
@@ -50,7 +50,7 @@
     private RealTimeSimulationConfig rtsConfig;
     private static final long MILLIS_OF_ONE_DAY = 86400000;
 
-    public String realTimeSimulate(Simu simu) throws IOException {
+    public String startSimulation(Simu simu) throws IOException {
         InputStream stream = RealTimeSimulationService.class.getResourceAsStream("/device_info.json");
         List<DeviceInfo> deviceInfos = mapper.readValue(stream,
                 mapper.getTypeFactory().constructCollectionType(List.class, DeviceInfo.class));
@@ -181,18 +181,19 @@
         String serviceNameDirPath = serviceNameDir.getAbsolutePath();
         configVo.setTerrain(serviceNameDirPath + File.separator + DEM_TIF);
         configVo.setLanduse(serviceNameDirPath + File.separator + "Landuse.tif");
+        configVo.setEvaporation(config.getEvaporation());
         File stationFile = new File(serviceNameDir, "Station.tif");
         if (stationFile.exists()) {
             configVo.setStation(stationFile.getAbsolutePath());
         }
         int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s
-        int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂�
+        Double realTimeInterval = rtsConfig.getFrameInterval(); //姣忓抚鐨勯棿闅旀椂闂�
         List<String> rainGauge = new ArrayList<>();
         rainGauge.add(newDatFile.getAbsolutePath());//raingage file
         rainGauge.add("mm/min");
         configVo.setRaingage(rainGauge);
         String saveName = serviceNameDir + File.separator + RESULT_ZARR;
-        ResultVo result = new ResultVo(saveName, realTimeSimulateTime / realTimeInterval,
+        ResultVo result = new ResultVo(saveName, (int) (realTimeSimulateTime / realTimeInterval),
                 realTimeInterval,"continue", null);
         result.setSave_interval(realTimeInterval);
         result.setSave_timestamp0(TimeFormatUtil.formatTime(currentTime, YYYY_MM_DD_HH_MM_SS));
@@ -211,7 +212,7 @@
             configVo.setStation(stationFile.getAbsolutePath());
         }
         int realTimeSimulateTime = 300; //妯℃嫙鏃堕棿锛岄粯璁や负5min锛屽嵆300s
-        int realTimeInterval = rtsConfig.getRealTimeInterval(); //姣忓抚鐨勯棿闅旀椂闂�
+        Double realTimeInterval = rtsConfig.getFrameInterval(); //姣忓抚鐨勯棿闅旀椂闂�
         configVo.getRaingage().set(0, newDatFile.getAbsolutePath()); //raingage file
         ResultVo result = configVo.getResult();
         Integer lastFrames = result.getLastFrames();
@@ -219,10 +220,10 @@
             lastFrames = 0;
         }
         Integer saveStart = result.getSave_start();
-        Integer saveInterval = result.getSave_interval();
+        Double saveInterval = result.getSave_interval();
         Integer saveFrames = result.getSave_frames();
-        int newStartPoint = saveStart + (saveFrames - lastFrames) * saveInterval;
-        int newSaveFrames = saveFrames + (realTimeSimulateTime / realTimeInterval);
+        int newStartPoint = (int) (saveStart + (saveFrames - lastFrames) * saveInterval);
+        int newSaveFrames = (int) (saveFrames + (realTimeSimulateTime / realTimeInterval));
         result.setSave_start(newStartPoint); //璧峰鏃堕棿瑕佸湪涓婃鏃堕棿鐨勫熀纭�涓婂紑濮�
         result.setLastFrames(saveFrames);
         result.setSave_frames(newSaveFrames); //淇濈暀5甯э紝鍦ㄥ師鏉ョ殑鍩虹涓婂鍔�5甯�

--
Gitblit v1.9.3