222 lines
7.6 KiB
Markdown
222 lines
7.6 KiB
Markdown
# 04-产品管理 编码前必看清单
|
||
|
||
## 0. 文档目的
|
||
|
||
本文档用于在开始产品管理相关编码前,明确必须先阅读的文档、必须锁死的业务口径,以及当前文档与可执行 SQL 的同步状态。
|
||
|
||
本文档只保留当前编码前必须关注的内容,不保留历史演变说明。
|
||
|
||
## 1. 文档分级
|
||
|
||
### 1.1 一级依据
|
||
|
||
以下文档为产品管理编码主依据,涉及业务口径、接口口径、状态口径时,必须优先对齐:
|
||
|
||
- `docs/temp/02-产品管理_业务设计.md`
|
||
- `docs/temp/02-产品管理_SQL已确认口径.md`
|
||
|
||
### 1.2 二级依据
|
||
|
||
以下文档用于补齐 SQL 结构说明:
|
||
|
||
- `docs/temp/02-产品管理_SQL口径说明.md`
|
||
|
||
### 1.3 SQL 阅读基线
|
||
|
||
以下文件是当前产品管理编码前唯一需要阅读的 SQL 文件,用于确认当前表结构、状态模型、状态流转和审计表设计:
|
||
|
||
- `rdms-project/rdms-project-boot/product/rdms_biz_audit_log.sql`
|
||
|
||
说明:
|
||
|
||
- 当前 SQL 阅读入口统一以该文件为准。
|
||
- 该文件当前包含 `rdms_biz_audit_log`、`rdms_object_status_model`、`rdms_object_status_transition`、`rdms_product`、`rdms_product_requirement`、`rdms_product_status_log`、`rdms_user_object_role`。
|
||
- 编码前必须先识别该文件与已确认口径之间的差异,不能直接把该文件当作最终目标结构。
|
||
|
||
### 1.4 场景性依据
|
||
|
||
以下文档只在涉及工单来源、链路视图、Flowable 边界时必读:
|
||
|
||
- `docs/temp/03-工单到任务全链路与工作流方案.md`
|
||
|
||
## 2. 阅读顺序
|
||
|
||
开始编码前,按以下顺序阅读:
|
||
|
||
1. `02-产品管理_业务设计.md`
|
||
2. `02-产品管理_SQL已确认口径.md`
|
||
3. `02-产品管理_SQL口径说明.md`
|
||
4. `rdms-project/rdms-project-boot/product/rdms_biz_audit_log.sql`
|
||
5. `03-工单到任务全链路与工作流方案.md`(仅在涉及工单链路、需求拆分、Flowable、全链路视图时阅读)
|
||
|
||
## 3. 每份文档必须看的内容
|
||
|
||
### 3.1 `02-产品管理_业务设计.md`
|
||
|
||
必须重点看以下内容:
|
||
|
||
- 模块范围与非本期范围
|
||
- 页面与对象上下文承载方式
|
||
- 产品需求规则
|
||
- 对象关系与数据设计
|
||
- 产品状态与产品需求状态机
|
||
- 接口承接
|
||
- 权限与动作矩阵
|
||
- 测试关注点
|
||
|
||
阅读目标:
|
||
|
||
- 明确本次到底做哪些页面、动作、字段和权限。
|
||
- 明确哪些能力本次不做,避免编码时扩散。
|
||
- 明确关闭、认领、拒绝、分流等动作的业务边界。
|
||
|
||
### 3.2 `02-产品管理_SQL已确认口径.md`
|
||
|
||
必须逐条看完以下 4 项:
|
||
|
||
- 共享表承接边界
|
||
- 产品需求状态字段口径
|
||
- 来源承接与需求拆分口径
|
||
- 需求终态原因承接口径
|
||
|
||
阅读目标:
|
||
|
||
- 锁死产品需求 `status_code` 口径。
|
||
- 锁死来源追溯和需求拆分分开建模。
|
||
- 锁死终态结果字段由主表承接。
|
||
|
||
### 3.3 `02-产品管理_SQL口径说明.md`
|
||
|
||
必须重点看以下内容:
|
||
|
||
- 共享表与主数据口径
|
||
- 产品需求口径
|
||
- 状态与留痕口径
|
||
|
||
阅读目标:
|
||
|
||
- 明确当前确认后的 SQL 结构表达方式。
|
||
- 明确状态编码、来源追溯、拆分链路、终态结果字段应该如何落到表结构上。
|
||
|
||
### 3.4 `rdms-project/rdms-project-boot/product/rdms_biz_audit_log.sql`
|
||
|
||
必须重点看以下内容:
|
||
|
||
- `rdms_biz_audit_log`
|
||
- `rdms_object_status_model`
|
||
- `rdms_object_status_transition`
|
||
- `rdms_product`
|
||
- `rdms_product_requirement`
|
||
- `rdms_product_status_log`
|
||
- `rdms_user_object_role`
|
||
|
||
阅读目标:
|
||
|
||
- 明确当前统一 SQL 阅读入口下的表结构、索引、状态种子数据和审计字段现状。
|
||
- 明确哪些字段和状态定义仍未对齐已确认口径。
|
||
|
||
### 3.5 `03-工单到任务全链路与工作流方案.md`
|
||
|
||
仅在以下场景必须看:
|
||
|
||
- 涉及工单流转到产品需求
|
||
- 涉及来源追溯与需求拆分
|
||
- 涉及产品需求到项目需求的链路设计
|
||
- 涉及 Flowable 接入边界
|
||
- 涉及全链路视图
|
||
|
||
阅读目标:
|
||
|
||
- 明确 Flowable 只承接协同节点,不直接承接整条业务主链状态。
|
||
- 明确来源关系、拆分关系、事件关系和流程绑定关系要分开建模。
|
||
|
||
## 4. 编码前必须锁死的业务口径
|
||
|
||
### 4.1 模块边界
|
||
|
||
- 产品管理能力落在 `rdms-project`,不落到 `rdms-system`、`rdms-gateway`。
|
||
- 跨模块共享能力通过 `*-api` 承接,不直接依赖其他 `*-boot` 实现。
|
||
|
||
### 4.2 产品需求状态口径
|
||
|
||
- `rdms_product_requirement` 主表统一使用 `status_code`。
|
||
- 产品需求状态定义与流转统一通过 `rdms_object_status_model`、`rdms_object_status_transition` 承接。
|
||
- `object_type` 统一使用 `product_requirement`。
|
||
|
||
### 4.3 来源追溯与需求拆分口径
|
||
|
||
- 产品需求来源至少包括 `manual`、`work_order`。
|
||
- `source_type`、`source_biz_type`、`source_biz_id`、`source_biz_code` 只承接来源追溯。
|
||
- `parent_requirement_id`、`root_requirement_id` 只承接拆分链路。
|
||
- 同一产品下,同一来源工单只允许 1 条源头需求记录。
|
||
- 源头需求和手工新增需求都允许继续拆分子需求。
|
||
- 子需求不参与来源唯一约束。
|
||
|
||
### 4.4 终态结果口径
|
||
|
||
- `reject`、`cancel`、`close` 等终态动作统一回写主表。
|
||
- 主表统一保留以下字段:
|
||
- `terminal_action_code`
|
||
- `terminal_reason`
|
||
- `terminal_time`
|
||
- 审计日志继续保留完整过程留痕。
|
||
|
||
### 4.5 接口动作口径
|
||
|
||
- 产品状态动作统一走 `POST /products/{id}/change-status`。
|
||
- 产品需求状态动作统一走 `POST /products/{id}/requirements/{requirementId}/change-status`。
|
||
- 产品需求 `change-status` 统一支持 `claim`、`to_review`、`to_dispatch`、`dispatch`、`reject`、`cancel`、`close`。
|
||
- 状态动作不得混入通用编辑接口。
|
||
|
||
### 4.6 权限与审计口径
|
||
|
||
- 对象上下文权限按产品对象角色控制。
|
||
- 产品团队、产品需求、状态动作、敏感操作都必须落审计。
|
||
- 产品状态日志由 `rdms_product_status_log` 承接。
|
||
- 产品经理变更、成员调整、需求认领、拒绝、分流、关闭、拆分等由 `rdms_biz_audit_log` 承接。
|
||
|
||
## 5. 当前明确不做的内容
|
||
|
||
以下内容当前不纳入本轮编码:
|
||
|
||
- 产品版本
|
||
- 产品路线图
|
||
- 正式评审流
|
||
- Flowable 引擎接入实现
|
||
- 产品基线
|
||
- 产品文档与附件
|
||
- 工单状态回写
|
||
- 目标版本字段
|
||
- 完整链路视图页面
|
||
|
||
## 6. 当前现状与目标口径差异
|
||
|
||
`rdms_biz_audit_log.sql` 当前仍存在以下差异:
|
||
|
||
- `rdms_product_requirement` 仍使用 `status`,尚未切到 `status_code`
|
||
- 主表仍保留 `closed_reason`、`closed_time`
|
||
- 主表尚未补齐 `terminal_action_code`、`terminal_reason`、`terminal_time`
|
||
- 主表尚未补齐 `parent_requirement_id`、`root_requirement_id`
|
||
- 产品需求状态模型和状态流转种子尚未按 `product_requirement` 完整落齐
|
||
|
||
这意味着:
|
||
|
||
- 不能直接以当前 `rdms_biz_audit_log.sql` 作为产品需求最终结构开始编码。
|
||
- 如果进入正式开发,优先动作之一是先同步当前统一 SQL 文件,再同步 DO、Mapper、Service、Controller、接口 VO。
|
||
|
||
## 7. 编码前建议执行顺序
|
||
|
||
1. 先对齐 `02-产品管理_业务设计.md` 和 `02-产品管理_SQL已确认口径.md`
|
||
2. 再对齐 `rdms_biz_audit_log.sql` 与已确认 SQL 口径
|
||
3. 再开始补 DO、Mapper、Service、Controller、ReqVO、RespVO
|
||
4. 最后对齐权限、审计、状态流转和接口返回字段
|
||
|
||
## 8. 编码时禁止自由发挥的点
|
||
|
||
- 不要把产品需求状态继续做成 `tinyint` 枚举字段。
|
||
- 不要把来源追溯和需求拆分混在同一组字段里。
|
||
- 不要把 `close` 再拆回独立接口。
|
||
- 不要把状态动作塞进通用编辑接口。
|
||
- 不要在本轮直接引入 Flowable 落地代码。
|
||
- 不要在产品模块里扩展未确认的版本、路线图、附件等能力。
|