From ae91523e49af02438f58a9fd5f590a483a297417 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 01 十二月 2023 13:37:44 +0800
Subject: [PATCH] #盘点逻辑

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 10 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 47a376a..4b44e70 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -417,10 +417,29 @@
                 if (staProtocol.isAutoing()
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && (staProtocol.getWorkNo() > 0)
+//                        && (staProtocol.getWorkNo() > 0)
                         && staProtocol.isPakMk()){
 
-                    WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue());
+                    WrkMast wrkMast = null;
+                    if (staProtocol.getWorkNo() > 0) {//瀛樺湪宸ヤ綔鍙凤紝鍒╃敤宸ヤ綔鍙锋悳绱换鍔�
+                        wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue());
+                    }else {
+                        //涓嶅瓨鍦ㄥ伐浣滃彿锛屼緷闈犳墭鐩樻潯鐮佹悳绱�
+                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+                        if (barcodeThread == null) {
+                            continue;
+                        }
+                        String barcode = barcodeThread.getBarcode();
+                        if(Cools.isEmpty(barcode)) {
+                            continue;
+                        }
+                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+                            continue;
+                        }
+                        wrkMast = wrkMastMapper.selectPickStepByBarcode(barcode);
+                    }
+
                     if (wrkMast == null) {//鎵句笉鍒板伐浣滄。
                         continue;
                     }
@@ -433,7 +452,7 @@
                     //*********************鍚屽簱浣嶇粍鏍¢獙*********************
                     boolean flag = false;
                     String th = "";
-                    List<String> innerLoc = Utils.getGroupInnerLoc(wrkMast.getLocNo());
+                    List<String> innerLoc = Utils.getGroupInnerLoc(wrkMast.getSourceLocNo());
                     for (String loc : innerLoc) {
                         LocMast locMast = locMastService.selectById(loc);
                         if (locMast == null) {
@@ -442,18 +461,20 @@
 
                         if (!locMast.getLocSts().equals("F")) {
                             flag = true;
-                            th = loc + "搴撲綅瀛樺湪闈炵┖娴呭簱浣�";
+                            th = loc + "搴撲綅瀛樺湪鏈洖搴撲换鍔�";
                             break;
                         }
                     }
                     if (flag) {
-                        throw new CoolException(th);
+                        News.info(th);
+                        continue;
                     }
                     //*********************鍚屽簱浣嶇粍鏍¢獙*********************
 
                     // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
                     if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
-                        throw new CoolException(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                        News.info(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                        continue;
                     }
 
                     String sourceLocNo = wrkMast.getSourceLocNo().trim();
@@ -465,7 +486,7 @@
                     // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
                     wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
                     wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                    wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
+                    wrkMast.setSourceStaNo(pickSta.getBackSta()); // 婧愮珯
 //                            wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
 //                            wrkMast.setCrnNo(dto.getCrnNo());
                     wrkMast.setStaNo(liftStaProtocol.getStaNo());//鐩爣绔�
@@ -474,10 +495,12 @@
                     wrkMast.setLiftNo(null);// 鎻愬崌鏈烘竻绌�
                     wrkMast.setModiTime(new Date());
                     if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        continue;
                     }
                     if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
-                        throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                        continue;
                     }
 
                     // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
@@ -485,9 +508,11 @@
                     locMast.setLocSts("Q");
                     locMast.setModiTime(new Date());
                     if (!locMastService.updateById(locMast)) {
-                        throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                        News.info("淇敼搴撲綅鐘舵�佸け璐�");
+                        continue;
                     }
 
+                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());//鍐欏叆宸ヤ綔鍙�
                     staProtocol.setStaNo(pickSta.getBackSta().shortValue());//鍐欏叆鐩爣绔�
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                 }
@@ -1281,6 +1306,28 @@
                 return false;//绔欑偣涓嶅彲鍏�
             }
 
+            Integer barcodeId = Utils.getBarcodeIdByStaNo(wrkMast.getSourceStaNo());
+            if (barcodeId == null) {
+                News.info("{}浠诲姟锛寋}婧愮珯锛屾壘涓嶅埌鍙敤鏉$爜鍣↖D", wrkMast.getWrkNo(), sourceBasDevp.getDevNo());
+                return false;//绔欑偣涓嶅彲鍏�
+            }
+
+            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+            if (barcodeThread == null) {
+                News.info("{}浠诲姟锛寋}婧愮珯锛屾潯鐮佸櫒{}绾跨▼涓虹┖", wrkMast.getWrkNo(), sourceBasDevp.getDevNo(), barcodeId);
+                return false;//绔欑偣涓嶅彲鍏�
+            }
+            String barcode = barcodeThread.getBarcode();
+            if(!Cools.isEmpty(barcode)) {
+                if(!("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode))) {
+                    //瀛樺湪鏉$爜鍊硷紝鍒ゆ柇鏄惁鍜屽綋鍓嶅伐浣滄。涓�鑷�
+                    if (!barcode.equals(wrkMast.getBarcode())) {
+                        News.info("{}浠诲姟锛屾潯鐮佸櫒{}鍊納}涓庡伐浣滄。鏉$爜鍊间笉涓�鑷达紝绯荤粺璺宠繃鎵ц", wrkMast.getWrkNo(), sourceBasDevp.getDevNo(), barcodeId, barcode);
+                        return false;//绔欑偣涓嶅彲鍏�
+                    }
+                }
+            }
+
             //鍒ゆ柇鎻愬崌鏈烘暣涓笁妤兼槸鍚﹂兘澶勪簬鍏ュ簱妯″紡
             Integer outInModel1 = Utils.getOutInModelByLift(sourceBasDevp.getLiftNo(), 1);
             Integer outInModel2 = Utils.getOutInModelByLift(sourceBasDevp.getLiftNo(), 5);

--
Gitblit v1.9.1