From 084d07a8dfbde06f3b96557e446bfdd098f65aba Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 08 十月 2024 16:15:17 +0800
Subject: [PATCH] 1

---
 src/main/java/com/se/simu/service/ResultService.java |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/se/simu/service/ResultService.java b/src/main/java/com/se/simu/service/ResultService.java
index 00aa1cd..b25c680 100644
--- a/src/main/java/com/se/simu/service/ResultService.java
+++ b/src/main/java/com/se/simu/service/ResultService.java
@@ -249,7 +249,6 @@
     }
 
     private static List<String> getFiles(String path, String suffix) {
-
         List<String> files = new ArrayList<>();
         getFiles(files, new File(path), suffix);
 
@@ -280,11 +279,13 @@
     private static void setWaterData(LayerDto layer, List<String> files) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());
+        calendar.set(Calendar.MILLISECOND, 0);
+
         for (String file : files) {
-            String fileName = new File(file).getName();
+            String fileName = getNameWithExt(file);
             int hour = Integer.parseInt(fileName.substring(0, 2));
-            int minute = Integer.parseInt(fileName.substring(2, 2));
-            int second = Integer.parseInt(fileName.substring(4, 2));
+            int minute = Integer.parseInt(fileName.substring(2, 4));
+            int second = Integer.parseInt(fileName.substring(4, 6));
 
             calendar.set(Calendar.HOUR_OF_DAY, hour);
             calendar.set(Calendar.MINUTE, minute);
@@ -297,10 +298,10 @@
     }
 
     private static void setWaterHeight(LayerDto layer, List<String> files) {
-        for (int i = 0, c = files.size(); i < c; i++) {
+        files.parallelStream().forEach(file->{
             Dataset ds = null;
             try {
-                ds = gdal.Open(files.get(i), gdalconst.GA_ReadOnly);
+                ds = gdal.Open(file, gdalconst.GA_ReadOnly);
                 if (null == ds || 0 == ds.getRasterCount() || null == ds.GetSpatialRef()) return;
 
                 double[] mm = new double[2];
@@ -309,7 +310,7 @@
             } finally {
                 if (null != ds) ds.delete();
             }
-        }
+        });
         layer.getExtension().setMinHeight(getMinVal(layer.getExtension().getMinHeight() - 1, 1000));
         layer.getExtension().setMaxHeight(getMaxVal(layer.getExtension().getMaxHeight() + 1, 1000));
     }
@@ -345,7 +346,7 @@
     }
 
     private static String getNameWithExt(String file) {
-        return file.substring(file.lastIndexOf(File.separator), file.lastIndexOf("."));
+        return file.substring(file.lastIndexOf(File.separator) + 1, file.lastIndexOf("."));
     }
 
     private static void water2Png(ResultDto dto, LayerDto layer, String tif, String png, int width, int height) {
@@ -502,6 +503,9 @@
         return val;
     }
 
+    /**
+     * 鍏冩暟鎹�
+     */
     private void copeLayerJson(ResultDto dto, LayerDto layer) throws IOException {
         String json = JSONUtil.toJsonPrettyStr(layer);
         String filePath = dto.getOutPath() + File.separator + "layer.json";

--
Gitblit v1.9.3