diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java index 2cc0fb05..ea315d58 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java @@ -81,4 +81,13 @@ public interface MaintenanceFeignClient { */ @PostMapping("ebikeBikeInfo/deleteBatteryInfo") JsonResult> deleteBatteryInfo(@RequestBody List batteryCodes); + + /** + * 根据ecuSn生成换电工单 + * + * @param ecuSn 中控编号编号 + * @return 结果 + */ + @GetMapping("ebikeOrder/changeBattery") + JsonResult changeBattery(@RequestParam(name = "ecuSn") String ecuSn); } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/EbikeBikeOrder.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/EbikeBikeOrder.java index 89bb8e61..551000fc 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/EbikeBikeOrder.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/EbikeBikeOrder.java @@ -47,7 +47,7 @@ public class EbikeBikeOrder implements Serializable { private Long orderCode; /** - * 工单类型 1 维修工单 2 换电工单 + * 工单类型 1 维修工单 2 换电工单 3 调度工单 */ private String orderType; diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java index 683348dc..aa713024 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java @@ -41,6 +41,7 @@ import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -55,8 +56,7 @@ import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeInfoTableDef.E import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeOrderTableDef.EBIKE_BIKE_ORDER; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeCarStatusInfoTableDef.EBIKE_CAR_STATUS_INFO; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO; -import static com.mybatisflex.core.query.QueryMethods.max; -import static com.mybatisflex.core.query.QueryMethods.select; +import static com.mybatisflex.core.query.QueryMethods.*; /** * 车辆基本信息 服务层实现。 @@ -113,6 +113,8 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl{}", e.getMessage() + Arrays.toString(e.getStackTrace())); @@ -1085,4 +1088,44 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl bikeCode = reqBulkDeliveryDto.getBikeCode(); + String tokenValue = StpUtil.getTokenValue(); + JsonResult result = staffFeignClient.getInfoByToken(tokenValue); + if (result.getCode() != Code.SUCCESS) { + throw new RuntimeException("获取用户信息失败"); + } + StaffFeign staffFeign = result.getData(); + // 获取当前操作用户和时间 + String operatorName = staffFeign.getStaffId().toString(); + LocalDateTime currentTime = LocalDateTime.now(); + String batch = currentTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); // 格式化当前时间为“年月日时分秒”形式 + + // 创建用于批量插入的记录列表 + List recordsList = new ArrayList<>(bikeCode.size()); + // 遍历车辆编号列表,生成每个记录对象 + for (String bikeId : bikeCode) { + EbikeVehicleListingRecords record = new EbikeVehicleListingRecords(); + record.setBatch(batch); + record.setBikeCode(bikeId); + String reginId = reqBulkDeliveryDto.getReginId(); + // 根据reginId是否为空设置内容 + record.setContent(reginId.isEmpty() ? "车辆批量下架" : "车辆批量上架"); + record.setOperationType(reginId.isEmpty() ? 0 : 1); + record.setOperateUser(operatorName); + record.setOperateTime(currentTime); + record.setReginId(reqBulkDeliveryDto.getReginId()); + recordsList.add(record); + } + // 如果有记录,则批量插入 + if (!recordsList.isEmpty()) { + ebikeVehicleListingRecordsMapper.insertBatch(recordsList); + } + } } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeOrderServiceImpl.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeOrderServiceImpl.java index 6d0c3d19..03fd447e 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeOrderServiceImpl.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeOrderServiceImpl.java @@ -39,10 +39,11 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl 0 && resGpsDto.getSoc() < 20){ + maintenanceFeignClient.changeBattery(deviceId); } resGpsDto.setEcuSn(deviceId); resGpsDto.setHelmetExit(helmet);