基本完成,修复细节

This commit is contained in:
xuqiuyun
2025-10-29 17:33:32 +08:00
parent 6c86963418
commit d1d0b62184
37 changed files with 5133 additions and 236 deletions

193
RESTART_BACKEND_GUIDE.md Normal file
View File

@@ -0,0 +1,193 @@
# 重启后端服务指南
## 问题确认
后端日志显示执行的 SQL
```sql
UPDATE vehicle SET license_plate=?, ..., update_time=?, updated_by=?
WHERE id=? AND is_delete=0
```
**这是旧代码!** 说明后端服务没有重启,还在使用旧的编译版本。
## 解决步骤
### 方法1IDEA 重启服务(推荐)
1. **停止当前运行的服务**
- 在 IDEA 底部找到 "Run" 或 "Services" 窗口
- 找到正在运行的 Spring Boot 应用
- 点击红色方块按钮 ⬛ 停止服务
2. **清理编译缓存**(可选但推荐)
- IDEA 菜单:`Build``Clean Project`
- 或者:`Build``Rebuild Project`
3. **重新启动服务**
- 点击绿色三角按钮 ▶️ 启动服务
- 等待服务启动完成(看到 "Started Application" 日志)
### 方法2命令行重启
#### Windows PowerShell
```powershell
# 1. 停止后端服务(找到 Java 进程并结束)
tasklist | findstr java
# 记下 PID例如 21056
# 2. 结束进程
taskkill /F /PID 21056
# 3. 清理并重新编译
cd C:\cattleTransport\tradeCattle
mvn clean package -DskipTests
# 4. 重新启动服务
cd aiotagro-cattle-trade
java -jar target\aiotagro-cattletrade-1.0.1.jar
```
#### Linux/Mac
```bash
# 1. 找到并停止 Java 进程
ps aux | grep java
kill -9 <PID>
# 2. 清理并重新编译
cd /path/to/tradeCattle
mvn clean package -DskipTests
# 3. 重新启动服务
cd aiotagro-cattle-trade
java -jar target/aiotagro-cattletrade-1.0.1.jar
```
### 方法3使用 Spring Boot DevTools如果已配置
如果项目配置了 Spring Boot DevTools
- 保存文件后会自动重启
- 但完全替换方法时,建议手动重启
## 验证步骤
### 1. 检查后端日志
重启后,后端应该显示新的启动日志:
```
Started Application in X.XXX seconds
```
### 2. 测试删除功能
1. 刷新前端页面Ctrl+F5
2. 进入"车辆管理"页面
3. 点击"删除"按钮
4. 观察后端日志
### 3. 期望的日志输出
**新代码应该显示**
```
[VEHICLE-DELETE] 开始逻辑删除车辆ID: 3
[VEHICLE-DELETE] 车辆信息 - 车牌号: 鄂A 66662, 当前 is_delete: 0
UPDATE vehicle SET is_delete=1 WHERE id=3
[VEHICLE-DELETE] ✅ 逻辑删除成功,车牌号: 鄂A 66662, 操作人ID: 11
```
**关键点**
- ✅ SQL 中只有 `SET is_delete=1`
- ✅ 没有更新 `license_plate`, `car_front_photo` 等其他字段
- ✅ 日志显示 `[VEHICLE-DELETE]` 标签
### 4. 验证数据库
```sql
-- 查看该记录
SELECT id, license_plate, is_delete, update_time
FROM vehicle
WHERE id = 3;
-- 预期结果is_delete = 1
```
### 5. 验证前端列表
- ✅ 列表自动刷新
- ✅ 已删除的车辆不再显示
- ✅ 显示"删除成功"提示
## 常见问题
### Q1: 找不到正在运行的服务?
**检查**:
```powershell
# Windows
netstat -ano | findstr :16200
# 查看哪个进程占用了 16200 端口
# 结束进程
taskkill /F /PID <进程ID>
```
### Q2: Maven 编译失败?
**清理并重试**:
```powershell
cd C:\cattleTransport\tradeCattle
mvn clean
mvn compile -DskipTests
```
### Q3: 重启后还是旧代码?
**可能原因**:
1. IDEA 没有自动编译
- 解决:`Build``Rebuild Project`
2. 启动了错误的配置
- 解决:检查 Run Configuration
3. 类加载器缓存
- 解决:完全关闭 IDEA 并重新打开
### Q4: 端口被占用?
```powershell
# 查看占用端口的进程
netstat -ano | findstr :16200
# 结束进程
taskkill /F /PID <进程ID>
```
## 快速重启脚本
### Windows (PowerShell)
创建 `restart-backend.ps1`
```powershell
# 停止后端服务
$process = Get-Process | Where-Object {$_.ProcessName -eq "java" -and $_.MainWindowTitle -like "*cattletrade*"}
if ($process) {
Stop-Process -Id $process.Id -Force
Write-Host "已停止后端服务"
}
# 重新编译
cd C:\cattleTransport\tradeCattle
mvn clean compile -DskipTests
# 重新启动(在 IDEA 中手动启动)
Write-Host "编译完成,请在 IDEA 中重新启动服务"
```
运行:
```powershell
powershell -ExecutionPolicy Bypass -File restart-backend.ps1
```
## 总结
**关键步骤**
1. 停止后端服务
2. 清理编译缓存(可选)
3. 重新启动服务
4. 验证日志输出
**验证标志**
- 日志显示 `UPDATE vehicle SET is_delete=1`
- 数据库中 `is_delete` 变为 `1`
- 前端列表中记录消失
⚠️ **注意**
- 必须完全停止旧服务
- 确保编译成功
- 验证新代码是否生效