# 车牌号关联修复说明 ## 问题描述 用户反馈:车牌号还是关联查询的是司机表中的数据 ## 问题原因 在 `DeliveryServiceImpl.java` 的两个方法中,存在从司机表获取车牌号并覆盖运送清单车牌号的逻辑: 1. **pageQuery** (列表查询) - 第1033行 2. **viewDelivery** (详情查询) - 第1560行 具体代码: ```java String licensePlate = (String) driverInfo.get("car_number"); delivery.setLicensePlate(licensePlate); // 错误:覆盖了用户选择的车牌号 ``` ## 解决方案 ### 移除从司机表获取车牌号的逻辑 **文件**: `DeliveryServiceImpl.java` #### 1. 列表查询方法 (pageQuery) **修改前**: ```java String licensePlate = (String) driverInfo.get("car_number"); deliveryLogVo.setLicensePlate(licensePlate); ``` **修改后**: ```java // 注释:车牌号不从司机表获取,车牌号是独立的模块 // 车牌号保持运送清单表中原有的值 ``` #### 2. 详情查询方法 (viewDelivery) **修改前**: ```java String licensePlate = (String) driverInfo.get("car_number"); delivery.setLicensePlate(licensePlate); ``` **修改后**: ```java // 注释:车牌号不从司机表获取,车牌号是独立的模块 // 车牌号保持运送清单表中原有的值 ``` #### 3. 移除相关日志输出 **修改前**: ```java System.out.println("查询到的车牌号: " + licensePlate); ``` **修改后**: ```java // 移除该日志 ``` #### 4. 修复车牌号匹配查询逻辑 **修改前**: ```java if (licensePlate != null && !licensePlate.equals(deliveryLogVo.getLicensePlate())) { // 根据车牌号查询司机 } ``` **修改后**: ```java // 不再根据车牌号查询司机,车牌号是独立的模块 ``` ## 模块说明 ### 司机模块 - **字段**: `driver_name`, `driver_mobile` - **数据来源**: 司机表 (member_driver) - **功能**: 记录司机姓名和手机号 ### 车牌号模块 - **字段**: `license_plate` - **数据来源**: 用户表单选择 - **功能**: 记录运送车辆的车牌号 **两个模块是独立的,不应互相覆盖。** ## 测试验证 创建运送清单后,检查: ```sql 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