From c9c3b851a4513f25dee773ba30fe1b2d65c9a405 Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Sat, 29 Jul 2023 13:18:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E6=9D=82=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nuclear/service/impl/CheckServiceImpl.java | 68 ++++++++++++++++++++-- .../nuclear/service/impl/TaskServiceImpl.java | 4 +- 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java b/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java index feb0509..5b9c058 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java @@ -129,7 +129,7 @@ public class CheckServiceImpl implements CheckService { break; } // 检测完毕后获取下一个坐标 - nextCoord = this.getNextCoord(nextCoord, order); + nextCoord = this.getNextCoord(nextCoord, order, taskId + ""); this.updateCoordAndStatus(taskId, nextCoord, 1, false, false, order); this.sendMessageToDevice(nextCoord, taskId); if ("finish".equals(nextCoord)) { @@ -165,7 +165,7 @@ public class CheckServiceImpl implements CheckService { break; } // 检测完毕后获取下一个坐标 - nextCoord = this.getNextCoord(nextCoord, order); + nextCoord = this.getNextCoord(nextCoord, order, taskId + ""); this.updateCoordAndStatus(taskId, nextCoord, 1, false, false, order); this.sendMessageToDevice(nextCoord, taskId); if ("finish".equals(nextCoord)) { @@ -252,7 +252,7 @@ public class CheckServiceImpl implements CheckService { * 传入当前检查的坐标点 * @return 获取下一个坐标点 */ - public String getNextCoord(String current, int order) { + public String getNextCoord(String current, int order, String taskId) { if (current == null ) { return null; } @@ -447,6 +447,61 @@ public class CheckServiceImpl implements CheckService { } } } + if (order == 2) { + // 复杂路径 + String complexPath = this.getComplexPath(current, taskId, 1); + return complexPath; + } + return ""; + } + + public String getComplexPath(String current, String taskId, int order) { + QueryWrapper pathQueryWrapper = new QueryWrapper<>(); + pathQueryWrapper.eq("task_id",taskId).eq("coord", current); + Path one = pathService.getOne(pathQueryWrapper); + if (one == null){ + if (order == 1) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id",taskId); + List list = pathService.list(queryWrapper); + Path path = list.get(list.size() - 1); + return path.getCoord(); + } + if (order == 2) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id",taskId); + List list = pathService.list(queryWrapper); + Path path = list.get(0); + return path.getCoord(); + } + }else { + int orderNumber = one.getOrderNumber(); + // 下一个上一个,如果下一个那就直接orderNumber + 1 上一个 -1 如果是最后一个则返回"" + if (order == 1) { + int nextNumber = orderNumber + 1; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id",taskId).eq("order_number", nextNumber); + Path one1 = pathService.getOne(queryWrapper); + if (one1 == null) { + // 最后了 + return ""; + }else { + return one1.getCoord(); + } + } + if (order == 2) { + int nextNumber = orderNumber - 1; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id",taskId).eq("order_number", nextNumber); + Path one1 = pathService.getOne(queryWrapper); + if (one1 == null) { + // 最后了 + return ""; + }else { + return one1.getCoord(); + } + } + } return ""; } @@ -454,7 +509,7 @@ public class CheckServiceImpl implements CheckService { * 传入当前检查的坐标点 * @return 获取上一个坐标点 */ - public String getPreCoord(String current, int order){ + public String getPreCoord(String current, int order, String taskId){ if (current == null ) { return null; } @@ -647,6 +702,11 @@ public class CheckServiceImpl implements CheckService { } } } + if (order == 2) { + // 复杂路径 + String complexPath = this.getComplexPath(current, taskId, 2); + return complexPath; + } return null; } } diff --git a/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java b/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java index 26d2289..0dc55bf 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java @@ -147,12 +147,12 @@ public class TaskServiceImpl extends ServiceImpl implements Ta if ("finish".equals(coord)) { return null; } - return checkServiceImpl.getNextCoord(coord, checkOrder); + return checkServiceImpl.getNextCoord(coord, checkOrder, taskId); }else { if ("start".equals(coord)) { return null; } - return checkServiceImpl.getPreCoord(coord, checkOrder); + return checkServiceImpl.getPreCoord(coord, checkOrder, taskId); } } }