Files
cn-rdms/rdms-project/rdms-project-boot/product/04-产品管理_编码前必看清单.md

7.6 KiB
Raw Blame History

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_logrdms_object_status_modelrdms_object_status_transitionrdms_productrdms_product_requirementrdms_product_status_logrdms_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-systemrdms-gateway
  • 跨模块共享能力通过 *-api 承接,不直接依赖其他 *-boot 实现。

4.2 产品需求状态口径

  • rdms_product_requirement 主表统一使用 status_code
  • 产品需求状态定义与流转统一通过 rdms_object_status_modelrdms_object_status_transition 承接。
  • object_type 统一使用 product_requirement

4.3 来源追溯与需求拆分口径

  • 产品需求来源至少包括 manualwork_order
  • source_typesource_biz_typesource_biz_idsource_biz_code 只承接来源追溯。
  • parent_requirement_idroot_requirement_id 只承接拆分链路。
  • 同一产品下,同一来源工单只允许 1 条源头需求记录。
  • 源头需求和手工新增需求都允许继续拆分子需求。
  • 子需求不参与来源唯一约束。

4.4 终态结果口径

  • rejectcancelclose 等终态动作统一回写主表。
  • 主表统一保留以下字段:
    • terminal_action_code
    • terminal_reason
    • terminal_time
  • 审计日志继续保留完整过程留痕。

4.5 接口动作口径

  • 产品状态动作统一走 POST /products/{id}/change-status
  • 产品需求状态动作统一走 POST /products/{id}/requirements/{requirementId}/change-status
  • 产品需求 change-status 统一支持 claimto_reviewto_dispatchdispatchrejectcancelclose
  • 状态动作不得混入通用编辑接口。

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_reasonclosed_time
  • 主表尚未补齐 terminal_action_codeterminal_reasonterminal_time
  • 主表尚未补齐 parent_requirement_idroot_requirement_id
  • 产品需求状态模型和状态流转种子尚未按 product_requirement 完整落齐

这意味着:

  • 不能直接以当前 rdms_biz_audit_log.sql 作为产品需求最终结构开始编码。
  • 如果进入正式开发,优先动作之一是先同步当前统一 SQL 文件,再同步 DO、Mapper、Service、Controller、接口 VO。

7. 编码前建议执行顺序

  1. 先对齐 02-产品管理_业务设计.md02-产品管理_SQL已确认口径.md
  2. 再对齐 rdms_biz_audit_log.sql 与已确认 SQL 口径
  3. 再开始补 DO、Mapper、Service、Controller、ReqVO、RespVO
  4. 最后对齐权限、审计、状态流转和接口返回字段

8. 编码时禁止自由发挥的点

  • 不要把产品需求状态继续做成 tinyint 枚举字段。
  • 不要把来源追溯和需求拆分混在同一组字段里。
  • 不要把 close 再拆回独立接口。
  • 不要把状态动作塞进通用编辑接口。
  • 不要在本轮直接引入 Flowable 落地代码。
  • 不要在产品模块里扩展未确认的版本、路线图、附件等能力。