#
luxiaotao1123
2024-11-06 337746fee651f91e9c63bd1c33a474c236d51889
#
4个文件已修改
69 ■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1355,7 +1355,7 @@
                }
                // segment call back
                trafficService.callback(segmentList);
                segmentService.processNext(segmentList);
                log.info("Agv [{}] {}作业完毕 ==========>> ", protocol.getAgvNo(), serialNo);
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -189,28 +189,6 @@
        }
    }
    public void callback(List<Segment> segmentList) {
        Date now = new Date();
        segmentList.stream().max(Comparator.comparingInt(Segment::getSerial)).ifPresent(segment -> {
            Segment nextSegment = segmentService.getNextStepOfInit(segment.getTravelId(), segment.getSerial());
            if (null != nextSegment) {
                nextSegment.setState(SegmentStateType.WAITING.toString());
                nextSegment.setUpdateTime(now);
                if (!segmentService.updateById(nextSegment)) {
                    log.error("Segment [{}] 更新失败 !!!", nextSegment.getGroupId() + " - " + nextSegment.getSerial());
                }
            } else {
                travelService.checkFinish(segment.getTravelId());
            }
        });
    }
    private List<String> checkoutPath(Agv agv, Code startCode, Code endCode, Segment segment) {
        Integer lev = null;
        String agvNo = agv.getUuid();
@@ -261,7 +239,6 @@
                    return pathList;
                }
                boolean initJamCache = false;
                if (null == jam) {
                    jam = new Jam();
                    jam.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
@@ -274,7 +251,11 @@
                        log.error("{}号车辆在{}定位被阻塞,记录阻塞状态失败!!!", agvNo, startCode.getData());
                        return pathList;
                    }
                    initJamCache = true;
                } else {
                    jam.setDuration(System.currentTimeMillis() - jam.getStartTime().getTime());
                    if (!jamService.updateById(jam)) {
                        log.error("{}编号阻塞记录更新失败!!!", jam.getUuid());
                    }
                }
                long previousTimestamp = jam.getStartTime().getTime();
@@ -388,13 +369,6 @@
                }
                if (!initJamCache) {
                    jam.setDuration(System.currentTimeMillis() - jam.getStartTime().getTime());
                    if (!jamService.updateById(jam)) {
                        log.error("{}编号阻塞记录更新失败!!!", jam.getUuid());
                    }
                }
            }
        }
@@ -409,7 +383,7 @@
                    log.error("{}编号阻塞记录完成修改失败!!!", jam.getUuid());
                }
            }
            // expired jam
            // deal expired jam
            for (Jam expiredJam : jamService.list(new LambdaQueryWrapper<Jam>()
                    .eq(Jam::getJamAgv, agv.getId())
                    .eq(Jam::getState, JamStateType.RUNNING.toString()))) {
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
@@ -8,6 +8,8 @@
public interface SegmentService extends IService<Segment> {
    void processNext(List<Segment> segmentList);
    Segment getNextStepOfInit(Long travelId, Integer serial);
    Segment getJustWaitingSeg(Long agvId);
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
@@ -8,10 +8,13 @@
import com.zy.acs.manager.manager.service.AgvService;
import com.zy.acs.manager.manager.service.SegmentService;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.service.TravelService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
@Slf4j
@@ -20,6 +23,30 @@
    @Autowired
    private AgvService agvService;
    @Autowired
    private TravelService travelService;
    @Override
    public void processNext(List<Segment> segmentList) {
        Date now = new Date();
        segmentList.stream().max(Comparator.comparingInt(Segment::getSerial)).ifPresent(segment -> {
            Segment nextSegment = this.getNextStepOfInit(segment.getTravelId(), segment.getSerial());
            if (null != nextSegment) {
                nextSegment.setState(SegmentStateType.WAITING.toString());
                nextSegment.setUpdateTime(now);
                if (!this.updateById(nextSegment)) {
                    log.error("Segment [{}] failed to update !!!", nextSegment.getGroupId() + " - " + nextSegment.getSerial());
                }
            } else {
                travelService.checkFinish(segment.getTravelId());
            }
        });
    }
    @Override
    public Segment getNextStepOfInit(Long travelId, Integer serial) {