Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/04-开发计划/RVW V4.0 期刊配置中心MVP开发计划.md
HaHafeng 83e395824b feat(rvw): complete journal config center MVP and tenant login routing
Deliver the RVW V4.0 journal configuration center across backend, frontend, migration, and docs with zh/en editorial baseline support and tenant-level prompt/template overrides. Unify tenant login to /:tenantCode/login and auto-enable RVW module when tenant type is JOURNAL to prevent post-login access gaps.

Made-with: Cursor
2026-03-15 11:51:35 +08:00

327 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RVW V4.0 期刊配置中心 MVP 开发计划
> 文档版本: v1.0
> 创建日期: 2026-03-15
> 适用范围: RVW 多租户期刊配置中心ADMIN 运营管理端)
> 约束前提: 严格遵循 `docs/04-开发规范/09-数据库开发规范.md`
---
## 1. 目标与范围
本计划用于落地 RVW V4.0 的「期刊配置中心」MVP满足以下目标
1. 在运营管理端新增独立一级模块「期刊配置中心」(类似 IIT 项目管理入口形态)。
2. 系统默认配置支持区分:
- 中文-稿约规范性
- 英文-稿约规范性
- 方法学、数据验证、临床专业评估(通用默认)
3. 期刊(如 AAA、BBB可选择
- 继承系统默认配置
- 在默认基础上进行覆盖
4. 期刊基础信息新增字段:`期刊语言`(中文/英文/其他)。
5. MVP 阶段功能可精简,但数据库字段一次性补齐(覆盖 P0/P1/P2 + 期刊语言)。
---
## 2. 关键输入文档
1. 需求基线
`docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/RVW V4.0 期刊租户配置中心开发需求0315.md`
2. 英文稿约默认规则(系统默认 EN 基线)
`docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/通用英文期刊稿约审查提示词.md`
3. 数据库规范(强制约束)
`docs/04-开发规范/09-数据库开发规范.md`
4. 既有总计划参考
`docs/03-业务模块/RVW-稿件审查系统/04-开发计划/RVW V4.0 期刊SaaS版开发计划.md`
---
## 3. 架构策略MVP 版)
### 3.1 配置分层
- 第 1 层(系统默认层)
- Editorial: `ZH` / `EN` 双基线
- Methodology / DataForensics / Clinical: 通用基线
- 第 2 层(期刊继承层)
- 默认继承系统配置
- 第 3 层(期刊覆盖层)
- 租户填入自定义 Prompt/Template 后覆盖系统默认
### 3.2 运行时合并规则
对任一技能维度,统一采用:
`最终配置 = 期刊自定义值 ?? 系统默认值`
Editorial 额外规则:
-`editorialExpertPrompt` 为空,则按 `editorialBaseStandard` 路由:
- `zh` -> 中文稿约默认 Prompt
- `en` -> 英文稿约默认 Prompt
- 若期刊未显式设置 `editorialBaseStandard`,按 `期刊语言` 映射默认值:
- 中文 -> `zh`
- 英文/其他 -> `en`
---
## 4. 数据模型设计(一次性补齐)
## 4.1 设计原则
- MVP 功能可分阶段启用,但字段一次性建完,避免重复迁移。
- 使用 `null` 表达“继承系统默认”。
- 严格使用 Prisma migration不允许手工 DDL 改库。
## 4.2 表结构调整
### A. `platform_schema.tenants`(期刊基础信息)
新增/补齐字段(若已有同义字段,统一命名后保留兼容映射):
- `journal_language` (`ZH` | `EN` | `OTHER`) // P0
- `journal_full_name` (String) // P0
- `logo_url` (String?) // P1
- `brand_color` (String?) // P1
- `login_background_url` (String?) // P2
### B. `platform_schema.tenant_rvw_configs`(期刊审稿配置)
一次性补齐四维 Prompt + Template
- `editorial_base_standard` (`zh` | `en`) default `en`
- `editorial_expert_prompt` (Text?)
- `editorial_handlebars_template` (Text?)
- `methodology_expert_prompt` (Text?)
- `methodology_handlebars_template` (Text?)
- `data_forensics_expert_prompt` (Text?)
- `data_forensics_handlebars_template` (Text?)
- `clinical_expert_prompt` (Text?)
- `clinical_handlebars_template` (Text?)
> 兼容说明:历史结构化字段(如 `editorialRules`/`dataForensicsLevel`/`finerWeights`如需保留先保留读兼容MVP 写入统一走 Prompt/Template 字段。
---
## 5. 数据库实施规范(必须执行)
严格按 `09-数据库开发规范.md` 三条铁律执行:
1. 所有变更通过 `npx prisma migrate dev --name xxx` 生成迁移。
2. 禁止 `prisma db push`(含任何变体)。
3. 每次迁移后,立即更新 `docs/05-部署文档/03-待部署变更清单.md`
推荐本次迁移命名:
- `20260315_add_journal_fields_to_tenants`
- `20260315_expand_tenant_rvw_configs_for_all_prompt_templates`
Shadow DB 失败时,按规范第 10 章降级流程处理并 `migrate resolve --applied` 标记。
---
## 6. 可执行任务清单
## 6.1 后端任务
### BE-1 Schema 与迁移
- 修改 `backend/prisma/schema.prisma`
- 生成并审查迁移 SQL
- 更新 Prisma Client
交付物:
- `backend/prisma/migrations/*/migration.sql`
- `backend/prisma/schema.prisma`
### BE-2 系统默认配置路由
- 在 Prompt 默认库中明确:
- `SYSTEM_DEFAULT_EDITORIAL_EN` 使用英文默认规则(来源于指定文档)
- `SYSTEM_DEFAULT_EDITORIAL_ZH` 使用中文默认规则
- 其余 3 个技能保留通用默认
### BE-3 管理端 API期刊配置中心
- 新增/扩展 API
- `GET /api/admin/journal-configs`
- `GET /api/admin/journal-configs/:tenantId`
- `PUT /api/admin/journal-configs/:tenantId/basic-info`
- `PUT /api/admin/journal-configs/:tenantId/rvw-config`
- 权限:`authenticate + requirePermission('ops:user-ops')`
### BE-4 RVW 执行链路接线
- 在 Worker/Skill 装配处接入期刊配置
-`??` 规则完成 4 维配置合并
- Editorial 增加 `zh/en` 基线路由
### BE-5 安全校验
- `slug` 正则校验(小写字母/数字/连字符)
- `journalLanguage``editorialBaseStandard` 枚举校验
- 日志记录配置来源system/custom
---
## 6.2 前端任务
### FE-1 新增左侧一级模块
- ADMIN 左侧导航新增 `期刊配置中心`
- 路由挂载与权限控制
### FE-2 列表页
- 期刊列表名称、slug、语言、状态、更新时间、操作
- 支持搜索/筛选/分页
### FE-3 详情配置页
- 基础信息区:
- 期刊全称
- 访问路径 slug
- 期刊语言(中文/英文/其他)
- Logo/主色/背景图字段先存储MVP 可不渲染)
- 审稿配置区4 Skills
- 继承/自定义切换
- Editorial 继承态支持 `zh/en` 基线选择
- 每个维度 Prompt + Handlebars Template 文本框
### FE-4 API 类型对齐
- 更新 TypeScript DTO 与后端一致
- `null` 语义统一为“继承默认”
---
## 6.3 联调任务
### INT-1 中英文默认稿约验证
- JTIM 配置为 `en` 继承,触发英文稿约规则
- CMJ 配置为 `zh` 继承,触发中文稿约规则
### INT-2 继承与覆盖验证
- AAA 继承默认
- BBB 在临床维度自定义 Prompt
- 对比两者结果差异应符合预期
### INT-3 兼容性验证
- 历史任务查询不受影响
- 现有租户登录/访问链路不回归
---
## 7. 验收标准DoD
1. ADMIN 出现独立一级菜单「期刊配置中心」。
2. 可在期刊维度配置并保存 `期刊语言`
3. 系统可明确区分中英文稿约默认规则。
4. 期刊支持“继承默认 + 局部覆盖”两种模式。
5. 数据库字段一次性补齐P0/P1/P2 + 期刊语言)。
6. 所有迁移已入库并追加到待部署变更清单。
---
## 8. 排期建议MVP
- Day 1: BE-1 + BE-2Schema/迁移/默认配置)
- Day 2: BE-3 + FE-1/FE-2管理端骨架
- Day 3: FE-3 + FE-4配置页面联通
- Day 4: BE-4 + 联调INT-1/2/3
- Day 5: 验收、文档补充、部署清单复核
---
## 9. 风险与规避
1. **风险:数据库 drift**
规避:禁止 db push迁移前后执行 status 与 SQL 审查。
2. **风险:字段多但 UI 尚未全部启用**
规避:字段先入库,前端按阶段开放;未启用字段保持可空。
3. **风险:中英文规则路由错误**
规避加运行时日志language/baseStandard/promptSource与双租户回归用例。
---
## 10. 审查报告对齐结论(含 TenantType 现状)
针对以下两份审查报告:
- `docs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/期刊配置中心MVP计划审查报告.md`
- `docs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/ADMIN多业态租户架构演进评估 (1).md`
本计划采用如下对齐结论:
### 10.1 认可并吸收的观点
1. **前端独立模块方向正确**:在 ADMIN 左侧建立独立一级菜单“期刊配置中心”是正确演进方向。
2. **后端数据层保持统一**:继续复用 `platform_schema.tenants`,不拆分新的“期刊主租户表”。
3. **配置中心必须可运营**Handlebars 模板能力应保留,避免后续“千刊千面”报告格式无法落地。
4. **跨表一致性要求**:涉及 tenants 与 tenant_rvw_configs 同步修改的场景,应使用事务保证原子性。
### 10.2 需要修正的审查结论(以代码现状为准)
两份报告中“系统当前没有 TenantType”的表述不准确。当前系统**已存在 TenantType**
- 后端 `backend/prisma/schema.prisma` 中已有 `enum TenantType``tenants.type`
- 当前枚举值:`HOSPITAL` / `PHARMA` / `INTERNAL` / `PUBLIC`
因此,本项目不需要“从 0 引入 TenantType 机制”,而是需要在现有机制上评估扩展:
- 方案 A推荐新增 `JOURNAL` 枚举值,用于期刊配置中心过滤与治理
- 方案 B兼容暂不新增枚举短期用 `INTERNAL` 或约定标签过渡(不推荐长期使用)
本计划采用:**方案 A新增 JOURNAL**。
---
## 11. 最低成本实施策略(先跑通,不做大重构)
### 11.1 决策原则
针对“当前 Prompt 是否硬编码、是否立刻大重构”的问题,本计划明确:
1. **不做大重构**(避免阻塞交付)
2. **必须做最小配置适配**(保证配置中心不是“假配置”)
3. **Handlebars 保留并最小启用**(保留未来扩展能力,当前成本可控)
### 11.2 最小配置适配(必须)
在现有 RVW 链路上增加一层“薄适配”即可,不推翻当前实现:
- 统一规则:`finalPrompt = tenantCustomPrompt ?? systemDefaultPrompt`
- Editorial 特殊规则:
- 租户未自定义时,按 `editorialBaseStandard` 选择 `zh/en` 默认 Prompt
- 若未显式设置 `editorialBaseStandard`,则按 `journalLanguage` 映射(`ZH -> zh`,其他 -> `en`
- 目标:让“期刊配置中心”的保存结果立即影响审稿行为
### 11.3 Handlebars 最小启用策略
当前阶段不做复杂重构,但必须保留模板层:
1. 字段保留:四维模板字段全部入库(已在第 4 章定义)
2. 运行时策略:模板为空时走系统默认模板
3. 失败兜底:模板渲染失败时降级返回原始报告内容,防止线上中断
4. MVP 可选项:测试渲染可先后置到 P1但预留接口与校验能力
### 11.4 为什么不建议“完全按写死先跑”
若只做 UI 不接运行时,配置中心会变成“可编辑但不生效”,风险更高:
- 运营以为已生效,实际审稿仍走旧规则
- 期刊 AAA/BBB 差异化配置无法验证
- 后续回补执行链路时会引入二次返工和信任成本
因此本计划采用“**小步接线,先真生效**”策略,而非“先写死跑通”。
---
## 12. 本计划执行前检查清单
- [ ] 已确认英文默认稿约规则文本(指定文档)
- [ ] 已确认中文默认稿约规则文本(对应文档)
- [ ] 已同步研发团队数据库铁律09 规范)
- [ ] 已确认 TenantType 扩展策略(新增 JOURNAL
- [ ] 已确认“先最小适配,不做大重构”的实施口径
- [ ] 已创建本次迁移命名并分配负责人
- [ ] 已约定联调样例租户(至少 JTIM + CMJ