From 4453cdecbc6e7a925ae76e3223418654f1cf0b18 Mon Sep 17 00:00:00 2001 From: taisheng <taisheng@qq.com> Date: 星期二, 22 四月 2025 16:01:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 137 +++++++++++++++++++++++---------------------- 1 files changed, 69 insertions(+), 68 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 ffb8a10..c756228 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -179,14 +179,14 @@ return false; } - //妫�娴嬮殰纰嶇墿杞� - boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ - add(shuttleProtocol.getShuttleNo()); - }}); - if (checkObstacle) { - News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); - return false; - } +// //妫�娴嬮殰纰嶇墿杞� +// boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ +// add(shuttleProtocol.getShuttleNo()); +// }}); +// if (checkObstacle) { +// News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); +// return false; +// } ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙� @@ -269,19 +269,6 @@ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭鎵惧埌鍖归厤鐨勬彁鍗囨満", wrkMast.getWrkNo()); return false; } - - //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟 - WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftNo); - if (liftWrkMast != null) { - if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚� - News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftNo); - return false; - } - } - - wrkMast.setLiftNo(liftNo); - wrkMast.setModiTime(new Date()); - wrkMastService.updateById(wrkMast); } ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo); @@ -363,14 +350,14 @@ return false; } - //妫�娴嬮殰纰嶇墿杞� - boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{ - add(shuttleProtocol.getShuttleNo()); - }}); - if (checkObstacle) { - News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); - return false; - } +// //妫�娴嬮殰纰嶇墿杞� +// boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{ +// add(shuttleProtocol.getShuttleNo()); +// }}); +// if (checkObstacle) { +// News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); +// return false; +// } ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙� @@ -555,6 +542,15 @@ return false; } + //妫�娴嬮殰纰嶇墿杞� + boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ + add(shuttleProtocol.getShuttleNo()); + }}); + if (checkObstacle) { + News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); + return false; + } + ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙� assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//灏忚溅绉诲簱浠诲姟 @@ -580,8 +576,8 @@ return false; } - commands.add(0, liftCommand.get(0)); - commands.add(liftCommand2.get(0)); +// commands.add(0, liftCommand.get(0)); +// commands.add(liftCommand2.get(0)); assignCommand.setCommands(commands); wrkMast.setWrkSts(WrkStsType.LOC_MOVE_SHUTTLE_RUN.sts);//灏忚溅鎼繍涓� 501.鐢熸垚绉诲簱浠诲姟 ==> 502.灏忚溅鎼繍涓� @@ -757,15 +753,6 @@ //--------------------------------------鎻愬崌鏈哄嚭搴�-----------------------------------------// //103.灏忚溅鎼繍瀹屾垚 ==> 104.鎻愬崌鏈烘惉杩愪腑 if (wrkMast.getWrkSts() == WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts) { - ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); - if (shuttleThread == null) { - return false; - } - ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); - if(shuttleProtocol == null) { - return false; - } - //鑾峰彇婧愮珯 ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo()); if (liftSta == null) { @@ -773,20 +760,38 @@ return false;//鎵句笉鍒扮珯鐐� } - if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { - //灏忚溅杩樺湪杈撻�佺珯鐐� - //鑾峰彇灏忚溅寰呮満浣� - String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); - if(standbyLocNo == null) { - News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo()); + if(wrkMast.getShuttleNo() != null) { + ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); + if (shuttleThread == null) { return false; } - //璋冨害灏忚溅鍘诲緟鏈轰綅 - boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); - if (!dispatchShuttle) { - News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞﹀湪杈撻�佺珯鐐硅皟搴﹀皬杞﹂伩璁╁け璐�", wrkMast.getWrkNo()); + ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); + if(shuttleProtocol == null) { return false; } + + if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { + //灏忚溅杩樺湪杈撻�佺珯鐐� + //鑾峰彇灏忚溅寰呮満浣� + String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); + if (standbyLocNo == null) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo()); + return false; + } + //璋冨害灏忚溅鍘诲緟鏈轰綅 + boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); + if (!dispatchShuttle) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞﹀湪杈撻�佺珯鐐硅皟搴﹀皬杞﹂伩璁╁け璐�", wrkMast.getWrkNo()); + return false; + } + } else { + //灏忚溅宸蹭笉鍦ㄨ緭閫佺珯鐐逛綅缃紝閲婃斁灏忚溅 + wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 + wrkMast.setModiTime(new Date()); + wrkMastService.updateById(wrkMast); + return false; + } + return false; } if (liftSta.getHasCar()) { @@ -1379,14 +1384,14 @@ return false; } - //妫�娴嬮殰纰嶇墿杞� - boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ - add(shuttleProtocol.getShuttleNo()); - }}); - if (checkObstacle) { - News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); - return false; - } +// //妫�娴嬮殰纰嶇墿杞� +// boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ +// add(shuttleProtocol.getShuttleNo()); +// }}); +// if (checkObstacle) { +// News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); +// return false; +// } //璋冨害灏忚溅鍘诲緟鏈轰綅 boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), basShuttleCharge.getWaitLocNo(), wrkMast.getShuttleNo()); @@ -1771,15 +1776,6 @@ return false;//璺緞璁$畻澶辫触 } - //妫�娴嬮殰纰嶇墿杞� - boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ - add(shuttleProtocol.getShuttleNo()); - }}); - if (checkObstacle) { - News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); - return false; - } - assignCommand.setCommands(commands); wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 309.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 310.灏忚溅绉诲姩涓� @@ -1813,6 +1809,11 @@ continue; } + List<Integer> conveyorBindLiftAllStaNo = ForkLiftUtils.getConveyorBindLiftAllStaNo(liftNo); + if (conveyorBindLiftAllStaNo.isEmpty()) { + continue; + } + //鑾峰彇鍏ュ簱浠诲姟 List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() .in("sta_no", liftAllStaNo) @@ -1827,7 +1828,7 @@ //鑾峰彇鍑哄簱浠诲姟 List<WrkMast> outWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() - .eq("lift_no", liftNo) + .in("sta_no", conveyorBindLiftAllStaNo) .in("wrk_sts" , WrkStsType.NEW_OUTBOUND.sts , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts -- Gitblit v1.9.1