From c7221d56da7bf4efa1672a15d2f1b66adbca20fc Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 18 六月 2025 13:09:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  151 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 98 insertions(+), 53 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 45033ce..da110a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -39,6 +39,8 @@
 import com.zy.core.thread.LedThread;
 import com.zy.core.thread.RgvThread;
 import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -91,6 +93,8 @@
     private WrkMastService wrkMastService;
     @Autowired
     private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private ConfigService configService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -235,21 +239,21 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
 
-                            // led 鍏ュ簱淇℃伅鏄剧ず
-                            if (ledThread != null) {
-                                // 鍛戒护闆嗗悎
-                                List<LedCommand> commands = new ArrayList<>();
-                                // 缁勮鍛戒护
-                                LedCommand ledCommand = new LedCommand();
-                                ledCommand.setWorkNo(dto.getWorkNo());
-                                ledCommand.setIoType(1);
-                                ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
-                                ledCommand.setLocNo(dto.getLocNo());
-                                ledCommand.setStaNo(dto.getStaNo());
-                                commands.add(ledCommand);
-                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, commands));
-//                                ledThread.errorReset();
-                            }
+//                            // led 鍏ュ簱淇℃伅鏄剧ず
+//                            if (ledThread != null) {
+//                                // 鍛戒护闆嗗悎
+//                                List<LedCommand> commands = new ArrayList<>();
+//                                // 缁勮鍛戒护
+//                                LedCommand ledCommand = new LedCommand();
+//                                ledCommand.setWorkNo(dto.getWorkNo());
+//                                ledCommand.setIoType(1);
+//                                ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+//                                ledCommand.setLocNo(dto.getLocNo());
+//                                ledCommand.setStaNo(dto.getStaNo());
+//                                commands.add(ledCommand);
+//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, commands));
+////                                ledThread.errorReset();
+//                            }
                         } else {
                             News.error(""+mark+" - 5"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
 //                            staProtocol.setWorkNo((short)9992);
@@ -364,26 +368,30 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
+                        && staProtocol.isInEnable()
+                        && staProtocol.getWorkNo() > 0
+                        && staProtocol.isPakMk()) {
                     News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
 
-                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-                    if (barcodeThread == null) {
-                        continue;
-                    }
-                    String barcode = barcodeThread.getBarcode();
-                    if(!Cools.isEmpty(barcode)) {
-                        News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                            continue;
-                        }
-                    } else {
-                        continue;
-                    }
+//                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+//                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+//                    if (barcodeThread == null) {
+//                        continue;
+//                    }
+//                    String barcode = barcodeThread.getBarcode();
+//                    if(!Cools.isEmpty(barcode)) {
+//                        News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                            continue;
+//                        }
+//                    } else {
+//                        continue;
+//                    }
 
-                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-//                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+//                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
                         continue;
@@ -409,11 +417,11 @@
                             .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((short) 9989);
-                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                        News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+//                        staProtocol.setWorkNo((short) 9989);
+//                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -907,7 +915,23 @@
                 }
                 // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
                 if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                        && staProtocol.getWorkNo() == 0) {
+
+                    //鏍规嵁鍙傛暟鍒ゆ柇鏄惁鏍¢獙鍙嚭淇″彿
+                    String crnOutVerifyOut = "Y";
+                    Config crnOutVerifyOutEnableConfig = configService.selectOne(new EntityWrapper<Config>()
+                            .eq("code", "crnOutVerifyOutEnable"));
+                    if(crnOutVerifyOutEnableConfig != null) {
+                        crnOutVerifyOut = crnOutVerifyOutEnableConfig.getValue();
+                    }
+
+                    if (crnOutVerifyOut.equals("Y")) {
+                        if (!staProtocol.isOutEnable()) {
+                            continue;
+                        }
+                    }
+
+
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1647,24 +1671,39 @@
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setLocNo(wrkMast.getLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
+                ledCommand.setBarcode(wrkMast.getBarcode());
 //                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    try{
-                        if (wrkMast.getIoType()>100){
-                            for (WrkDetl wrkDetl : wrkDetls){
-                                LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
-                                wrkDetl.setWeight(locDetl.getAnfme());
-                            }
-                        }else {
-                            for (WrkDetl wrkDetl : wrkDetls){
-                                wrkDetl.setWeight(wrkDetl.getAnfme());
-                            }
-                        }
-                    }catch (Exception e){
-                        log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
-                    }
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
+//                    try{
+//                        if (wrkMast.getIoType()>100){
+//                            for (WrkDetl wrkDetl : wrkDetls){
+//                                LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
+//                                wrkDetl.setWeight(locDetl.getAnfme());
+//                            }
+//                        }else {
+//                            for (WrkDetl wrkDetl : wrkDetls){
+//                                wrkDetl.setWeight(wrkDetl.getAnfme());
+//                            }
+//                        }
+//                    }catch (Exception e){
+//                        log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
+//                    }
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(
+                            wrkDetl.getMatnr()
+                            , wrkDetl.getMaktx()
+                            , wrkDetl.getAnfme()
+                            , wrkDetl.getWeight()
+                            , wrkDetl.getStockNum()
+                            , wrkDetl.getStockNum2()
+                            , wrkDetl.getSpecs()
+                            , wrkDetl.getSku()
+                            , wrkDetl.getZpallet()
+                            , wrkDetl.getModel()
+                            , wrkDetl.getSupp()
+                            , wrkDetl.getKpCstmrName()
+                            , wrkDetl.getOrderNo()
+                    )));
                 }
                 commands.add(ledCommand);
             }
@@ -2013,6 +2052,11 @@
                         continue;
                     }
 
+                    Integer ctnType = 1;
+                    if (ctnType.equals(loc.getCtnType())) {
+                        continue;
+                    }
+
                     String sourceLocNo = sourceLoc.getLocNo();
                     String locNo = loc.getLocNo();
 
@@ -2067,6 +2111,7 @@
                     // 淇敼鐩爣搴撲綅鐘舵��
                     if (loc.getLocSts().equals("O")) {
                         loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                        loc.setCtnType(1);
                         loc.setModiTime(new Date());
                         if (!locMastService.updateById(loc)) {
                             throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");

--
Gitblit v1.9.1