From 0bdf2da5b1407d7d0dbb90ba11a6ba0f18856ac0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 09 五月 2025 16:55:17 +0800
Subject: [PATCH] 单机调试完成

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  130 ++++++++++++++++++++++++++----------------
 1 files changed, 80 insertions(+), 50 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 4f9173a..e69cd54 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -112,12 +112,15 @@
     private boolean crn3;
 
 
-    public void generateStoreWrkFile() throws IOException, InterruptedException {
+    public synchronized void generateStoreWrkFile() {
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鍏ュ簱鍙�
                 for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    if (inSta.getStaNo() != 114) {
+                        continue;
+                    }
                     StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
                     storageEscalationParam.setStationCode(inSta.getStaNo());
                     // 鑾峰彇鍏ュ簱绔欎俊鎭�
@@ -161,28 +164,32 @@
                         back = true;
                     }
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                    if (staProtocol.isAutoing() && staProtocol.isLoading()
-                            && staProtocol.isInEnable()
-                            && !staProtocol.isEmptyMk() && workNo >= 9790
-                            && staProtocol.isPakMk()) {
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
+                            && !staProtocol.isEmptyMk() && workNo >= 9000 && staProtocol.isPakMk()) {
+//                    if(true){
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                         if (barcodeThread == null) {
                             continue;
                         }
                         String BoxNo = barcodeThread.getBarcode();
+                        if (Cools.isEmpty(BoxNo)) {
+                            log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}",inSta.getBarcode(),BoxNo);
+                            continue;
+                        }
                         TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
                         if (!Cools.isEmpty(taskWrk1)) {
                             log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
-                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
-                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                if (Cools.isEmpty(staDesc)) {
-                                    return;
-                                } else {
-                                    continue;
-                                }
-                            }
+                            continue;
+//                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
+//                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+//                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+//                                if (Cools.isEmpty(staDesc)) {
+//                                    return;
+//                                } else {
+//                                    continue;
+//                                }
+//                            }
                         }
                         if (back) {
                             storageEscalationParam.setWCSStatus(1);
@@ -191,26 +198,37 @@
                         storageEscalationParam.setBarcode(BoxNo);
                         log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
                         TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
+                        if (taskWrk == null) {
+                            log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}",storageEscalationParam);
+                            continue;
+                        }
                         if (back) {
                             log.info("鎵樼洏閫�鍥�==>{}锛寋}", BoxNo, errMsg);
                             staProtocol.setStaNo(inSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         } else {
-                            if (!Cools.isEmpty(taskWrk)) {
-                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                        .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                                staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
-                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                //娣诲姞涓婃姤鏃ュ織
-                                toWmsService.addReportLog(taskWrk);
-                            } else {
-                                log.info("鍒涘缓宸ヤ綔妗eけ璐�==>{}", taskWrk.getTaskNo());
-                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                                devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            }
+                            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                    .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                            staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            //娣诲姞涓婃姤鏃ュ織
+//                            toWmsService.addReportLog(taskWrk);
+//                            if (!Cools.isEmpty(taskWrk)) {
+//                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+//                                        .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+//                                staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+//                                staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                                //娣诲姞涓婃姤鏃ュ織
+//                                toWmsService.addReportLog(taskWrk);
+//                            } else {
+//                                log.info("鍒涘缓宸ヤ綔妗eけ璐�==>{}", taskWrk.getTaskNo());
+//                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            }
 
                         }
 
@@ -231,8 +249,8 @@
         for (CrnSlave crnSlave : slaveProperties.getCrn()) {
             // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
             for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
-                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
-                for (StaDesc staDesc : staDescs) {
+//                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
+//                for (StaDesc staDesc : staDescs) {
                     try {
                         // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
                         DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
@@ -244,34 +262,42 @@
                         }
                         if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                             // 鏌ヨ宸ヤ綔妗�
-                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
+                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo()-1));
                             if (taskWrk == null) {
                                 continue;
                             }
-                            log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                            staProtocol.setStaNo(staDesc.getStnNo().shortValue());
-                            boolean offer = false;
-                            try {
-                                offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            } catch (Exception e) {
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
-                            }
-                            if (offer) {
-                                log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
-                                taskWrk.setStatus(5);
-                                taskWrk.setWrkSts(14);
-                                taskWrkService.updateById(taskWrk);
+                            // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+//                            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo());
+//                            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+//                            log.info(crnProtocol.statusType+""+crnProtocol.getForkPosType());
+//                            if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue())
+//                                    && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED
+//                                    && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+                                log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+                                staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint()));
+                                boolean offer = false;
+                                try {
+                                    offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+                                } catch (Exception e) {
+                                    log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+                                    log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
+                                }
+                                if (offer) {
+                                    log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
+                                    taskWrk.setStatus(5);
+                                    taskWrk.setWrkSts(14);
+                                    taskWrkService.updateById(taskWrk);
 
-                            } else {
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
-                            }
+                                } else {
+                                    log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+                                }
+//                            }
                         }
                     } catch (Exception e) {
                         log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
                     }
-                }
+//                }
 
             }
         }
@@ -398,6 +424,8 @@
                     throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
                 } else {
                     try {
+                        // 涓婃姤鎵ц鐘舵��
+                        toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
                         taskWrkService.updateById(taskWrk);
                     } catch (Exception e) {
                         log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
@@ -522,6 +550,8 @@
                                 if (taskWrkMapper.updateById(taskWrk) == 0) {
                                     log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                                 }
+                                // 涓婃姤鎵ц鐘舵��
+                                toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
                             } catch (Exception e) {
                                 log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                                 log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);

--
Gitblit v1.9.1