From d3eb689e3755207f69817a5f581ee80b0f102339 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期二, 20 一月 2026 10:06:08 +0800
Subject: [PATCH] 条码有则读

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 5e13bfe..73c9753 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -1044,6 +1044,12 @@
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻绌烘澘鍏ュ簱鍙�
             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                BarcodeThread barcodeThread = null;
+                if (!Cools.isEmpty(emptyInSta.getBarcode())) {
+                    barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode());
+                }
+                
                 // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                 StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
@@ -1062,6 +1068,16 @@
                     continue;
                 }
 
+                // 妫�鏌ユ潯鐮佹壂鎻忥細濡傛灉鎵弿鍒版潯鐮侊紝鍒欏瓨鍏ワ紝鎵弿涓嶅埌锛屽垯涓嶅瓨
+                String barcode = null;
+                if (barcodeThread != null) {
+                    barcode = barcodeThread.getBarcode();
+                    // 濡傛灉鏉$爜涓虹┖銆丯G銆丯oRead鎴�00000000
+                    if (Cools.isEmpty(barcode) || barcode.endsWith("NG") || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+                        barcode=null;
+                    }
+                }
+
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing()  //鑷姩
                         && staProtocol.isLoading() //鏈夌墿
@@ -1070,7 +1086,7 @@
                         && staProtocol.isPakMk() //闃叉閲嶅涓嬪彂淇″彿 绔欑偣鏃犵墿 鏃犱换鍔″彿浼氳嚜鍔ㄥ彉鎴恡rue
 
                 ) {
-                    News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
+                    News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐э紝鏉$爜锛歿}", barcode);
 
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -1079,6 +1095,7 @@
                         param.setIoType(10);
                         param.setSourceStaNo(emptyInSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
+                        param.setBarcode(barcode); // 璁剧疆鎵弿鍒扮殑鏉$爜
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
@@ -1088,6 +1105,11 @@
                         JSONObject jsonObject = JSON.parseObject(response);
                         if (jsonObject.getInteger("code").equals(200)) {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+                            
+                            // 娓呯┖鏉$爜
+                            if (barcodeThread != null) {
+                                barcodeThread.setBarcode("");
+                            }
 
                             // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
                             staProtocol.setWorkNo(dto.getWorkNo());
@@ -1115,12 +1137,17 @@
 //                                ledThread.errorReset();
                             }
                         } else {
+                            String errorMsg = jsonObject.getString("msg");
+                            // 濡傛灉浠诲姟鍥為��锛屽苟涓旂珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝鍒欎笉瑙﹀彂鍥為��
+                            if (!staProtocol.isAutoing()) {
+                                log.error("绌烘澘鍏ュ簱鍥為��"+wrkNo+","+errorMsg+"锛岀珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝涓嶈Е鍙戝洖閫�");
+                                continue;
+                            }
                             staProtocol.setWorkNo(wrkNo);
                             wrkNo++;
                             staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            String errorMsg = jsonObject.getString("msg");
                             log.error("绌烘澘鍏ュ簱鍥為��"+wrkNo+","+errorMsg);
                             if (!result) {
                                 News.errorNoLog(""+mark+" - 2"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");

--
Gitblit v1.9.1