docs(详细设计): 新增一致性核查设计
This commit is contained in:
77
docs/详细设计/skill/审核范围确认Skill.md
Normal file
77
docs/详细设计/skill/审核范围确认Skill.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# 审核范围确认Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`审核范围确认Skill` 负责确认本次一致性核查的文档范围,避免把不同项目、不同产品或法规依据资料混入同一轮比对。
|
||||
|
||||
英文实现标识建议使用 `ReviewScopeResolveSkill`。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class ReviewScopeResolveInput:
|
||||
batch_id: int
|
||||
documents: list[DocumentFact]
|
||||
selected_document_ids: list[int] = field(default_factory=list)
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class ReviewScopeResolveOutput:
|
||||
scope_documents: list[DocumentFact]
|
||||
excluded_documents: list[dict]
|
||||
scope_warnings: list[dict]
|
||||
scope_status: str
|
||||
```
|
||||
|
||||
## 4. 范围规则
|
||||
|
||||
1. 必须同一批次。
|
||||
2. 必须是业务申报资料。
|
||||
3. 法规资料排除。
|
||||
4. 处理失败资料排除。
|
||||
5. 待人工复核资料保留但标记警告。
|
||||
6. 用户选中范围优先。
|
||||
|
||||
## 5. 核心方法
|
||||
|
||||
### 5.1 `run(input) -> ReviewScopeResolveOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 5.2 `filter_by_selected_documents(documents, ids) -> list[DocumentFact]`
|
||||
|
||||
根据用户选择过滤文档。
|
||||
|
||||
### 5.3 `exclude_non_submission_documents(documents) -> list[dict]`
|
||||
|
||||
排除法规资料和非业务资料。
|
||||
|
||||
### 5.4 `build_scope_warnings(documents) -> list[dict]`
|
||||
|
||||
生成范围警告。
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. 文档主数据
|
||||
2. Django ORM
|
||||
3. 资料来源角色枚举
|
||||
|
||||
## 7. 异常处理
|
||||
|
||||
1. 范围为空:任务不可执行。
|
||||
2. 只有单个文档:允许执行,但只能输出单来源结果。
|
||||
3. 全部文档待复核:输出低可信警告。
|
||||
|
||||
## 8. 测试要点
|
||||
|
||||
1. 选中文档范围生效。
|
||||
2. 法规资料被排除。
|
||||
3. 待复核文档输出警告。
|
||||
4. 空范围返回错误。
|
||||
|
||||
Reference in New Issue
Block a user