From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 04 十一月 2024 10:22:45 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java | 80 +++++----------------------------------- 1 files changed, 10 insertions(+), 70 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java index 3e2db2d..4c85e56 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java @@ -1,21 +1,15 @@ package com.zy.acs.manager.core; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.zy.acs.common.utils.GsonUtils; import com.zy.acs.framework.common.R; -import com.zy.acs.framework.common.SnowflakeIdWorker; -import com.zy.acs.manager.core.domain.Lane; -import com.zy.acs.manager.manager.entity.Code; -import com.zy.acs.manager.manager.entity.Route; -import com.zy.acs.manager.manager.service.CodeService; -import com.zy.acs.manager.manager.service.RouteService; +import com.zy.acs.manager.core.service.LaneService; +import com.zy.acs.manager.manager.entity.Task; +import com.zy.acs.manager.manager.service.TaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.*; -import java.util.stream.Collectors; +import java.util.List; /** * Created by vincent on 10/24/2024 @@ -25,69 +19,15 @@ public class DispatcherTestController { @Autowired - private CodeService codeService; + private LaneService laneService; @Autowired - private RouteService routeService; - @Autowired - private SnowflakeIdWorker snowflakeIdWorker; + private TaskService taskService; - @GetMapping("/dfs") - public R dfs() { - List<Lane> lanes = new ArrayList<>(); - List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1)); - Map<String, List<String>> adjacencyCodeMap = new HashMap<>(); - for (Code code : codeList) { - List<Long> adjacencyNode = routeService.getAdjacencyNode(code.getId()); - adjacencyCodeMap.put(code.getData(), adjacencyNode.stream().map(node -> { - return codeService.getById(node).getData(); - }).collect(Collectors.toList())); - } - Set<String> visited = new HashSet<>(); + @GetMapping("/lanes") + public R getLanes() { + List<Task> taskList = taskService.findRunningTasksByLaneHash("4b81ebaedd8ed7662d37b63e20dec5dd089d4c32136b8826c6323839fe51938e"); - for (String codeData : codeList.stream().map(Code::getData).collect(Collectors.toList())) { - if (!visited.contains(codeData)) { - Lane lane = new Lane(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - dfsCalc(codeData, null, lane, visited, adjacencyCodeMap); - lanes.add(lane); - } - } - System.out.println(GsonUtils.toJson(lanes)); - return R.ok().add(lanes); - } - - - private void dfsCalc(String code, String parent, Lane lane, Set<String> visited, Map<String, List<String>> adjacencyCodeMap) { - visited.add(code); - lane.getCodes().add(code); - - List<String> neighbors = adjacencyCodeMap.get(code); - if (neighbors == null || neighbors.isEmpty()) { - return; - } - - for (String neighbor : neighbors) { - if (parent != null && neighbor.equals(parent)) { - continue; - } - if (!visited.contains(neighbor) && isSameDirection(code, neighbor, parent)) { - dfsCalc(neighbor, code, lane, visited, adjacencyCodeMap); - } - } - } - - public boolean isSameDirection(String code, String neighbor, String parent) { - if (parent == null) { - return true; - } - double direction1 = calculateDirection(codeService.selectByData(parent) , codeService.selectByData(code)); - double direction2 = calculateDirection(codeService.selectByData(code), codeService.selectByData(neighbor)); - return direction1 == direction2; - } - - public double calculateDirection(Code from, Code to) { - double deltaX = to.getX() - from.getX(); - double deltaY = to.getY() - from.getY(); - return Math.atan2(deltaY, deltaX); + return R.ok().add(laneService.search("00000010")); } } -- Gitblit v1.9.1