From d8d90a246ce19dc9249ea7f0ffe1b8caf0462cc2 Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期六, 31 八月 2024 12:47:22 +0800
Subject: [PATCH] 对照协议调整

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  136 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 108 insertions(+), 28 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 89bffbf..e723309 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -91,6 +91,20 @@
     @Value("${wms.url}")
     private String wmsUrl;
 
+    private Short getWorkMode(Integer bay) {
+        if (bay == 2 || bay == 7) {
+            return (short) 3;
+        } else if (bay == 3) {
+            return (short) 1;
+        } else if (bay == 4) {
+            return (short) 2;
+        } else if (bay == 5) {
+            return (short) 1;
+        } else {
+            return (short) 0;
+        }
+    }
+
     /**
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -218,6 +232,14 @@
                         param.setIoType(1);
                         param.setSourceStaNo(inSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
+                        if (inSta.getStaNo() == 102) {
+                            param.setLocType2((short) 3);
+                        } else if (inSta.getStaNo() == 211) {
+                            param.setLocType1((short) 5);
+                            param.setLocType2((short) 4);
+                        } else if (inSta.getStaNo() == 201) {
+                            param.setLocType2((short) 4);
+                        }
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
@@ -584,7 +606,6 @@
 //            if(crnThread.isBackHpFlag()){
 //                continue;
 //            }
-
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
                     && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
@@ -704,25 +725,31 @@
                 flag = true;
             }
             if (!flag) {
-                News.errorNoLog("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
+                System.out.println(staProtocol);
+                //TODO
+                News.error("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
                         + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
                         + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
                         + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
                 continue;
             }
+            System.out.println("wrkMast:" + slave.getId() + "-" + staProtocol.getWorkNo().intValue() + "-" + crnStn.getStaNo());
             // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
             WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+            System.out.println("wrkMast:" + wrkMast);
             if (null == wrkMast) {
                 News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
 //                log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
                 continue;
             }
+            System.out.println("566");
             // 鑾峰彇搴撲綅淇℃伅
             LocMast locMast = locMastService.getById(wrkMast.getLocNo());
             if (locMast == null) {
                 News.error("" + mark + " - 1" + " - 5" + " - 鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
                 continue;
             }
+            System.out.println("334");
             if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
                 News.error("" + mark + " - 1" + " - 6" + " - 鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
                 continue;
@@ -733,7 +760,7 @@
 //                News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo());
                 continue;
             }
-
+            System.out.println("aas");
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
             if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                 continue;
@@ -781,6 +808,7 @@
                     }
                 }
             }
+            System.out.println("434323");
             News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
                     , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
                     , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
@@ -789,14 +817,32 @@
             CrnCommand crnCommand = new CrnCommand();
             crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
             crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            Short workMode = getWorkMode(locMast.getBay1());
+            if (workMode == 2) {
+                //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣�
+                crnCommand.setTaskMode(CrnTaskModeType.PAKOUT);
+                crnCommand.setSourcePosXTwo(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                crnCommand.setSourcePosYTwo(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+                crnCommand.setSourcePosZTwo(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+                crnCommand.setDestinationPosXTwo(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+                crnCommand.setDestinationPosYTwo(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                crnCommand.setDestinationPosZTwo(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            } else {
+                if (workMode == 1) {
+                    crnCommand.setTaskMode(CrnTaskModeType.PAKIN);
+                } else if (workMode == 3) {
+                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE);
+                }
+                crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+                crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+                crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+                crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            }
 //            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
-            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+
+
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                 News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
@@ -812,7 +858,7 @@
 //                        Thread.sleep(500);
 //                    }catch(Exception ignore){}
 //                }
-
+                System.out.println("ererdfd");
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                 Date now = new Date();
                 wrkMast.setWrkSts(3L);
@@ -946,18 +992,36 @@
                             , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
                             , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue());
 
+                    String locNo = sourceSta.getLocNo();
+
                     // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                     CrnCommand crnCommand = new CrnCommand();
                     crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
                     crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-//                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                    crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
-                    crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
-                    crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
+                    Short workMode = getWorkMode(sourceSta.getBay1());
+                    if (workMode == 2) {
+                        //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣�
+                        crnCommand.setTaskMode(CrnTaskModeType.PAKOUT);
+                        crnCommand.setSourcePosXTwo(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosYTwo(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZTwo(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                        crnCommand.setDestinationPosXTwo(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
+                        crnCommand.setDestinationPosYTwo(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
+                        crnCommand.setDestinationPosZTwo(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
+                    } else {
+                        if (workMode == 1) {
+                            crnCommand.setTaskMode(CrnTaskModeType.PAKIN);
+                        } else if (workMode == 3) {
+                            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE);
+                        }
+                        crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                        crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
+                        crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
+                        crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
+                    }
+
                     if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                         News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                     } else {
@@ -1144,14 +1208,30 @@
         CrnCommand crnCommand = new CrnCommand();
         crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+        Short workMode = getWorkMode(sourceSta.getBay1());
         crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-        crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-        crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-        crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-        crnCommand.setDestinationPosX(sta.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-        crnCommand.setDestinationPosY(sta.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
-        crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+        if (workMode == 2) {
+            //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣�
+            crnCommand.setSourcePosXTwo(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosYTwo(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZTwo(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosXTwo(sta.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosYTwo(sta.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZTwo(sta.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+        } else {
+            if (workMode == 1) {
+                crnCommand.setTaskMode(CrnTaskModeType.PAKIN);
+            } else if (workMode == 3) {
+                crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE);
+            }
+            crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX(sta.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY(sta.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+        }
+
         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
             News.error("" + mark + " - 3" + " - 4" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
         } else {
@@ -1711,7 +1791,7 @@
             LocMast loc = null;
             for (Integer row : rows) {
                 if (Utils.isDeepLoc(slaveProperties, row)) {
-                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2());
 
                     if (loc != null) {
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -1730,7 +1810,7 @@
             if (null == loc) {
                 for (Integer row : rows) {
                     if (Utils.isShallowLoc(slaveProperties, row)) {
-                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2());
 
                         if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());

--
Gitblit v1.9.1