| | |
| | | import com.xiaopeng.common.core.web.domain.BaseModel; |
| | | import com.xiaopeng.common.core.web.page.PageInfo; |
| | | import com.xiaopeng.order.mapper.XpCruiseOrderMapper; |
| | | import com.xiaopeng.order.model.query.XpCruiseOrderExcelQuery; |
| | | import com.xiaopeng.order.model.query.XpCruiseOrderPageQuery; |
| | | import com.xiaopeng.order.model.vo.XpCruiseOrderPageVO; |
| | | import com.xiaopeng.order.service.IXpCruiseOrderService; |
| | |
| | | pageInfo.setRecords(voList); |
| | | return pageInfo; |
| | | } |
| | | |
| | | @Override |
| | | public List<XpCruiseOrderPageVO> getExportList(XpCruiseOrderExcelQuery query) { |
| | | LambdaQueryWrapper<XpCruiseOrder> wrapper = new LambdaQueryWrapper<XpCruiseOrder>() |
| | | .eq(XpCruiseOrder::getMissionId, String.valueOf(query.getMissionId())) |
| | | .like(Objects.nonNull(query.getId()), XpCruiseOrder::getId, query.getId()) |
| | | .eq(query.getStatus() != null, XpCruiseOrder::getStatus, query.getStatus()) |
| | | .eq(Objects.nonNull(query.getFleetId()), XpCruiseOrder::getFleetId, query.getFleetId()); |
| | | |
| | | if (query.getStartTime() != null) { |
| | | wrapper.ge(BaseModel::getCreateTime, query.getStartTime().atStartOfDay()); |
| | | } |
| | | if (query.getEndTime() != null) { |
| | | wrapper.le(BaseModel::getCreateTime, query.getEndTime().plusDays(1).atStartOfDay()); |
| | | } |
| | | //使用订单中的车队ID进行查询 |
| | | // if (query.getFleetId() != null) { |
| | | // R<List<Long>> fleetVehicleResult = xpFleetVehicleClient.listVehicleIdsByFleetId(query.getFleetId()); |
| | | // if (fleetVehicleResult == null || CollectionUtils.isEmpty(fleetVehicleResult.getData())) { |
| | | // pageInfo.setRecords(Collections.emptyList()); |
| | | // return pageInfo; |
| | | // } |
| | | // wrapper.in(XpCruiseOrder::getVehicleId, fleetVehicleResult.getData()); |
| | | // } |
| | | |
| | | if (StringUtils.isNotBlank(query.getPlateNumber())) { |
| | | R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByPlateNumber(query.getPlateNumber()); |
| | | if (vehicleResult == null || CollectionUtils.isEmpty(vehicleResult.getData())) { |
| | | return Collections.emptyList(); |
| | | } |
| | | List<Long> vehicleIds = vehicleResult.getData().stream().map(XpVehicle::getId).collect(Collectors.toList()); |
| | | wrapper.in(XpCruiseOrder::getVehicleId, vehicleIds); |
| | | } |
| | | if (!CollectionUtils.isEmpty(query.getIds())) { |
| | | wrapper.in(XpCruiseOrder::getId, query.getIds()); |
| | | } |
| | | wrapper.orderByDesc(XpCruiseOrder::getCreateTime); |
| | | List<XpCruiseOrder> resultList = this.list(wrapper); |
| | | if (CollectionUtils.isEmpty(resultList)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | Set<Long> vehicleIds = resultList.stream() |
| | | .map(XpCruiseOrder::getVehicleId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toSet()); |
| | | Map<Long, XpVehicle> vehicleMap; |
| | | if (!vehicleIds.isEmpty()) { |
| | | R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByIds(new ArrayList<>(vehicleIds)); |
| | | if (vehicleResult != null && !CollectionUtils.isEmpty(vehicleResult.getData())) { |
| | | vehicleMap = vehicleResult.getData().stream().collect(Collectors.toMap(XpVehicle::getId, v -> v)); |
| | | } else { |
| | | vehicleMap = Collections.emptyMap(); |
| | | } |
| | | } else { |
| | | vehicleMap = Collections.emptyMap(); |
| | | } |
| | | // Map<Long, Long> vehicleFleetIdMap = new HashMap<>(); |
| | | // if (!vehicleIds.isEmpty()) { |
| | | // for (Long vehicleId : vehicleIds) { |
| | | // R<Long> fleetIdResult = xpFleetVehicleClient.getFleetIdByVehicleId(vehicleId); |
| | | // if (fleetIdResult != null && fleetIdResult.getData() != null) { |
| | | // vehicleFleetIdMap.put(vehicleId, fleetIdResult.getData()); |
| | | // } |
| | | // } |
| | | // } |
| | | // Map<Long, String> fleetNameMap; |
| | | // if (!vehicleFleetIdMap.isEmpty()) { |
| | | // List<Long> fleetIds = vehicleFleetIdMap.values().stream().distinct().collect(Collectors.toList()); |
| | | // R<List<XpFleet>> fleetResult = xpFleetClient.listByIds(fleetIds); |
| | | // if (fleetResult != null && !CollectionUtils.isEmpty(fleetResult.getData())) { |
| | | // fleetNameMap = fleetResult.getData().stream() |
| | | // .collect(Collectors.toMap(XpFleet::getId, XpFleet::getFleetName, (a, b) -> a)); |
| | | // } else { |
| | | // fleetNameMap = Collections.emptyMap(); |
| | | // } |
| | | // } else { |
| | | // fleetNameMap = Collections.emptyMap(); |
| | | // } |
| | | Map<Long, String> fleetNameMap; |
| | | Set<Long> fleetIds = resultList.stream() |
| | | .map(XpCruiseOrder::getFleetId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toSet()); |
| | | if (!fleetIds.isEmpty()) { |
| | | R<List<XpFleet>> fleetResult = xpFleetClient.listByIds(new ArrayList<>(fleetIds)); |
| | | if (fleetResult != null && !CollectionUtils.isEmpty(fleetResult.getData())) { |
| | | fleetNameMap = fleetResult.getData().stream() |
| | | .collect(Collectors.toMap(XpFleet::getId, XpFleet::getFleetName, (a, b) -> a)); |
| | | } else { |
| | | fleetNameMap = Collections.emptyMap(); |
| | | } |
| | | } else { |
| | | fleetNameMap = Collections.emptyMap(); |
| | | } |
| | | List<XpCruiseOrderPageVO> voList = resultList.stream().map(order -> { |
| | | XpCruiseOrderPageVO vo = new XpCruiseOrderPageVO(); |
| | | BeanUtils.copyProperties(order, vo); |
| | | XpVehicle vehicle = vehicleMap.get(order.getVehicleId()); |
| | | if (vehicle != null) { |
| | | vo.setPlateNumber(vehicle.getPlateNumber()); |
| | | } |
| | | // Long fleetId = vehicleFleetIdMap.get(order.getVehicleId()); |
| | | Long fleetId = order.getFleetId(); |
| | | if (fleetId != null) { |
| | | vo.setFleetName(fleetNameMap.get(fleetId)); |
| | | } |
| | | return vo; |
| | | }).collect(Collectors.toList()); |
| | | return voList; |
| | | } |
| | | } |