From b2236ecf32bca672b5311b791b89a2d32d79f9ba Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 06 十二月 2023 20:19:16 +0800
Subject: [PATCH] #盘点修改

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  149 +++++++++++++++++++++++++++++++++++++++++++++----
 src/main/java/com/zy/core/MainProcess.java                  |    6 +
 2 files changed, 141 insertions(+), 14 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 6330a13..62ba267 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -398,7 +398,7 @@
     }
 
     /**
-     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+     * 鎷f枡銆佸苟鏉垮啀鍏ュ簱
      */
     @Transactional
     public synchronized void stnToCrnStnPick(){
@@ -441,7 +441,7 @@
                         continue;
                     }
 
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104)
                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
                         continue;
                     }
@@ -495,10 +495,6 @@
                         News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
                         continue;
                     }
-                    if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
-                        News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
-                        continue;
-                    }
 
                     // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
                     LocMast locMast = locMastService.selectById(sourceLocNo);
@@ -515,7 +511,7 @@
     }
 
     /**
-     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱(325銆�331銆�333銆�339)
+     * 鎷f枡銆佸苟鏉垮啀鍏ュ簱(325銆�331銆�333銆�339)
      */
     @Transactional
     public synchronized void stnToCrnStnPick2(){
@@ -545,7 +541,7 @@
                         continue;
                     }
 
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104)
                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
                         continue;
                     }
@@ -599,10 +595,6 @@
                         News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
                         continue;
                     }
-                    if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
-                        News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
-                        continue;
-                    }
 
                     // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
                     LocMast locMast = locMastService.selectById(sourceLocNo);
@@ -618,6 +610,137 @@
                 }
             }
 
+        }
+    }
+
+    /**
+     * 鐩樼偣鍐嶅叆搴�
+     */
+    @Transactional
+    public synchronized void stnToCrnStnPlate(){
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鎷f枡鍏ュ簱鍙�
+            for (DevpSlave.Sta pickSta : devp.getPickInSta()) {
+//                if (pickSta.getStaNo() == 325 || pickSta.getStaNo() == 331 || pickSta.getStaNo() == 333 || pickSta.getStaNo() == 339) {
+//                    continue;
+//                }
+
+                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
+                        && staProtocol.isInEnable()
+                        && (staProtocol.getWorkNo() > 0)
+                        && staProtocol.isPakMk()){
+
+                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                    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 wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue());
+                    if (wrkMast == null) {//鎵句笉鍒板伐浣滄。
+                        continue;
+                    }
+
+                    if ((wrkMast.getIoType() != 107)
+                            || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
+                        continue;
+                    }
+
+                    //*********************鍚屽簱浣嶇粍鏍¢獙*********************
+                    boolean flag = false;
+                    String th = "";
+                    List<String> innerLoc = Utils.getGroupInnerLoc(wrkMast.getSourceLocNo());
+                    for (String loc : innerLoc) {
+                        LocMast locMast = locMastService.selectById(loc);
+                        if (locMast == null) {
+                            continue;
+                        }
+
+                        if (!locMast.getLocSts().equals("F")) {
+                            flag = true;
+                            th = loc + "搴撲綅瀛樺湪鏈洖搴撲换鍔�";
+                            break;
+                        }
+                    }
+                    if (flag) {
+                        News.info(th);
+                        continue;
+                    }
+                    //*********************鍚屽簱浣嶇粍鏍¢獙*********************
+
+                    // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+                    if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+                        News.info(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                        continue;
+                    }
+
+                    //鐩樼偣鎵炬柊搴撲綅
+                    try {
+                        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());//婧愬簱浣�
+                        SearchLocParam param = new SearchLocParam();
+                        param.setWrkNo(wrkMast.getWrkNo());
+                        param.setBarcode(barcode);
+                        param.setIoType(107);//鐩樼偣
+                        param.setSourceStaNo(wrkMast.getStaNo());
+                        param.setLocType1(locMast.getLocType1());
+                        String response = new HttpHandler.Builder()
+                                .setUri(wmsUrl)
+                                .setPath("/rpc/pakin/loc/v1")
+                                .setJson(JSON.toJSONString(param))
+                                .build()
+                                .doPost();
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        Integer code = jsonObject.getInteger("code");
+                        if (code.equals(200)) {
+                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+                            //鑾峰彇鍥炲簱鎻愬崌鏈虹洰鏍囩珯
+                            LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(pickSta.getLiftNo(), Utils.getLev(dto.getLocNo()));
+                            if (liftStaProtocol == null) {
+                                News.info(wrkMast.getWrkNo() + "鑾峰彇鍥炲簱鎻愬崌鏈虹洰鏍囩珯澶辫触");
+                                continue;
+                            }
+
+                            // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 107->57
+                            wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+                            wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 婧愮珯
+                            wrkMast.setStaNo(liftStaProtocol.getStaNo());//鐩爣绔�
+                            wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅
+                            wrkMast.setShuttleNo(null); // 绌挎杞︽竻绌�
+                            wrkMast.setLiftNo(null);// 鎻愬崌鏈烘竻绌�
+                            wrkMast.setModiTime(new Date());
+                            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                News.info(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+                                continue;
+                            }
+
+                        } else if (code == 500){
+                            News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    }
+
+                }
+            }
         }
     }
 
@@ -1426,6 +1549,8 @@
                         return false;//绔欑偣涓嶅彲鍏�
                     }
                 }
+            }else {
+                return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈烘暣涓笁妤兼槸鍚﹂兘澶勪簬鍏ュ簱妯″紡
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index b259c18..2afd5de 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -50,10 +50,12 @@
 
                     //鍒濆鍖栧疄鏃跺湴鍥�
                     mainService.initRealtimeBasMap();
-                    // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+                    // 鎷f枡銆佸苟鏉垮啀鍏ュ簱
                     mainService.stnToCrnStnPick();
-                    // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱(325銆�331銆�333銆�339)
+                    // 鎷f枡銆佸苟鏉垮啀鍏ュ簱(325銆�331銆�333銆�339)
                     mainService.stnToCrnStnPick2();
+                    // 鐩樼偣鍐嶅叆搴�
+                    mainService.stnToCrnStnPlate();
                     // 鍏ュ簱  ===>>  鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
                     mainService.shuttleInExecute();
                     // 鍑哄簱  ===>>  鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�

--
Gitblit v1.9.1