From fa971283615611369b9c202f0d51433088e8883c Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期四, 16 五月 2024 10:45:58 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   68 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 1 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 b4c90d5..021c443 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -296,7 +296,9 @@
                 if (rgvComplete){
                     rgvThread.setPakMk(true);
                 }
-
+                WrkMastSta wrkMastSta = wrkMastStaMapper.selectById(rgvProtocol.getTaskNo1());
+                wrkMastSta.setWrkSts(3);
+                wrkMastStaMapper.updateById(wrkMastSta);
             }
 
         }
@@ -470,6 +472,70 @@
         }
     }
 
+    /**
+     * 鎵ц灏忚溅鎼繍浠诲姟
+     */
+    public synchronized void rgvRunWrkMastFullSta() {
+        try{
+            SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, 1);
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                log.error("RGV涓嶅湪绾�");
+                return;
+            }
+            // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+            if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                    && rgvProtocol.getModeType() == RgvModeType.AUTO
+                    && rgvProtocol.getLoaded1()==0
+                    && rgvProtocol.getTaskNo1() == 0
+                    && rgvThread.isPakMk()
+            ) {
+                List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectList(new EntityWrapper<WrkMastSta>());
+                for (WrkMastSta wrkMastSta : wrkMastStaList){
+                    if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:婊$増   3锛氬彇鏀�
+                        continue;
+                    }
+                    boolean sign = rgvTakeFullAll(1, wrkMastSta); //鍛戒护涓嬪彂
+                    if (sign){
+                        wrkMastSta.setWrkSts(1);
+                        wrkMastStaMapper.updateById(wrkMastSta);
+                    } else {
+                        log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+                    }
+                    break;
+                }
+            }
+        }catch (Exception e){
+            log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
+            log.error("3875琛�"+e);
+        }
+    }
+    /*
+     * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
+     * */
+    public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            RgvCommand rgvCommand = new RgvCommand();
+            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+            rgvCommand.setAckFinish1(false);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().intValue()); // 宸ヤ綅1宸ヤ綔鍙�
+            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
+            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
+            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
+            rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
+                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
 
 
 }

--
Gitblit v1.9.1