From 1182099a7f14bb7759bb11ca7c8171428ca1b82d Mon Sep 17 00:00:00 2001
From: wuww <252740454@qq.com>
Date: 星期四, 01 五月 2025 17:17:55 +0800
Subject: [PATCH] 添加Resolve类

---
 src/main/java/com/se/nsl/service/ResolveService.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 data/init.sql                                        |    3 +
 2 files changed, 93 insertions(+), 1 deletions(-)

diff --git a/data/init.sql b/data/init.sql
index 445be84..a7dbb76 100644
--- a/data/init.sql
+++ b/data/init.sql
@@ -45,7 +45,8 @@
 
 -- insert into nsl.simu (name, service_name, type, area_type, area_name, status, geom) values ('棰勬祴妯℃嫙-0416', '20250416100000', 1, 1, '澶у叴鍖�', 0, ST_GeomFromText('MULTIPOLYGON(((116.666748 39.639859,116.659403 39.626287,116.665956 39.654698,116.666748 39.639859)))'));
 
-select *, st_astext(geom) geom from nsl.simu;
+select id, name, service_name, type, area_type, area_name, status, result, create_time, create_user, update_time, update_user, bak, data, st_astext(geom) geom from nsl.simu order by id desc;
+-- update nsl.simu set status = 0, area_name = '鎴垮北鍖�' where id = 24;
 ---------------------------------------------- 2.鎺ㄦ紨鍖哄煙
 -- drop table if exists nsl.region;
 create table nsl.region (
diff --git a/src/main/java/com/se/nsl/service/ResolveService.java b/src/main/java/com/se/nsl/service/ResolveService.java
new file mode 100644
index 0000000..8ad7b98
--- /dev/null
+++ b/src/main/java/com/se/nsl/service/ResolveService.java
@@ -0,0 +1,91 @@
+package com.se.nsl.service;
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.se.nsl.config.PropertiesConfig;
+import com.se.nsl.domain.po.DataPo;
+import com.se.nsl.domain.po.Simu;
+import com.se.nsl.domain.po.SimuData;
+import com.se.nsl.helper.StringHelper;
+import com.se.nsl.helper.WebHelper;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@Slf4j
+@Service
+@SuppressWarnings("ALL")
+public class ResolveService {
+    @Resource
+    SimuService simuService;
+
+    @Resource
+    PropertiesConfig config;
+
+    public int start(Simu simu) {
+        Date now = new Date();
+        String date = StringHelper.YMDHMS2_FORMAT.format(now);
+
+        SimuData data = JSON.parseObject(simu.getData(), SimuData.class);
+        data.setInPath(date);
+        data.setOutPath(date);
+        data.setEpsg(4548);
+
+        simu.setServiceName(date);
+        simu.setStatus(1); // 0-鍒涘缓浠跨湡锛�1-棰勫鐞嗭紝2-鍒嗘瀽涓紝10-瀹屾垚锛�20-鍑洪敊
+        simu.setUpdateTime(new Timestamp(now.getTime()));
+
+        int rows = simuService.updateById(simu);
+        if (rows > 0) {
+            asyncCall(simu);
+        }
+
+        return rows;
+    }
+
+    private void asyncCall(Simu simu) {
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+        executor.execute(new Runnable() {
+            @Override
+            @SneakyThrows
+            public void run() {
+                cope(simu);
+            }
+        });
+        executor.shutdown();
+    }
+
+    private void cope(Simu simu) {
+        try {
+            DataPo data = JSONUtil.toBean(simu.getData(), DataPo.class);
+
+            //update(simu, 2, null);
+            //gedbService.copeVectors(token, data, db);
+
+            //update(simu, 3, null);
+            //gedbService.copeDem(token, data);
+
+            //update(simu, 4, null);
+            //uwService.createRainFile(data);
+
+            update(simu, 10, "瀹屾垚");
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            update(simu, 20, ex.getMessage());
+        }
+    }
+
+    private void update(Simu simu, int status, String rs) {
+        simu.setStatus(status);
+        if (null != rs) simu.setResult(rs);
+        simu.setUpdateTime(WebHelper.getCurrentTimestamp());
+
+        simuService.updateById(simu);
+    }
+}

--
Gitblit v1.9.3