From 200a5b4d08215c44fd3fb2d010191e7dedb5e4c5 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 17 二月 2025 14:51:28 +0800
Subject: [PATCH] #移库任务

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java |   68 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
index 1cea3d1..1013656 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
@@ -5,13 +5,16 @@
 import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.wcs.core.model.MapNode;
 import com.zy.asrs.wcs.core.model.NavigateNode;
+import com.zy.asrs.wcs.core.model.PythonSimilarityResult;
 import com.zy.asrs.wcs.core.model.enums.MapNodeType;
 import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
+import com.zy.asrs.wcs.rcs.News;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
@@ -23,6 +26,9 @@
 
     @Value("${pythonCalcPath}")
     private String pythonCalcPath;
+
+    @Value("${pythonCalcSimilarity}")
+    private String pythonCalcSimilarity;
 
     public List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints) {
         //閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍�
@@ -46,7 +52,7 @@
 
         String pathStr = solution.astarSearch(start, end, pythonCalcPath);
         if (pathStr == null) {
-            System.err.println("鏈壘鍒拌矾寰�");
+            News.error("{} dash {} can't find navigate path!", startPoint, endPoint);
             return null;
         }
 
@@ -288,7 +294,57 @@
         return node;
     }
 
-//    public static void main(String[] args) {
+    public Double similarityPath(List<NavigateNode> firstPath, List<NavigateNode> secondPath) {
+        try {
+            List<int[]> first = new ArrayList<>();
+            for (NavigateNode node : firstPath) {
+                first.add(new int[]{node.getX(), node.getY()});
+            }
+
+            List<int[]> second = new ArrayList<>();
+            for (NavigateNode node : secondPath) {
+                second.add(new int[]{node.getX(), node.getY()});
+            }
+
+            ProcessBuilder processBuilder = new ProcessBuilder("python", pythonCalcSimilarity, JSON.toJSONString(first), JSON.toJSONString(second));
+            processBuilder.redirectErrorStream(true);
+
+            Process process = processBuilder.start();
+
+            // 璇诲彇Python鑴氭湰鐨勮緭鍑�
+            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+            String line;
+            StringBuilder builder = new StringBuilder();
+            while ((line = reader.readLine()) != null) {
+                builder.append(line);
+            }
+
+            // 绛夊緟Python鑴氭湰鎵ц瀹屾垚
+            int exitCode = process.waitFor();
+            if (exitCode != 0) {
+                System.out.println("Python script exited with error code: " + exitCode);
+                return null;
+            }
+            reader.close();
+
+            if (builder.length() <= 0) {
+                return null;
+            }
+
+            PythonSimilarityResult result = JSON.parseObject(builder.toString(), PythonSimilarityResult.class);
+            if (result.getCalcResult() != 200) {
+                return 0D;
+            }
+
+            Double similarity = result.getSimilarity();
+            return similarity;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0D;
+    }
+
+    public static void main(String[] args) {
 //        //璁$畻璺緞
 //        List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null);
 //        System.out.println(calc);
@@ -301,7 +357,9 @@
 //            System.out.println(currentPathAllDistance);
 //            System.out.println(list);
 //        }
-//
-//    }
+
+        System.loadLibrary("example");
+
+    }
 
 }

--
Gitblit v1.9.1