# 运输计划导入模板修改说明 ## 修改日期 2026-09-08 ## 修改内容 ### 一、模板字段调整 #### 新增字段 1. **里程(km)** - 非必填,数值类型 2. **同一计划标识号** - 非必填,文本类型,用于标识同一计划的多条记录 #### 移除字段 1. 品牌 2. 物料编码 3. 设备编码 #### 字段名称调整 | 原字段名 | 新字段名 | |---------|---------| | 运输方式 | 运输类型 | | 数量单位 | 计量单位 | | 发货联系方式 | 发货联系人电话 | | 收货地址 | 到货地址 | | 收货联系方式 | 收货联系人电话 | | 计划开始日期 | 计划开始时间 | | 计划结束日期 | 计划结束时间 | #### 必填字段调整 调整后的必填字段(带 * 号): - *计划名称 - *运输类型 - *发货地址 - *到货地址 - *货物类型 **注意**:计划开始时间和计划结束时间改为非必填 ### 二、完整字段列表(按顺序) ``` 序号 | *计划名称 | *运输类型 | *发货地址 | 发货联系人 | 发货联系人电话 | *到货地址 | 收货联系人 | 收货联系人电话 | 货物名称 | *货物类型 | 数量 | 计量单位 | 包装 | 规格 | 型号 | 里程(km) | 计划开始时间 | 计划结束时间 | 备注 | 同一计划标识号 ``` ### 三、前端修改文件 1. **src/views/business/transport-plan-import.vue** - 更新 `importColumns` 数组(Excel列映射) - 更新 `previewColumns` 数组(预览表格列定义) - 调整必填字段验证逻辑 - 将计划开始/结束时间改为非必填 - 添加里程字段的非负数验证 - 调整表格最小宽度为 2400px ### 四、后端修改文件 1. **TransportPlan.java** (实体类) - 新增 `mileage` 字段(BigDecimal 类型) - 新增 `planGroupId` 字段(String 类型) 2. **TransportPlanImportExcel.java** (导入Excel实体) - 调整所有字段顺序和名称 - 移除 brand、materialCode、deviceCode 字段 - 新增 mileage、planGroupId 字段 - 更新所有 @ExcelProperty 注解 3. **TransportPlanServiceImpl.java** (服务实现) - 修改 `parseImportDate` 方法,支持空值(非必填) - 修改 `validateImportExcel` 方法 - 更新字段名称验证 - 移除计划日期必填验证 - 添加里程非负数验证 - 调整字段长度限制(计划名称从50改为255) - 修改 `importTransportPlan` 方法 - 支持计划时间为空 - 添加 mileage 和 planGroupId 字段赋值 - 修改 `importGoods` 方法,移除不再需要的字段 - 修改 `prepare` 方法,添加 planGroupId 字段处理 - 修改 `validate` 方法,添加新字段验证 ### 五、数据库修改 **SQL文件位置**: `/doc/sql/transport/blade_transport_plan_add_fields_20260908.sql` ```sql -- 添加里程字段 ALTER TABLE `blade_transport_plan` ADD COLUMN `mileage` decimal(10,2) DEFAULT NULL COMMENT '里程(km)' AFTER `remark`; -- 添加同一计划标识号字段 ALTER TABLE `blade_transport_plan` ADD COLUMN `plan_group_id` varchar(100) DEFAULT NULL COMMENT '同一计划标识号' AFTER `mileage`; -- 添加索引 ALTER TABLE `blade_transport_plan` ADD INDEX `idx_transport_plan_group_id` (`plan_group_id`) USING BTREE; ``` ### 六、使用说明 1. **数据库升级**:执行 SQL 迁移脚本添加新字段 2. **后端部署**:重新编译打包后端服务 3. **前端部署**:重新构建前端项目 4. **模板下载**:用户可通过导入页面下载最新模板 ### 七、兼容性说明 - 新字段为非必填,不影响现有数据 - 旧模板导入时新字段为空值 - 计划时间改为非必填,提升导入灵活性 - 同一计划标识号可用于批量导入时关联多条计划记录 ### 八、测试要点 1. 验证新模板下载功能 2. 测试必填字段校验 3. 测试非必填字段的空值处理 4. 测试里程字段的数值验证 5. 测试同一计划标识号的查询和分组 6. 测试日期字段的非必填场景