2.9 KiB
2.9 KiB
研发项目进展监测系统(rd-monitor)设计文档
1. 目标与范围
- 基于现有 CTMS 的界面/组件经验,建设一个完全独立的研发项目进展监测系统。
- 新系统独立前后端、独立数据库、独立鉴权与权限体系。
- 首期仅实现 PDF《项目进度概览 v2》中的核心功能:概览展示、进度录入、历史变更、导出、项目隐藏规则。
2. 系统边界
- 独立仓库:
rd-monitor - 技术栈:Vue3 + Element Plus + FastAPI + SQLAlchemy + Alembic + PostgreSQL
- 与 CTMS 关系:仅复用可迁移的组件/样式实现,不依赖 CTMS API 与 CTMS 数据表。
3. 数据模型
3.1 users
idusernameemailpassword_hashrole(ADMIN/PM/VIEWER)is_activecreated_at
3.2 projects
idproject_code(如 HP-001)project_nameregulatory_pathstatus(ACTIVE/APPROVED/TERMINATED)created_at
3.3 stage_templates
idstage_keystage_nameorder_noregulatory_paths(JSON 数组;空表示通用)is_active
3.4 project_stages
idproject_idstage_template_idorder_noplanned_start_dateplanned_end_dateactual_finish_dateactual_finish_flag(DONE/NOT_APPLICABLE/PENDING)adjust_reasonremarkupdated_at
3.5 project_stage_change_logs
idproject_stage_idchanged_bybefore_jsonafter_jsoncommentcreated_at
4. 状态规则(按 PDF)
已完成:actual_finish_flag = DONE且actual_finish_date有值。未进行:actual_finish_flag = NOT_APPLICABLE(“此阶段不开展”)。正进行:当前阶段未完成/未进行,且上一阶段状态为已完成。未开始:其余情况。- 概览显示日期:使用
planned_end_date。 - 项目隐藏:
APPROVED或TERMINATED不在概览列表中显示。
5. 页面与交互
- 登录页(JWT)
- 概览页:按项目展示阶段节点、计划完成日期、状态图例
- 录入页:项目阶段表格编辑,支持“此阶段不开展”
- 历史页:阶段变更历史时间线/表格
- 导出:授权用户导出 CSV
6. 权限模型
ADMIN:用户/项目/模板管理 + 全部导出PM:项目进度录入、历史查看、导出VIEWER:只读(概览、历史)
7. API(首期)
POST /api/v1/auth/loginGET /api/v1/auth/meGET /api/v1/projectsPOST /api/v1/projects(ADMIN)GET /api/v1/stage-templatesPOST /api/v1/stage-templates(ADMIN)GET /api/v1/projects/{id}/stagesPATCH /api/v1/projects/{id}/stages/{stageId}(PM/ADMIN)GET /api/v1/projects/{id}/stages/historyGET /api/v1/projects/stages/export?format=csv(PM/ADMIN)
8. 验收标准
- 状态计算规则与 PDF 一致
- 录入保存会生成历史记录
- 导出字段与录入字段一致
APPROVED/TERMINATED项目不在概览展示