| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.zy.acs.framework.common.Cools; |
| | | import com.zy.acs.manager.manager.entity.Code; |
| | | import com.zy.acs.manager.manager.entity.Jam; |
| | | import com.zy.acs.manager.manager.entity.Segment; |
| | | import com.zy.acs.manager.manager.enums.JamStateType; |
| | | import com.zy.acs.manager.manager.enums.SegmentStateType; |
| | | import com.zy.acs.manager.manager.mapper.JamMapper; |
| | | import com.zy.acs.manager.manager.service.AgvService; |
| | | import com.zy.acs.manager.manager.service.CodeService; |
| | | import com.zy.acs.manager.manager.service.JamService; |
| | | import com.zy.acs.framework.common.Cools; |
| | | import com.zy.acs.manager.manager.service.SegmentService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | @Autowired |
| | | private CodeService codeService; |
| | | @Autowired |
| | | private AgvService agvService; |
| | | @Autowired |
| | | private SegmentService segmentService; |
| | | |
| | | @Override |
| | | public Jam getJam(Long agvId, Long jamCode, Long jamSeg) { |
| | |
| | | return jams.stream().findFirst().orElse(null); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 因为你而阻塞的车,现在你已经在避让点了 |
| | | * 你的下一个segment是不是又会导致阻塞 |
| | | */ |
| | | @Override |
| | | public List<Jam> getUnfinishedOriginJamByAvo(Long avoAgv, Long currCode, Long currSeg) { |
| | | return this.baseMapper.selectUnfinishedJamByAvo(avoAgv, currCode, null); |
| | | } |
| | | |
| | | @Override |
| | | public Jam getCycleJam(Long jamAgv, Long jamSeg, String avoAgvNo) { |
| | | List<Jam> jams = this.list(new LambdaQueryWrapper<Jam>() |
| | | .eq(Jam::getJamAgv, jamAgv) |
| | | .eq(Jam::getJamSeg, jamSeg) |
| | | .eq(Jam::getAvoAgv, agvService.getAgvId(avoAgvNo)) |
| | | .eq(Jam::getCycleAvo, 1) |
| | | .ne(Jam::getState, JamStateType.DEPRECATED.toString()) |
| | | // .eq(Jam::getState, JamStateType.RUNNING.toString()) |
| | | ); |
| | | if (!Cools.isEmpty(jams)) { |
| | | return jams.stream().findFirst().orElse(null); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<Jam> getJamFromSegmentByAvo(Segment jamSeg, String avoAgvNo) { |
| | | Long avoAgvId = agvService.getAgvId(avoAgvNo); |
| | | return this.baseMapper.selectJamFromSegmentByAvo(jamSeg.getId(), avoAgvId); |
| | | } |
| | | |
| | | @Override |
| | | public List<Jam> getUnfinishedAvoSegByAvo(String avoAgvNo, Segment currSeg) { |
| | | Long agvId = agvService.getAgvId(avoAgvNo); |
| | | return this.baseMapper.selectUnfinishedAvoSegByAvo(agvId, null); |
| | | } |
| | | |
| | | @Override |
| | |
| | | return null; |
| | | } |
| | | Date now = new Date(); |
| | | Code code = codeService.selectByData(currCodeData); |
| | | Code code = codeService.getCacheByData(currCodeData); |
| | | if (null == code) { |
| | | return null; |
| | | } |
| | | List<Jam> jams = this.list(new LambdaQueryWrapper<Jam>() |
| | | .eq(Jam::getAvoAgv, avoAgv) |
| | | .eq(Jam::getAvoCode, code.getId()) |
| | |
| | | return this.updateById(jam); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isAvoidSeg(Long currSeg) { |
| | | List<Jam> list = this.list(new LambdaQueryWrapper<Jam>() |
| | | .eq(Jam::getAvoSeg, currSeg) |
| | | .eq(Jam::getState, JamStateType.RUNNING.toString())); |
| | | if (!Cools.isEmpty(list)) { |
| | | for (Jam jam : list) { |
| | | Segment jamSeg = segmentService.getById(jam.getJamSeg()); |
| | | if (jamSeg.getState().equals(SegmentStateType.WAITING.toString()) || jamSeg.getState().equals(SegmentStateType.RUNNING.toString())) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |