cba2ad3b3b
2、调整运单
8.2 KiB
8.2 KiB
运输计划导入增强功能 - 快速部署指南
一、修改文件清单
前端文件(tms-erp-web)
- ✅
src/views/business/transport-plan-import.vue- 导入页面(已更新字段)
后端文件(tms-erp-api)
- ✅
blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportPlan.java- 实体类(新增字段) - ✅
blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportPlanImportExcel.java- 导入Excel实体 - ✅
blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java- 服务实现(核心逻辑)
数据库脚本
- ✅
doc/sql/transport/blade_transport_plan_add_fields_20260908.sql- 字段迁移脚本
二、部署步骤
步骤1:数据库升级(必须最先执行)
cd /Users/liangxin/Project/JAVA/tms-erp-api
mysql -u用户名 -p密码 数据库名 < doc/sql/transport/blade_transport_plan_add_fields_20260908.sql
验证:
DESC blade_transport_plan;
-- 应该能看到 mileage 和 plan_group_id 两个新字段
步骤2:后端编译打包
cd /Users/liangxin/Project/JAVA/tms-erp-api
mvn clean package -DskipTests
验证编译结果:
- 检查
blade-service/blade-transport/target/目录是否有 jar 包生成
步骤3:前端构建
cd /Users/liangxin/Project/Html/web/tms-erp-web
pnpm run build
步骤4:部署后端服务
停止运输服务 → 替换 jar 包 → 启动服务
步骤5:部署前端
将 dist 目录部署到Web服务器
三、功能测试清单
测试1:模板下载
- 访问
/business/transport-plan/import页面 - 点击"下载模板"按钮
- 验证Excel模板字段顺序和标题正确
预期字段顺序:
序号 | *计划名称 | *运输类型 | *发货地址 | 发货联系人 | 发货联系人电话 |
*到货地址 | 收货联系人 | 收货联系人电话 | 货物名称 | *货物类型 |
数量 | 计量单位 | 包装 | 规格 | 型号 | 里程(km) |
计划开始时间 | 计划结束时间 | 备注 | 同一计划标识号
测试2:必填字段校验
测试数据: 计划名称为空
- 上传Excel
- 系统提示导入失败
- 下载错误Excel
- 验证错误信息:
1. 计划名称不能为空
测试3:运输类型枚举校验
测试数据: 运输类型 = "陆运"(非枚举值)
- 上传Excel
- 系统提示导入失败
- 验证错误信息包含枚举值列表
测试4:电话格式校验
测试数据: 发货联系人电话 = "12345"
- 上传Excel
- 系统提示导入失败
- 验证错误信息:
发货联系人电话格式不正确(需11位数字)
测试5:计划名称唯一性
测试数据: 两条记录使用相同的计划名称
- 上传Excel
- 系统提示导入失败
- 验证错误信息:
计划名称在导入数据中重复
测试6:日期逻辑校验
测试数据: 计划结束时间 < 计划开始时间
- 上传Excel
- 系统提示导入失败
- 验证错误信息:
计划结束时间不得早于计划开始时间
测试7:多个错误显示
测试数据: 一条记录缺少多个必填字段
- 上传Excel
- 验证错误信息以编号列表形式展示
1. 计划名称不能为空
2. 运输类型不能为空
3. 发货地址不能为空
测试8:部分数据有错不导入全部
测试数据: 10条记录,第5条有错误
- 上传Excel
- 验证:数据库中没有任何记录被导入
- 验证:错误Excel中仅第5条有错误信息
测试9:新增字段功能
测试数据: 填写里程和同一计划标识号
- 上传Excel(所有数据正确)
- 验证导入成功
- 查看计划详情,验证里程和同一计划标识号已保存
测试10:同一计划标识号关联
测试数据: 3条记录使用相同的同一计划标识号
- 上传Excel(所有数据正确)
- 验证导入成功
- 查询时可通过同一计划标识号筛选出这3条记录
测试11:正常导入
测试数据: 完整正确的数据
计划名称:测试计划001
运输类型:公路整车
发货地址:广西壮族自治区柳州市柳北区鹧鸪江路15号桂中海迅物流园
发货联系人:周经理
发货联系人电话:13800000001
到货地址:浙江省宁波市北仑区集翔路8号舟山港
收货联系人:王经理
收货联系人电话:13900000001
货物名称:石灰石
货物类型:石灰石
数量:100
计量单位:吨
里程(km):850
- 上传Excel
- 验证导入成功提示
- 进入运输计划列表验证数据已创建
四、常见问题排查
问题1:编译失败
症状: Maven 编译报错 排查:
# 检查 Java 版本
java -version
# 清理并重新编译
mvn clean compile
问题2:导入时报错 "字段不存在"
原因: 数据库脚本未执行 解决:
-- 检查字段是否存在
SHOW COLUMNS FROM blade_transport_plan LIKE 'mileage';
SHOW COLUMNS FROM blade_transport_plan LIKE 'plan_group_id';
-- 如果不存在,执行迁移脚本
SOURCE doc/sql/transport/blade_transport_plan_add_fields_20260908.sql;
问题3:错误Excel未下载
原因: 浏览器拦截下载 解决: 检查浏览器下载设置,允许自动下载
问题4:导入后数据丢失
原因: 部分数据有错导致全部回滚(这是预期行为) 解决: 修正所有错误数据后重新导入
问题5:计划名称重复错误
原因: 当前组织下已存在同名计划 解决:
- 修改计划名称
- 或删除/修改已有的同名计划
五、回滚方案
如果新功能有问题,需要回滚:
回滚步骤1:恢复后端代码
cd /Users/liangxin/Project/JAVA/tms-erp-api
git checkout HEAD -- blade-service/blade-transport/
git checkout HEAD -- blade-service-api/blade-transport-api/
回滚步骤2:恢复前端代码
cd /Users/liangxin/Project/Html/web/tms-erp-web
git checkout HEAD -- src/views/business/transport-plan-import.vue
回滚步骤3:数据库字段(可选)
-- 新字段不影响旧功能,可以不删除
-- 如需删除:
ALTER TABLE blade_transport_plan DROP COLUMN mileage;
ALTER TABLE blade_transport_plan DROP COLUMN plan_group_id;
回滚步骤4:重新编译部署
按照正常流程重新编译和部署
六、监控指标
部署后需要关注:
-
导入成功率
- 观察用户导入的成功/失败比例
- 预期:初期可能失败率较高(用户适应新校验规则)
-
常见错误类型
- 统计最常见的校验错误
- 针对性优化用户指导文档
-
性能监控
- 大批量导入(1000+条)的响应时间
- 数据库查询性能
-
用户反馈
- 收集用户对新校验规则的反馈
- 调整过严或过松的规则
七、用户培训要点
向用户说明:
-
✅ 新的校验逻辑
- 所有数据必须全部正确才能导入
- 有任何错误都不会导入
-
✅ 错误Excel使用
- 下载错误Excel查看具体错误
- 修正后重新上传
-
✅ 运输类型枚举值
- 必须使用:公路整车、公路配载/零担、铁路运输、水路运输、跨境海运、航空运输
-
✅ 电话格式要求
- 必须是11位数字
- 不要包含空格、横线等符号
-
✅ 计划名称唯一性
- 当前组织下不能重复
- 建议使用日期+序号命名
-
✅ 同一计划标识号
- 用于关联同一计划的多条货物记录
- 同一标识号下应保持地址等信息一致
八、技术支持
如遇到问题:
- 查看服务日志
- 检查数据库字段是否正确
- 验证导入Excel格式
- 联系开发团队
部署完成检查项:
- 数据库字段已添加
- 后端服务已重启
- 前端已更新
- 模板下载正常
- 基础导入测试通过
- 错误校验测试通过
- 用户已培训
预计部署时间: 30分钟(不含用户培训) 建议部署时间: 非业务高峰期