2.7 KiB
2.7 KiB
车牌号关联修复说明
问题描述
用户反馈:车牌号还是关联查询的是司机表中的数据
问题原因
在 DeliveryServiceImpl.java 的两个方法中,存在从司机表获取车牌号并覆盖运送清单车牌号的逻辑:
- pageQuery (列表查询) - 第1033行
- viewDelivery (详情查询) - 第1560行
具体代码:
String licensePlate = (String) driverInfo.get("car_number");
delivery.setLicensePlate(licensePlate); // 错误:覆盖了用户选择的车牌号
解决方案
移除从司机表获取车牌号的逻辑
文件: DeliveryServiceImpl.java
1. 列表查询方法 (pageQuery)
修改前:
String licensePlate = (String) driverInfo.get("car_number");
deliveryLogVo.setLicensePlate(licensePlate);
修改后:
// 注释:车牌号不从司机表获取,车牌号是独立的模块
// 车牌号保持运送清单表中原有的值
2. 详情查询方法 (viewDelivery)
修改前:
String licensePlate = (String) driverInfo.get("car_number");
delivery.setLicensePlate(licensePlate);
修改后:
// 注释:车牌号不从司机表获取,车牌号是独立的模块
// 车牌号保持运送清单表中原有的值
3. 移除相关日志输出
修改前:
System.out.println("查询到的车牌号: " + licensePlate);
修改后:
// 移除该日志
4. 修复车牌号匹配查询逻辑
修改前:
if (licensePlate != null && !licensePlate.equals(deliveryLogVo.getLicensePlate())) {
// 根据车牌号查询司机
}
修改后:
// 不再根据车牌号查询司机,车牌号是独立的模块
模块说明
司机模块
- 字段:
driver_name,driver_mobile - 数据来源: 司机表 (member_driver)
- 功能: 记录司机姓名和手机号
车牌号模块
- 字段:
license_plate - 数据来源: 用户表单选择
- 功能: 记录运送车辆的车牌号
两个模块是独立的,不应互相覆盖。
测试验证
创建运送清单后,检查:
SELECT
id,
license_plate,
driver_id,
driver_name,
driver_mobile
FROM delivery
WHERE id = [最新创建的运送清单ID];
预期结果:
license_plate= 用户选择的车牌号(如 "1111111")driver_id= 选择的司机IDdriver_name= 司机姓名driver_mobile= 司机手机号
车牌号不应与司机表中的car_number字段关联。
相关文件
tradeCattle/aiotagro-cattle-trade/src/main/java/com/aiotagro/cattletrade/business/service/impl/DeliveryServiceImpl.java
实现日期
2025-10-29