From 30227ff4414a4b935e01ddeb998acd9c28e1b62c Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期日, 19 二月 2023 07:39:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  151 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 100 insertions(+), 51 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 2f671c0..425a2bf 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -115,21 +115,25 @@
                 Short workNo = staProtocol.getWorkNo();
 
                 //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
-                if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
-                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                    staProtocol.setWorkNo((short) 9999);
-                    staProtocol.setStaNo((short)100);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    continue;
-                }
-                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                    staProtocol.setWorkNo((short) 9999);
-                    staProtocol.setStaNo((short)200);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    continue;
+                if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+                    if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                        staProtocol.setWorkNo((short) 9999);
+                        staProtocol.setStaNo((short)100);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        News.error("MainServiceImpl  generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                        continue;
+                    }
+                    if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                        staProtocol.setWorkNo((short) 9999);
+                        staProtocol.setStaNo((short)200);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        News.error("MainServiceImpl  generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                        continue;
+                    }
                 }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
@@ -830,18 +834,18 @@
                 continue;
             }
 
-            //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
-            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
-            if(!Cools.isEmpty(one)){
-                News.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
-                continue;
-            }
-
             // 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
             WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
             if(null == wrkMast) {
 //                News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
                 continue;
+            }
+
+            //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
+            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
+            if(!Cools.isEmpty(one)){
+                News.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
+//                continue;
             }
 
             // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔�
@@ -1045,12 +1049,39 @@
                 continue;
             }
 
+            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+            if (staProtocol == null) {
+                continue;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+
             if (wrkMast.getCrnNo().equals(2)){
+                if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+                    News.error("MainServiceImpl  locToCrnStn"+"103闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+                    continue;
+                }
+                if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+                    News.error("MainServiceImpl  locToCrnStn"+"203闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+                    continue;
+                }
+
                 if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
                     Integer sour = wrkMast.getSourceStaNo();
                     List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
                     if (wrkMasts.size() > 0){
                         News.error("MainServiceImpl  1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
+                        continue;
+                    }
+                }
+
+                if (wrkMast.getWrkSts() == 11 && wrkMast.getIoType() == 101){
+                    Integer sour = wrkMast.getSourceStaNo();
+                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour);
+                    if (wrkMasts.size() > 0){
+                        News.error("MainServiceImpl  1028琛�"+"204瀛樺湪鍏ㄦ澘鍑哄簱涓揣鐗╋紝2鍙峰爢鍨涙満鏆傛椂绂佹鍏ㄦ澘鍑哄簱锛侊紒锛�");
                         continue;
                     }
                 }
@@ -1108,7 +1139,9 @@
                                     if (wrkMastMapper.updateById(waitWrkMast) == 0) {
                                         News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
                                     }
-                                    flag = true;
+                                    if (waitWrkMast.getWrkSts() != 17) {
+                                        flag = true;
+                                    }
                                     break;
                                 }
                             }
@@ -1153,17 +1186,10 @@
             // 鑾峰彇婧愬簱浣嶄俊鎭�
             LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
             if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
-                News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+                News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
                 continue;
             }
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
+
             // 鏌ヨ绔欑偣璇︾粏淇℃伅
             BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
             if (staDetl == null) {
@@ -1568,7 +1594,7 @@
                     if(deepLoc != null && !deepLoc.getLocSts().equals("F")
                             && !deepLoc.getLocSts().equals("D")
                             && !deepLoc.getLocSts().equals("O")
-                            && (waitWrkMast!=null && waitWrkMast.getWrkSts()<17)){
+                            && (waitWrkMast!=null && waitWrkMast.getWrkSts()<18)){
                         News.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts());
                         flag = true;
                         break;
@@ -1594,7 +1620,7 @@
                             }
                         }
                         LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
-                        if(sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D")){
+                        if(sourceLoc.getLocSts().equals("R") || sourceLoc.getLocSts().equals("D")){
                             sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
                             sourceLoc.setModiTime(new Date());
                             if (!locMastService.updateById(sourceLoc)) {
@@ -3231,21 +3257,25 @@
                 }
 
                 //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
-                if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
-                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                    staProtocol.setWorkNo((short) 9999);
-                    staProtocol.setStaNo((short)100);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    continue;
-                }
-                if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                    staProtocol.setWorkNo((short) 9999);
-                    staProtocol.setStaNo((short)200);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    continue;
+                if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+                    if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                        staProtocol.setWorkNo((short) 9999);
+                        staProtocol.setStaNo((short)100);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        News.error("MainServiceImpl  storeEmptyPlt"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                        continue;
+                    }
+                    if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                        staProtocol.setWorkNo((short) 9999);
+                        staProtocol.setStaNo((short)200);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        News.error("MainServiceImpl  storeEmptyPlt"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                        continue;
+                    }
                 }
 
                 // 绔欑偣鏉′欢鍒ゆ柇
@@ -3823,8 +3853,27 @@
                 if(Utils.getGroupRow(one.getLocNo()) != Utils.getGroupRow(shallowLoc.getLocNo())
                     || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
                     || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
-                    loc = one;
-                    break;
+
+                    boolean success = true;
+                    List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo());
+                    for (String inside : insideLoc) {
+                        if (locMastService.selectById(inside).getLocSts().equals("P")
+                                || locMastService.selectById(inside).getLocSts().equals("R")
+                                || locMastService.selectById(inside).getLocSts().equals("S")
+                                || locMastService.selectById(inside).getLocSts().equals("Q")) {
+                            success = false; break;
+                        }
+                    }
+
+                    Integer steNo = this.hasCar(one.getLocNo());
+                    if (steNo != null) {
+                        continue;
+                    }
+
+                    if (success) {
+                        loc = one;
+                        break;
+                    }
                 }
             }
 

--
Gitblit v1.9.1