From a2ee6e0dcdcfd9d1b8011a3cecb4e0fc4f6eeea3 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期五, 06 六月 2025 18:10:32 +0800
Subject: [PATCH] 实时模拟功能实现

---
 src/main/java/com/se/nsl/controller/SimuController.java |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/se/nsl/controller/SimuController.java b/src/main/java/com/se/nsl/controller/SimuController.java
index 0aa1c78..8477d8b 100644
--- a/src/main/java/com/se/nsl/controller/SimuController.java
+++ b/src/main/java/com/se/nsl/controller/SimuController.java
@@ -6,11 +6,14 @@
 import com.se.nsl.domain.po.Simu;
 import com.se.nsl.domain.po.SimuData;
 import com.se.nsl.domain.vo.R;
+import com.se.nsl.domain.vo.RealTimeInput;
 import com.se.nsl.domain.vo.SimuResult;
 import com.se.nsl.domain.vo.SimuVo;
 import com.se.nsl.service.ResolveService;
 import com.se.nsl.service.SimuService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.gdal.ogr.Geometry;
@@ -19,6 +22,10 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
 import java.util.List;
 
 @Api(tags = "03锛嶆帹婕旀ā鎷�")
@@ -183,4 +190,37 @@
         }
         return success(result);
     }
+
+    @ApiOperation(value = "realTime")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "date1", value = "5鍒嗛挓鍓嶇殑鏃堕棿锛屾牸寮忎负2025-05-31 14:15:20"),
+            @ApiImplicitParam(name = "rainfall1", value = "5鍒嗛挓鍓嶇殑闄嶉洦寮哄害"),
+            @ApiImplicitParam(name = "date2", value = "褰撳墠鏃堕棿锛屾牸寮忎负2025-05-31 14:20:20"),
+            @ApiImplicitParam(name = "rainfall2", value = "褰撳墠鐨勯檷闆ㄥ己搴�"),
+            @ApiImplicitParam(name = "serviceName", value = "鏈嶅姟鍚�")
+    })
+    @GetMapping("/realTime")
+    public R<Object> realTimeSimulate(String date1, double rainfall1,
+                                      String date2, double rainfall2, String serviceName) {
+        RealTimeInput input = new RealTimeInput();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime t1 = LocalDateTime.parse(date1, formatter);
+        LocalDateTime t2 = LocalDateTime.parse(date2, formatter);
+        RealTimeInput.RealTimeData d1 = new RealTimeInput.RealTimeData();
+        d1.setDateTime(t1);
+        d1.setIntensity(rainfall1);
+        RealTimeInput.RealTimeData d2 = new RealTimeInput.RealTimeData();
+        d2.setDateTime(t2);
+        d2.setIntensity(rainfall2);
+        input.setData(Arrays.asList(d1, d2));
+        input.setServiceName(serviceName);
+
+        try {
+            String layerJsonName = resolveService.realTimeSimulate(input);
+            return success(layerJsonName);
+        } catch (IOException e) {
+            log.error("real-time simulate exception:", e);
+            return fail("瀹炴椂妯℃嫙寮傚父");
+        }
+    }
 }

--
Gitblit v1.9.3