From 207b034b9ea240ec12530b696374c4dbd63f7c1f Mon Sep 17 00:00:00 2001 From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com> Date: 星期四, 20 二月 2025 14:04:52 +0800 Subject: [PATCH] [add]服务发布 --- src/main/java/com/se/simu/controller/SimuController.java | 58 ++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/se/simu/controller/SimuController.java b/src/main/java/com/se/simu/controller/SimuController.java index 0c4bcad..5d6c83c 100644 --- a/src/main/java/com/se/simu/controller/SimuController.java +++ b/src/main/java/com/se/simu/controller/SimuController.java @@ -15,6 +15,7 @@ import com.se.simu.service.*; import com.se.simu.utils.*; import io.swagger.annotations.*; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; @@ -33,6 +34,8 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; @Api(tags = "浠跨湡绠$悊") @@ -313,11 +316,11 @@ return fail("妯℃嫙璁$畻璁$畻鍧愭爣锛�", false); } double aveTotal = BigDecimal.valueOf(vo.getTotal()).divide(BigDecimal.valueOf(vo.getDuration()), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); - JSONArray jsonArray=new JSONArray(); - LocalDateTime now=LocalDateTime.now(); + JSONArray jsonArray = new JSONArray(); + LocalDateTime now = LocalDateTime.now(); DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm"); - for (int i=0;i<vo.getDuration();i++){ - JSONObject jsonObject=new JSONObject(); + for (int i = 0; i < vo.getDuration(); i++) { + JSONObject jsonObject = new JSONObject(); jsonObject.put("stationName", vo.getStation()); jsonObject.put("rainfall", aveTotal); jsonObject.put("longitude", vo.getStationLongitude()); @@ -377,7 +380,22 @@ dtos.add(new GridDto(vo.getMaxy(), vo.getMinx())); dtos.add(new GridDto(vo.getMaxy(), vo.getMaxx())); dtos.add(new GridDto(vo.getMiny(), vo.getMaxx())); - createSem(tableName, dtos, vo); + String bbox = ""; + //鐢熸垚鐐瑰拰绾跨殑瀹炰綋搴撴ā鍨嬪苟淇濆瓨璺緞 + String name = vo.getSemUrl(); + String token = EntityLibraryUtils.login(); + vo.setPointName(name + "-point"); + vo.setLinkName(name + "-line"); + JSONArray min = ProjectionToGeographicUtil.get4548Point(dtos.get(0).getLon(), dtos.get(0).getLat()); + JSONArray max = ProjectionToGeographicUtil.get4548Point(dtos.get(2).getLon(), dtos.get(2).getLat()); + bbox = bbox + min.getDouble(0) + "," + min.getDouble(1) + "," + max.getDouble(0) + "," + max.getDouble(1); + JSONObject point = getModule("layerQueryPointParams.json"); + String pointUrl = assemble(vo.getPointName(), point.getString("layerid"), bbox, token); + vo.setPointName(pointUrl); + JSONObject link = getModule("layerQueryParams.json"); + String linkUrl = assemble(vo.getLinkName(), link.getString("layerid"), bbox, token); + vo.setLinkName(linkUrl); + asyncCall(tableName, dtos, vo, token); // 寮�濮嬫ā鎷熻绠� boolean flag = simuFilesService.createByfiles(vo); return success(flag, flag ? "鎴愬姛" : "澶辫触"); @@ -408,8 +426,19 @@ return success(null); } - public R<Boolean> createSem(String tableName, List<GridDto> dtos, CreateFilesSimuVo vo) throws Exception { - String name = vo.getSemUrl(); + private void asyncCall(String tableName, List<GridDto> dtos, CreateFilesSimuVo vo, String token) { + ExecutorService executor = Executors.newSingleThreadExecutor(); + executor.execute(new Runnable() { + @Override + @SneakyThrows + public void run() { + createSem(tableName, dtos, vo, token); + } + }); + executor.shutdown(); + } + + public void createSem(String tableName, List<GridDto> dtos, CreateFilesSimuVo vo, String token) throws Exception { vo.setSemUrl(inPath + "\\" + vo.getSemUrl()); boolean ends = vo.getSemUrl().endsWith("\\"); if (!ends) { @@ -419,7 +448,6 @@ if (!file.exists()) { file.mkdirs(); } - String token = EntityLibraryUtils.login(); //闄嶉洦鏂囦欢鐢熸垚 saveZarr(tableName, vo.getSemUrl()); //绠$偣鐢熸垚 @@ -434,20 +462,6 @@ landuseToSem(vo.getSemUrl()); //鍦板舰鐢熸垚 terrainToSem(dtos, vo.getSemUrl()); - String bbox = ""; - //鐢熸垚鐐瑰拰绾跨殑瀹炰綋搴撴ā鍨嬪苟淇濆瓨璺緞 - vo.setPointName(name + "-point"); - vo.setLinkName(name + "-line"); - JSONArray min = ProjectionToGeographicUtil.get4548Point(dtos.get(0).getLon(), dtos.get(0).getLat()); - JSONArray max = ProjectionToGeographicUtil.get4548Point(dtos.get(2).getLon(), dtos.get(2).getLat()); - bbox = bbox + min.getDouble(0) + "," + min.getDouble(1) + "," + max.getDouble(0) + "," + max.getDouble(1); - JSONObject point = getModule("layerQueryPointParams.json"); - String pointUrl = assemble(vo.getPointName(), point.getString("layerid"), bbox, token); - vo.setPointName(pointUrl); - JSONObject link = getModule("layerQueryParams.json"); - String linkUrl = assemble(vo.getLinkName(), link.getString("layerid"), bbox, token); - vo.setLinkName(linkUrl); - return success(true); } -- Gitblit v1.9.3