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");
bikeCodes.add(ebikeBikeFaultReport.getBikeCode());
}
if (!bikeCodes.isEmpty()){
if (!bikeCodes.isEmpty()) {
UpdateChain.of(EbikeBikeInfo.class)
.set(EbikeBikeInfo::getIsInWarehouse,"0")
.in(EbikeBikeInfo::getBikeCode,bikeCodes);
.set(EbikeBikeInfo::getIsInWarehouse, "0")
.in(EbikeBikeInfo::getBikeCode, bikeCodes);
}
List<ReqEbikeFaultReportFileDto> fileList = reqEbikeBikeFaultHandleDto.getFileList();
if (!fileList.isEmpty()) {
@ -1209,60 +1209,52 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
*/
@Transactional // 添加事务注解
public String createWorkOrderDispatch(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) {
try {
// 获取 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<EbikeDispatchRecords> 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<EbikeDispatchRecords> 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) {