From 9aefce26355af7cd43bc958c045b196b355693b8 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 10 五月 2024 19:49:46 +0800
Subject: [PATCH] #一楼rgv

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 144 insertions(+), 17 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 d2181a2..d33e81d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2507,6 +2507,8 @@
                 short sta1 = 0;
                 short souSta2 = 0;
                 short sta2 = 0;
+                short matnr = 0;
+                short matnr2 = 0;
 
                 //宸ヤ綅涓�浠诲姟
                 for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
@@ -2534,9 +2536,19 @@
                         }
                         workNo1 = workNo++;
                         souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
-                        sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo());
+                        if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
+                            sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103);
+                        } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) {
+                            sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002);
+                        }else {
+                            sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo());
+                        }
                         work1 = true;
+                        if (inStn.getSourcePlcId() == 4){
+                            matnr = staProtocol.getMatnr();
+                        }
                         devpThread.setPakMk(inStn.getSourceStaNo(),false);
+
                         break;
                     }
                 }
@@ -2573,6 +2585,9 @@
                         souSta2 = inStn.getSourceStaNo().shortValue();
                         sta2 = inStn.getStaNo().shortValue();
                         work2 = true;
+                        if (inStn.getSourcePlcId() == 4){
+                            matnr2 = staProtocol.getMatnr();
+                        }
                         devpThread.setPakMk(inStn.getSourceStaNo(),false);
                         break;
                     }
@@ -2594,12 +2609,15 @@
                     command.setDestinationStaNo2(sta2);  // 鐩爣绔�
                     command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
 
+                    command.setMatnr(matnr);
+                    command.setMatnr2(matnr2);
+
                     if (workNo1 == 0 && workNo2 !=0){
-                        command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐�
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐�
                     } else if (workNo1 != 0 && workNo2 ==0) {
-                        command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐�
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 1鍙栨斁璐�
                     }else {
-                        command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐�
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: all鍙栨斁璐�
                     }
                     command.setCommand(false);
                     rgvTaskSave(command);
@@ -2627,23 +2645,24 @@
             }
 
             //宸ヤ綅涓�浠诲姟瀹屾垚
-            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 1) {
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
                 WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
                 if (Cools.isEmpty(wrkMastSta)){
                     log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                     continue;
                 }
                 for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId());
-                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo());
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
                     if (staProtocol == null) {
                         continue;
                     } else {
                         staProtocol = staProtocol.clone();
                     }
+
                     if (staProtocol.isAutoing() && staProtocol.isLoading()  && staProtocol.isPakMk()){
-//                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-//                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
+                        staProtocol.setStaNo(wrkMastSta.getWrkEnd().shortValue());
                         if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
                             continue;
                         }
@@ -2656,15 +2675,15 @@
             }
 
             //宸ヤ綅浜屼换鍔″畬鎴�
-            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 1) {
-                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) {
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
                 if (Cools.isEmpty(wrkMastSta)){
                     log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                     continue;
                 }
                 for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId());
-                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo());
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
                     if (staProtocol == null) {
                         continue;
                     } else {
@@ -2672,16 +2691,122 @@
                     }
                     if (staProtocol.isAutoing() && staProtocol.isLoading()  && staProtocol.isPakMk()){
 //                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-//                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                        if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
-                            continue;
-                        }
+////                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+//                        if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
+//                            continue;
+//                        }
                     }
 
                 }
 
                 MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
                 log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2());
+            }
+        }
+    }
+
+    //浜屽彿rgv杈撻�佺嚎鍛戒护涓嬪彂
+    public synchronized void RGV2Taskput() {
+        for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+            if (rgvSlave.getId() !=2){
+                continue;
+            }
+            ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (Cools.isEmpty(rgvProtocol)){
+                continue;
+            }else {
+                rgvProtocol = rgvProtocol.clone();
+            }
+
+            //宸ヤ綅涓�浠诲姟瀹屾垚
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) {
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
+                if (Cools.isEmpty(wrkMastSta)){
+                    log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                    continue;
+                }
+                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+
+                    if (outStn.getStaPlcId() == 2){
+                        if (staProtocol.isAutoing() && !staProtocol.isLoading()  && staProtocol.isPakMk()){
+                            staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
+                            staProtocol.setStaNo((short) 2106);
+                            staProtocol.setMatnr(wrkMastSta.getMatnr1().shortValue());
+
+                            if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
+                                continue;
+                            }
+                        }
+                    }
+
+                }
+            }
+
+            //宸ヤ綅浜屼换鍔″畬鎴�
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded1() == 1) {
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+                if (Cools.isEmpty(wrkMastSta)){
+                    log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                    continue;
+                }
+                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (outStn.getStaPlcId() == 2){
+                        if (staProtocol.isAutoing() && !staProtocol.isLoading()  && staProtocol.isPakMk()){
+                            staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue());
+                            staProtocol.setStaNo((short) 2106);
+                            staProtocol.setMatnr(wrkMastSta.getMatnr2().shortValue());
+
+                            if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
+                                continue;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    public synchronized void RGV2TaskOver() {
+        for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+            if (rgvSlave.getId() !=2){
+                continue;
+            }
+            ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (Cools.isEmpty(rgvProtocol)){
+                continue;
+            }else {
+                rgvProtocol = rgvProtocol.clone();
+            }
+
+            //宸ヤ綅涓�浠诲姟瀹屾垚
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
+
+                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
+                log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
+            }
+
+            //宸ヤ綅浜屼换鍔″畬鎴�
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) {
+
+
+                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
+                log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
             }
         }
     }
@@ -2705,6 +2830,8 @@
         wrkMastSta.setUpdateTime(now);
         wrkMastSta.setWrkCrn(command.getRgvNo());
         wrkMastSta.setWrkType(command.getTaskMode().intValue());
+        wrkMastSta.setMatnr1(command.getMatnr().intValue());
+        wrkMastSta.setMatnr2(command.getMatnr2().intValue());
         return wrkMastStaService.insert(wrkMastSta);
     }
 

--
Gitblit v1.9.1