From b50c51d556cb12061da963e17815a8ec416b6ad2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 23 十二月 2024 08:14:00 +0800
Subject: [PATCH] #

---
 /dev/null                                                                                    |   53 -------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java        |   13 +++
 zy-acs-framework/pom.xml                                                                     |    6 -
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java    |   69 +++++++++++++++++
 zy-acs-fake/pom.xml                                                                          |    1 
 zy-acs-eureka/pom.xml                                                                        |    1 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java                     |   21 +++++
 zy-acs-manager/pom.xml                                                                       |   14 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java |   25 ++++++
 pom.xml                                                                                      |    1 
 10 files changed, 136 insertions(+), 68 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2dd5177..e7d2831 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,6 @@
     </modules>
 
     <properties>
-        <java.version>1.8</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring-cloud.version>2020.0.5</spring-cloud.version>
diff --git a/zy-acs-eureka/pom.xml b/zy-acs-eureka/pom.xml
index eba4079..f72cd15 100644
--- a/zy-acs-eureka/pom.xml
+++ b/zy-acs-eureka/pom.xml
@@ -18,7 +18,6 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
     </properties>
 
     <dependencies>
diff --git a/zy-acs-fake/pom.xml b/zy-acs-fake/pom.xml
index be4e209..6826c81 100644
--- a/zy-acs-fake/pom.xml
+++ b/zy-acs-fake/pom.xml
@@ -18,7 +18,6 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
         <mysql-driver.version>5.1.47</mysql-driver.version>
     </properties>
 
diff --git a/zy-acs-framework/pom.xml b/zy-acs-framework/pom.xml
index ddd1130..7c44e4a 100644
--- a/zy-acs-framework/pom.xml
+++ b/zy-acs-framework/pom.xml
@@ -15,7 +15,6 @@
     </parent>
 
     <properties>
-        <jdk.version>1.8</jdk.version>
         <spring-framework.version>5.3.9</spring-framework.version>
     </properties>
 
@@ -29,11 +28,6 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.46</version>
-        </dependency>
-        <dependency>
-            <groupId>com.microsoft.sqlserver</groupId>
-            <artifactId>mssql-jdbc</artifactId>
-            <version>8.2.2.jre8</version>
         </dependency>
     </dependencies>
 
diff --git a/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java b/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java
deleted file mode 100644
index 9b286db..0000000
--- a/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.zy.acs.framework.utils;
-
-import com.zy.acs.framework.common.Cools;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static javax.xml.bind.JAXBIntrospector.getValue;
-
-/**
- * Created by vincent on 2020-01-06
- */
-public class SignUtils {
-
-    /**
-     * 鐢熸垚绛惧悕
-     * 锛堣鍒欏涓嬶細
-     * 绗竴姝ワ細
-     *  璁炬墍鏈夊彂閫佹垨鑰呮帴鏀跺埌鐨勬暟鎹负闆嗗悎M锛�
-     *  灏嗛泦鍚圡鍐呴潪绌哄弬鏁板�肩殑鍙傛暟鎸夌収鍙傛暟鍚岮SCII鐮佷粠灏忓埌澶ф帓搴忥紙瀛楀吀搴忥級锛�
-     *  浣跨敤URL閿�煎鐨勬牸寮忥紙鍗砶ey1=value1&key2=value2鈥︼級鎷兼帴鎴愬瓧绗︿覆stringA
-     *
-     * 绗簩姝ワ細
-     *  鍦╯tringA鏈�鍚庢嫾鎺ヤ笂key寰楀埌stringSignTemp瀛楃涓诧紝
-     *  骞跺stringSignTemp杩涜MD5杩愮畻锛屽啀灏嗗緱鍒扮殑瀛楃涓叉墍鏈夊瓧绗﹁浆鎹负澶у啓锛�
-     *  寰楀埌sign鍊約ignValue
-     *  锛�
-     * @param map 鍙傛暟闆嗗悎
-     * @param secret 瀵嗛挜
-     * @return the sign 绛惧悕
-     */
-    public static String sign(Map<String, Object> map, String secret) {
-        List<String> list = new ArrayList<>();
-        for (String key : map.keySet()) {
-            if (!key.equals("sign") && map.get(key) != null) {
-                list.add(key + "=" + getValue(key) + "&");
-            }
-        }
-        int size = list.size();
-        String[] arrayToSort = list.toArray(new String[size]);
-        Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < size; i++) {
-            sb.append(arrayToSort[i]);
-        }
-        String stringA = sb.toString();
-        stringA += "key=" + secret;
-        return Cools.md5(stringA).toUpperCase();
-    }
-
-}
diff --git a/zy-acs-manager/pom.xml b/zy-acs-manager/pom.xml
index 8fb1e78..1dc9b9e 100644
--- a/zy-acs-manager/pom.xml
+++ b/zy-acs-manager/pom.xml
@@ -18,7 +18,6 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
         <mysql-driver.version>5.1.47</mysql-driver.version>
     </properties>
 
@@ -148,11 +147,14 @@
         </dependency>
 
         <!-- nd4j -->
-<!--        <dependency>-->
-<!--            <groupId>org.nd4j</groupId>-->
-<!--            <artifactId>nd4j-native-platform</artifactId>-->
-<!--            <version>1.0.0-M2.1</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.nd4j</groupId>
+            <artifactId>nd4j-native-platform</artifactId>
+            <!-- java 8 -->
+<!--            <version>1.0.0-M1.1</version>-->
+            <!-- java 11 -->
+            <version>1.0.0-M2.1</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
index 3100ec2..947a25a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
@@ -19,6 +19,7 @@
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -141,4 +142,24 @@
         }
         return R.ok().add(result);
     }
+
+
+    @Autowired
+    private MapService mapService;
+    @Autowired
+    private SegmentService segmentService;
+
+    @GetMapping("/astarDemo") // astar spend time: 3866, count:3855
+    public R astarDemo() {
+        long startTime = System.currentTimeMillis();
+        List<String> path = mapService.checkoutPath("18"
+                , codeService.selectByData("00001318")
+                , codeService.selectByData("00003447")
+                , true
+                , new ArrayList<>()
+                , segmentService.getById(1390));
+        System.out.println("demo spend time: " + (System.currentTimeMillis() - startTime));
+        return R.ok().add(path);
+    }
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
index a27e0d9..0210277 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
@@ -89,4 +89,17 @@
         return Objects.hash(x, y);
     }
 
+    public void reset() {
+        this.F = 0;
+        this.G = 0;
+        this.H = 0;
+        this.parent = null;
+        this.turningPoint = null;
+        this.direction = null;
+        this.lastDistance = null;
+        this.moveDistance = null;
+        this.weight = null;
+        this.codeData = null;
+    }
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java
new file mode 100644
index 0000000..9834a0a
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java
@@ -0,0 +1,25 @@
+package com.zy.acs.manager.core.service.astart;
+
+import org.apache.commons.pool2.BasePooledObjectFactory;
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.impl.DefaultPooledObject;
+
+public class NavigateNodeFactory extends BasePooledObjectFactory<NavigateNode> {
+
+    @Override
+    public NavigateNode create() throws Exception {
+        // 鍒涘缓涓�涓粯璁ょ殑 NavigateNode 瀹炰緥锛屽潗鏍囧皢鍦ㄤ娇鐢ㄦ椂璁剧疆
+        return new NavigateNode(0, 0);
+    }
+
+    @Override
+    public PooledObject<NavigateNode> wrap(NavigateNode node) {
+        return new DefaultPooledObject<>(node);
+    }
+
+    @Override
+    public void passivateObject(PooledObject<NavigateNode> p) throws Exception {
+        // 鍦ㄥ璞¤褰掕繕鍒版睜涓椂閲嶇疆鍏剁姸鎬�
+        p.getObject().reset();
+    }
+}
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java
new file mode 100644
index 0000000..7a51eb7
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java
@@ -0,0 +1,69 @@
+package com.zy.acs.manager.core.service.astart;
+
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool2.impl.GenericObjectPool;
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+@Slf4j
+@Component
+public class NavigateNodePool {
+
+    private ObjectPool<NavigateNode> pool;
+
+    @PostConstruct
+    public void init() {
+        GenericObjectPoolConfig<NavigateNode> config = new GenericObjectPoolConfig<>();
+        config.setMaxTotal(30000); // 閰嶇疆姹犵殑鏈�澶у璞℃暟閲�
+        config.setMinIdle(30000); // 鏈�灏忕┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁�
+        config.setMaxIdle(30000); // 鏈�澶х┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁�
+        config.setBlockWhenExhausted(true); // 姹犺�楀敖鏃堕樆濉�
+        config.setMaxWaitMillis(1000); // 姹犺�楀敖鏃舵渶澶х瓑寰呮椂闂�
+        pool = new GenericObjectPool<>(new NavigateNodeFactory(), config);
+    }
+
+
+    // 鑾峰彇瀵硅薄
+    public NavigateNode borrowObject() {
+        try {
+//            System.out.println("numActive:" + pool.getNumActive());
+//            System.out.println("numIdle:" + pool.getNumIdle());
+            return pool.borrowObject();
+        } catch (Exception e) {
+            log.error("borrowObject", e);
+            throw new RuntimeException("Failed to borrow NavigateNode from pool", e);
+        }
+    }
+
+    // 褰掕繕瀵硅薄
+    public void returnObject(NavigateNode node) {
+        if (node != null) {
+            try {
+                pool.returnObject(node);
+                System.out.println("numIdle:" + pool.getNumIdle());
+            } catch (Exception e) {
+                log.error("returnObject", e);
+                // 濡傛灉褰掕繕澶辫触锛屽彲浠ラ�夋嫨閿�姣佸璞�
+                try {
+                    pool.invalidateObject(node);
+                } catch (Exception ex) {
+                    throw new RuntimeException(ex);
+                }
+            }
+        }
+    }
+
+
+    // 閿�姣佸璞℃睜
+    public void close() {
+        try {
+            pool.close();
+        } catch (Exception e) {
+            log.error("close", e);
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1