From 0e6106783b59c2c4e173ad4b709c1415686e7505 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期一, 14 七月 2025 15:02:22 +0800
Subject: [PATCH] 停止实时模拟时更新停止时间

---
 src/main/resources/mapper/SimuMapper.xml                             |    3 ++-
 src/main/java/com/se/nsl/service/RealTimeSimulationAsyncService.java |   25 +++++++++++++++++--------
 2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/se/nsl/service/RealTimeSimulationAsyncService.java b/src/main/java/com/se/nsl/service/RealTimeSimulationAsyncService.java
index 025e141..31d2a9b 100644
--- a/src/main/java/com/se/nsl/service/RealTimeSimulationAsyncService.java
+++ b/src/main/java/com/se/nsl/service/RealTimeSimulationAsyncService.java
@@ -19,12 +19,15 @@
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.ResourceAccessException;
 
 import javax.annotation.Resource;
 import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
+import java.sql.Timestamp;
+import java.time.Instant;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -58,7 +61,7 @@
     // 瀛樺偍浠诲姟鎵ц鐘舵��
     private final Map<Integer, TaskStatus> taskStatusMap = new ConcurrentHashMap<>();
     // 瀛樺偍浠诲姟鎵ц鐨凢uture瀵硅薄锛岀敤浜庡彇娑堜换鍔�
-    private final Map<String, Future<?>> taskFutureMap = new ConcurrentHashMap<>();
+//    private final Map<String, Future<?>> taskFutureMap = new ConcurrentHashMap<>();
 
     @Async("realTimeExecutor")
     public void startSimulation(Simu simu) throws IOException {
@@ -111,6 +114,8 @@
     //鏇存柊妯℃嫙浠诲姟鐨勮繍琛岀姸鎬佸埌鏁版嵁搴�
     private void updateTaskStatus(Simu simu, String result) {
         simu.setResult(result);
+        Timestamp now = Timestamp.from(Instant.now());
+        simu.setUpdateTime(now);
         simuMapper.updateResult(simu);
     }
 
@@ -313,7 +318,7 @@
 
     //灏嗛洦閲忚涓┖鍊硷紙intensity涓�-1锛夌殑閮ㄥ垎濉厖鍊�
     private void fillEmptyValue(List<RainRecord> rainRecords) {
-        double[] rainValues = rainRecords.stream().mapToDouble(r -> r.getIntensity()).toArray();
+        double[] rainValues = rainRecords.stream().mapToDouble(RainRecord::getIntensity).toArray();
         double[] forwardValues = forwardFill(rainValues);
         double[] backwordValues = backwordFill(rainValues);
         for (int i = 0; i < rainRecords.size(); i++) {
@@ -386,12 +391,16 @@
         input.setFilterObject(filterObject);
         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);
-        JsonNode pageData = jsonNode.get("data").get("pageData");
-        if (!pageData.isEmpty()) {
-            return pageData.get(0).get("value").asDouble();
+        try {
+            ResponseEntity<String> post = HttpRequestUtil.post(url, input, String.class, token);
+            String body = post.getBody();
+            JsonNode jsonNode = mapper.readTree(body);
+            JsonNode pageData = jsonNode.get("data").get("pageData");
+            if (!pageData.isEmpty()) {
+                return pageData.get(0).get("value").asDouble();
+            }
+        } catch (ResourceAccessException e) {
+            log.error("鏃犳硶鑾峰彇鍒伴洦閲忕珯鏁版嵁:", e);
         }
         return -1D;
     }
diff --git a/src/main/resources/mapper/SimuMapper.xml b/src/main/resources/mapper/SimuMapper.xml
index d86d159..75355d4 100644
--- a/src/main/resources/mapper/SimuMapper.xml
+++ b/src/main/resources/mapper/SimuMapper.xml
@@ -85,6 +85,7 @@
     </update>
 
     <update id="updateResult" parameterType="com.se.nsl.domain.po.Simu">
-        update nsl.tbl_yj_tr_simulate set result=#{result} where id = #{id}
+        update nsl.tbl_yj_tr_simulate set result=#{result},update_time=#{updateTime}
+        where id = #{id}
     </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3