Compare commits
2 Commits
19876fdadd
...
ff968766b8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff968766b8 | ||
|
|
7d183d39c9 |
62
docs/superpowers/specs/2026-10-15-服务机构端-C4质控闸门-design.md
Normal file
62
docs/superpowers/specs/2026-10-15-服务机构端-C4质控闸门-design.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# 服务机构端 C4 质控闸门 · 设计文档
|
||||||
|
|
||||||
|
> 本文是 C4 质控闸门的设计背景,规范权威见 `openspec/changes/svc-org-c4-qc/`(proposal + specs + design + tasks)与 PRD。
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
C0–C3 已落地:elder(十态)、plan/plan_item、order(八态)、ho_record 四表(履约留痕,record_status=submitted)、abnormal(异常上报 + 扑空)、staff、svc_org。C4 新增**质控闸门**:对每条已提交留痕做全量质控(放行/退回)、五类主动推送聚合、异常处理台 + 异常联动改计划、补正。质控放行是「先质控再上报」铁律的代码落地。
|
||||||
|
|
||||||
|
## Goals / Non-Goals
|
||||||
|
|
||||||
|
**Goals**:`qc` 表 + `ho_record_correction` 补正表;全量质控(定时任务扫描 submitted 留痕生成 qc);放行/退回(4001 禁止自审自放行 + 放行前自检);五类主动推送后台聚合;异常处理台 + 异常联动改计划;补正(原记录保留 + 更正说明);admin 质控中心页(B4)。
|
||||||
|
|
||||||
|
**Non-Goals**:上报池(report,二期)、真推送通知(APP/站内信,APP 期)、护理员 APP 补正录入(本期只做后端接口 + admin 查看)、家属端。
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
|
||||||
|
1. **表命名**:`qc`(质控记录,无前缀,与 settlement/report 一致);补正表 `ho_record_correction`(补正属留痕域,循 ho_ 前缀)。**待用户确认。**
|
||||||
|
2. **全量质控**:定时任务(`@Cron` 每小时)扫描 `record_status='submitted'` 且无 qc 记录的留痕 → 生成一条 qc(`qc_result='pending'`)。非抽检=落库保证。
|
||||||
|
3. **qc 生命周期**:`pending` → `passed`(放行,写 pass_time)/ `returned`(退回,qc_note 必填);退回后护理员补正 → record 重新 submitted → 新 qc(`qc_type='recheck'`,`first_qc_id` 指向首次)。
|
||||||
|
4. **放行前自检(按序)**:① 留痕四要素齐(时间/项目/时长/护理员,否则 `1004`)→ ② 必拍已拍(否则 `3001`)→ ③ 状态=待质控(幂等,已放行提示)→ ④ **放行人 ≠ 录入人**(否则 `4001` 自审自放行)。
|
||||||
|
5. **五类主动推送** = `GET /qc/pending/list` 的聚合(跨表查询,非 qc 表落库):异常待处理(abnormal.handle_status=open)、逾期未做(order 过时段无 record 超 24h)、住院仍有派单(elder.treat_status=hosp_pause 且有未完成 order)、计划未制定(elder 待遇生效 5 工作日无 active plan)、留痕待放行(qc pending)。每类带消除条件 + 优先级。
|
||||||
|
6. **异常联动改计划**:质控员判断异常需加专项 → 复用 `plan.change` 生成新 plan + 回填 `record_abnormal.link_plan_change=true`。
|
||||||
|
7. **补正**:退回后补正 = 新增更正说明(不直接改原记录);不可补正签到时间/定位/照片;补正次数不限、每次留痕;同记录补正 ≥3 次 ⇒ 自动进质控重点。补正落 `ho_record_correction`。
|
||||||
|
8. **批量放行边界**:有异常/未执行项/临时加项/时长异常/补正过的记录一律不可批量放行。
|
||||||
|
9. **主键口径**:UUID v7 VarChar(36)(循代码库)。
|
||||||
|
|
||||||
|
## 数据模型(DDL 概览)
|
||||||
|
|
||||||
|
通用:UUID v7、`tenant_code`、`@map` snake_case、utf8mb4_general_ci。qc 入 SOFT_DELETE;ho_record_correction 为子表(带 tenant_code、无 deleted_at、不入 SOFT_DELETE,循先例)。
|
||||||
|
|
||||||
|
- **qc**:`id`、`tenant_code`、`record_id`、`qc_type`(normal/recheck)、`push_reason`(五类,nullable——仅主动推送线索用)、`qc_result`(pending/passed/returned)、`qc_note`(退回原因,退回必填)、`qc_staff_id`、`qc_time`、`pass_time`、`first_qc_id`(recheck 指向首次)。索引 (tenant_code, record_id)、(tenant_code, qc_result)。
|
||||||
|
- **ho_record_correction**:`id`、`tenant_code`、`record_id`、`qc_id`(触发补正的退回 qc)、`correction_note`、`corrected_by`、`corrected_at`。索引 (record_id)。
|
||||||
|
|
||||||
|
## 接口(`@Controller('qc')`)
|
||||||
|
|
||||||
|
- `GET /qc/pending/list` — 待质控列表:五类主动推送聚合(每类计数 + 消除条件)+ 待放行队列(record 待质控,全量)。
|
||||||
|
- `GET /qc/detail` — 质控详情:留痕全文 + 照片 + 异常 + 补正历史。
|
||||||
|
- `POST /qc/pass` — 放行:按序自检(1004/3001/幂等/4001)→ qc_result=passed + pass_time。
|
||||||
|
- `POST /qc/return` — 退回:qc_note 必填 → qc_result=returned。
|
||||||
|
- `POST /qc/exception/link` — 异常联动改计划:生成新 plan(复用 plan.change)+ abnormal.link_plan_change=true。
|
||||||
|
- `POST /qc/correct` — 补正:record_id + correction_note → 写 ho_record_correction,record 重新 submitted(触发 recheck)。
|
||||||
|
- `POST /qc/batch-pass` — 批量放行:排除异常/未执行项/临时加项/时长异常/补正过。
|
||||||
|
|
||||||
|
权限码:qc.pendingList/detail/pass/return/exceptionLink/correct/batchPass。错误码域 46(QC_*);规则号 1004/3001/4001 写 message(循 R3 口径)。角色:qc 看全部、leader 本组、admin 兼 qc 可审。
|
||||||
|
|
||||||
|
## 硬锁与校验
|
||||||
|
|
||||||
|
- **L4**:留痕缺必填要素 → 放行 1004 拒绝。
|
||||||
|
- **自审自放行**:`record.created_by === qc_staff_id` → 4001 拒绝。
|
||||||
|
- **必拍未拍** → 3001 拒绝(放行时复检)。
|
||||||
|
- **五类推送消除条件**:异常已处理/工单有记录或取消/住院工单已取消/已有 active plan/留痕已放行。
|
||||||
|
|
||||||
|
## Risks / Trade-offs
|
||||||
|
|
||||||
|
- [定时任务 vs 同步生成] → 定时任务兜底(全量保证),代价=质控有延迟(≤1 小时);可后续改 checkout 同步。
|
||||||
|
- [补正 vs 直接编辑] → 补正=新增说明(不可无痕修改),合规。
|
||||||
|
- [自审自放行 4001] → 单人机构必须再配一个审的人,这是铁律底线(PRD 明确)。
|
||||||
|
- [五类推送聚合性能] → 跨 5 表聚合,机构规模小可接受;必要时加物化/缓存。
|
||||||
|
|
||||||
|
## Migration Plan
|
||||||
|
|
||||||
|
新增 2 表(qc + ho_record_correction)。utf8mb4_general_ci 手改。迁移链已损坏:用 `migrate diff --from-schema-datasource` + 手工迁移目录 + `migrate deploy`。
|
||||||
2
openspec/changes/svc-org-c4-qc/.openspec.yaml
Normal file
2
openspec/changes/svc-org-c4-qc/.openspec.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
schema: spec-driven
|
||||||
|
created: 2026-10-15
|
||||||
38
openspec/changes/svc-org-c4-qc/design.md
Normal file
38
openspec/changes/svc-org-c4-qc/design.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
## Context
|
||||||
|
|
||||||
|
C3 已有 ho_record(submitted)、abnormal(handle_status)、C2 的 plan.change、C1 的 elder。C4 新增质控闸门,纯新增、不侵入脚手架。设计背景见 `docs/superpowers/specs/2026-10-15-服务机构端-C4质控闸门-design.md`。
|
||||||
|
|
||||||
|
## Goals / Non-Goals
|
||||||
|
|
||||||
|
**Goals:** qc + ho_record_correction 两表、全量质控(定时任务)、放行/退回(4001 自审自放行)、五类推送聚合、异常联动改计划、补正、admin 质控中心页。
|
||||||
|
|
||||||
|
**Non-Goals:** 上报池(二期)、真推送(APP 期)、APP 补正录入、家属端。
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
|
||||||
|
1. **表命名**:`qc`(无前缀)、`ho_record_correction`(补正属留痕域 ho_)。
|
||||||
|
2. **全量质控**:`@Cron` 每小时扫描 submitted 无 qc → 生成 qc(pending)。
|
||||||
|
3. **qc 生命周期**:pending → passed/returned;退回补正后 recheck(first_qc_id)。
|
||||||
|
4. **放行自检**:四要素(1004) → 必拍(3001) → 幂等 → 非自审(4001)。
|
||||||
|
5. **五类推送** = pending/list 跨表聚合(异常/逾期/住院/计划/待质控),带消除条件。
|
||||||
|
6. **异常联动改计划**:复用 plan.change + link_plan_change。
|
||||||
|
7. **补正**:ho_record_correction 新增说明,不改原记录;≥3 次进质控重点。
|
||||||
|
8. **批量放行**:排除异常/未执行项/临时加项/时长异常/补正过。
|
||||||
|
|
||||||
|
## 数据模型
|
||||||
|
|
||||||
|
qc(id/tenant_code/record_id/qc_type/qc_result/qc_note/qc_staff_id/qc_time/pass_time/first_qc_id,SOFT_DELETE)、ho_record_correction(id/tenant_code/record_id/qc_id/correction_note/corrected_by/corrected_at,子表不入 SOFT_DELETE)。UUID v7、@map snake_case、utf8mb4_general_ci。
|
||||||
|
|
||||||
|
## 接口
|
||||||
|
|
||||||
|
qc:GET /qc/pending/list、GET /qc/detail、POST /qc/pass、POST /qc/return、POST /qc/exception/link、POST /qc/correct、POST /qc/batch-pass。权限码 qc.*;错误码域 46;规则号 1004/3001/4001 写 message。
|
||||||
|
|
||||||
|
## Risks / Trade-offs
|
||||||
|
|
||||||
|
- 定时任务延迟(≤1h)→ 可后续改 checkout 同步。
|
||||||
|
- 补正=新增说明(不可无痕修改)→ 合规。
|
||||||
|
- 自审自放行 4001 → 单人机构必须再配审的人(PRD 底线)。
|
||||||
|
|
||||||
|
## Migration Plan
|
||||||
|
|
||||||
|
新增 2 表(utf8mb4_general_ci 手改)。迁移链损坏:migrate diff + 手工目录 + deploy。
|
||||||
32
openspec/changes/svc-org-c4-qc/proposal.md
Normal file
32
openspec/changes/svc-org-c4-qc/proposal.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
## Why
|
||||||
|
|
||||||
|
C3 已落地履约留痕(ho_record 四表,record_status=submitted)+ 异常上报。C4 交付 PRD 第四块「质控闸门」:对每条已提交留痕做全量质控(放行/退回,禁止自审自放行)、五类主动推送聚合、异常处理台 + 异常联动改计划、补正。这是「先质控再上报」铁律的代码落地。
|
||||||
|
|
||||||
|
## What Changes
|
||||||
|
|
||||||
|
- 新增 `qc` 表(质控记录)+ `ho_record_correction` 表(补正说明)。
|
||||||
|
- 全量质控:定时任务扫描 `submitted` 留痕生成 qc 记录(非抽检)。
|
||||||
|
- 放行/退回:放行前按序自检(四要素 1004 → 必拍 3001 → 幂等 → 放行人≠录入人 4001);退回必填原因;批量放行排除异常/未执行项/临时加项/时长异常/补正过。
|
||||||
|
- 五类主动推送:后台聚合(异常待处理/逾期未做/住院仍有派单/计划未制定/留痕待放行),每类带消除条件。
|
||||||
|
- 异常处理台 + 异常联动改计划(复用 plan.change + link_plan_change)。
|
||||||
|
- 补正:原记录保留 + 新增更正说明(ho_record_correction),不可补正签到时间/定位/照片。
|
||||||
|
- 前端「质控中心」页(B4)。
|
||||||
|
|
||||||
|
## Capabilities
|
||||||
|
|
||||||
|
### New Capabilities
|
||||||
|
|
||||||
|
- `backend/qc`: 全量质控生成、放行/退回/4001 自检、五类推送聚合、异常联动改计划、补正。
|
||||||
|
- `frontend/ad/qc`: admin 质控中心页(待我处理/待放行队列/异常处理台)。
|
||||||
|
|
||||||
|
### Modified Capabilities
|
||||||
|
|
||||||
|
- `shared/data-model`: 新增 `qc` + `ho_record_correction` 两实体。
|
||||||
|
- `shared/api-contract`: 新增 qc 接口(pending-list/detail/pass/return/exception-link/correct/batch-pass)。
|
||||||
|
|
||||||
|
## Impact
|
||||||
|
|
||||||
|
- 后端 ec-nest:新增 qc 模块(纯新增),依赖 record/abnormal/plan/order/elder 模块。
|
||||||
|
- 前端 ec-admin:质控中心页(替换 qc 占位)。
|
||||||
|
- 数据:新增 2 张表(迁移,utf8mb4_general_ci)。
|
||||||
|
- 依赖:C3 的 record(submitted)、abnormal、C2 的 plan.change、C1 的 elder。
|
||||||
58
openspec/changes/svc-org-c4-qc/specs/backend/qc/spec.md
Normal file
58
openspec/changes/svc-org-c4-qc/specs/backend/qc/spec.md
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
## Purpose
|
||||||
|
|
||||||
|
定义服务机构端质控闸门的后端行为——全量质控、放行/退回(自审自放行 4001)、五类推送聚合、异常联动改计划、补正。
|
||||||
|
|
||||||
|
## ADDED Requirements
|
||||||
|
|
||||||
|
### Requirement: 全量质控生成
|
||||||
|
定时任务 MUST 扫描 `record_status='submitted'` 且无 qc 记录的留痕 → 生成 qc(qc_result=pending)。非抽检。
|
||||||
|
|
||||||
|
#### Scenario: 兜底生成
|
||||||
|
- **WHEN** 一条留痕 submitted 后无 qc
|
||||||
|
- **THEN** 定时任务为其生成 qc 记录
|
||||||
|
|
||||||
|
### Requirement: 放行
|
||||||
|
`POST /qc/pass` MUST 按序校验:① 四要素齐(时间/项目/时长/护理员,否则 1004)→ ② 必拍已拍(3001)→ ③ 状态=待质控(幂等)→ ④ **放行人 ≠ 录入人**(4001 自审自放行);通过则 qc_result=passed + pass_time。
|
||||||
|
|
||||||
|
#### Scenario: 自审自放行拒绝
|
||||||
|
- **WHEN** 放行人 = 该记录的录入人
|
||||||
|
- **THEN** 返回 4001 拒绝
|
||||||
|
|
||||||
|
#### Scenario: 缺要素拒绝
|
||||||
|
- **WHEN** 留痕缺必填要素
|
||||||
|
- **THEN** 返回 1004 拒绝
|
||||||
|
|
||||||
|
### Requirement: 退回
|
||||||
|
`POST /qc/return` MUST qc_note 必填 → qc_result=returned;退回后护理员可补正。
|
||||||
|
|
||||||
|
#### Scenario: 退回需原因
|
||||||
|
- **WHEN** 退回缺 qc_note
|
||||||
|
- **THEN** 拒绝
|
||||||
|
|
||||||
|
### Requirement: 五类主动推送聚合
|
||||||
|
`GET /qc/pending/list` MUST 聚合五类:异常待处理(abnormal.handle_status=open)、逾期未做(order 过时段无 record 超 24h)、住院仍有派单(elder.treat_status=hosp_pause 且有未完成 order)、计划未制定(待遇生效 5 工作日无 active plan)、留痕待放行(qc pending);每类带消除条件。
|
||||||
|
|
||||||
|
#### Scenario: 逾期未做
|
||||||
|
- **WHEN** 工单过时段超 24h 仍无 record
|
||||||
|
- **THEN** 出现在「逾期未做」待办
|
||||||
|
|
||||||
|
### Requirement: 异常处理与联动改计划
|
||||||
|
`POST /qc/exception/link` MUST 复用 plan.change 生成新 plan + 回填 record_abnormal.link_plan_change=true。
|
||||||
|
|
||||||
|
#### Scenario: 异常联动改计划
|
||||||
|
- **WHEN** 质控员判断异常需加专项
|
||||||
|
- **THEN** 生成新计划并回填 link_plan_change
|
||||||
|
|
||||||
|
### Requirement: 补正
|
||||||
|
`POST /qc/correct` MUST 写 ho_record_correction(correction_note)+ record 重新 submitted(触发 recheck);不可补正签到时间/定位/照片;同记录补正 ≥3 次 ⇒ 进质控重点。
|
||||||
|
|
||||||
|
#### Scenario: 补正不改原值
|
||||||
|
- **WHEN** 补正一条留痕
|
||||||
|
- **THEN** 原记录不动,新增更正说明,record 重新进质控
|
||||||
|
|
||||||
|
### Requirement: 批量放行
|
||||||
|
`POST /qc/batch-pass` MUST 排除有异常/未执行项/临时加项/时长异常/补正过的记录。
|
||||||
|
|
||||||
|
#### Scenario: 批量安全边界
|
||||||
|
- **WHEN** 批量放行含异常记录
|
||||||
|
- **THEN** 拒绝(必须逐条看)
|
||||||
26
openspec/changes/svc-org-c4-qc/specs/frontend/ad/qc/spec.md
Normal file
26
openspec/changes/svc-org-c4-qc/specs/frontend/ad/qc/spec.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
## Purpose
|
||||||
|
|
||||||
|
定义服务机构端「质控中心」页面的交互。
|
||||||
|
|
||||||
|
## ADDED Requirements
|
||||||
|
|
||||||
|
### Requirement: 质控中心页
|
||||||
|
admin「质控中心」页 MUST 提供三区:① 待我处理(五类主动推送聚合 + 计数)② 待放行队列(逐条放行/退回)③ 异常处理台(处理/转派/关闭 + 处理意见)。
|
||||||
|
|
||||||
|
#### Scenario: 查看待办
|
||||||
|
- **WHEN** 质控员打开质控中心
|
||||||
|
- **THEN** 看到五类待办计数 + 待放行队列 + 异常处理台
|
||||||
|
|
||||||
|
### Requirement: 放行与退回
|
||||||
|
放行 MUST 一键;退回 MUST 选原因(下拉);批量放行 MUST 排除异常/未执行项记录。
|
||||||
|
|
||||||
|
#### Scenario: 放行
|
||||||
|
- **WHEN** 质控员点放行
|
||||||
|
- **THEN** 记录转 passed,从待放行队列消失
|
||||||
|
|
||||||
|
### Requirement: 异常处理
|
||||||
|
质控员 MUST 能对异常记录处理/转派/关闭并附处理意见;判断需加专项时 MUST 能联动到计划变更。
|
||||||
|
|
||||||
|
#### Scenario: 联动改计划
|
||||||
|
- **WHEN** 质控员对异常选「联动改计划」
|
||||||
|
- **THEN** 生成新计划并回填 link_plan_change
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
## ADDED Requirements
|
||||||
|
|
||||||
|
### Requirement: 质控接口
|
||||||
|
`GET /qc/pending/list`、`GET /qc/detail`、`POST /qc/pass`、`POST /qc/return`、`POST /qc/exception/link`、`POST /qc/correct`、`POST /qc/batch-pass` MUST 存在,遵循统一响应。
|
||||||
|
|
||||||
|
#### Scenario: 放行前自检
|
||||||
|
- **WHEN** 放行一条留痕
|
||||||
|
- **THEN** 按序校验四要素(1004)/必拍(3001)/幂等/非自审(4001),任一不过拒绝
|
||||||
|
|
||||||
|
#### Scenario: 退回必填原因
|
||||||
|
- **WHEN** 退回留痕缺 qc_note
|
||||||
|
- **THEN** 拒绝
|
||||||
|
|
||||||
|
### Requirement: 五类主动推送
|
||||||
|
`GET /qc/pending/list` MUST 聚合五类待办:异常待处理、逾期未做(>24h)、住院仍有派单、计划未制定(5 工作日)、留痕待放行,每类带消除条件。
|
||||||
|
|
||||||
|
#### Scenario: 消除条件
|
||||||
|
- **WHEN** 某类待办已处理
|
||||||
|
- **THEN** 该类从待办列表消除
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
## ADDED Requirements
|
||||||
|
|
||||||
|
### Requirement: 质控记录实体 qc
|
||||||
|
`qc` 表 MUST 存在(record_id、qc_type、push_reason、qc_result、qc_note、qc_staff_id、qc_time、pass_time、first_qc_id)。`qc_result` MUST ∈ {pending, passed, returned};退回时 `qc_note` 必填;recheck 时 `first_qc_id` 指向首次 qc。
|
||||||
|
|
||||||
|
#### Scenario: 全量生成
|
||||||
|
- **WHEN** 一条留痕 submitted 且无 qc 记录
|
||||||
|
- **THEN** 定时任务生成一条 qc(qc_result=pending)
|
||||||
|
|
||||||
|
### Requirement: 补正实体 ho_record_correction
|
||||||
|
`ho_record_correction` 表 MUST 存在(record_id、qc_id、correction_note、corrected_by、corrected_at)。补正 MUST 新增说明、不直接改原记录。
|
||||||
|
|
||||||
|
#### Scenario: 补正留痕
|
||||||
|
- **WHEN** 退回后护理员补正
|
||||||
|
- **THEN** 写一条更正说明,原记录保留不动
|
||||||
30
openspec/changes/svc-org-c4-qc/tasks.md
Normal file
30
openspec/changes/svc-org-c4-qc/tasks.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Tasks — svc-org-c4-qc
|
||||||
|
|
||||||
|
## 1. 数据层
|
||||||
|
|
||||||
|
- [ ] 1.1 `schema.prisma` 新增 `Qc`(表名 qc)+ `RecordCorrection`(表名 ho_record_correction)模型。
|
||||||
|
- [ ] 1.2 `prisma.service.ts`:`Qc` 加入 SOFT_DELETE;`RecordCorrection` 子表不入。
|
||||||
|
- [ ] 1.3 迁移 `c4_qc`(utf8mb4_general_ci,migrate diff + deploy)+ `prisma generate`。
|
||||||
|
|
||||||
|
## 2. 权限码 + 错误码 + APIS
|
||||||
|
|
||||||
|
- [ ] 2.1 `permissions.ts` 新增 `qc.*`(pendingList/detail/pass/return/exceptionLink/correct/batchPass)。
|
||||||
|
- [ ] 2.2 `error-codes.ts` 补域 46:QC_NOT_FOUND、QC_ALREADY_HANDLED、QC_SELF_REVIEW(4001)、QC_ELEMENT_MISSING(1004)、QC_NOTE_REQUIRED、QC_BATCH_UNSAFE 等。
|
||||||
|
- [ ] 2.3 `tenant-template.ts` APIS 登记 qc 接口资源(parent 'qc')。
|
||||||
|
|
||||||
|
## 3. qc 模块(全量质控 + 放行/退回 + 五类推送 + 异常联动 + 补正)
|
||||||
|
|
||||||
|
- [ ] 3.1 `src/qc/` 模块:定时任务(@Cron)全量生成 qc;pass(自检 1004/3001/幂等/4001);return(qc_note 必填);pending-list(五类聚合);detail;exception-link(plan.change + link_plan_change);correct(补正 + 重新 submitted + ≥3 次进重点);batch-pass(排除异常等)。
|
||||||
|
- [ ] 3.2 TDD:全量生成、放行自检四步、4001 自审、退回必填原因、五类聚合各消除条件、联动改计划、补正不改原值、批量安全边界;`pnpm test` + `tsc --noEmit`。
|
||||||
|
|
||||||
|
## 4. 前端
|
||||||
|
|
||||||
|
- [ ] 4.1 `src/api/qc.ts`。
|
||||||
|
- [ ] 4.2 质控中心页(`ltc/qc`):待我处理(五类聚合)+ 待放行队列(放行/退回/批量)+ 异常处理台(处理/联动改计划)。
|
||||||
|
- [ ] 4.3 `pnpm type-check` 通过。
|
||||||
|
|
||||||
|
## 5. 验证
|
||||||
|
|
||||||
|
- [ ] 5.1 冒烟:submitted 留痕 → 定时任务生成 qc → 放行(4001 自审拒/通过)→ 退回(补正)→ recheck → 放行。
|
||||||
|
- [ ] 5.2 五类推送:异常/逾期/住院/计划/待放行各出现与消除。
|
||||||
|
- [ ] 5.3 异常联动改计划生成新 plan + link_plan_change;审计落库。
|
||||||
Loading…
x
Reference in New Issue
Block a user