From 1a3cbd5c98959fd400f1502eac68e3bb86c2fc28 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 02 六月 2025 14:05:33 +0800
Subject: [PATCH] 正面条码读取加上物料号

---
 src/main/java/com/zy/core/model/protocol/StaProtocol.java        |    3 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java      |    1 
 src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java |    5 ++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java          |   91 +++++++++++++++++++++++++++++++--------------
 4 files changed, 71 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
index 49f98f7..f6d718d 100644
--- a/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
+++ b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
@@ -2,6 +2,8 @@
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class StorageEscalationParam {
     //鎵樼洏鐮�
@@ -12,4 +14,7 @@
     private Integer WCSStatus = 0;
     //閿欒淇℃伅   鍏蜂綋鐨勯敊璇俊鎭紙瓒呴珮锛岃秴閲嶇瓑锛�
     private String WCSErrorMessage = "";
+
+    // 鐗╂枡鍙峰垪琛�
+    private List<String> matIdList;
 }
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 79e24fb..72f2178 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -177,6 +177,7 @@
                             storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
                         }
                         storageEscalationParam.setBarcode(BoxNo);
+                        storageEscalationParam.setMatIdList(staProtocol.getMatIdList());
                         log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
                         TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
                         if (taskWrk == null) {
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 9c0ace0..7281ac6 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -64,6 +64,9 @@
     //鎸囦护ID
     private Integer commandId;
 
+    // 鐗╂枡鍙峰垪琛�
+    private List<String> matIdList;
+
     // 澶栧舰妫�娴� ------------------------------------------------------------------------
 
     // 鍓嶈秴闄�
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 70471e5..999ad53 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -25,11 +25,9 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 
 /**
  * 杈撻�佺嚎绾跨▼
@@ -47,6 +45,11 @@
 
     public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
         add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308);
+    }};
+
+    // 姝i潰5涓潯鐮佹壂鎻忕珯
+    public static final ArrayList<Integer> barcodeSite2 = new ArrayList<Integer>() {{
+        add(102);add(105);add(108);add(111);add(114);
     }};
 
     // 渚ч潰涓変釜鏉$爜鎵弿绔�
@@ -249,38 +252,68 @@
             }
 
             // 璇诲彇姝i潰鏉$爜
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8));
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB103.0", (short) (5 * 40));
             if (result2.IsSuccess) {
-                for (int i = 0; i < 16; i++) {
-                    int barcodeId = 0;
-                    switch (i) {
-                        case 1:
-                            barcodeId = 1;
-                            break;
-                        case 4:
-                            barcodeId = 2;
-                            break;
-                        case 7:
-                            barcodeId = 3;
-                            break;
-                        case 10:
-                            barcodeId = 4;
-                            break;
-                        case 13:
-                            barcodeId = 5;
-                            break;
-                        default:
+                for (int i = 0; i < 5; i++) {
+                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 40, 40, "UTF-8");
+                    if(!Cools.isEmpty()){
+                        barcode = barcode.trim();
                     }
-                    if (barcodeId != 0) {
-                        String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
-                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
-                        if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                            barcodeThread.setBarcode(barcode);
+                    List<String> barcodeList = Arrays.stream(barcode.split(",")).collect(Collectors.toList());
+                    Iterator<String> iterator = barcodeList.iterator();
+                    while (iterator.hasNext()){
+                        String next = iterator.next();
+                        if(next.length() == 6) {
+                            barcode = next;
+                            iterator.remove();
+                            break;
                         }
+                    }
+
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i);
+                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                        barcodeThread.setBarcode(barcode);
+                    }
+                    StaProtocol staProtocol = station.get(barcodeSite2.get(i));
+                    if (staProtocol != null) {
+                        staProtocol.setMatIdList(barcodeList);
                     }
                 }
             }
 
+            // 璇诲彇姝i潰鏉$爜
+//            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8));
+//            if (result2.IsSuccess) {
+//                for (int i = 0; i < 16; i++) {
+//                    int barcodeId = 0;
+//                    switch (i) {
+//                        case 1:
+//                            barcodeId = 1;
+//                            break;
+//                        case 4:
+//                            barcodeId = 2;
+//                            break;
+//                        case 7:
+//                            barcodeId = 3;
+//                            break;
+//                        case 10:
+//                            barcodeId = 4;
+//                            break;
+//                        case 13:
+//                            barcodeId = 5;
+//                            break;
+//                        default:
+//                    }
+//                    if (barcodeId != 0) {
+//                        String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
+//                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+//                        if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+//                            barcodeThread.setBarcode(barcode);
+//                        }
+//                    }
+//                }
+//            }
+
             // 璇诲彇渚ч潰鏉$爜
             OperateResultExOne<byte[]> resultCM2 = siemensS7Net.Read("DB101.2574", (short) (3 * 4 * 6));
             if (resultCM2.IsSuccess) {

--
Gitblit v1.9.1