From c97e67b2b569bf9845acbe6a088b7a2b0f8d6a11 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 05 八月 2025 09:22:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 38 insertions(+), 6 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 3f01cfd..aadf7ed 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -183,7 +183,7 @@ //妫�娴嬮殰纰嶇墿杞� boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ add(shuttleProtocol.getShuttleNo()); - }}); + }}, new ArrayList<>()); if (checkObstacle) { News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); return false; @@ -374,7 +374,7 @@ //妫�娴嬮殰纰嶇墿杞� boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getSourceLocNo(), new ArrayList<Integer>() {{ add(shuttleProtocol.getShuttleNo()); - }}); + }}, new ArrayList<>()); if (checkObstacle) { News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); return false; @@ -383,6 +383,13 @@ //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃� shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐� News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); + return false; + } + + //妫�娴嬫槸鍚﹀瓨鍦ㄧЩ鍔ㄤ换鍔� + WrkMast moveWorking = wrkMastService.selectShuttleHasMoveWorking(wrkMast.getShuttleNo()); + if (moveWorking != null) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞﹀瓨鍦ㄧЩ鍔ㄤ换鍔�", wrkMast.getWrkNo()); return false; } @@ -487,15 +494,29 @@ return false; } + if (shuttleProtocol.getCurrentLocNo() == null) { + return false; + } + + //鍒ゆ柇灏忚溅鏄惁鍒拌揪璐х墿搴撲綅 if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) { + //灏忚溅鏈埌杈惧彇璐т綅缃� + shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐� News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞︽湭鍒拌揪鍙栬揣浣嶇疆", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + return false; + } + + //妫�娴嬫槸鍚﹀瓨鍦ㄧЩ鍔ㄤ换鍔� + WrkMast moveWorking = wrkMastService.selectShuttleHasMoveWorking(wrkMast.getShuttleNo()); + if (moveWorking != null) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞﹀瓨鍦ㄧЩ鍔ㄤ换鍔�", wrkMast.getWrkNo()); return false; } //妫�娴嬮殰纰嶇墿杞� boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ add(shuttleProtocol.getShuttleNo()); - }}); + }}, new ArrayList<>()); if (checkObstacle) { News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); return false; @@ -506,9 +527,10 @@ assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//灏忚溅绉诲簱浠诲姟 assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙� assignCommand.setAuto(true);//鑷姩妯″紡 + assignCommand.setLocNo(wrkMast.getLocNo()); //鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠� - List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), NavigationMapType.getDfxWithDevice(), assignCommand, shuttleThread); + List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.DFX), assignCommand, shuttleThread); if (commands == null) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false; @@ -1073,6 +1095,16 @@ continue; } + WrkMast wrkMast1 = wrkMastService.selectShuttleWorking(shuttleProtocol.getShuttleNo()); + if (wrkMast1 != null) { + continue; + } + + WrkMast wrkMast2 = wrkMastService.selectShuttleHasMoveWorking(shuttleProtocol.getShuttleNo()); + if (wrkMast2 != null) { + continue; + } + WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo()); if (wrkMast != null) {//宸叉湁鍏呯數浠诲姟 continue; @@ -1354,7 +1386,7 @@ //妫�娴嬮殰纰嶇墿杞� boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ add(shuttleProtocol.getShuttleNo()); - }}); + }}, new ArrayList<>()); if (checkObstacle) { News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo()); return false; @@ -1807,7 +1839,7 @@ assignCommand.setLocNo(wrkMast.getLocNo());//鐩爣搴撲綅 //鑾峰彇灏忚溅鍒扮洰鏍囧簱浣嶅懡浠� - List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), NavigationMapType.getNormalWithDevice(), assignCommand, shuttleThread); + List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), assignCommand, shuttleThread); if (commands == null) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false;//璺緞璁$畻澶辫触 -- Gitblit v1.9.1