| | |
| | | public List<XpHistoryStartPointsVo> getHistoryStartPoints(HistoryStartPointsDto historyStartPointsDto) { |
| | | List<XpPoint> xpPoints = this.baseMapper.selectBatchIds(historyStartPointsDto.getPointIds()); |
| | | ArrayList<XpHistoryStartPointsVo> resultList = new ArrayList<>(10); |
| | | |
| | | LocalTime now = LocalTime.now(); |
| | | List<Long> areaIds = xpPoints.stream().map(XpPoint::getElectronicAreaId).collect(Collectors.toList()); |
| | | List<XpElectronicFenceArea> xpElectronicFenceAreas = xpElectronicFenceAreaService.listByIds(areaIds); |
| | | List<Long> fenceIds = xpElectronicFenceAreas.stream().map(XpElectronicFenceArea::getElectronicId).collect(Collectors.toList()); |
| | | |
| | | List<XpElectronicFence> xpElectronicFences = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(fenceIds)) { |
| | | xpElectronicFences = xpElectronicFenceService.listByIds(fenceIds); |
| | | } |
| | | |
| | | |
| | | |
| | | for (XpPoint xpPoint : xpPoints) { |
| | | if(xpPoint.getOperationStatus()!=2){ |
| | | continue; |
| | | } |
| | | |
| | | Integer operationType = xpPoint.getOperationType(); |
| | | if(1 == operationType){ |
| | | //与运营区同步 |
| | | XpElectronicFenceArea xpElectronicFenceArea = xpElectronicFenceAreas.stream().filter(s -> s.getId().equals(xpPoint.getElectronicAreaId())).findFirst().orElse(null); |
| | | if(null == xpElectronicFenceArea){ |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | XpElectronicFence xpElectronicFence = xpElectronicFences.stream().filter(s -> s.getId().equals(xpElectronicFenceArea.getElectronicId())).findFirst().orElse(null); |
| | | if(null == xpElectronicFence){ |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | //失效类型 1=永不失效 2=定时失效 |
| | | Integer failureType = xpElectronicFence.getFailureType(); |
| | | //永不失效,但是还未到开始时间 |
| | | if(1 == failureType && LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime())){ |
| | | continue; |
| | | }else if(2 == failureType && (LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime()) || LocalDateTime.now().isAfter(xpElectronicFence.getFailureTime()))){ |
| | | //定时失效,但是当前时间不在时间范围内 |
| | | continue; |
| | | } |
| | | }else{ |
| | | //自定义时间段 |
| | | // 判断是否在时间段内 |
| | | boolean intime = getInTime(now, xpPoint.getEffectivePeriod(), xpPoint.getEffectiveTimePeriod()); |
| | | if (!intime) { |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | |
| | | XpHistoryStartPointsVo xpHistoryStartPointsVo = new XpHistoryStartPointsVo(); |
| | | xpHistoryStartPointsVo.setOperationStatus(xpPoint.getOperationStatus()); |
| | | xpHistoryStartPointsVo.setName(xpPoint.getPointName()); |
| | |
| | | public List<XpHistoryEndPointsVo> getHistoryEndPoints(HistoryEndPointsDto historyEndPointsDto) { |
| | | List<XpPoint> xpPoints = this.baseMapper.selectBatchIds(historyEndPointsDto.getPointIds()); |
| | | ArrayList<XpHistoryEndPointsVo> resultList = new ArrayList<>(10); |
| | | |
| | | LocalTime now = LocalTime.now(); |
| | | List<Long> areaIds = xpPoints.stream().map(XpPoint::getElectronicAreaId).collect(Collectors.toList()); |
| | | List<XpElectronicFenceArea> xpElectronicFenceAreas = xpElectronicFenceAreaService.listByIds(areaIds); |
| | | List<Long> fenceIds = xpElectronicFenceAreas.stream().map(XpElectronicFenceArea::getElectronicId).collect(Collectors.toList()); |
| | | |
| | | List<XpElectronicFence> xpElectronicFences = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(fenceIds)) { |
| | | xpElectronicFences = xpElectronicFenceService.listByIds(fenceIds); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | for (XpPoint xpPoint : xpPoints) { |
| | | |
| | | if(xpPoint.getOperationStatus()!=2){ |
| | | continue; |
| | | } |
| | | |
| | | Integer operationType = xpPoint.getOperationType(); |
| | | if(1 == operationType){ |
| | | //与运营区同步 |
| | | XpElectronicFenceArea xpElectronicFenceArea = xpElectronicFenceAreas.stream().filter(s -> s.getId().equals(xpPoint.getElectronicAreaId())).findFirst().orElse(null); |
| | | if(null == xpElectronicFenceArea){ |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | XpElectronicFence xpElectronicFence = xpElectronicFences.stream().filter(s -> s.getId().equals(xpElectronicFenceArea.getElectronicId())).findFirst().orElse(null); |
| | | if(null == xpElectronicFence){ |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | //失效类型 1=永不失效 2=定时失效 |
| | | Integer failureType = xpElectronicFence.getFailureType(); |
| | | //永不失效,但是还未到开始时间 |
| | | if(1 == failureType && LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime())){ |
| | | continue; |
| | | }else if(2 == failureType && (LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime()) || LocalDateTime.now().isAfter(xpElectronicFence.getFailureTime()))){ |
| | | //定时失效,但是当前时间不在时间范围内 |
| | | continue; |
| | | } |
| | | }else{ |
| | | //自定义时间段 |
| | | // 判断是否在时间段内 |
| | | boolean intime = getInTime(now, xpPoint.getEffectivePeriod(), xpPoint.getEffectiveTimePeriod()); |
| | | if (!intime) { |
| | | // 不在运营段 |
| | | continue; |
| | | } |
| | | } |
| | | XpHistoryEndPointsVo xpHistoryEndPointsVo = new XpHistoryEndPointsVo(); |
| | | xpHistoryEndPointsVo.setOperationStatus(xpPoint.getOperationStatus()); |
| | | xpHistoryEndPointsVo.setName(xpPoint.getPointName()); |