From 429bf2ffe5bf78bb35347a051e45f329ab0e79d5 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 06 二月 2024 18:58:19 +0800
Subject: [PATCH] #AGV 输送线扫码器扫描

---
 src/main/java/com/zy/asrs/controller/AgvController.java     |    7 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   79 ++++++++++++++++++++++++--
 src/main/java/com/zy/core/MainProcess.java                  |    2 
 src/main/resources/application.yml                          |   80 +++++++++++++-------------
 4 files changed, 121 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvController.java b/src/main/java/com/zy/asrs/controller/AgvController.java
index d20a6bc..68995d3 100644
--- a/src/main/java/com/zy/asrs/controller/AgvController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvController.java
@@ -29,7 +29,12 @@
 
         return r.add(map);
 
-        //return R.ok();
+    }
+
+    @PostMapping("/container/completed")
+    public R containerCompleted(@RequestBody JSONObject jsonObject){
+
+        return R.ok();
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index d6ad9cb..6eb8c41 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2739,13 +2739,38 @@
         return false;
     }
 
+    //閫氱煡WMS褰撳墠鎷f枡绔欑偣淇℃伅
+    private boolean agvCureentCall(String staNo, String barcode) {
+        try {
+            HashMap<String, Object> param = new HashMap<>();
+            param.put("devNo", staNo);
+            param.put("containerCode", barcode);
+            String response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath("/rpc/current/containerCode")
+                    .setJson(JSON.toJSONString(param))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            News.info("鎮寕绾匡紝WMS杩斿洖缁撴灉锛�" + jsonObject);
+            Integer code = jsonObject.getInteger("code");
+            if (code.equals(200)) {//鍛煎彨AGV
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+        return false;
+    }
+
     /**
      * AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣)
      */
     public void agvRestockIntoByHangingWire() {
         try {
             //妫�娴�350鍜�351鎵爜鍣�
-            int[] barcodeStaNo = {11, 12};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
+            int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
             for (int staNo : barcodeStaNo) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
@@ -2763,13 +2788,13 @@
                         agvStaNo = "303-1";
                     } else if(staNo == 12){
                         agvStaNo = "304-1";
-                    } else if(staNo == 13){
-                        agvStaNo = "311-1";
                     } else if(staNo == 14){
-                        agvStaNo = "313-1";
-                    } else if(staNo == 15){
-                        agvStaNo = "315-1";
+                        agvStaNo = "311-1";
                     } else if(staNo == 16){
+                        agvStaNo = "313-1";
+                    } else if(staNo == 18){
+                        agvStaNo = "315-1";
+                    } else if(staNo == 20){
                         agvStaNo = "317-1";
                     }
                     //閫氱煡AGV鍙栬揣
@@ -2785,6 +2810,48 @@
         }
     }
 
+    /**
+     * AGV鎷f枡绔欑偣淇℃伅
+     */
+    public void agvCurrentContainerCodeInfoWire() {
+        try {
+            //妫�娴�350鍜�351鎵爜鍣�
+            int[] barcodeStaNo = {13, 15,17,19};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
+            for (int staNo : barcodeStaNo) {
+                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
+                if (barcodeThread == null) {
+                    continue;
+                }
+                String barcode = barcodeThread.getBarcode();
+                if (!Cools.isEmpty(barcode)) {
+                    if (barcode.contains("NoRead")) {
+                        continue;
+                    }
+
+                    String agvStaNo = null;
+                    if (staNo == 13) {
+                        agvStaNo = "310-1";
+                    } else if(staNo == 15){
+                        agvStaNo = "312-1";
+                    } else if(staNo == 17){
+                        agvStaNo = "314-1";
+                    } else if(staNo == 19){
+                        agvStaNo = "316-1";
+                    }
+                    //閫氱煡AGV鍙栬揣
+                    boolean result = agvRestockCall(agvStaNo, barcode);
+                    if (result) {
+                        barcodeThread.setBarcode("");
+                    }
+                    log.info(barcodeThread.getSlave().getId() + "鍙锋壂鐮佸櫒锛岄�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     // 300绔欐嫞鏂�
     public void pick300() {
         try {
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 261ec36..411b4c0 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -82,6 +82,8 @@
                     mainService.agvRestockInto();
                     // AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣)
                     mainService.agvRestockIntoByHangingWire();
+                    // AGV淇℃伅鏇存柊
+                    mainService.agvCurrentContainerCodeInfoWire();
                     // 300绔欐嫞鏂�
                     mainService.pick300();
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 36230aa..7e94169 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -394,46 +394,46 @@
     id: 12
     ip: 10.10.10.224
     port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[12]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[13]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[14]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[15]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[16]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[17]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[18]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
-#  # 鏉$爜鎵弿浠�
-#  barcode[19]:
-#    id: 12
-#    ip: 10.10.10.224
-#    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[12]:
+    id: 13
+    ip: 10.10.10.233
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[13]:
+    id: 14
+    ip: 10.10.10.232
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[14]:
+    id: 15
+    ip: 10.10.10.231
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[15]:
+    id: 16
+    ip: 10.10.10.230
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[16]:
+    id: 17
+    ip: 10.10.10.229
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[17]:
+    id: 18
+    ip: 10.10.10.228
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[18]:
+    id: 19
+    ip: 10.10.10.227
+    port: 2002
+  # 鏉$爜鎵弿浠�
+  barcode[19]:
+    id: 20
+    ip: 10.10.10.226
+    port: 2002
 
    # LED1
   led[0]:

--
Gitblit v1.9.1