From a6b762e09d8a7de57a7a76d3dfc3dd23b969ae1e Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 15 五月 2024 21:10:14 +0800
Subject: [PATCH] #二楼

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  200 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 145 insertions(+), 55 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 c8e653d..08a9a18 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2521,6 +2521,9 @@
 
                 //宸ヤ綅涓�浠诲姟
                 for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
+                    if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 2114){
+                        continue;
+                    }
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
                     StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
                     if (staProtocol == null) {
@@ -2553,6 +2556,9 @@
                         if (souSta1 == inStn.getSourceStaNo()){
                             continue;
                         }
+                        if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 1014){
+                            continue;
+                        }
                         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
                         StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
                         if (staProtocol == null) {
@@ -2569,7 +2575,7 @@
                                     continue;
                                 }
                                 workNo2 = wrkMast.getWrkNo();
-                                souSta2 = inStn.getSourceStaNo().shortValue();
+                                souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId());
                                 sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
                                 work2 = true;
                                 devpThread.setPakMk(inStn.getSourceStaNo(),false);
@@ -2646,16 +2652,37 @@
             if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
 
                 try {
-                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
-                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
-                    if (Cools.isEmpty(wrkMastSta1)){
-                        log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
-                    }else {
-                        if (wrkMastSta1.getWrkType() == 8 ){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand()));
+                    log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
+                    if (offer){
+                        //瀹屾垚rgv浠诲姟
+                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
+                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+                        if (Cools.isEmpty(wrkMastSta1)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                        }else {
+                            if (wrkMastSta1.getWrkType() == 8 ){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }
+                        }
+
+                        //瀹屾垚宸ヤ綔妗d换鍔�
+                        if (rgvSlave.getId() != 1){
+                            WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
+                            if (Cools.isEmpty(wrkMast)){
+                                log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                            }else {
+                                if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
+                                    Date date = new Date();
+                                    wrkMast.setWrkSts(14L);
+                                    wrkMast.setModiTime(date);
+                                    wrkMastService.updateById(wrkMast);
+                                }
+                            }
                         }
                     }
+
 
                 }catch (Exception e){
                     log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2663,26 +2690,47 @@
                 }
 
 
-                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.getLoaded2() == 0) {
                 try {
-                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
-                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
-                    if (Cools.isEmpty(wrkMastSta1)){
-                        log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
-                    }else {
-                        if (wrkMastSta1.getWrkType() == 9 ){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
-                        }else if (wrkMastSta1.getWrkType() == 1){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand()));
+                    log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
+                    if (offer){
+                        //瀹屾垚rgv浠诲姟
+                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no2", rgvProtocol.getTaskNo2());
+                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+                        if (Cools.isEmpty(wrkMastSta1)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                        }else {
+                            if (wrkMastSta1.getWrkType() == 9 ){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }else if (wrkMastSta1.getWrkType() == 1){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }
                         }
+
+                        //瀹屾垚宸ヤ綔妗d换鍔�
+                        if (rgvSlave.getId() != 1){
+                            WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
+                            if (Cools.isEmpty(wrkMast)){
+                                log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                            }else {
+                                if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
+                                    Date date = new Date();
+                                    wrkMast.setWrkSts(14L);
+                                    wrkMast.setModiTime(date);
+                                    wrkMastService.updateById(wrkMast);
+                                }
+                            }
+                        }
+
                     }
+
                 }catch (Exception e){
                     log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                     continue;
@@ -2690,8 +2738,7 @@
 
 
 
-                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
-                log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
+
             }
         }
     }
@@ -2712,7 +2759,7 @@
 
             //宸ヤ綅涓�浠诲姟瀹屾垚
             if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) {
-                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvSlave.getId(), rgvProtocol.getTaskNo1());
                 WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
                 if (Cools.isEmpty(wrkMastSta)){
                     log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2731,7 +2778,12 @@
                     }
                     if (staProtocol.isAutoing() && !staProtocol.isLoading()  && staProtocol.isPakMk()){
                         staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
-                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        if (rgvSlave.getId() == 3 && outStn.getStaPlcId() == 6){
+                            staProtocol.setStaNo((short)2401);
+                        }else {
+                            staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        }
+
                         MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol));
                     }
                 }
@@ -2739,16 +2791,16 @@
 
             //宸ヤ綅浜屼换鍔″畬鎴�
             if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) {
-                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
                 WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
                 if (Cools.isEmpty(wrkMastSta)){
                     log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                     continue;
                 }
                 for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
-                    if (wrkMastSta.getStaEnd() != outStn.getStaNo()){
+                    if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getStaEnd()), outStn.getStaNo())){
                         continue;
-                    }
+                    }//鍒ゆ柇鏄惁涓哄伐浣滄。绔欑偣
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
                     StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
                     if (staProtocol == null) {
@@ -2868,16 +2920,37 @@
             if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
 
                 try {
-                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
-                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
-                    if (Cools.isEmpty(wrkMastSta1)){
-                        log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
-                    }else {
-                        if (wrkMastSta1.getWrkType() == 8 ){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand()));
+                    log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
+                    if (offer){
+
+                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
+                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+                        if (Cools.isEmpty(wrkMastSta1)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                        }else {
+                            if (wrkMastSta1.getWrkType() == 8 ){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }
                         }
+
+                        //瀹屾垚宸ヤ綔妗d换鍔�
+                        WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
+                        if (Cools.isEmpty(wrkMast)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                        }else {
+                            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
+                                Date date = new Date();
+                                wrkMast.setWrkSts(14L);
+                                wrkMast.setModiTime(date);
+                                wrkMastService.updateById(wrkMast);
+                            }
+                        }
+
+
                     }
+
 
                 }catch (Exception e){
                     log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2885,26 +2958,44 @@
                 }
 
 
-                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.getLoaded2() == 0) {
                 try {
-                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
-                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
-                    if (Cools.isEmpty(wrkMastSta1)){
-                        log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
-                    }else {
-                        if (wrkMastSta1.getWrkType() == 9 ){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
-                        }else if (wrkMastSta1.getWrkType() == 1){
-                            wrkMastSta1.setWrkSts(3);
-                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand()));
+                    log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
+                    if (offer){
+                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
+                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+                        if (Cools.isEmpty(wrkMastSta1)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                        }else {
+                            if (wrkMastSta1.getWrkType() == 9 ){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }else if (wrkMastSta1.getWrkType() == 1){
+                                wrkMastSta1.setWrkSts(3);
+                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+                            }
                         }
+
+                        //瀹屾垚宸ヤ綔妗d换鍔�
+                        WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
+                        if (Cools.isEmpty(wrkMast)){
+                            log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                        }else {
+                            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
+                                Date date = new Date();
+                                wrkMast.setWrkSts(14L);
+                                wrkMast.setModiTime(date);
+                                wrkMastService.updateById(wrkMast);
+                            }
+                        }
+
                     }
+
 
                 }catch (Exception e){
                     log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2913,17 +3004,16 @@
 
 
 
-                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
-                log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
+
             }
         }
     }
 
     public boolean rgvTaskSave(RgvCommand command){
-        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1());
-        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+//        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1());
+        List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo1(),command.getTaskNo2());
         if (!Cools.isEmpty(wrkMastSta1)){
-            wrkMastStaService.delete(wrkMastStaWrapper);
+            wrkMastStaService.deleteBatchIds(wrkMastSta1);
         }
         WrkMastSta wrkMastSta = new WrkMastSta();
         wrkMastSta.setWrkNo(Long.valueOf(command.getTaskNo1()));

--
Gitblit v1.9.1