| | |
| | | import com.zy.acs.manager.manager.enums.SegmentStateType; |
| | | import com.zy.acs.manager.manager.enums.TaskTypeType; |
| | | import com.zy.acs.manager.manager.service.*; |
| | | import com.zy.acs.manager.system.service.ConfigService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | @Autowired |
| | | private RetreatNavigateService retreatNavigateService; |
| | | @Autowired |
| | | private TaskService taskService; |
| | | private ConfigService configService; |
| | | @Autowired |
| | | private JamService jamService; |
| | | @Autowired |
| | |
| | | public synchronized void trigger(Segment segment) { |
| | | try { |
| | | Date now = new Date(); |
| | | |
| | | // deprecate jam |
| | | if (this.isExpiredJamByAvo(segment.getId())) { |
| | | mainService.settleSegmentList(Utils.singletonList(segment), null); |
| | | return; |
| | | } |
| | | |
| | | // temporary ----------------- |
| | | Integer algoExtensionTime = configService.getVal("algoExtensionTime", Integer.class); |
| | | if (null != algoExtensionTime && algoExtensionTime > 0) { |
| | | Thread.sleep(algoExtensionTime); |
| | | } |
| | | // --------------------------- |
| | | |
| | | Travel travel = travelService.getById(segment.getTravelId()); |
| | | Agv agv = agvService.getById(travel.getAgvId()); |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(travel.getAgvId()); |
| | |
| | | return; |
| | | } |
| | | |
| | | // deprecate jam |
| | | if (this.isExpiredJamByAvo(segment.getId())) { |
| | | mainService.settleSegmentList(Utils.singletonList(segment), null); |
| | | return; |
| | | } |
| | | |
| | | // execute ----------------------------------------------- |
| | | // ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {}); |
| | | |
| | | // get path list |
| | | avoidWaveCalculator.calcWaveScope(); // * sync wave scope |
| | | // * sync wave scope |
| | | if (!avoidWaveCalculator.calcWaveScope()) { |
| | | log.error("failed to calculate avoid wave matrix ..."); |
| | | return; |
| | | } |
| | | |
| | | // checkout path |
| | | Code startCode = codeService.getById(agvDetail.getRecentCode()); |
| | |
| | | |
| | | mapService.lockPath(null, pathList, agv.getUuid()); |
| | | |
| | | mainService.generateAction(segment.getAgvId(), segmentList, pathList); |
| | | mainService.generateAction(segment.getAgvId(), segmentList, pathList, now); |
| | | |
| | | } catch (Exception e) { |
| | | log.error("TrafficService.trigger", e); |
| | |
| | | if (!Cools.isEmpty(jam.getAvoAgv()) |
| | | && BlockVehicleDto.customContain(blockVehicleList, agvService.getById(jam.getAvoAgv()).getUuid())) { |
| | | |
| | | maxJamTimeoutFactor = 5; |
| | | maxJamTimeoutFactor = 4; |
| | | |
| | | } else { |
| | | |