Files
cattleTransportation/LICENSE_PLATE_FIX.md

125 lines
2.7 KiB
Markdown
Raw Normal View History

2025-10-29 17:33:32 +08:00
# 车牌号关联修复说明
## 问题描述
用户反馈:车牌号还是关联查询的是司机表中的数据
## 问题原因
`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