Commit 4ca8494c authored by drigle's avatar drigle

docs: sync subject definitions

parent 626306b3
......@@ -56,24 +56,79 @@ type Record = {
}
```
## 2. Subject Definitions
<!-- SUBJECT_SCHEMA_SYNC:START -->
> 同步根对象:`am_material`、`risk_case_library`
> 当前依赖闭包:2 个 Subject。
### `am_material`:审计材料文件
- 类型:`normal`
- 字段数量:14
| 字段标签 | 字段别名 | 字段类型 | 多值 | 必填 | 主键 | 关联/配置 |
| --- | --- | --- | --- | --- | --- | --- |
| 材料名称 | `material_title` | text | 否 | 是 | 否 | |
| 文件对象 | `file_asset` | file | 否 | 是 | 否 | |
| 来源应用 | `source_app` | text | 否 | 否 | 否 | |
| 来源系统 | `source_system` | select | 否 | 否 | 否 | options: 投资交易系统, 估值系统, 注册登记系统, OA系统, 财务系统, 产品系统, 投研系统, 外部导出, 其他业务系统 |
| 材料分类 | `archive_category` | select | 否 | 否 | 否 | options: 审计需求, 纪检需求 |
| 上传人 | `uploader` | user | 否 | 是 | 否 | |
| 上传时间 | `uploaded_at` | date | 否 | 是 | 否 | |
| 备注 | `remark` | text | 否 | 否 | 否 | |
| 标签 | `tag` | text | 否 | 否 | 否 | |
| 提供部门 | `provide_department` | text | 否 | 否 | 否 | |
| 提供时间 | `provide_time` | date | 否 | 否 | 否 | |
| 是否涉密 | `is_confidential` | boolean | 否 | 否 | 否 | |
| 是否审计部材料 | `is_audit_dept_material` | boolean | 否 | 否 | 否 | |
| 所属年份 | `archive_year` | text | 否 | 否 | 否 | |
### `risk_case_library`:风险案例库
- 类型:`normal`
- 字段数量:11
| 字段标签 | 字段别名 | 字段类型 | 多值 | 必填 | 主键 | 关联/配置 |
| --- | --- | --- | --- | --- | --- | --- |
| 标题 | `label` | text | 否 | 否 | 否 | |
| 分类 | `category` | text | 否 | 否 | 否 | |
| 标签 | `tag` | text | 否 | 否 | 否 | |
| 案例类型 | `case_type` | text | 否 | 否 | 否 | |
| 案例属性 | `case_attribute` | text | 否 | 否 | 否 | |
| 案例详情 | `case_details` | long_text | 否 | 否 | 否 | |
| 案例警示 | `case_warning` | text | 否 | 否 | 否 | |
| 关键字 | `keyword` | text | 是 | 否 | 否 | |
| 案例来源 | `case_source` | text | 否 | 否 | 否 | |
| 案例等级 | `case_level` | text | 否 | 否 | 否 | |
| 案例年份 | `case_year` | number | 否 | 否 | 否 | |
### 关联对象与子对象定义
依赖字段通过 `settings.subject` 指向的对象会递归纳入本节;`form` 资源不属于 Subject 依赖。
<!-- SUBJECT_SCHEMA_SYNC:END -->
---
## 2. 类型写入协议
## 3. 类型写入协议
### 2.1 `text`
### 3.1 `text`
- 统一存储为字符串
- Excel 导入时,空单元格需要转换为空字符串,避免 `undefined`
- 若字段配置 `multiple: true`,统一存储为字符串数组;Excel 单元格中的英文逗号或中文逗号拼接值需要拆分、去空并去重
### 2.2 `Record.title`
### 3.2 `Record.title`
- 建议优先取 `metadata.label`
- 若 `label` 为空,可回退为 `metadata.case_type`
- 若仍为空,可退化为 `metadata.case_details` 前 24~32 个字符摘要
- 再兜底为 `未命名案例`
### 2.3 搜索与展示建议
### 3.3 搜索与展示建议
- 列表主标题使用 `label`
- 卡片或详情摘要使用 `case_details`
......@@ -81,77 +136,3 @@ type Record = {
- 标签筛选读取 `tag`
- 关键字筛选读取多值数组 `keyword`,历史数据可兼容读取字符串型 `keyword` 与 `tag`
- 关键词检索优先覆盖 `label`、`keyword`、`case_details`、`case_warning`
---
## 3. Subject Definitions
## 3.1 风险案例
- **subject**: `risk_case_library`
一条记录代表案例库中的一个案例条目,支持手动录入、编辑维护、Excel 批量导入与删除。
说明:
- `label` 用作主展示标题
- `category` 用于主题归类
- `tag` 用于标签化管理和快速筛选
- `case_type` 用于案例主分类或类型归纳
- `case_attribute` 用于补充案例属性、归属维度或风险特征
- `case_details` 为案例详情正文,通常为几百到上千字
- `case_warning` 用于提炼关键警示信息
- `keyword` 用于检索和热度统计,按多值字符串数组存储,可与历史 `tag` 并存
- `case_year` 建议存储为数字类型年份,便于筛选和排序
| 字段标签 | 字段别名 | 字段类型 | 默认值 | 是否主键 | 是否多值 | 是否必填 | 搜索 | 聚合 | 说明 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 标题 | `label` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例展示主标题 |
| 分类 | `category` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例分类,如舞弊风险、合规风险 |
| 标签 | `tag` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 标签字段,用于快速筛选或兼容旧数据 |
| 案例类型 | `case_type` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例类型,如审批绕行、权限滥用 |
| 案例属性 | `case_attribute` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例属性或归属维度 |
| 案例详情 | `case_details` | `long_text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例详细内容正文 |
| 案例警示 | `case_warning` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例提炼出的警示或风险提示 |
| 关键字 | `keyword` | `text` | `null` | 否 | 是 | 否 | 否 | 否 | 检索关键字,支持人工维护;导入时逗号拼接值需拆分为数组 |
| 案例来源 | `case_source` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例来源,如监管通报、内部复盘 |
| 案例等级 | `case_level` | `text` | `null` | 否 | 否 | 否 | 否 | 否 | 案例风险等级或分级 |
| 案例年份 | `case_year` | `number` | `null` | 否 | 否 | 否 | 否 | 否 | 案例发生或归档年份 |
### 3.1.1 原始字段结构
以下结构与当前前端表单、保存 payload 和动态字段定义保持一致:
```json
[
{ "name": "label", "label": "标题", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "category", "label": "分类", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "tag", "label": "标签", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_type", "label": "案例类型", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_attribute", "label": "案例属性", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_details", "label": "案例详情", "type": "long_text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_warning", "label": "案例警示", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "keyword", "label": "关键字", "type": "text", "default": null, "multiple": true, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_source", "label": "案例来源", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_level", "label": "案例等级", "type": "text", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} },
{ "name": "case_year", "label": "案例年份", "type": "number", "default": null, "multiple": false, "required": false, "primary": false, "search": { "enabled": false }, "aggregation": { "enabled": false }, "settings": {} }
]
```
### 3.1.2 metadata 示例
```json
{
"label": "采购审批绕行典型案例",
"category": "合规风险",
"tag": "采购审批",
"case_type": "违规操作",
"case_attribute": "流程绕行",
"case_details": "某项目在高峰采购期内,多次通过拆分订单绕过审批阈值,导致同一供应商在短期内累计发生异常采购金额。复盘发现,审批节点设置与例外授权规则未同步更新,最终形成流程漏洞。",
"case_warning": "涉及审批阈值、例外授权和供应商集中度的场景应设置联合预警。",
"keyword": ["审批", "采购", "拆单"],
"case_source": "内部审计复盘",
"case_level": "高",
"case_year": 2024
}
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment