From eb96c650d25d9d17ea3c582cd091dbeff9909bf1 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期五, 23 十二月 2022 08:52:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  112 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 91 insertions(+), 21 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 c92f5ab..4ff55ab 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -331,6 +331,7 @@
     /**
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱銆愮2闃舵銆�
      */
+    @Transactional
     public synchronized void stnToCrnStnPick1(){
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -455,6 +456,7 @@
                             }
 
                             String sourceLocNo = wrkMast.getSourceLocNo().trim();
+
                             // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
                             wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
                             wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
@@ -470,14 +472,8 @@
                             if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
                                 throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
                             }
+
                             LocMast locMast = null;
-                            // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
-//                            locMast = locMastService.selectById(sourceLocNo);
-//                            locMast.setLocSts("O");
-//                            locMast.setModiTime(new Date());
-//                            if (!locMastService.updateById(locMast)) {
-//                                throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
-//                            }
                             // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
                             locMast = locMastService.selectById(wrkMast.getLocNo());
                             locMast.setLocSts("Q");
@@ -485,10 +481,21 @@
                             if (!locMastService.updateById(locMast)) {
                                 throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�");
                             }
-                            // 搴撳瓨鏄庣粏杞Щ
-//                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
-//                                throw new CoolException(wrkMast.getWrkNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
-//                            }
+                            // 婧愬簱浣嶅簱瀛樻槑缁嗚浆绉诲埌鐩爣搴撲綅
+                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
+                                throw new CoolException(wrkMast.getLocNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
+                            }
+
+                            // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
+                            LocMast sourceLocMast = locMastService.selectById(sourceLocNo);
+                            if (sourceLocMast.getLocSts().equals("P")) {
+                                sourceLocMast.setLocSts("O");
+                                sourceLocMast.setModiTime(new Date());
+                                if (!locMastService.updateById(sourceLocMast)) {
+                                    throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+                                }
+                                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+                            }
 
                             // 鏉$爜璁惧澶勭悊
                             barcodeThread.setBarcode("");
@@ -544,16 +551,16 @@
     public synchronized void pickWrkCompleteStaNo() {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPick17(null, null);
         for (WrkMast wrkMast : wrkMasts) {
-            // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
-            LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
-            if (locMast.getLocSts().equals("P")) {
-                locMast.setLocSts("O");
-                locMast.setModiTime(new Date());
-                if (!locMastService.updateById(locMast)) {
-                    throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
-                }
-                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
-            }
+//            // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
+//            LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+//            if (locMast.getLocSts().equals("P")) {
+//                locMast.setLocSts("O");
+//                locMast.setModiTime(new Date());
+//                if (!locMastService.updateById(locMast)) {
+//                    throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+//                }
+//                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+//            }
             // 淇敼宸ヤ綔妗�
             wrkMast.setIoPri(13D);
             wrkMast.setModiTime(new Date());
@@ -564,6 +571,69 @@
     }
 
     /**
+     * 鎷f枡/鐩樼偣杞叏鏉垮悗锛�300绔欎换鍔¤浆100/200绔欏幓
+     */
+    public synchronized void transPickToFullChangeStn() {
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鎷f枡鍑哄簱鍙�
+            for (DevpSlave.Sta pickSta : devp.getPickOutSta()) {
+                // 鑾峰彇鎷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.getStaNo().equals(staProtocol.getSiteId().shortValue())
+                        && staProtocol.isPakMk()){
+                    WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+                    if(Cools.isEmpty(wrkMast)){
+                        log.error("鎷f枡/鐩樼偣杞叏鏉�,浠诲姟鍙峰伐浣滄。涓嶅瓨鍦�===>>[浠诲姟鍙�:{}]", staProtocol.getWorkNo());
+                        continue;
+                    }
+                    if (wrkMast.getIoType() != 101) { continue; }
+
+                    //鎷f枡杞叏鏉块粯璁ゅ嚭搴撶珯100绔欙紝褰�100绔欐湁鐗╂椂锛岀洰鏍囨敼200绔�
+                    Integer staNo = 100;
+                    StaProtocol staProtocol100 = devpThread.getStation().get(staNo);
+                    if (staProtocol100 == null) {
+                        continue;
+                    } else {
+                        staProtocol100 = staProtocol100.clone();
+                    }
+                    if (staProtocol100.isLoading()) {
+                        staNo = 200;
+                    }
+
+                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                    staProtocol.setStaNo(staNo.shortValue());
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    if (!result) {
+                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                    } else {
+                        wrkMast.setStaNo(staNo);
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("鏇存柊宸ヤ綔妗g殑鐩爣绔欏け璐ワ紒锛侊紒 [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+                        }
+                    }
+
+                }
+            }
+
+
+        }
+    }
+
+    /**
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */
     public synchronized void crnStnToOutStn() {

--
Gitblit v1.9.1