From d88ab23c592262e533d78bbbf67dd81a9ca348b2 Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Fri, 25 Aug 2023 17:38:32 +0800 Subject: [PATCH] =?UTF-8?q?=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 | 244 ++++++++++++--------- 1 file changed, 138 insertions(+), 106 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 5b9c058..3b369ea 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.iflytop.nuclear.entity.CheckInfo; import com.iflytop.nuclear.entity.CheckResult; import com.iflytop.nuclear.entity.DetectionMessage; +import com.iflytop.nuclear.model.NuclearCoreConfig; import com.iflytop.nuclear.model.Path; import com.iflytop.nuclear.model.Task; import com.iflytop.nuclear.service.CheckService; +import com.iflytop.nuclear.service.NuclearCoreConfigService; import com.iflytop.nuclear.service.PathService; import com.iflytop.nuclear.service.TaskService; import com.iflytop.nuclear.websocket.SocketClient; @@ -17,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -36,6 +40,9 @@ public class CheckServiceImpl implements CheckService { @Autowired PathService pathService; + @Autowired + NuclearCoreConfigService nuclearCoreConfigService; + private static boolean messageReceived = false; private static boolean breakOff = false; @@ -253,103 +260,105 @@ public class CheckServiceImpl implements CheckService { * @return 获取下一个坐标点 */ public String getNextCoord(String current, int order, String taskId) { + // 需要将白色空余位置处的坐标排除掉 if (current == null ) { return null; } String[] split = current.split("-"); int mainLine = Integer.parseInt(split[0]); int minorLine = Integer.parseInt(split[1]); + String result = ""; // 横向一套规则 纵向一套规则 if (order == 0) { if (mainLine == 1) { if (minorLine < 10){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 2) { if (minorLine > 3){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 3) { if (minorLine < 12){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 4) { if (minorLine > 2){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 5) { if (minorLine < 13){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 6) { if (minorLine > 1){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 7) { if (minorLine < 13){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 8) { if (minorLine > 1){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 9) { if (minorLine < 12){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 10) { if (minorLine > 2){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 11) { if (minorLine < 11){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 12) { if (minorLine > 4){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; } } if (mainLine == 13) { if (minorLine < 8){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return "finish"; + result = "finish"; } } } @@ -357,93 +366,93 @@ public class CheckServiceImpl implements CheckService { if (order == 1) { if(minorLine == 1) { if (mainLine < 10){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 2) { if (mainLine > 3){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 3) { if (mainLine < 12){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 4) { if (mainLine > 2){ - return (mainLine- 1) + "-" + minorLine; + result = (mainLine- 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 5) { if (mainLine < 13){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 6) { if (mainLine > 1){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 7) { if (mainLine < 13){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 8) { if (mainLine > 1){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 9) { if (mainLine < 12){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 10) { if (mainLine > 2){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 11) { if (mainLine < 11){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 12) { if (mainLine > 4){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); } } if(minorLine == 13) { if (mainLine < 8){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return "finish"; + result = "finish"; } } } @@ -452,7 +461,18 @@ public class CheckServiceImpl implements CheckService { String complexPath = this.getComplexPath(current, taskId, 1); return complexPath; } - return ""; + // 通过递归排除空结果 直接递归查询congig表 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id", taskId).eq("serial_number", result); + NuclearCoreConfig nuclearCoreConfigServiceOne = nuclearCoreConfigService.getOne(queryWrapper); + if (nuclearCoreConfigServiceOne != null) { + String firstSign = nuclearCoreConfigServiceOne.getFirstSign(); + if ("".equals(firstSign)) { + // 要跳过当前 + return this.getNextCoord(result, order, taskId); + } + } + return result; } public String getComplexPath(String current, String taskId, int order) { @@ -516,189 +536,190 @@ public class CheckServiceImpl implements CheckService { String[] split = current.split("-"); int mainLine = Integer.parseInt(split[0]); int minorLine = Integer.parseInt(split[1]); + String result = ""; if (order == 0) { if (mainLine == 13) { if (minorLine > 4){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 12) { if (minorLine < 11){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 11) { if (minorLine > 2){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 10) { if (minorLine < 12){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 9) { if (minorLine > 1){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 8) { if (minorLine < 13){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 7) { if (minorLine > 1){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 6) { if (minorLine < 13){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 5) { if (minorLine > 2){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 4) { if (minorLine < 12){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 3) { if (minorLine > 3){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 2) { if (minorLine < 10){ - return mainLine + "-" + (minorLine + 1); + result = mainLine + "-" + (minorLine + 1); }else { - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; } } if (mainLine == 1) { if (minorLine > 6){ - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); }else { - return "start"; + result = "start"; } } } if (order == 1) { if(minorLine == 13) { if (mainLine > 4){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 12) { if (mainLine < 11){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 11) { if (mainLine > 2){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 10) { if (mainLine < 12){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 9) { if (mainLine > 1){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 8) { if (mainLine < 13){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 7) { if (mainLine > 1){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 6) { if (mainLine < 13){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 5) { if (mainLine > 2){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 4) { if (mainLine < 12){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 3) { if (mainLine > 3){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 2) { if (mainLine < 10){ - return (mainLine + 1) + "-" + minorLine; + result = (mainLine + 1) + "-" + minorLine; }else { - return mainLine + "-" + (minorLine - 1); + result = mainLine + "-" + (minorLine - 1); } } if(minorLine == 1) { if (mainLine > 6){ - return (mainLine - 1) + "-" + minorLine; + result = (mainLine - 1) + "-" + minorLine; }else { - return "start"; + result = "start"; } } } @@ -707,6 +728,17 @@ public class CheckServiceImpl implements CheckService { String complexPath = this.getComplexPath(current, taskId, 2); return complexPath; } - return null; + // 通过递归排除空结果 直接递归查询congig表 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("task_id", taskId).eq("serial_number", result); + NuclearCoreConfig nuclearCoreConfigServiceOne = nuclearCoreConfigService.getOne(queryWrapper); + if (nuclearCoreConfigServiceOne != null) { + String firstSign = nuclearCoreConfigServiceOne.getFirstSign(); + if ("".equals(firstSign)) { + // 要跳过当前 + return this.getPreCoord(result, order, taskId); + } + } + return result; } }