| | |
| | | package com.zy.acs.manager.core.service; |
| | | |
| | | import com.zy.acs.manager.manager.entity.AgvDetail; |
| | | import com.zy.acs.manager.manager.entity.Code; |
| | | import com.zy.acs.manager.manager.entity.Segment; |
| | | import com.zy.acs.manager.manager.service.SegmentService; |
| | | import com.zy.acs.manager.manager.entity.Sta; |
| | | import com.zy.acs.manager.manager.enums.StaTypeType; |
| | | import com.zy.acs.manager.manager.service.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | |
| | | // man_segment: start_time, end_time |
| | | @Slf4j |
| | | @Service |
| | | public class TransferStationHandler { |
| | | |
| | | @Autowired |
| | | private SegmentService segmentService; |
| | | @Autowired |
| | | private AgvService agvService; |
| | | @Autowired |
| | | private AgvDetailService agvDetailService; |
| | | @Autowired |
| | | private CodeService codeService; |
| | | @Autowired |
| | | private StaService staService; |
| | | |
| | | public boolean isSegDelayAtSta(Segment segment) { |
| | | |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | // return is need wait |
| | | public boolean hasDelayAtSta(Segment segment) { |
| | | if (segment == null) { |
| | | throw new NullPointerException("segment is null in hasDelayAtSta."); |
| | | } |
| | | // 判断AGV是否在滚动输送线前 |
| | | Code currentCode = agvDetailService.getCurrentCode(segment.getAgvId()); |
| | | if (null == currentCode) { |
| | | return false; |
| | | } |
| | | Sta rollerSta = staService.selectByCode(currentCode.getId(), StaTypeType.ROLLER); |
| | | if (null == rollerSta) { |
| | | return false; |
| | | } |
| | | // 如果为第一个segment(没有previous segment),则不需要等待 |
| | | Segment preSeg = segmentService.getPreviousStepOfFinish(segment.getTravelId(), segment.getSerial()); |
| | | if (preSeg == null) { |
| | | return false; |
| | | } |
| | | Date preSegEndTime = preSeg.getEndTime(); |
| | | if (null == preSegEndTime) { |
| | | return false; |
| | | } |
| | | Date now = new Date(); |
| | | |
| | | return false; |
| | | } |