From b6428016edf3de843020bc95fd1708d3bb1961e5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 07 七月 2025 16:41:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 92 +++++++++++++++++++++++++++++++++------------ 1 files changed, 67 insertions(+), 25 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 e6ccc5e..93ba72d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -309,6 +309,23 @@ return false; } + List<WrkMast> shuttleMoveList = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("io_type", 200) + ); + for (WrkMast moveWrkMast : shuttleMoveList) { + if(Utils.getLev(moveWrkMast.getLocNo()) != Utils.getLev(wrkMast.getSourceLocNo())) { + continue; + } + + if(Utils.getLev(moveWrkMast.getLocNo()) == Utils.getLev(moveWrkMast.getSourceLocNo())) { + continue; + } + + //瀛樺湪鎹㈠眰浠诲姟锛屽嚭搴撲换鍔℃殏鏃朵笉鎵ц + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ崲灞備换鍔★紝鍑哄簱浠诲姟绛夊緟涓�", wrkMast.getWrkNo()); + return false; + } + boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(wrkMast.getSourceLocNo(), liftSta.getLocNo()); if(!checkLocPathIsAvailable) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭璁$畻鍒板彲鎵ц璺緞锛岀瓑寰呬腑", wrkMast.getWrkNo()); @@ -676,6 +693,29 @@ return false; } + //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞� + boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev()); + if (!checkLevHasShuttle) { + if (wrkMast.getShuttleNo() != null) { + return false; + } + + //鑾峰彇灏忚溅寰呮満浣� + String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); + if (standbyLocNo == null) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo()); + return false; + } + + //璋冨害灏忚溅鍘诲緟鏈轰綅 + boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo); + if (!dispatchShuttle) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo()); + return false; + } + return false; + } + Integer liftNo = wrkMast.getLiftNo(); if (liftNo == null) { //鏈垎閰嶆彁鍗囨満 @@ -711,29 +751,6 @@ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庡叆搴撴ā寮� if (!forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.IN)) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾彁鍗囨満涓嶅浜庡叆搴撴ā寮忥紝绂佹鍏ュ簱", wrkMast.getWrkNo()); - return false; - } - - //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞� - boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev()); - if (!checkLevHasShuttle) { - if (wrkMast.getShuttleNo() != null) { - return false; - } - - //鑾峰彇灏忚溅寰呮満浣� - String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); - if (standbyLocNo == null) { - News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo()); - return false; - } - - //璋冨害灏忚溅鍘诲緟鏈轰綅 - boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo); - if (!dispatchShuttle) { - News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo()); - return false; - } return false; } @@ -1343,7 +1360,7 @@ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿 assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙� - assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡 + assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE_ON.id);//鍏呯數寮� assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆) List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, true); @@ -1384,7 +1401,7 @@ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿 assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙� - assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡 + assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE_OFF.id);//鍏呯數鍏� assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆) List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, false); @@ -1561,6 +1578,15 @@ return false; } + //灏忚溅宸插湪杩戠偣浣嶇疆鏃犻渶鍓嶅線 + if (shuttleProtocol.getCurrentLocNo().equals(endLocation)) { + wrkMast.setWrkSts(WrkStsType.MOVE_NEARBY_COMPLETE.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 303.灏忚溅绉诲姩鑷宠繎鐐瑰畬鎴� + wrkMast.setModiTime(now); + wrkMast.setSystemMsg("");//娓呯┖娑堟伅 + wrkMastService.updateById(wrkMast); + return true; + } + //鑾峰彇灏忚溅鍒拌繎鐐硅璧板懡浠� List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), endLocation, NavigationMapType.NORMAL.id, assignCommand, shuttleThread); if (commands == null) { @@ -1644,6 +1670,22 @@ return false; } + List<WrkMast> outWrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("io_type", 101) + .in("wrk_sts" + , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts + , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts + , WrkStsType.OUTBOUND_LIFT_RUN.sts + , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts + ) + ); + for (WrkMast outWrkMast : outWrkMastList) { + if(Utils.getLev(outWrkMast.getSourceLocNo()) == Utils.getLev(wrkMast.getLocNo())) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ鍦ㄦ墽琛岀殑灏忚溅鍑哄簱浠诲姟锛岀姝㈢Щ鍔ㄨ嚦绔欑偣", wrkMast.getWrkNo()); + return false; + } + } + if (wrkMast.getLiftNo() == null) { //鐢宠鎻愬崌鏈鸿祫婧�(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満) boolean applyForkLift = forkLiftAction.applyForkLift(liftSta.getLiftNo(), wrkMast.getWrkNo()); -- Gitblit v1.9.1