From 0ac76f7d8101903e1d050116f7d3835ce1303dfa Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 一月 2025 17:00:37 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigatePositionConvert.java |   91 ++++++++++++++++++++++++++-------------------
 1 files changed, 52 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigatePositionConvert.java b/src/main/java/com/zy/common/utils/NavigatePositionConvert.java
index 3bd0ac9..76a2bfd 100644
--- a/src/main/java/com/zy/common/utils/NavigatePositionConvert.java
+++ b/src/main/java/com/zy/common/utils/NavigatePositionConvert.java
@@ -1,16 +1,44 @@
 package com.zy.common.utils;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.SpringUtils;
-import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.model.NavigateNode;
 
 /**
  * 搴撲綅缂栧彿鍜孉*绠楁硶鐨剎y杞磋浆鎹㈠伐鍏风被
  */
 public class NavigatePositionConvert {
+
+    public static String xyToPosition(int x, int y, int z) {
+        String locNo = Utils.getLocNo(x, y, z);
+
+        //搴撲綅鍙疯浆灏忚溅浜岀淮鐮�
+        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                .eq("loc_no", locNo)
+                .eq("status", 1));
+        if (locMast == null) {
+            return null;
+        }
+        return locMast.getQrCodeValue();
+    }
+
+    //灏忚溅鏉″舰鐮佽浆璺緞绠楁硶鑺傜偣
+    public static NavigateNode codeToNode(String code) {
+        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                .eq("qr_code_value", code)
+                .eq("status", 1));
+        if (locMast == null) {
+            return null;
+        }
+        NavigateNode node = new NavigateNode(locMast.getRow1(), locMast.getBay1());
+        node.setZ(locMast.getLev1());
+        return node;
+    }
 
     //鍧愭爣缂栧彿杞瑇y杞�
     public static int[] positionToXY(String position) {
@@ -22,8 +50,29 @@
         return newPosition;
     }
 
-    //鐗涚溂鍧愭爣杞琖CS搴撲綅鍙�
+    //WCS绯荤粺搴撲綅鍙疯浆璺緞绠楁硶鑺傜偣
+    public static NavigateNode locNoToNode(String locNo) {
+        int col = Integer.parseInt(locNo.substring(0, 2));
+        int row = Integer.parseInt(locNo.substring(2, 5));
+        int[] newPosition = coverPosition(col,row);
+        NavigateNode node = new NavigateNode(col, row);
+        node.setZ(Utils.getLev(locNo));
+        return node;
+    }
+
+    //璺緞绠楁硶鑺傜偣杞琖CS绯荤粺搴撲綅鍙�
+    public static String nodeToLocNo(NavigateNode node) {
+        return xyzToLocNo(node.getX(), node.getY(), node.getZ());
+    }
+
+    //WCS鍧愭爣杞琖CS搴撲綅鍙�
     public static String xyzToLocNo(int x, int y, int z) {
+        String locNo = Utils.getLocNo(x, y, z);
+        return locNo;
+    }
+
+    //鐗涚溂鍧愭爣杞琖CS搴撲綅鍙�
+    public static String nyXyzToLocNo(int x, int y, int z) {
         int[] ints = NyXyzToWCSXyz(x, y, z);
         String locNo = Utils.getLocNo(ints[0],ints[1],ints[2]);
         return locNo;
@@ -45,42 +94,6 @@
         //鐗涚溂Y杞� => WCS绯荤粺X杞村叕寮�
         int x1 = y - 10;
         return new int[]{x1, y1, z};
-    }
-
-    //xyz杞磋浆鍧愭爣缂栧彿
-    public static Short xyToPosition(int x, int y, int z) {
-        StringBuffer sb = new StringBuffer();
-        if (x < 10) {
-            sb.append("0");
-        }
-        sb.append(x);
-
-        if (y < 10) {
-            sb.append("00");
-        }else if (y < 100) {
-            sb.append("0");
-        }
-        sb.append(y);
-
-        if (z < 10) {
-            sb.append("0");
-        }
-        sb.append(z);
-        String position = sb.toString();//搴撲綅鍙�
-
-        //搴撲綅鍙疯浆灏忚溅浜岀淮鐮�
-        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
-        LocMast locMast = locMastService.queryByLoc(position);
-        if (locMast == null) {
-            //褰撳墠搴撲綅鍙锋煡涓嶅埌锛屽彲鑳芥槸绔欑偣搴撲綅鍙�
-            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-            BasDevp basDevp = basDevpService.queryByLocNo(position);
-            if (basDevp == null) {
-                return null;
-            }
-            return Short.parseShort(basDevp.getQrCodeValue());
-        }
-        return Short.parseShort(locMast.getQrCodeValue());
     }
 
     public static int[] coverPosition(int col,int row) {

--
Gitblit v1.9.1