#
vincentlu
2026-01-22 d64ddaa5a1db6098a498a0c74d723068851cb088
#
3个文件已修改
47 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -259,6 +259,9 @@
                            // curr segment
                            Segment currSeg = segmentService.getCurrWaitingSeg(travel.getId(), agvId);
//                            if (null == currSeg) {
//                                currSeg = segmentService.getCurrRunningSeg(travel.getId(), agvId, null);
//                            }
                            if (null == currSeg) {
                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no waiting segment");
                            }
@@ -1829,7 +1832,7 @@
                Code code = codeService.getCacheByData(agv_06_up.getQrCode());
                // query current segment
                Segment currSeg = segmentService.getCurrRunningSeg(agv.getId(), code.getId());
                Segment currSeg = segmentService.getCurrRunningSeg(null, agv.getId(), code.getId());
                if (null == currSeg) {
                    log.error("failed to find curr segment [{}]", agv.getUuid());
                } else {
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
@@ -1,7 +1,6 @@
package com.zy.acs.manager.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.acs.manager.core.domain.TaskPosDto;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.enums.SegmentStateType;
@@ -29,11 +28,9 @@
    Segment getCurrWaitingSeg(Long travelId, Long agvId);
    Segment getCurrRunningSeg(Long agvId, Long codeId);
    Segment getCurrRunningSeg(Long travelId, Long agvId, Long codeId);
    List<Integer> selectUsedBackpacks(Long travelId, Long agvId);
    Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType);
    Boolean isRollerWaiting(Long agvId);
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.exception.CoolException;
import com.zy.acs.manager.core.domain.TaskPosDto;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.enums.ActionStsType;
@@ -167,13 +166,21 @@
    }
    @Override
    public Segment getCurrRunningSeg(Long agvId, Long codeId) {
        List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
    public Segment getCurrRunningSeg(Long travelId, Long agvId, Long codeId) {
        if (null == agvId) {
            return null;
        }
        LambdaQueryWrapper<Segment> wrapper = new LambdaQueryWrapper<Segment>()
                .eq(Segment::getAgvId, agvId)
                .eq(Segment::getState, SegmentStateType.RUNNING.toString())
                .eq(Segment::getEndNode, codeId)
                .orderByDesc(Segment::getId)
        );
                .eq(Segment::getState, SegmentStateType.RUNNING.toString());
        if (null != travelId) {
            wrapper.eq(Segment::getTravelId, travelId);
        }
        if (null != codeId) {
            wrapper.eq(Segment::getEndNode, codeId);
        }
        wrapper.orderByDesc(Segment::getId);
        List<Segment> segments = this.list(wrapper);
        if (Cools.isEmpty(segments)) {
        }
        return segments.stream().findFirst().orElse(null);
@@ -182,22 +189,6 @@
    @Override
    public List<Integer> selectUsedBackpacks(Long travelId, Long agvId) {
        return this.baseMapper.selectUsedBackpacks(agvId, travelId);
    }
    @Override   //todo
    public Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType) {
        List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
                .eq(Segment::getAgvId, agvId)
                .eq(Segment::getState, SegmentStateType.WAITING.toString())
                .eq(Segment::getEndNode, codeId)
                .eq(Segment::getPosType, posType.toString())
                .eq(Segment::getRollerWaiting, 1)
                .orderByDesc(Segment::getId)
        );
        if (Cools.isEmpty(segments)) {
            return null;
        }
        return segments.get(0);
    }
    @Override