package com.zy.acs.manager.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.acs.manager.manager.entity.Segment; import com.zy.acs.manager.manager.enums.SegmentStateType; import com.zy.acs.manager.manager.mapper.SegmentMapper; import com.zy.acs.manager.manager.service.AgvService; import com.zy.acs.manager.manager.service.SegmentService; import com.zy.acs.framework.common.Cools; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service("segmentService") public class SegmentServiceImpl extends ServiceImpl implements SegmentService { @Autowired private AgvService agvService; @Override public Segment getNextStepOfInit(Long travelId, Integer serial) { return this.getOne(new LambdaQueryWrapper() .eq(Segment::getTravelId, travelId) .eq(Segment::getSerial, serial + 1) .eq(Segment::getState, SegmentStateType.INIT.toString()) ); } @Override public Segment getJustWaitingSeg(Long agvId) { if (null == agvId) { return null; } List waitingSegList = this.getByAgvAndState(agvId, SegmentStateType.WAITING.toString()); if (Cools.isEmpty(waitingSegList)) { return null; } else { if (waitingSegList.size() > 1) { log.error("{}号车辆存在多个等待中的Segment!!!", agvService.getById(agvId).getUuid()); } return waitingSegList.get(0); } } @Override public List getSamePos(List segmentList) { return null; } @Override public List getByAgvAndState(Long agvId, String state) { return this.list(new LambdaQueryWrapper() .eq(Segment::getAgvId, agvId) .eq(Segment::getState, state) .orderByAsc(Segment::getSerial) ); } }