bug修复

This commit is contained in:
attiya 2025-09-01 14:50:06 +08:00
parent e3ea282568
commit 28bdeb831c

View File

@ -631,10 +631,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
ebikeBikeFaultReport.setHandleState("1"); ebikeBikeFaultReport.setHandleState("1");
bikeCodes.add(ebikeBikeFaultReport.getBikeCode()); bikeCodes.add(ebikeBikeFaultReport.getBikeCode());
} }
if (!bikeCodes.isEmpty()){ if (!bikeCodes.isEmpty()) {
UpdateChain.of(EbikeBikeInfo.class) UpdateChain.of(EbikeBikeInfo.class)
.set(EbikeBikeInfo::getIsInWarehouse,"0") .set(EbikeBikeInfo::getIsInWarehouse, "0")
.in(EbikeBikeInfo::getBikeCode,bikeCodes); .in(EbikeBikeInfo::getBikeCode, bikeCodes);
} }
List<ReqEbikeFaultReportFileDto> fileList = reqEbikeBikeFaultHandleDto.getFileList(); List<ReqEbikeFaultReportFileDto> fileList = reqEbikeBikeFaultHandleDto.getFileList();
if (!fileList.isEmpty()) { if (!fileList.isEmpty()) {
@ -1209,60 +1209,52 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
*/ */
@Transactional // 添加事务注解 @Transactional // 添加事务注解
public String createWorkOrderDispatch(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) { public String createWorkOrderDispatch(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) {
try {
// 获取 token 和用户信息
StaffFeign staffFeign = getStaffFeignInfo(); // 获取 token 和用户信息
String userId = staffFeign.getStaffId().toString();
checkBikeCodes(eqWorkOrderDispatchDto); StaffFeign staffFeign = getStaffFeignInfo();
// 生成工单编号 String userId = staffFeign.getStaffId().toString();
SnowFlakeIDKeyGenerator snowFlakeIDKeyGenerator = new SnowFlakeIDKeyGenerator(); checkBikeCodes(eqWorkOrderDispatchDto);
long orderCode = snowFlakeIDKeyGenerator.nextId(); // 生成工单编号
// 创建工单 SnowFlakeIDKeyGenerator snowFlakeIDKeyGenerator = new SnowFlakeIDKeyGenerator();
EbikeBikeOrder ebikeBikeOrder = new EbikeBikeOrder(); long orderCode = snowFlakeIDKeyGenerator.nextId();
ebikeBikeOrder.setOrderCode(orderCode); // 创建工单
ebikeBikeOrder.setOrderType("3"); // 设定工单类型可能是常量视需求而定 EbikeBikeOrder ebikeBikeOrder = new EbikeBikeOrder();
ebikeBikeOrder.setReceiverId(userId); ebikeBikeOrder.setOrderCode(orderCode);
ebikeBikeOrderMapper.insert(ebikeBikeOrder); ebikeBikeOrder.setOrderType("3"); // 设定工单类型可能是常量视需求而定
// 创建工单扩展关联表 ebikeBikeOrder.setReceiverId(userId);
EbikeScheduleWorkOrderExtension ebikeScheduleWorkOrderExtension = new EbikeScheduleWorkOrderExtension(); ebikeBikeOrderMapper.insert(ebikeBikeOrder);
ebikeScheduleWorkOrderExtension.setId(ebikeBikeOrder.getOrderId()); // 创建工单扩展关联表
ebikeScheduleWorkOrderExtension.setDispatchType(eqWorkOrderDispatchDto.getDispatchType()); EbikeScheduleWorkOrderExtension ebikeScheduleWorkOrderExtension = new EbikeScheduleWorkOrderExtension();
ebikeScheduleWorkOrderExtension.setSiteId(eqWorkOrderDispatchDto.getSiteId());//站点id ebikeScheduleWorkOrderExtension.setId(ebikeBikeOrder.getOrderId());
ebikeScheduleWorkOrderExtensionMapper.insert(ebikeScheduleWorkOrderExtension); ebikeScheduleWorkOrderExtension.setDispatchType(eqWorkOrderDispatchDto.getDispatchType());
// 创建并保存调度记录 ebikeScheduleWorkOrderExtension.setSiteId(eqWorkOrderDispatchDto.getSiteId());//站点id
List<EbikeDispatchRecords> records = new ArrayList<>(); ebikeScheduleWorkOrderExtensionMapper.insert(ebikeScheduleWorkOrderExtension);
for (String bikeCode : eqWorkOrderDispatchDto.getBikeCodes()) { // 创建并保存调度记录
EbikeDispatchRecords dispatchRecord = new EbikeDispatchRecords(); List<EbikeDispatchRecords> records = new ArrayList<>();
//获取经纬度 for (String bikeCode : eqWorkOrderDispatchDto.getBikeCodes()) {
ResEbikeBikeAndEcuCodeDto bikeINfoData = getBikeINfoData(bikeCode); EbikeDispatchRecords dispatchRecord = new EbikeDispatchRecords();
ResGPSDto resGPSDto = bikeINfoData.getResGPSDto(); //获取经纬度
if (resGPSDto != null) { ResEbikeBikeAndEcuCodeDto bikeINfoData = getBikeINfoData(bikeCode);
Double latitude = resGPSDto.getLatitude(); ResGPSDto resGPSDto = bikeINfoData.getResGPSDto();
Double longitude = resGPSDto.getLongitude(); if (resGPSDto != null) {
dispatchRecord.setStartVehicleLng(longitude); Double latitude = resGPSDto.getLatitude();
dispatchRecord.setStartVehicleLat(latitude); Double longitude = resGPSDto.getLongitude();
} dispatchRecord.setStartVehicleLng(longitude);
dispatchRecord.setOrderId(ebikeBikeOrder.getOrderId()); dispatchRecord.setStartVehicleLat(latitude);
dispatchRecord.setBikeCode(bikeCode);
dispatchRecord.setStartStationId(eqWorkOrderDispatchDto.getSiteId());
records.add(dispatchRecord);
} }
// 批量插入调度记录如果支持批量插入的话 dispatchRecord.setOrderId(ebikeBikeOrder.getOrderId());
if (!records.isEmpty()) { dispatchRecord.setBikeCode(bikeCode);
ebikeDispatchRecordsMapper.insertBatch(records); // 假设有批量插入的方法 dispatchRecord.setStartStationId(eqWorkOrderDispatchDto.getSiteId());
} records.add(dispatchRecord);
// 返回工单 ID
return ebikeBikeOrder.getOrderId();
} catch (Exception e) {
// 异常处理记录日志并抛出自定义异常或包装成 RuntimeException
// 可以使用日志工具例如 log4j slf4j记录错误详细信息
log.error("创建工单调度失败", e);
// 可根据需求抛出更具体的异常
throw new RuntimeException("创建工单调度时发生异常", e);
} }
// 批量插入调度记录如果支持批量插入的话
if (!records.isEmpty()) {
ebikeDispatchRecordsMapper.insertBatch(records); // 假设有批量插入的方法
}
// 返回工单 ID
return ebikeBikeOrder.getOrderId();
} }
private void checkBikeCodes(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) { private void checkBikeCodes(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) {