From 28bdeb831c41939ac3e079fc3c34243425576472 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Mon, 1 Sep 2025 14:50:06 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EbikeBikeInfoServiceImpl.java | 100 ++++++++---------- 1 file changed, 46 insertions(+), 54 deletions(-) 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 2f7d7305..5f114f68 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 @@ -631,10 +631,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl fileList = reqEbikeBikeFaultHandleDto.getFileList(); if (!fileList.isEmpty()) { @@ -1209,60 +1209,52 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl records = new ArrayList<>(); - for (String bikeCode : eqWorkOrderDispatchDto.getBikeCodes()) { - EbikeDispatchRecords dispatchRecord = new EbikeDispatchRecords(); - //获取经纬度 - ResEbikeBikeAndEcuCodeDto bikeINfoData = getBikeINfoData(bikeCode); - ResGPSDto resGPSDto = bikeINfoData.getResGPSDto(); - if (resGPSDto != null) { - Double latitude = resGPSDto.getLatitude(); - Double longitude = resGPSDto.getLongitude(); - dispatchRecord.setStartVehicleLng(longitude); - dispatchRecord.setStartVehicleLat(latitude); - } - dispatchRecord.setOrderId(ebikeBikeOrder.getOrderId()); - dispatchRecord.setBikeCode(bikeCode); - dispatchRecord.setStartStationId(eqWorkOrderDispatchDto.getSiteId()); - records.add(dispatchRecord); + // 获取 token 和用户信息 + + StaffFeign staffFeign = getStaffFeignInfo(); + String userId = staffFeign.getStaffId().toString(); + checkBikeCodes(eqWorkOrderDispatchDto); + // 生成工单编号 + SnowFlakeIDKeyGenerator snowFlakeIDKeyGenerator = new SnowFlakeIDKeyGenerator(); + long orderCode = snowFlakeIDKeyGenerator.nextId(); + // 创建工单 + EbikeBikeOrder ebikeBikeOrder = new EbikeBikeOrder(); + ebikeBikeOrder.setOrderCode(orderCode); + ebikeBikeOrder.setOrderType("3"); // 设定工单类型(可能是常量,视需求而定) + ebikeBikeOrder.setReceiverId(userId); + ebikeBikeOrderMapper.insert(ebikeBikeOrder); + // 创建工单扩展关联表 + EbikeScheduleWorkOrderExtension ebikeScheduleWorkOrderExtension = new EbikeScheduleWorkOrderExtension(); + ebikeScheduleWorkOrderExtension.setId(ebikeBikeOrder.getOrderId()); + ebikeScheduleWorkOrderExtension.setDispatchType(eqWorkOrderDispatchDto.getDispatchType()); + ebikeScheduleWorkOrderExtension.setSiteId(eqWorkOrderDispatchDto.getSiteId());//站点id + ebikeScheduleWorkOrderExtensionMapper.insert(ebikeScheduleWorkOrderExtension); + // 创建并保存调度记录 + List records = new ArrayList<>(); + for (String bikeCode : eqWorkOrderDispatchDto.getBikeCodes()) { + EbikeDispatchRecords dispatchRecord = new EbikeDispatchRecords(); + //获取经纬度 + ResEbikeBikeAndEcuCodeDto bikeINfoData = getBikeINfoData(bikeCode); + ResGPSDto resGPSDto = bikeINfoData.getResGPSDto(); + if (resGPSDto != null) { + Double latitude = resGPSDto.getLatitude(); + Double longitude = resGPSDto.getLongitude(); + dispatchRecord.setStartVehicleLng(longitude); + dispatchRecord.setStartVehicleLat(latitude); } - // 批量插入调度记录(如果支持批量插入的话) - if (!records.isEmpty()) { - ebikeDispatchRecordsMapper.insertBatch(records); // 假设有批量插入的方法 - } - - // 返回工单 ID - return ebikeBikeOrder.getOrderId(); - - } catch (Exception e) { - // 异常处理,记录日志并抛出自定义异常或包装成 RuntimeException - // 可以使用日志工具,例如 log4j 或 slf4j,记录错误详细信息 - log.error("创建工单调度失败", e); - // 可根据需求抛出更具体的异常 - throw new RuntimeException("创建工单调度时发生异常", e); + dispatchRecord.setOrderId(ebikeBikeOrder.getOrderId()); + dispatchRecord.setBikeCode(bikeCode); + dispatchRecord.setStartStationId(eqWorkOrderDispatchDto.getSiteId()); + records.add(dispatchRecord); } + // 批量插入调度记录(如果支持批量插入的话) + if (!records.isEmpty()) { + ebikeDispatchRecordsMapper.insertBatch(records); // 假设有批量插入的方法 + } + + // 返回工单 ID + return ebikeBikeOrder.getOrderId(); } private void checkBikeCodes(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) {