zhang
8 天以前 4ad3a6e5540c5ca9d6042fc2fb7d72fa18c49c15
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -989,7 +989,7 @@
                                    null,    // 动作号
                                    null,    // 优先级
                                    ActionTypeType.TurnCorner.desc,    // 名称
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性值
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性값
                                    lastCode.getData(),    // 地面码
                                    String.valueOf(oriStaWorkDirection),   // 动作参数
                                    ActionTypeType.TurnCorner.val(),    // 动作类型
@@ -1025,7 +1025,7 @@
                                null,    // 动作号
                                null,    // 优先级
                                ActionTypeType.ReadyReleaseToAgvSite.desc,    // 名称
                                (double) backpackType.lev,    // 属性值
                                (double) backpackType.lev,    // 属性값
                                lastCode.getData(),    // 地面码
                                String.valueOf(backpackType.height),   // 动作参数
                                ActionTypeType.ReadyReleaseToAgvSite.val(),    // 动作类型
@@ -1051,7 +1051,7 @@
                                    null,    // 动作号
                                    null,    // 优先级
                                    ActionTypeType.TurnCorner.desc,    // 名称
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性值
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性값
                                    lastCode.getData(),    // 地面码
                                    String.valueOf(destStaWorkDirection),   // 动作参数
                                    ActionTypeType.TurnCorner.val(),    // 动作类型
@@ -1070,7 +1070,7 @@
                                null,    // 动作号
                                null,    // 优先级
                                ActionTypeType.ReadyTakeFromAgvSite.desc,    // 名称
                                (double) backpackType.lev,    // 属性值
                                (double) backpackType.lev,    // 属性값
                                lastCode.getData(),    // 地面码
                                String.valueOf(backpackType.height),   // 动作参数
                                ActionTypeType.ReadyTakeFromAgvSite.val(),    // 动作类型
@@ -1087,7 +1087,7 @@
                                null,    // 动作号
                                null,    // 优先级
                                ActionTypeType.ReadyReleaseToConveyorSta.desc,    // 名称
                                staWorkDirection,    // 属性值
                                staWorkDirection,    // 属性값
                                lastCode.getData(),    // 地面码
                                String.valueOf(destSta.getOffset()),   // 动作参数
                                ActionTypeType.ReadyReleaseToConveyorSta.val(),    // 动作类型
@@ -1108,7 +1108,7 @@
                                    null,    // 动作号
                                    null,    // 优先级
                                    ActionTypeType.TurnCorner.desc,    // 名称
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性值
                                    mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 属性값
                                    lastCode.getData(),    // 地面码
                                    String.valueOf(chargeDirection),   // 动作参数
                                    ActionTypeType.TurnCorner.val(),    // 动作类型
@@ -1127,7 +1127,7 @@
                                null,    // 动作号
                                null,    // 优先级
                                ActionTypeType.DockingCharge.desc,    // 名称
                                null,    // 属性值
                                null,    // 属性값
                                lastCode.getData(),    // 地面码
                                null,   // 动作参数
                                ActionTypeType.DockingCharge.val(),    // 动作类型
@@ -1147,7 +1147,7 @@
//                                    null,    // 动作号
//                                    null,    // 优先级
//                                    ActionTypeType.TurnCorner.desc,    // 名称
//                                    null,    // 属性值
//                                    null,    // 属性값
//                                    lastCode.getData(),    // 地面码
//                                    String.valueOf(standByDirection),   // 动作参数
//                                    ActionTypeType.TurnCorner.val(),    // 动作类型
@@ -1157,6 +1157,36 @@
//                            ));
//                            lastDirection = standByDirection;
//                        }
                        String runToWaitHeightFlag = configService.getVal("RunToWaitHeightFlag", String.class);
                        if (!Cools.isEmpty(runToWaitHeightFlag) && runToWaitHeightFlag.contains(agvId.toString())) {
                            String runToWaitHeight = configService.getVal("RunToWaitHeight", String.class);
                            if (Cools.isEmpty(runToWaitHeight)) {
                                runToWaitHeight = "800";
                            }
                            Double runToWaitHeightValue = configService.getVal("RunToWaitHeightValue", Double.class);
                            if (Cools.isEmpty(runToWaitHeight) || runToWaitHeightValue == 0) {
                                runToWaitHeightValue = 1D;
                            }
                            // 修复空指针异常:检查lastCode是否为null
                            if (lastCode == null) {
                                throw new BusinessException("AGV定位信息异常,无法生成待机动作");
                            }
                            actionList.add(new Action(
                                    null,    // 编号
                                    task.getBusId(),    // 总线
                                    task.getId(),    // 任务
                                    null,    // 动作号
                                    null,    // 优先级
                                    ActionTypeType.RunToWaitHeight.desc,    // 名称
                                    runToWaitHeightValue,    // 属性값
                                    lastCode.getData(),    // 地面码
                                    runToWaitHeight,   // 动作参数
                                    ActionTypeType.RunToWaitHeight.val(),    // 动作类型
                                    actionPrepareSts,    // 动作进度
                                    agvId,    // AGV
                                    now    // 工作时间
                            ));
                        }
                        break;
                    case MOVE:
                        break;
@@ -1341,6 +1371,13 @@
                                .bodySync(body -> body.setDepth((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case RunToWaitHeight:
                        agvAction.add(new AgvActionItem<>(RunToWaitHeight.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case FinishPath:
                        agvAction.add(new AgvActionItem<>(FinishPathAction.class)
                                .setQrCode(action.getCode())