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/thread/SiemensDevpThread.java |   91 +++++++++++++++++++++++++++++++--------------
 1 files changed, 62 insertions(+), 29 deletions(-)

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