xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/maintenance/XpChargingRecord.java
@@ -48,7 +48,7 @@ private String startChargingPicture; @ApiModelProperty(value = "开始充电时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime startTime; @ApiModelProperty(value = "结束剩余电量") @@ -59,7 +59,7 @@ private String endChargingPicture; @ApiModelProperty(value = "结束充电时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; @ApiModelProperty(value = "开始充电操作人") xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/maintenance/XpVehicleRepair.java
@@ -43,11 +43,11 @@ private Long vehicleId; @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8") private LocalDate startTime; @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8") private LocalDate endTime; @ApiModelProperty(value = "维修原因") @@ -66,14 +66,14 @@ private Long sendUserId; @ApiModelProperty(value = "送修时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime sendTime; @ApiModelProperty(value = "取回人") private Long returnUserId; @ApiModelProperty(value = "取回时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime returnTime; xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -25,6 +25,7 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -61,6 +62,7 @@ /** * 车辆详情-车辆调度-发车 收车 */ @Transactional(rollbackFor = Exception.class) @ApiOperation(value = "车辆运维-车辆调度-发车/收车", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicle/vehicleDispatchDeparture") public R<String> vehicleDispatchDeparture(@RequestBody VehicleDispatchDepartureDTO dto) { @@ -71,13 +73,12 @@ if(xpVehicle.getState()==1){ return R.fail("车辆正在接单中"); } xpVehicle.setOperatingStatus(dto.getDepartureStatus()); xpVehicleClient.updateVehicleById(xpVehicle); VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class); if(vehiclePosition==null || vehiclePosition.getPoint()==null){ return R.fail("车辆位置信息不存在"); } xpVehicle.setOperatingStatus(dto.getDepartureStatus()); xpVehicleClient.updateVehicleById(xpVehicle); // 发车 if(dto.getDepartureStatus()==1){ // 找车辆的任务 生成巡游单子 下发命令 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/vo/XpChargingRecordVO.java
@@ -31,7 +31,7 @@ private String operatorEndName; @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime operationTime; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/vo/XpVehicleCleanVO.java
@@ -31,7 +31,7 @@ private String operatorEndName; @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime operationTime; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/vo/XpVehicleDetectionVO.java
@@ -34,7 +34,7 @@ private String operatorEndName; @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime operationTime; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/vo/XpVehiclePreparationVO.java
@@ -31,7 +31,7 @@ private String operatorEndName; @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime operationTime; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/vo/XpVehicleRepairVO.java
@@ -31,7 +31,7 @@ private String operatorEndName; @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private LocalDateTime operationTime; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/ClockInScheduleTask.java
@@ -158,46 +158,46 @@ } } if (!CollectionUtils.isEmpty(clockOutPlanListLast)){ List<Long> fleetIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getFleetId).distinct().collect(Collectors.toList()); // 查询所有车队的绑定人员 List<XpFleetOperations> xpFleetOperations = xpFleetOperationsClient.getOperationsIdsByFleetIds(fleetIds).getData(); // 查询班次 List<Long> shiftIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getShiftId).collect(Collectors.toList()); List<XpShift> xpShifts = xpShiftService.list(Wrappers.lambdaQuery(XpShift.class) .in(XpShift::getId, shiftIds)); log.info("========== 查询到{}个车队 ==========", xpFleetOperations.size()); // 处理下班卡缺卡情况 // 过滤当前时间在班次下班打卡时间之后5小时的数据 今日已过下班打卡时间5小时后的班次 List<XpShift> shiftListFive = xpShifts.stream().filter(xpShift -> DateUtils.stringToLocalDateTime(LocalDate.now().minusDays(1) + " " + xpShift.getEndTime() + ":00").plusHours(5).isBefore(LocalDateTime.now())).collect(Collectors.toList()); List<Long> fiveIds = shiftListFive.stream().map(XpShift::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(fiveIds)){ log.info("========== 进入下班过期的班次 =========="); // 获取过期当前班次的排班明细 覆盖 List<XpSchedulingDetail> fiveClockOutPlans = clockOutPlanListLast.stream().filter(xpSchedulingDetail -> fiveIds.contains(xpSchedulingDetail.getShiftId())).collect(Collectors.toList()); List<Long> fiveFleetIdIn = fiveClockOutPlans.stream().map(XpSchedulingDetail::getFleetId).collect(Collectors.toList()); // 查询所有车队的绑定人员 if(!CollectionUtils.isEmpty(xpFleetOperations)){ List<Long> operationsUserIdsFive = xpFleetOperations.stream().filter(x -> fiveFleetIdIn.contains(x.getFleetId())) .map(XpFleetOperations::getOperationsUserId).distinct().collect(Collectors.toList()); // 批量查询人员打卡信息 List<XpClockIn> clockInListFive = xpClockInService.list(Wrappers.lambdaQuery(XpClockIn.class) .in(XpClockIn::getAppUserId, operationsUserIdsFive) .isNull(XpClockIn::getClockOutTime)); log.info("========== 获取到{}个人员没有下班打卡信息 ==========", clockInListFive.size()); if(!CollectionUtils.isEmpty(clockInListFive)){ for (XpClockIn xpClockIn : clockInListFive) { xpClockIn.setClockOutTime(LocalDateTime.now()); xpClockIn.setClockOutResult(3); } xpClockInService.updateBatchById(clockInListFive); log.info("========== 修改为下班缺卡 =========="); } } } } // if (!CollectionUtils.isEmpty(clockOutPlanListLast)){ // List<Long> fleetIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getFleetId).distinct().collect(Collectors.toList()); // // 查询所有车队的绑定人员 // List<XpFleetOperations> xpFleetOperations = xpFleetOperationsClient.getOperationsIdsByFleetIds(fleetIds).getData(); // // 查询班次 // List<Long> shiftIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getShiftId).collect(Collectors.toList()); // List<XpShift> xpShifts = xpShiftService.list(Wrappers.lambdaQuery(XpShift.class) // .in(XpShift::getId, shiftIds)); // log.info("========== 查询到{}个车队 ==========", xpFleetOperations.size()); // // // 处理下班卡缺卡情况 // // 过滤当前时间在班次下班打卡时间之后5小时的数据 今日已过下班打卡时间5小时后的班次 // List<XpShift> shiftListFive = xpShifts.stream().filter(xpShift -> // DateUtils.stringToLocalDateTime(LocalDate.now().minusDays(1) + " " + xpShift.getEndTime() + ":00").plusHours(5).isBefore(LocalDateTime.now())).collect(Collectors.toList()); // List<Long> fiveIds = shiftListFive.stream().map(XpShift::getId).collect(Collectors.toList()); // if(!CollectionUtils.isEmpty(fiveIds)){ // log.info("========== 进入下班过期的班次 =========="); // // 获取过期当前班次的排班明细 覆盖 // List<XpSchedulingDetail> fiveClockOutPlans = clockOutPlanListLast.stream().filter(xpSchedulingDetail -> fiveIds.contains(xpSchedulingDetail.getShiftId())).collect(Collectors.toList()); // List<Long> fiveFleetIdIn = fiveClockOutPlans.stream().map(XpSchedulingDetail::getFleetId).collect(Collectors.toList()); // // 查询所有车队的绑定人员 // if(!CollectionUtils.isEmpty(xpFleetOperations)){ // List<Long> operationsUserIdsFive = xpFleetOperations.stream().filter(x -> fiveFleetIdIn.contains(x.getFleetId())) // .map(XpFleetOperations::getOperationsUserId).distinct().collect(Collectors.toList()); // // 批量查询人员打卡信息 // List<XpClockIn> clockInListFive = xpClockInService.list(Wrappers.lambdaQuery(XpClockIn.class) // .in(XpClockIn::getAppUserId, operationsUserIdsFive) // .isNull(XpClockIn::getClockOutTime)); // log.info("========== 获取到{}个人员没有下班打卡信息 ==========", clockInListFive.size()); // if(!CollectionUtils.isEmpty(clockInListFive)){ // for (XpClockIn xpClockIn : clockInListFive) { // xpClockIn.setClockOutTime(LocalDateTime.now()); // xpClockIn.setClockOutResult(3); // } // xpClockInService.updateBatchById(clockInListFive); // log.info("========== 修改为下班缺卡 =========="); // } // } // } // } } catch (Exception e) { log.error("执行打卡检查任务执行失败", e); xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java
@@ -118,6 +118,8 @@ if (Objects.nonNull(operationsUserEnd)) { xpChargingRecordVO.setOperatorEndName(operationsUserEnd.getNickName()); } xpChargingRecordVO.setStartMileageRange(Objects.nonNull(xpChargingRecord.getStartMileageRange()) ? xpChargingRecord.getStartMileageRange() : 0F); xpChargingRecordVO.setEndMileageRange(Objects.nonNull(xpChargingRecord.getEndMileageRange()) ? xpChargingRecord.getEndMileageRange() : 0F); return xpChargingRecordVO; } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -533,7 +533,7 @@ */ @ApiOperation(value = "订单查询轨迹路线") @PostMapping("/api/v1/mini-program/order/queryOrderTrajectory") public R<List<OrderTrajectory>> queryOrderTrajectory(@RequestParam Long orderId, HttpServletRequest request) { public R<List<OrderTrajectory>> queryOrderTrajectory(@RequestParam String orderId, HttpServletRequest request) { String uid = request.getHeader("XP-Uid"); List<OrderTrajectory> trajectories = mongoTemplate.find( new Query(Criteria.where("orderId").is(orderId))