#
vincentlu
2025-12-26 4d45de01e35f8b271e5ba25439b574a8b67bc5eb
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -96,6 +96,8 @@
    private LaneService laneService;
    @Autowired
    private ActionSorter actionSorter;
    @Autowired
    private StaReserveService staReserveService;
    @SuppressWarnings("all")
    @Transactional
@@ -175,15 +177,19 @@
                        throw new BusinessException("oriLoc:" + task.getOriLoc$() + " failed to update");
                    }
                    // reserver station inbound, qty: 1
                    destSta = staService.getById(task.getDestSta());
                    if (!destSta.getStaSts().equals(StaStsType.IDLE.val())) {
                        throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
                    if (null == staReserveService.reserveStaIn(destSta, task, 1)) {
                        throw new BusinessException("destSta:" + task.getDestSta$() + " failed to reserve");
                    }
                    destSta.setStaSts(StaStsType.READY_RELEASE.val());
                    destSta.setUpdateTime(now);
                    if (!staService.updateById(destSta)) {
                        throw new BusinessException("destSta:" + task.getDestSta$() + " failed to update");
                    }
//                    if (!destSta.getStaSts().equals(StaStsType.IDLE.val())) {
//                        throw new BusinessException("destSta:" + task.getDestSta$() + " is not in IDLE status");
//                    }
//                    destSta.setStaSts(StaStsType.READY_RELEASE.val());
//                    destSta.setUpdateTime(now);
//                    if (!staService.updateById(destSta)) {
//                        throw new BusinessException("destSta:" + task.getDestSta$() + " failed to update");
//                    }
                    break;
                case STA_TO_LOC:
                    oriSta = staService.getById(task.getOriSta());
@@ -1114,7 +1120,24 @@
                        ));
                        break;
                    case TO_STANDBY:
//                        FuncSta standByFuncSta = funcStaService.query(agvId, lastCode.getId(), 2);
                        // load lift
//                        actionList.add(new Action(
//                                null,    // 编号
//                                null,    // 总线
//                                task.getId(),    // 任务
//                                null,    // 动作号
//                                null,    // 优先级
//                                ActionTypeType.LoadPlatformLift.desc,    // 名称
//                                null,    // 属性值
//                                lastCode.getData(),    // 地面码
//                                String.valueOf(0),   // 动作参数
//                                ActionTypeType.LoadPlatformLift.val(),    // 动作类型
//                                actionPrepareSts,    // 动作进度
//                                agvId,    // AGV
//                                now    // 工作时间
//                        ));
                        // turn
//                        FuncSta standByFuncSta = funcStaService.query(lastCode.getId(), FuncStaType.STANDBY.toString());
//                        Double standByDirection = Double.parseDouble(standByFuncSta.getAngle());
//                        if (!lastDirection.equals(standByDirection)) {
//                            actionList.add(new Action(
@@ -1179,6 +1202,7 @@
            for (Segment item : segmentList) {
                item.setGroupId(groupId);
                item.setState(SegmentStateType.RUNNING.toString());
                item.setStartTime(now);
                item.setUpdateTime(now);
                if (null != algoStartTime) {
                    item.setAlgoTime((int) (now.getTime() - algoStartTime.getTime()));
@@ -1299,6 +1323,13 @@
                        break;
                    case ReadyReleaseToShelvesLoc:
                        agvAction.add(new AgvActionItem<>(ReadyReleaseToShelvesLoc.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
                        );
                        break;
                    case LoadPlatformLift:
                        agvAction.add(new AgvActionItem<>(LoadPlatformLift.class)
                                .setVal(action.getVal().intValue())
                                .setQrCode(action.getCode())
                                .bodySync(body -> body.setHeight((short) Double.parseDouble(action.getParams())))
@@ -1532,6 +1563,7 @@
        // segment
        for (Segment segment : segmentList) {
            segment.setState(SegmentStateType.FINISH.toString());
            segment.setEndTime(now);
            segment.setUpdateTime(now);
            if (!segmentService.updateById(segment)) {
                log.error("Segment [{}] 更新失败 !!!", segment.getGroupId() + " - " + segment.getSerial());