From 54b4f53323d0833cbac86fd18932c5fa5a5447a8 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 17 二月 2025 14:19:17 +0800
Subject: [PATCH] #移库任务
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java | 65 ++++++++++++++++++++++++++++++--
1 files changed, 61 insertions(+), 4 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 802c98d..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,14 +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;
@@ -24,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杞村潗鏍�
@@ -289,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);
@@ -302,7 +357,9 @@
// System.out.println(currentPathAllDistance);
// System.out.println(list);
// }
-//
-// }
+
+ System.loadLibrary("example");
+
+ }
}
--
Gitblit v1.9.1