Files
tms-erp-web/运输计划导入部署指南.md
b2894lxlx cba2ad3b3b 1、调整凭证
2、调整运单
2026-09-08 17:50:34 +08:00

8.2 KiB
Raw Permalink Blame History

运输计划导入增强功能 - 快速部署指南

一、修改文件清单

前端文件(tms-erp-web

  1. src/views/business/transport-plan-import.vue - 导入页面(已更新字段)

后端文件(tms-erp-api

  1. blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportPlan.java - 实体类(新增字段)
  2. blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportPlanImportExcel.java - 导入Excel实体
  3. blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java - 服务实现(核心逻辑)

数据库脚本

  1. 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. 修改计划名称
  2. 或删除/修改已有的同名计划

五、回滚方案

如果新功能有问题,需要回滚:

回滚步骤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:重新编译部署

按照正常流程重新编译和部署

六、监控指标

部署后需要关注:

  1. 导入成功率

    • 观察用户导入的成功/失败比例
    • 预期:初期可能失败率较高(用户适应新校验规则)
  2. 常见错误类型

    • 统计最常见的校验错误
    • 针对性优化用户指导文档
  3. 性能监控

    • 大批量导入(1000+条)的响应时间
    • 数据库查询性能
  4. 用户反馈

    • 收集用户对新校验规则的反馈
    • 调整过严或过松的规则

七、用户培训要点

向用户说明:

  1. 新的校验逻辑

    • 所有数据必须全部正确才能导入
    • 有任何错误都不会导入
  2. 错误Excel使用

    • 下载错误Excel查看具体错误
    • 修正后重新上传
  3. 运输类型枚举值

    • 必须使用:公路整车、公路配载/零担、铁路运输、水路运输、跨境海运、航空运输
  4. 电话格式要求

    • 必须是11位数字
    • 不要包含空格、横线等符号
  5. 计划名称唯一性

    • 当前组织下不能重复
    • 建议使用日期+序号命名
  6. 同一计划标识号

    • 用于关联同一计划的多条货物记录
    • 同一标识号下应保持地址等信息一致

八、技术支持

如遇到问题:

  1. 查看服务日志
  2. 检查数据库字段是否正确
  3. 验证导入Excel格式
  4. 联系开发团队

部署完成检查项:

  • 数据库字段已添加
  • 后端服务已重启
  • 前端已更新
  • 模板下载正常
  • 基础导入测试通过
  • 错误校验测试通过
  • 用户已培训

预计部署时间: 30分钟(不含用户培训) 建议部署时间: 非业务高峰期