Files
cattleTransportation/LICENSE_PLATE_FIX.md
2025-10-29 17:33:32 +08:00

2.7 KiB
Raw Blame History

车牌号关联修复说明

问题描述

用户反馈:车牌号还是关联查询的是司机表中的数据

问题原因

DeliveryServiceImpl.java 的两个方法中,存在从司机表获取车牌号并覆盖运送清单车牌号的逻辑:

  1. pageQuery (列表查询) - 第1033行
  2. 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 = 选择的司机ID
  • driver_name = 司机姓名
  • driver_mobile = 司机手机号

车牌号不应与司机表中的car_number字段关联。

相关文件

  • tradeCattle/aiotagro-cattle-trade/src/main/java/com/aiotagro/cattletrade/business/service/impl/DeliveryServiceImpl.java

实现日期

2025-10-29