From 8c47919d892aaeb00cdef1b408c88a09113a6213 Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期一, 15 七月 2024 21:46:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  124 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 115 insertions(+), 9 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 bb8ab74..cb828b8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4483,6 +4483,84 @@
         }
     }
 
+    /*
+     * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟
+     * */
+    public synchronized boolean crnExecuteTakeFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+            CrnCommandParam crnCommandParam = new CrnCommandParam();
+            crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommandParam.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+            crnCommandParam.setSourcePosX(wrkMastSplitTwinOne.getStartRow().shortValue());     // 婧愬簱浣嶆帓
+            crnCommandParam.setSourcePosY(wrkMastSplitTwinOne.getStartBay().shortValue());     // 婧愬簱浣嶅垪
+            crnCommandParam.setSourcePosZ(wrkMastSplitTwinOne.getStartLev().shortValue());     // 婧愬簱浣嶅眰
+            crnCommandParam.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+            crnCommandParam.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+            crnCommandParam.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+
+            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommandParam.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+            crnCommandParam.setSourcePosX2(wrkMastSplitTwinTwo.getStartRow().shortValue());     // 婧愬簱浣嶆帓
+            crnCommandParam.setSourcePosY2(wrkMastSplitTwinTwo.getStartBay().shortValue());     // 婧愬簱浣嶅垪
+            crnCommandParam.setSourcePosZ2(wrkMastSplitTwinTwo.getStartLev().shortValue());     // 婧愬簱浣嶅眰
+            crnCommandParam.setDestinationPosX2((short)0);     // 鐩爣搴撲綅鎺�
+            crnCommandParam.setDestinationPosY2((short)0);     // 鐩爣搴撲綅鍒�
+            crnCommandParam.setDestinationPosZ2((short)0);     // 鐩爣搴撲綅灞�
+            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+    /*
+     * 鍫嗗灈鏈烘斁璐ц揣鑷冲嚭搴撶珯鐐逛换鍔�
+     * */
+    public synchronized boolean crnExecutePutFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+            CrnCommandParam crnCommandParam = new CrnCommandParam();
+            crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommandParam.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡:  鍗曟斁璐�
+            crnCommandParam.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
+            crnCommandParam.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
+            crnCommandParam.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
+            crnCommandParam.setDestinationPosX(wrkMastSplitTwinOne.getEndRow().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommandParam.setDestinationPosY(wrkMastSplitTwinOne.getEndBay().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommandParam.setDestinationPosZ(wrkMastSplitTwinOne.getEndLev().shortValue());     // 鐩爣搴撲綅灞�
+
+            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommandParam.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡:  鍗曟斁璐�
+            crnCommandParam.setSourcePosX2((short)0);     // 婧愬簱浣嶆帓
+            crnCommandParam.setSourcePosY2((short)0);     // 婧愬簱浣嶅垪
+            crnCommandParam.setSourcePosZ2((short)0);     // 婧愬簱浣嶅眰
+            crnCommandParam.setDestinationPosX2(wrkMastSplitTwinTwo.getEndRow().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommandParam.setDestinationPosY2(wrkMastSplitTwinTwo.getEndBay().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommandParam.setDestinationPosZ2(wrkMastSplitTwinTwo.getEndLev().shortValue());     // 鐩爣搴撲綅灞�
+            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
     /**
      *  Jar浠诲姟鍒涘缓  鍒濆  //瀹屾垚
      */
@@ -7460,6 +7538,9 @@
 
                                 BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
                                 jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+                                jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
+                                jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
+                                jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
                                 //B==>A
                                 if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),11,1})){
                                     log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
@@ -7512,6 +7593,9 @@
 
                                 BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
                                 jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+                                jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
+                                jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
+                                jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
                                 //C==>B
                                 if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),8,1})){
                                     log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
@@ -7579,6 +7663,8 @@
                     if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
                         continue;
                     }
+                } else {
+                    continue;
                 }
 
                 try{
@@ -7590,6 +7676,9 @@
                         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
                         BasJarMast basJarMast = new BasJarMast(basJar);
                         basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+                        basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+                        basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+                        basJarMast.setOutStaNo(basJar.getOutRgvNo());
                         if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
                             log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
                         }
@@ -7632,6 +7721,9 @@
                         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
                         BasJarMast basJarMast = new BasJarMast(basJar);
                         basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+                        basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+                        basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+                        basJarMast.setOutStaNo(basJar.getOutRgvNo());
                         if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
                             log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
                         }
@@ -7661,27 +7753,41 @@
                 if (steProtocol == null || steProtocol.getChargeStatus()!=1) {
                     continue;
                 }
-                WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
-                if (!Cools.isEmpty(wrkMastExecuteByCharge)){
-                    continue;
-                }
 
-                if (steProtocol.getCharge()>50.0F){
-                    if (wrkMastExecuteService.selectNoStart(steSlave.getId())==0){
+                if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){
+                } else if (steProtocol.getCharge()>50.0F){
+                    if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){
                         if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){
                             continue;
                         }
                     }
-                } else if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){
                 } else {
                     continue;
                 }
 
+                WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
+                if (Cools.isEmpty(wrkMastExecuteByCharge)){
+                    BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
+                    int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+                    BasJarMast basJarMast = new BasJarMast(basJar);
+                    basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+                    basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+                    basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+                    basJarMast.setOutStaNo(basJar.getOutRgvNo());
+                    wrkMastExecuteByCharge = new WrkMastExecute(basJarMast);
+                    wrkMastExecuteByCharge.setJarId(basJar.getJarNo());
+                    wrkMastExecuteByCharge.setSteId(steSlave.getId());//绌挎鏉縄D
+                    wrkMastExecuteByCharge.setRgvId(basJar.getEnterRgvNo());//RGV ID  enter
+                    wrkMastExecuteByCharge.setRgvEndId(basJar.getOutRgvNo());//RGV ID  out
+                    wrkMastExecuteByCharge.setIoType(100);//浠诲姟绫诲瀷 0: 鏈煡  1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬  5: 鍏ョ~鍖栫綈  6: 鍏ュ喎鍗存Ы  7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�  9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A  100:灏忚溅鍏呯數浠诲姟
+                    wrkMastExecuteByCharge.setType(1);//璁惧  0: 鏈煡  1: 纭寲缃�  2: 鍐峰嵈妲�  3: 纭寲缃�==>鍐峰嵈妲�
+                }
+
                 try{
-                    if (jarWrkMastExecuteGenerateSteStatusCharge(steSlave.getId(),1,SteStatusType.MOVING,true)){
+                    if (jarWrkMastExecuteGenerateSteStatusCharge(steSlave.getId(),1,SteStatusType.CHARGE,true)){
                         //瀹屾垚鍏呯數浠诲姟
                         //璋冭溅  == > 鏂紑鍏呯數
-                        if (!jarSteTake(wrkMastExecuteByCharge,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.CLOSE_CHARGE,false,wrkMastExecuteByCharge.getJarId())){
+                        if (!jarSteTake(wrkMastExecuteByCharge,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.CLOSE_CHARGE,true,wrkMastExecuteByCharge.getJarId())){
                             log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
                                     wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
                         }

--
Gitblit v1.9.1