From 7f1b7dcd78cf25a06fdcad8fb70330668b45d1b0 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 08 九月 2023 13:40:33 +0800
Subject: [PATCH] #流程改动

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  211 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 150 insertions(+), 61 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 05d2f26..d218b19 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
 import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.mapper.WaitPakinMapper;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
@@ -69,6 +70,8 @@
     private WrkMastMapper wrkMastMapper;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private WaitPakinMapper waitPakinMapper;
     @Autowired
     private LocMastService locMastService;
     @Autowired
@@ -534,6 +537,7 @@
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
             if (rgvProtocol == null) {
+
                 continue;
             }
             BasRgv basRgv = basRgvService.selectById(rgv.getId());
@@ -585,6 +589,8 @@
         for (WrkMast wrkMast : wrkMasts) {
             //鐩爣绔�
             Integer staNo = wrkMast.getStaNo();
+            //婧愮珯
+            Integer sourceStaNo = wrkMast.getSourceStaNo();
             //閫氳繃鐩爣绔欐悳绱gv鍙�
             Integer rgvNo = this.searchRgvNo(staNo);
             if (rgvNo == null) {//鏈壘鍒板彲鐢ㄧ殑rgv
@@ -647,7 +653,7 @@
                             continue;
                         }
                         //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
-                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -693,7 +699,7 @@
                             continue;
                         }
                         //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
-                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -736,7 +742,7 @@
                             continue;
                         }
                         //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
-                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -782,7 +788,7 @@
                             continue;
                         }
                         //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
-                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -809,6 +815,10 @@
 
             }
         }
+    }
+
+    private boolean rgvIoExecuteWrk2To3() {
+        return false;
     }
 
     /**
@@ -1802,6 +1812,18 @@
                     log.error("宸ヤ綅1淇敼宸ヤ綔妗g姸鎬佸け璐ワ紒锛侊紝宸ヤ綔鍙�={}", wrkMast1.getWrkNo());
                 }
 
+                //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                RgvCommand rgvCommand = new RgvCommand();
+                rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+                rgvCommand.setAckFinish1((short) 1);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+                rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+                rgvCommand.setTaskMode1(RgvTaskModeType.NONE); // 宸ヤ綅1浠诲姟妯″紡:  鏃�
+                rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
+                if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(4, rgvCommand))) {
+                    //step=2,宸ヤ綅1銆�2浠诲姟纭锛�   step=4锛屽伐浣�1纭锛�     step=5锛屽伐浣�2浠诲姟纭
+                    log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+                }
+
 //                //宸ヤ綅1鍙栬揣瀹屾垚鍚庯紝宸ヤ綅2鏄棤璐х┖闂茬姸鎬佹椂锛屽噯澶囩粰宸ヤ綅2鍙戜换鍔★紝纭鏄惁鏈夊緟鎵цRGV浠诲姟
 //                if (rgvProtocol.getModeType() == RgvModeType.AUTO
 //                        && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0
@@ -2501,64 +2523,7 @@
                         e.printStackTrace();
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     }
-
-
-//                    // 妫�绱㈠簱浣�
-//                    LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-//                    StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto, 0);
-//                    // 宸ヤ綔鍙�
-//                    int workNo = startupDto.getWorkNo();
-//
-//                    try {
-//                        // 鎻掑叆宸ヤ綔涓绘。
-//                        WrkMast wrkMast = new WrkMast();
-//                        wrkMast.setWrkNo(workNo);
-//                        wrkMast.setIoTime(new Date());
-//                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
-//                        wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
-//                        wrkMast.setIoPri(10D); // 浼樺厛绾э細10
-//                        wrkMast.setCrnNo(startupDto.getCrnNo());
-//                        wrkMast.setSourceStaNo(startupDto.getSourceStaNo());
-//                        wrkMast.setStaNo(startupDto.getStaNo());
-//                        wrkMast.setLocNo(startupDto.getLocNo());
-//                        wrkMast.setFullPlt("N"); // 婊℃澘
-//                        wrkMast.setPicking("N"); // 鎷f枡
-//                        wrkMast.setExitMk("N"); // 閫�鍑�
-//                        wrkMast.setEmptyMk("Y"); // 绌烘澘
-//                        wrkMast.setLinkMis("N");
-////                    wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
-//                        // 鎿嶄綔浜哄憳鏁版嵁
-//                        wrkMast.setAppeTime(new Date());
-//                        wrkMast.setModiTime(new Date());
-//                        Integer insert = wrkMastMapper.insert(wrkMast);
-//                        if (insert == 0) {
-//                            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-//                        }
-//                        // 鏇存柊鐩爣搴撲綅鐘舵��
-//                        LocMast locMast = locMastService.selectById(startupDto.getLocNo());
-//                        locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
-//                        locMast.setModiTime(new Date());
-//                        if (!locMastService.updateById(locMast)){
-//                            throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-//                        }
-//                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//
-//                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-//                        staProtocol.setWorkNo((short) workNo);
-//                        staProtocol.setStaNo(startupDto.getStaNo().shortValue());
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                    }
-
                 }
-
-
             }
         }
     }
@@ -3241,4 +3206,128 @@
             }
         }
     }
+
+//    /**
+//     * 鍏朵粬  ===>> 鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩�
+//     */
+//    public synchronized void dischargingMachineOutputTray() {
+//        try {
+//            List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
+//            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
+//                return;
+//            }
+//
+//            // 鑾峰彇鍏ュ簱绔欎俊鎭�
+//            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+//            StaProtocol staProtocol = devpThread.getStation().get(213);
+//            if (staProtocol == null) {
+//                log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规煡璇㈠け璐�");
+//                return;
+//            } else {
+//                staProtocol = staProtocol.clone();
+//            }
+//
+//            if (!staProtocol.isLoading()){
+//                log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规棤鐗╋紝姝e湪鑷姩璋冨嚭绌烘澘锛�");
+//                int i = wrkMastMapper.selectConfigCount10468N();
+//                if (i==1){
+//                    wrkMastMapper.updateConfig10468Y();
+//                }
+//                return;
+//            }else {
+//                int i = wrkMastMapper.selectConfigCount10468N();
+//                if (i==0){
+//                    return;
+//                }
+//            }
+//            StaProtocol staProtocol214 = devpThread.getStation().get(214);
+//            // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+//            if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
+//                staProtocol.setWorkNo((short)9999);
+//                staProtocol.setStaNo((short)214);
+//                devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
+//                if (!result) {
+//                    throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紒");
+//                }
+//                log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂鎴愬姛锛氬伐浣滃彿9999銆佺洰鏍囩珯214锛�");
+//            }else {
+//                log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐圭姸鎬佷笉绗﹀悎锛�");
+//            }
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//        }
+//    }
+
+//    /**
+//     * 鍏朵粬  ===>> 鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴�
+//     */
+//    public synchronized void scanBarcodeEmptyBoard() {
+//        try {
+//
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//        }
+//    }
+
+    /**
+     * 鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級
+     */
+    public synchronized void stackingCompletionDriveTray() {
+        try {
+            int[] staNos=new int[]{216,220};
+            for (int staNo : staNos){
+                BasDevp basDevp = basDevpService.selectById(staNo);
+                if (basDevp.getWrkNo()!=9992 || Cools.isEmpty(basDevp.getBarcode())){
+                    continue;
+                }
+                Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N"));
+                if (zpallet<=0){
+                    continue;
+                }
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+
+                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
+//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+//                    continue;
+//                }
+
+                if (!staProtocol.isLoading()){
+                    log.info("绔欑偣鏃犵墿锛屾鍦ㄨ嚜鍔ㄨ皟鍑虹┖鏉匡紒");
+                    continue;
+                }
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
+                        && staProtocol.isInEnable()
+                        && !staProtocol.isEmptyMk()
+                        && staProtocol.getWorkNo() == 9992
+                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
+
+                    staProtocol.setWorkNo((short)9999);
+                    staNo = staNo + 1;
+                    staProtocol.setStaNo((short)staNo);
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
+                    if (!result) {
+                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
+                    }
+
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+    }
 }

--
Gitblit v1.9.1