safety-eval-service/docs/db/phase2/数据库设计文档-二期.md

169 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 安全评价系统二期数据库设计文档
| 日期 | 版本 | 说明 |
|------|------|------|
| 2026.07.17 | v1.0.0 | 二期建表设计 |
脚本:`docs/db/phase2/init-phase2.sql`
节点引擎专项:`docs/db/phase2/节点引擎设计与使用说明.md`
---
## 一、设计约定
| 项 | 约定 |
|----|------|
| 字符集 | utf8mb4 / utf8mb4_0900_ai_ci |
| 命名 | 库表字段小写 + 下划线,表名 ≤32 字符 |
| 外键 | 禁止物理外键;逻辑关联由业务层维护 |
| 标识字段 | `xxx_flag`tinyint1=是2=否) |
| 字典字段 | `xxx_code` + `xxx_name` |
| 金额 | 单位:分,类型 bigint |
| 文件 | 仅存 URL / 文件服务地址 |
| 逻辑删除 | `delete_enum``true` / `false` |
| 业务主表公共字段 | delete_enum、remarks、create_name、update_name、tenant_id、org_id、version、create_time、update_time、create_id、update_id、env |
| 站内消息 | 复用 GBS `jjb-saas-message`(站内信 / 待办 / 催办 / 短信),本库不建消息表 |
本脚本仅新增二期表,不改建一期已有表与业务代码。
---
## 二、一期复用表
| 表 | 用途 |
|----|------|
| org_info | 机构主数据 |
| org_qualification | 资质证照 |
| org_department / org_position | 部门岗位 |
| org_personnel / org_personnel_cert | 人员与证书 |
| org_equipment | 装备 |
| org_personnel_change / org_resign_apply | 人员变更、离职 |
| qual_filing 及材料/承诺/人员/装备/变更子表 | 资质申请、备案、变更 |
| qual_filing_expert | 专家库 |
| account | 账号 |
---
## 三、二期新建表30
| 序号 | 表名 | 域 | 作用 |
|------|------|----|------|
| 1 | qual_review_task | 资质审核 | 多阶段审核任务 |
| 2 | qual_review_action | 资质审核 | 审核/确认/反馈动作流水 |
| 3 | qual_review_expert_assign | 资质审核 | 专家指派与核验 |
| 4 | qual_site_review_notice | 资质审核 | 现场审查通知(含机构确认与反馈) |
| 5 | qual_publicity | 资质审核 | 备案公示 |
| 6 | biz_rule | 规则 | 资质保持 / 风险预警规则domain_code 区分) |
| 7 | qual_keep_check | 资质保持 | 机构维度校验结果头 |
| 8 | qual_keep_check_item | 资质保持 | 分项结论与来源快照 |
| 9 | risk_warning | 风险预警 | 预警主单 |
| 10 | risk_warning_action | 风险预警 | 处置流水 |
| 11 | eval_customer | 安评业务 | 安评客户 |
| 12 | eval_project | 安评业务 | 安评项目主表 |
| 13 | eval_project_member | 安评业务 | 项目成员 |
| 14 | eval_project_doc | 安评业务 | 项目资料协同 |
| 15 | eval_project_doc_ver | 安评业务 | 资料版本 |
| 16 | eval_node_def | 节点引擎 | 节点定义(可配置增删) |
| 17 | eval_node_inst | 节点引擎 | 项目节点实例 |
| 18 | eval_node_form | 节点引擎 | 通用节点表单 |
| 19 | eval_node_form_item | 节点引擎 | 表单分项 / 参与人 |
| 20 | eval_node_file | 节点引擎 | 节点附件 |
| 21 | eval_survey | 踏勘专表 | 现场踏勘主单 |
| 22 | eval_survey_checkin | 踏勘专表 | 现场打卡(含 APP 任务状态) |
| 23 | eval_report_draft | 报告专表 | 报告编制稿 |
| 24 | eval_sign_task | 签字 | 签字任务 |
| 25 | eval_sign_record | 签字 | 签字记录 |
| 26 | eval_report | 报告库 | 报告主表 |
| 27 | eval_report_spotcheck | 报告库 | 抽查与整改复核 |
| 28 | org_profile_score | 画像 | 机构画像得分(含 metric_json |
| 29 | insp_notice | 监督检查 | 告知主单(含检查结果) |
| 30 | insp_notice_material | 监督检查 | 材料清单与反馈 |
---
## 四、逻辑关联
```
org_info
├── qual_filing ── qual_review_task ──┬── qual_review_action
│ ├── qual_review_expert_assign
│ ├── qual_site_review_notice
│ └── qual_publicity
├── biz_rule(KEEP) ── qual_keep_check ── qual_keep_check_item
├── biz_rule(WARNING) ── risk_warning ── risk_warning_action
├── eval_customer ── eval_project ──┬── eval_project_member
│ ├── eval_project_doc ── eval_project_doc_ver
│ ├── eval_node_inst ← eval_node_def
│ │ ├── eval_node_form ── item / file
│ │ ├── eval_survey ── eval_survey_checkin
│ │ ├── eval_report_draft
│ │ └── eval_sign_task ── eval_sign_record
│ └── eval_report ── eval_report_spotcheck
├── org_profile_score
└── insp_notice ── insp_notice_material
```
| 逻辑字段 | 指向 |
|----------|------|
| org_id | org_info.id |
| filing_id | qual_filing.id |
| expert_id | qual_filing_expert.id |
| customer_id | eval_customer.id |
| project_id | eval_project.id |
| node_def_id / node_code | eval_node_def |
| node_inst_id | eval_node_inst.id |
| form_id | eval_node_form.id |
| survey_id | eval_survey.id |
| warning_id / source_warning_id | risk_warning.id |
| sign_task_id | eval_sign_task.id |
| report_id | eval_report.id |
| rule_id | biz_rule.id |
| personnel_id | org_personnel.id |
| account_id | account.id |
---
## 五、业务数据流
### 5.1 资质审核与保持预警
机构填报 `qual_filing` → 生成 `qual_review_task` → 审核动作 / 专家核验 / 现场审查通知 → 公示 `qual_publicity` → 按 `biz_rule(KEEP)` 校验写入 `qual_keep_check*` → 异常生成 `risk_warning``risk_warning_action` 闭环。
### 5.2 安评项目
维护 `eval_customer` → 创建 `eval_project` 及成员、资料 → 按 `eval_node_def` 生成 `eval_node_inst` → 通用节点办理表单;踏勘 / 报告编辑 / 签字走专表 → 归档生成 `eval_report` → 抽查与画像计分。
### 5.3 监督检查
创建 `insp_notice`(可关联预警或项目)→ 机构确认与材料反馈 → 结果回写告知主表。
### 5.4 消息通知
业务状态变更后调用 GBS `MessageFacade` 发送站内信 / 待办 / 短信;本库不落消息实体。
---
## 六、状态字典
| 对象 | 字段 | 取值 |
|------|------|------|
| 审核任务 | stage_code | 1初审 2专家核验 3现场审查 4会审 5许可审批 6已办结 |
| 审核任务 | result_code | 1通过 2打回 3进行中 |
| 预警 | category_code | 1人员 2机构资质 3项目风险 4资质临期 |
| 预警 | handle_stage_code | 1未处理 2已发机构 3待复核 4已闭环 |
| 项目 | status_code | 1草稿 2进行中 3已归档 4已作废 |
| 节点实例 | node_status_code | 1未开始 2进行中 3已完成 4退回 |
| 监督检查 | status_code | 1已下发 2已确认 3已反馈 4已办结 |
默认项目节点编码见《节点引擎设计与使用说明》。
---
## 七、执行说明
```bash
mysql -u<user> -p <database> < docs/db/phase2/init-phase2.sql
```
在测试库验证后再用于正式环境;勿对一期生产表做破坏性变更。