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