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