48 lines
2.2 KiB
Markdown
48 lines
2.2 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: 地磅业务表 DDL
|
|
|
|
系统 SHALL 在 shanxia2.0 库中提供四张地磅业务表:`db_purchase_plan`、`db_weighing_slip`、`db_inbound_outbound`、`db_vehicle`。每张表 SHALL 使用 `VARCHAR(64)` UUID 主键,并在业务字段之后包含 database-conventions 规定的公共字段(`tenant_no` 至 `del_flag`)。
|
|
|
|
#### Scenario: 表结构符合公共字段约定
|
|
|
|
- **WHEN** 查阅 `docs/sql/shanxia2.0.sql` 中 `db_purchase_plan` 定义
|
|
- **THEN** 可见 `id` 为 VARCHAR(64),且含 `tenant_no`、`create_time`、`update_time`、`del_flag` 等公共字段
|
|
|
|
#### Scenario: 关联字段为 UUID
|
|
|
|
- **WHEN** 查阅 `db_weighing_slip` 表定义
|
|
- **THEN** `purchase_plan_id` 与 `inbound_outbound_id` 为 VARCHAR(64),可为 NULL
|
|
|
|
### Requirement: 业务字段保留与原系统语义
|
|
|
|
四表 SHALL 保留原地磅核心业务字段名与语义(如 `plan_no`、`execution_status`、`cargo_name`、`is_voided`、`auto_generate_enabled`),仅将不符合规范的类型(如 int 主键、varchar 时间、is_deleted)改为规范形式。
|
|
|
|
#### Scenario: 地磅单保留作废标记
|
|
|
|
- **WHEN** 查阅 `db_weighing_slip` 表定义
|
|
- **THEN** 存在 `is_voided` 字段(0 正常,1 作废),与 `del_flag` 并存
|
|
|
|
#### Scenario: 计划表保留自动生成字段
|
|
|
|
- **WHEN** 查阅 `db_purchase_plan` 表定义
|
|
- **THEN** 存在 `auto_generate_enabled`、`auto_generate_end_month`、`auto_generate_last_month` 字段
|
|
|
|
### Requirement: 历史数据迁移脚本
|
|
|
|
项目 SHALL 提供可将原地磅库(`dibang.sql` 或生产库)四表数据导入 shanxia2.0 的迁移脚本,生成新 UUID 并维护旧 int id 到新 id 的映射,重写表间关联 ID。
|
|
|
|
#### Scenario: 迁移后关联完整
|
|
|
|
- **WHEN** 对迁移后的 `db_weighing_slip` 抽样检查 `purchase_plan_id`
|
|
- **THEN** 非 NULL 的 `purchase_plan_id` 均能在 `db_purchase_plan.id` 中找到对应记录
|
|
|
|
### Requirement: DDL 快照维护
|
|
|
|
表结构变更 SHALL 同步维护于 `docs/sql/`(增量脚本及/或 `shanxia2.0.sql` 全量快照)。
|
|
|
|
#### Scenario: 新环境建表
|
|
|
|
- **WHEN** 在新 MySQL 实例执行项目提供的地磅 DDL 脚本
|
|
- **THEN** 四张 `db_*` 表创建成功且无语法错误
|