| | |
| | | } |
| | | |
| | | // deprecate jam |
| | | if (this.isJamBeDeprecatedByAvo(segment.getId())) { |
| | | if (this.isExpiredJamByAvo(segment.getId())) { |
| | | mainService.settleSegmentList(Utils.singletonList(segment), null); |
| | | return; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | private boolean isJamBeDeprecatedByAvo(Long avoSeg) { |
| | | return 0 < jamService.count(new LambdaQueryWrapper<Jam>() |
| | | /** |
| | | * 1. the jam was deprecated |
| | | * 2. the jam segment is finished |
| | | * |
| | | * all these by avoid segment |
| | | */ |
| | | private boolean isExpiredJamByAvo(Long avoSeg) { |
| | | List<Jam> jamList = jamService.list(new LambdaQueryWrapper<Jam>() |
| | | // .eq(Jam::getAvoAgv, avoAgv) |
| | | .eq(Jam::getAvoSeg, avoSeg) |
| | | .eq(Jam::getState, JamStateType.DEPRECATED.toString()) |
| | | ); |
| | | .eq(Jam::getAvoSeg, avoSeg)); |
| | | if (Cools.isEmpty(jamList)) { |
| | | return false; |
| | | } |
| | | if (jamList.size() > 1) { |
| | | log.error("AvoSeg[id = {}] seg data has exception, result in two jams", avoSeg); |
| | | } |
| | | Jam jam = jamList.get(0); |
| | | if (jam.getState().equals(JamStateType.DEPRECATED.toString())) { |
| | | return true; |
| | | } |
| | | Segment jamSegment = segmentService.getById(jam.getJamSeg()); |
| | | if (jamSegment.getState().equals(SegmentStateType.FINISH.toString())) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |