From 81188cbe3d51e951ce4c853edb886272a4eb51a3 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 11 十二月 2024 15:59:00 +0800 Subject: [PATCH] #path similarity --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 108 +++++++++++++++++++++--------------------------------- 1 files changed, 42 insertions(+), 66 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java index d484864..f3e8394 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java @@ -109,14 +109,6 @@ return false; } - Double similarityRef = 0.9D; - Dict similarityRefDict = dictService.getOne(new LambdaQueryWrapper<Dict>() - .eq(Dict::getFlag, "similarityRef") - .eq(Dict::getStatus, 1)); - if (similarityRefDict != null) { - similarityRef = Double.parseDouble(similarityRefDict.getValue()); - } - ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(deviceNo); assignCommand.setTaskNo(motion.getTaskNo()); @@ -130,10 +122,6 @@ LiftThread liftThread = null; LiftProtocol liftProtocol = null; - String movePath = null; - List<NavigateNode> originPath = null; - List<NavigateNode> finalPath = null; - Double similarity = null; switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){ case SHUTTLE_MOVE: @@ -146,15 +134,8 @@ shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread); shuttleTaskModeType = ShuttleTaskModeType.SHUTTLE_MOVE; - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } break; @@ -168,15 +149,8 @@ shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.DFX.id, assignCommand, shuttleThread); shuttleTaskModeType = ShuttleTaskModeType.TRANSPORT; - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } if (motion.getReleaseLift() == 2) {//鎵ц涓噴鏀炬彁鍗囨満 @@ -220,15 +194,8 @@ shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.DFX.id, assignCommand, shuttleThread); shuttleTaskModeType = ShuttleTaskModeType.TRANSPORT_TO_CONVEYOR; - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } break; @@ -236,15 +203,8 @@ shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.DFX.id, assignCommand, shuttleThread); shuttleTaskModeType = ShuttleTaskModeType.MOVE_PALLET_LIFT; - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } shuttleCommands.add(0, shuttleThread.getLiftCommand(motion.getTaskNo(), true)); @@ -253,15 +213,8 @@ shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.DFX.id, assignCommand, shuttleThread); shuttleTaskModeType = ShuttleTaskModeType.MOVE_PALLET_DOWN; - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } shuttleCommands.add(shuttleCommands.size(), shuttleThread.getLiftCommand(motion.getTaskNo(), false)); @@ -373,15 +326,8 @@ String shuttleFromLiftStandbyLoc = shuttleDispatcher.searchAvailableLocNo(Integer.valueOf(shuttleDevice.getDeviceNo()), shuttleDevice.getHostId(), shuttleThread.getStatus().getCurrentLocNo(), standbyLocs); shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), shuttleFromLiftStandbyLoc, NavigationMapType.NORMAL.id, assignCommand, shuttleThread); - movePath = motion.getMovePath(); - if (!Cools.isEmpty(movePath)) { - originPath = JSON.parseArray(movePath, NavigateNode.class); - finalPath = assignCommand.getNodes(); - similarity = navigateUtils.similarityPath(originPath, finalPath); - if(similarity <= similarityRef) { - News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); - return false; - } + if (!checkSimilarityPath(motion, assignCommand)) { + return false; } //鏇存柊鍔ㄤ綔鍙敤寰呮満浣� @@ -701,5 +647,35 @@ return commands; } + private boolean checkSimilarityPath(Motion motion, ShuttleAssignCommand assignCommand) { + String movePath = motion.getMovePath(); + if (Cools.isEmpty(movePath)) { + return false; + } + + Double similarityRef = 0.9D; + Dict similarityRefDict = dictService.getOne(new LambdaQueryWrapper<Dict>() + .eq(Dict::getFlag, "similarityRef") + .eq(Dict::getStatus, 1)); + if (similarityRefDict != null) { + similarityRef = Double.parseDouble(similarityRefDict.getValue()); + } + + List<NavigateNode> originPath = JSON.parseArray(movePath, NavigateNode.class); + List<NavigateNode> finalPath = assignCommand.getNodes(); + + if (finalPath == null) { + return false; + } + + Double similarity = navigateUtils.similarityPath(originPath, finalPath); + if (similarity <= similarityRef) { + News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); + return false; + } + + return true; + } + } -- Gitblit v1.9.1