From bdd676ea0246acd555fff9c98c8d0bf24865437c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 19 一月 2026 17:42:50 +0800
Subject: [PATCH] WCS功能完善

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

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index b390599..b1a9bda 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;
@@ -152,7 +154,7 @@
                     back = true;
                 }
                 // 閫�鍥�
-                if (back && (staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995) && staProtocol.isLoading() && staProtocol.isPakMk()) {
+                if (back && (staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995 || staProtocol.getWorkNo() == 9997) && staProtocol.isLoading() && staProtocol.isPakMk()) {
                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                     staProtocol.setWorkNo(wrkNo);
                     News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
@@ -167,11 +169,18 @@
                 if (staProtocol.isAutoing()
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk()
-                        && 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)) {
+//                        && !staProtocol.isEmptyMk()
+                        && staProtocol.isPakMk()
+                        && (staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995|| staProtocol.getWorkNo() == 9997)) { // 9990-9992绌烘墭锛�9993-9995 婊℃墭锛�9999鍥為��
+                    log.info("鍏ュ簱璇锋眰锛�" + staProtocol);
+                    if(Cools.isEmpty(barcode) || barcode.endsWith("NG") || "NoRead".equals(barcode) || barcode.startsWith("00000000")) {
                         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);
@@ -250,7 +259,7 @@
                 }
                 String barcode = barcodeThread.getBarcode();
                 if(!Cools.isEmpty(barcode)) {
-                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                    if(barcode.endsWith("NG") || barcode.equals("NoRead")) {
                         continue;
                     }
                 } else {
@@ -266,7 +275,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 || staProtocol.getWorkNo() == 9997)) {
                     News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
                     WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     if (wrkMast == null) {
@@ -281,16 +291,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,8 +328,8 @@
                         wrkMast.setIoTime(now);
                         wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
                         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-                        wrkMast.setStaNo(staNo); // 鐩爣绔�
+                        wrkMast.setSourceStaNo(staProtocol.getSiteId()); // 婧愮珯
+                        wrkMast.setStaNo(staProtocol.getSiteId()); // 鐩爣绔�
                         wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
                         wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
                         wrkMast.setModiTime(now);
@@ -346,7 +356,7 @@
                     staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+                    log.info("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
                     if (!result) {
                         News.error(""+mark+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                     }
@@ -450,30 +460,46 @@
 
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
-                    && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+                    && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0 && wrkMastMapper.selectWorking(crn.getId()) == null) {
                 News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
+                boolean success;
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                 if (crnProtocol.getLastIo().equals("I")) {
                     if (basCrnp.getInEnable().equals("Y")) {
                         //mark - 1 - ....
-                        this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
-                    } else if (basCrnp.getOutEnable().equals("Y")) {
+                        success = this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
+                        if(success) {
+                            crnProtocol.setLastIo("O");
+                            continue;
+                        }
+                    }
+                    if (basCrnp.getOutEnable().equals("Y")) {
                         //mark - 2 - ....
-                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
+                        success = this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        if(success) {
+                            crnProtocol.setLastIo("I");
+                            continue;
+                        }
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (crnProtocol.getLastIo().equals("O")) {
                     if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
-                    } else if (basCrnp.getInEnable().equals("Y")) {
-                        this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
+                        success = this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        if(success) {
+                            crnProtocol.setLastIo("I");
+                            continue;
+                        }
+                    }
+                    if (basCrnp.getInEnable().equals("Y")) {
+                        success = this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
+                        if(success) {
+                            crnProtocol.setLastIo("O");
+                            continue;
+                        }
                     }
                 }
+//                log.info("鍫嗗灈鏈哄垏鎹㈠嚭鍏ュ簱妯″紡涓猴細{}",crnProtocol.getLastIo().equals("I") ? "鍏ュ簱" : "鍑哄簱");
             }
             // 搴撲綅绉昏浆
             //mark - 3 - ....
@@ -485,7 +511,7 @@
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
+    public synchronized boolean crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
         News.warnNoLog(""+mark+" - 1"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽叆搴�");
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             boolean flag = false;
@@ -618,18 +644,41 @@
                 if (wrkMastMapper.updateById(wrkMast) == 0) {
                     News.error(""+mark+" - 1"+" - 17"+" - 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                 }
+                return true;
             }
         }
         News.infoNoLog(""+mark+" - 1"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
+        return false;
     }
+
+    @Resource
+    private BasDevpMapper basDevpMapper;
+
+    @Resource
+    private ConfigService configService;
 
     /**
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
+    public synchronized boolean 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()) {
+            // 鍑哄叆搴撲换鍔℃帶鍒讹紝鏈夊叆搴撲换鍔′笉缁欏爢鍨涙満涓嬪彂鍛戒护
+            if (crnStn.getStaNo() == 205) {
+                BasDevp basDevp = basDevpMapper.selectById(crnStn.getStaNo());
+                Integer inQty = basDevp.getInQty();
+                if (inQty != 0) {
+                    log.warn("璇ュ嚭搴撶珯鐐�:{},瀛樺湪鎵ц鐨勫叆搴撲换鍔�:{}鏉�", crnStn.getStaNo(), inQty);
+                    continue;
+                }
+            }
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
             List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
             for (WrkMast wrkMast : wrkMasts) {
@@ -667,8 +716,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;
@@ -726,7 +775,7 @@
 
                     // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                        break;
+                        return false;
 //                        return;
                     }
 
@@ -761,12 +810,13 @@
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
                             News.error(""+mark+" - 2"+" - 14"+" - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                         }
-                        break;
+                        return true;
                     }
                 }
             }
         }
         News.infoNoLog(""+mark+" - 2"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍑哄簱鎵ц瀹屾瘯");
+        return false;
     }
 
     /**
@@ -1023,6 +1073,7 @@
             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
                 // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode());
                 StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
                 if (staProtocol == null) {
                     continue;
@@ -1038,17 +1089,50 @@
                 if (!staProtocol.isLoading()){
                     continue;
                 }
+                if (barcodeThread == null) {
+                    continue;
+                }
+                String barcode = barcodeThread.getBarcode();
+                // 灏哄妫�娴嬪紓甯�
+                boolean back = false;
+                String errMsg = "";
+                if (staProtocol.isFrontErr()) {
+                    errMsg = "鍓嶈秴闄�";
+                    back = true;
+                }
+                if (!back && (staProtocol.isBarcodeErr()||Cools.isEmpty(barcode))) {
+                    errMsg = "鎵爜澶辫触";
+                    back = true;
+                }
 
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing()
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk()
-                        && staProtocol.isPakMk()
-                        && staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9992 // 9990-9992绌烘墭锛�9993-9995 婊℃墭锛�9999鍥為��
+//                        && staProtocol.isEmptyMk()
+//                        && staProtocol.isPakMk()
+                        && ((staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9992) || staProtocol.getWorkNo() == 9996) // 9990-9992绌烘墭锛�9993-9995 婊℃墭锛�9999鍥為��
                         ) {
+                    if(back){
+                        MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errMsg));
+                        staProtocol.setWorkNo(wrkNo);
+                        News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", emptyInSta.getStaNo(), errMsg,wrkNo);
+                        staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+emptyInSta.getBackSta());
+                        return;
+                    }
                     News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
-
+                    if(Cools.isEmpty(barcode) || barcode.endsWith("NG") || barcode.equals("NoRead") || barcode.startsWith("00000000") || barcode.contains("ERROR")) {
+                        News.info("{}鏉$爜鎵弿閿欒锛歿}",barcodeThread.getSlave().getId(),barcode);
+                        staProtocol.setWorkNo(wrkNo);
+                        staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, "鏉$爜鎵弿閿欒"));
+                        return;
+                    }
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
 
@@ -1057,6 +1141,7 @@
                         param.setSourceStaNo(emptyInSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
                         param.setLocType2(locTypeDto.getLocType2());
+                        param.setBarcode(barcode);
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
@@ -1073,7 +1158,7 @@
                             staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂6锛�"+dto.getWorkNo()+","+staProtocol.getSiteId());
+                            log.info("杈撻�佺嚎涓嬪彂6锛�"+dto.getWorkNo()+","+staProtocol.getSiteId());
                             if (!result) {
                                 News.errorNoLog(""+mark+" - 1"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
                                 throw new CoolException("SiemensDevp - 5");
@@ -1093,6 +1178,7 @@
                                 MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(1, commands));
 //                                ledThread.errorReset();
                             }
+                            Thread.sleep(2000);
                         } else {
                             staProtocol.setWorkNo(wrkNo);
                             staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
@@ -1111,6 +1197,7 @@
                             }
 //                            News.error(""+mark+" - 3"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
+                        Thread.sleep(1000);
                     } catch (Exception e) {
                         e.printStackTrace();
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -1345,7 +1432,7 @@
                         ledCommand.setEmptyMk(true);
                         break;
                     default:
-                        News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+//                        News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                         break;
                 }
                 ledCommand.setLocNo(wrkMast.getLocNo());
@@ -1495,7 +1582,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"); // 绌烘澘
@@ -1593,7 +1680,7 @@
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
                     && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
                 // 鍒ゆ柇鏄笉鏄凡鍦ㄥ師鐐�
-                if(crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
+                if(crnProtocol.getBay() == 3 && crnProtocol.getLevel() == 1) {
                     continue;
                 }
                 // 鍒ゆ柇鏄笉鏄┖闂蹭笁鍒嗛挓
@@ -1624,7 +1711,7 @@
                 crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
                 crnCommand.setTaskMode((short)8); // 浠诲姟妯″紡:  鍥炲師鐐�
                 crnCommand.setSourcePosX((short) 1);     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+                crnCommand.setSourcePosY((short) 3);     // 婧愬簱浣嶅垪
                 crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
                 crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
                 crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�

--
Gitblit v1.9.1