yy
3 天以前 97e0bddd5a8b54ba0007af1f70d3e910a4dd81c0
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -765,7 +765,6 @@
            boolean first = true;
            for (Segment segment : segmentList) {
                // 分段所属的Task
                Task task = taskService.getById(segment.getTaskId());
                TaskPosDto.PosType posType = Objects.requireNonNull(TaskPosDto.queryPosType(segment.getPosType()));
@@ -785,21 +784,17 @@
                    // 走行路径节点
//                    List<String> pathList = mapService.checkoutPath(agv.getUuid(), lastCode, code);
                    List<String> pathListPart = pathList.subList(pathList.indexOf(lastCode.getData()), pathList.indexOf(code.getData()) + 1);
                    for (int i = 0; i < pathListPart.size(); i++) {
                        if (i == 0) {
                            continue;
                        }
                        String next = pathListPart.get(i);
                        Code nextCode = codeService.getCacheByData(next);
                        Double nextDirection = mapService.calculateDirection(lastCode, nextCode, angleOffsetVal);
                        // 第一步:如果下一个方向正好是作业方向的相反方向,则重置下一个方向为作业方向,标记 reverse = true
                        boolean reverse = false;
                        if (nextDirection.equals((workDirection + 180) % 360)) {
                            if ((isStation && turnCodes.contains(lastCode.getData())) || (isLoc && locTurnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000080"))) {
                            if ((isStation && turnCodes.contains(lastCode.getData())) || (isLoc && locTurnCodes.contains(nextCode.getData()) && locTurnCodes.contains(lastCode.getData()))) {
                                reverse = false;
                                lastDirection = nextDirection;
                            } else {
@@ -852,7 +847,7 @@
                                                180);
                                    } else {
                                        Double turnDirection = nextDirection;
                                        if (turnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000050")) {
                                        if (turnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000050") || (isLoc && locTurnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000080"))) {
                                            turnDirection = 180.0;
                                            reverse = false;
                                        }
@@ -882,7 +877,6 @@
                                    lastDirection = nextDirection;
                                }
                            } else {
                                // if (isStation && lastCode.getData().equals("00000050")) {
                                if ((isStation && lastCode.getData().equals("00000050")) || (isLoc && locTurnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000080"))) {
                                    // turn
                                    reverse = false;
@@ -980,7 +974,6 @@
                        } else {
                            nextCode = codeService.getCacheByData(lastCode.getData());
                        }
                        if ((isStation && turnCodes.contains(lastCode.getData())) || (isLoc && locTurnCodes.contains(nextCode.getData()) && lastCode.getData().equals("00000080"))) {
                            turnDirection = workDirection + 180.0;
                        }