From bafb86306b03d36a8c192253b3f3f1d14db02eac Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期五, 11 四月 2025 13:43:49 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++------- 1 files changed, 103 insertions(+), 23 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 162bc07..c43df73 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -90,24 +90,8 @@ private BasLiftOptService basLiftOptService; @Autowired private LiftAction liftAction; - - //鍏ュ簱绔欑偣 - public static final ArrayList<Integer> inSta = new ArrayList<Integer>() {{ - add(1012); - add(1014); - add(1022); - add(1025); - add(1032); - }}; - - //鍑哄簱绔欑偣 - public static final ArrayList<Integer> outSta = new ArrayList<Integer>() {{ - add(1012); - add(1014); - add(1022); - add(1025); - add(1032); - }}; + @Autowired + private NoLiftInServiceImpl noLiftInService; private boolean isInEnable(DevpThread devpThread, Integer staNo) { @@ -180,7 +164,7 @@ */ public synchronized void generateInboundWrk() { try { - DevpSlave devpSlave = slaveProperties.getDevpSlave().get(0); + DevpSlave devpSlave = slaveProperties.getDevp().get(0); // 閬嶅巻鍏ュ簱鍙� for (DevpSlave.Sta inSta : devpSlave.getInSta()) { // 鑾峰彇鍏ュ簱绔欎俊鎭� @@ -232,7 +216,6 @@ } continue; } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) @@ -243,7 +226,6 @@ if (!Cools.isEmpty(barcode)) { News.info("鏉$爜鎵弿鍣ㄦ娴嬫潯鐮佷俊鎭細{}", barcode); } - // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() .eq("source_sta_no", inSta.getStaNo()) @@ -331,6 +313,74 @@ } } catch (Exception e) { e.printStackTrace(); + } + } + + + /** + * 鍑哄簱鍒板嚭搴撳彛 + */ + public synchronized void stnToOutStn() { + DevpSlave devpSlave = slaveProperties.getDevp().get(0); + // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 + for (DevpSlave.Sta outSta : devpSlave.getOutSta()) { + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId()); + StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { + // 鏌ヨ宸ヤ綔妗� +// WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId()); +// if (wrkMast == null) { +// continue; +// } +// // 鍒ゆ柇宸ヤ綔妗f潯浠� +// if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) { +// +// } + + // 鍒ゆ柇杈撻�佺嚎鍜屽皬杞︾姸鎬佺姸鎬佺瓑寰呯‘璁� +// if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) +// && crnProtocol.statusType == CrnStatusType.WAITING +// && crnProtocol.forkPosType == CrnForkPosType.HOME) { +// log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�"); +// +// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- +// +// // 涓嬪彂绔欑偣淇℃伅 +// staProtocol.setWorkNo(wrkMast.getWrkNo()); +// staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(), wrkMast.getSourceStaNo())); +// if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { +// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触"); +// continue; +// } else { +// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛"); +// } +// +// // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 +// wrkMast.setWrkSts(14L); +// wrkMast.setCrnEndTime(new Date()); +// if (wrkMastMapper.updateById(wrkMast) != 0) { +// // 澶嶄綅鍫嗗灈鏈� +// log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo()); +// crnThread.setResetFlag(true); +// } else { +// News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo()); +// } +// +// } else { +// News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�" +// + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO +// + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue() +// + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING +// + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME); +// } + + } } } @@ -737,7 +787,30 @@ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts); shuttleThread.setSyncTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 - } else { + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_1.sts) { + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_2.sts); + shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_3.sts) { + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_4.sts); + shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_7.sts) { + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_8.sts); + shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_11.sts) { + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_12.sts); + shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_13.sts) { + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_14.sts); + shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + } + + + else { continue; } @@ -1389,6 +1462,12 @@ } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_LIFT_TO_SHUTTLE_TRANSPORT_LIFT_OUT.sts) { //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_TO_SHUTTLE_COMPLETE_TRANSPORT_LIFT_OUT.sts); + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_5.sts) { + //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_6.sts); + }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_9.sts) { + //鎻愬崌鏈鸿嚦灏忚溅灞� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� + wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_10.sts); } wrkMast.setModiTime(new Date()); @@ -1891,7 +1970,7 @@ if ("TRANSPORT_LIFT".equals(wrkMast.getMk())) { this.shuttleMoveExecuteTransportLift(wrkMast); } else if ("TRANSPORT_DEVP".equals(wrkMast.getMk())) { - + noLiftInService.shuttleMoveExecute(wrkMast); } else { this.shuttleMoveExecuteMove(wrkMast); } @@ -1928,6 +2007,7 @@ } } + private void shuttleMoveExecuteTransportLift(WrkMast wrkMast) { LiftThread liftThread = LiftUtils.getRecentLift(wrkMast.getLocNo()); if (liftThread == null) { -- Gitblit v1.9.1