From 77c0b3a6d94eab894dbc7472e530c484dcfc424e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 07 一月 2026 16:59:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jnejc-jgwcs' into jnejc-jgwcs

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |   39 ++++++++++++++++++++++++++++-----------
 1 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 24f466a..54b1d2e 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -31,6 +31,8 @@
 import com.zy.entity.*;
 import com.zy.mapper.*;
 import com.zy.service.*;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import com.zy.utils.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -171,7 +173,12 @@
                         && staProtocol.isPakMk() && staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995) { // 9990-9992绌烘墭锛�9993-9995 婊℃墭锛�9999鍥為��
                     if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                         News.info("{}鏉$爜鎵弿閿欒锛歿}",barcodeThread.getSlave().getId(),barcode);
-                        continue;
+                        staProtocol.setWorkNo(wrkNo);
+                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "鏉$爜鎵弿閿欒"));
+                        return;
                     }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
@@ -266,7 +273,8 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo() == 9999) {
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995) {
                     News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
                     WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     if (wrkMast == null) {
@@ -281,16 +289,16 @@
                     // 鑾峰彇鐩爣绔�
                     Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                             .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                            .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
                         News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                         staProtocol.setWorkNo(wrkNo);
-                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
+                        staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        log.error("杈撻�佺嚎涓嬪彂4锛�"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1));
+                        log.error("杈撻�佺嚎涓嬪彂4锛�"+wrkNo+","+pickSta.getBackSta());
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -318,7 +326,7 @@
                         wrkMast.setIoTime(now);
                         wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
                         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+                        wrkMast.setSourceStaNo(staProtocol.getSiteId()); // 婧愮珯
                         wrkMast.setStaNo(staNo); // 鐩爣绔�
                         wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
                         wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
@@ -623,12 +631,21 @@
         News.infoNoLog(""+mark+" - 1"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
     }
 
+    @Resource
+    private ConfigService configService;
     /**
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
     public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
         News.warnNoLog(""+mark+" - 2"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
+
+        // 鎺у埗鏄惁鍏佽杩炵画鍑哄簱锛屼笉鍒ゆ柇鍑哄簱绔欑偣鐘舵��(鏍规嵁鐘舵�佸惎鐢�)
+        boolean crnAvailableOut = false;
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","removeCrnAvailableOut"));
+        if (config != null && config.getStatus() == 1) {
+            crnAvailableOut = true;
+        }
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
             List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
@@ -667,8 +684,8 @@
                 }
 
                 // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                    && (crnAvailableOut || !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable())) {
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
@@ -1355,9 +1372,9 @@
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                     wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getMaktx(),
-                            wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getAnfme())));
+                            wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getAnfme(),wrkDetl.getStandby1())));
                 } else {
-                    ledCommand.getMatDtos().add(new MatDto("","","","","","","",1.0));
+                    ledCommand.getMatDtos().add(new MatDto("","","","","","","",1.0,""));
                 }
                 commands.add(ledCommand);
             }
@@ -1495,7 +1512,7 @@
                 wrkMast.setCrnNo(crn.getId());
                 wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
                 wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-                wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+                wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
                 wrkMast.setPicking("N"); // 鎷f枡
                 wrkMast.setExitMk("N"); // 閫�鍑�
                 wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘

--
Gitblit v1.9.1