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

254 lines
9.6 KiB
Markdown
Raw Permalink Normal View History

2026-07-17 14:18:53 +08:00
# 安全评价系统二期数据库设计文档
| 日期 | 版本 | 说明 |
|------|------|------|
2026-07-20 11:02:57 +08:00
| 2026.07.20 | v1.0.0 | 二期建表(八节点专表,无流程引擎) |
2026-07-17 14:18:53 +08:00
2026-07-20 11:02:57 +08:00
脚本:`docs/db/phase2/init-phase2.sql`
2026-07-17 14:18:53 +08:00
---
## 一、设计约定
| 项 | 约定 |
|----|------|
| 字符集 | utf8mb4 / utf8mb4_0900_ai_ci |
2026-07-20 11:02:57 +08:00
| 命名 | 小写 + 下划线,表名 ≤32 字符 |
2026-07-17 14:18:53 +08:00
| 外键 | 禁止物理外键;逻辑关联由业务层维护 |
2026-07-20 11:02:57 +08:00
| 标识 | `xxx_flag`1是 / 2否 |
| 金额 | 单位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本库不建消息表 |
| 项目节点 | 按原型 8 个法定节点各建专表;**无**节点定义/实例/通用表单引擎表 |
2026-07-17 14:18:53 +08:00
---
## 二、一期复用表
2026-07-20 11:02:57 +08:00
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 |
|------|------|--------|----------|----------|
| org_* / account | 机构主数据与账号 | 监管 / 机构 | 基础信息管理 / 企业信息管理 | 机构账号、已备案机构、评价师、机构/资质/人员/装备等 |
| qual_filing* / qual_filing_expert | 资质申请备案变更专家 | 监管 / 机构 | 资质审核 / 资质申请和备案告知 | 资质备案审核、确认、专家核验、公示、变更;资质申请、已有资质备案、现场审查通知 |
2026-07-17 14:18:53 +08:00
---
2026-07-20 11:02:57 +08:00
## 三、二期新建表23— 表名、作用与原型菜单
### 1. 监管支撑5
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 |
|------|------|--------|----------|----------|
| eval_report | 报告库主表 | 监管 / 机构 | 安评机构监督管理 / 安评报告库管理 | 安评报告数据库;报告库 |
| eval_report_spotcheck | 报告抽查整改 | 监管 | 安评机构监督管理 | 安评报告数据库 |
| org_profile_score | 安全评价画像得分 | 监管 | 安评机构监督管理 | 安全评价画像 |
| insp_notice | 监督检查告知 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 |
| insp_notice_material | 检查材料反馈 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 |
### 2. 安评项目与八节点18
| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 / 页面 |
|------|------|--------|----------|-----------------|
| eval_customer | 安评客户 | 机构 | 安评业务管理 | 安评客户管理 |
| eval_project | 项目主表 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 安评项目管理、我的项目、项目进度管理;安评项目实时监控 |
| eval_project_member | 项目成员 | 机构 | 安评业务管理 | 安评项目管理、我的项目03 项目组成立) |
| eval_project_doc | 项目资料协同 | 机构 | 安评业务管理 | 项目资料协同库 |
| eval_risk_analysis | 01 风险分析 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 01 风险分析;项目实时监控(查看) |
| eval_risk_participant | 01 参与人签字 | 机构 | 安评业务管理 | 我的项目 → 01 风险分析 |
| eval_contract | 02 业务合同 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 02 业务合同;项目实时监控 |
| eval_team | 03 项目组成立 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 03 项目组成立;项目实时监控 |
| eval_survey | 04 现场踏勘主表 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04 现场踏勘项目踏勘监管APP 现场踏勘 |
| eval_survey_notice | 04 从业告知 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04项目踏勘监管 |
| eval_survey_checkin | 04 现场打卡 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04项目踏勘监管APP 现场踏勘 |
| eval_survey_attach | 04 踏勘附件 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04检查表/整改/复查等) |
| eval_report_draft | 05 报告编制稿 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 05 报告编制;项目实时监控 |
| eval_internal_review | 06 内部审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 06 内部审核 |
| eval_tech_review | 07 技术审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 07 技术审核 |
| eval_process_control | 08 过程控制 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 08 过程控制 |
| eval_sign_task | 签字任务 | 机构 / APP | 安评业务管理 | 我的项目(报告/审核签字APP 签字管理 |
| eval_sign_record | 签字记录 | 机构 / APP | 安评业务管理 | 同上 |
培训、风险预警中心、资质保持监控、机构端风险预警管理不在二期库表范围。
2026-07-17 14:18:53 +08:00
---
2026-07-20 11:02:57 +08:00
## 四、ER 图一:监管支撑(第 1 组)
```mermaid
erDiagram
insp_notice ||--o{ insp_notice_material : "notice_id"
eval_report ||--o{ eval_report_spotcheck : "report_id"
org_info ||--o{ org_profile_score : "org_id"
org_info ||--o{ insp_notice : "org_id"
org_info ||--o{ eval_report : "org_id"
eval_report {
bigint id PK
bigint org_id
bigint project_id
}
eval_report_spotcheck {
bigint id PK
bigint report_id
}
org_profile_score {
bigint id PK
bigint org_id
string score_period
}
insp_notice {
bigint id PK
bigint org_id
bigint source_ref_id
}
insp_notice_material {
bigint id PK
bigint notice_id
}
2026-07-17 14:18:53 +08:00
```
---
2026-07-20 11:02:57 +08:00
## 五、ER 图二:安评项目与八节点(第 2 组)
```mermaid
erDiagram
eval_customer ||--o{ eval_project : "customer_id"
eval_project ||--o{ eval_project_member : "project_id"
eval_project ||--o{ eval_project_doc : "project_id"
eval_project ||--o| eval_risk_analysis : "project_id"
eval_risk_analysis ||--o{ eval_risk_participant : "risk_id"
eval_project ||--o| eval_contract : "project_id"
eval_project ||--o| eval_team : "project_id"
eval_project ||--o| eval_survey : "project_id"
eval_survey ||--o| eval_survey_notice : "survey_id"
eval_survey ||--o{ eval_survey_checkin : "survey_id"
eval_survey ||--o{ eval_survey_attach : "survey_id"
eval_project ||--o{ eval_report_draft : "project_id"
eval_project ||--o| eval_internal_review : "project_id"
eval_project ||--o| eval_tech_review : "project_id"
eval_project ||--o| eval_process_control : "project_id"
eval_report_draft ||--o| eval_internal_review : "draft_id"
eval_report_draft ||--o| eval_tech_review : "draft_id"
eval_project ||--o{ eval_sign_task : "project_id"
eval_sign_task ||--o{ eval_sign_record : "sign_task_id"
eval_project ||--o{ eval_report : "project_id"
eval_customer {
bigint id PK
string customer_name
}
eval_project {
bigint id PK
bigint customer_id
string project_no
int status_code
}
eval_project_member {
bigint id PK
bigint project_id
bigint personnel_id
string role_code
}
eval_project_doc {
bigint id PK
bigint project_id
string latest_file_url
}
eval_risk_analysis {
bigint id PK
bigint project_id
int risk_level_code
int status_code
}
eval_risk_participant {
bigint id PK
bigint risk_id
bigint personnel_id
}
eval_contract {
bigint id PK
bigint project_id
string contract_no
bigint amount_fen
}
eval_team {
bigint id PK
bigint project_id
bigint leader_personnel_id
}
eval_survey {
bigint id PK
bigint project_id
int status_code
}
eval_survey_notice {
bigint id PK
bigint survey_id
}
eval_survey_checkin {
bigint id PK
bigint survey_id
}
eval_survey_attach {
bigint id PK
bigint survey_id
string attach_type_code
}
eval_report_draft {
bigint id PK
bigint project_id
int draft_version_no
}
eval_internal_review {
bigint id PK
bigint project_id
}
eval_tech_review {
bigint id PK
bigint project_id
}
eval_process_control {
bigint id PK
bigint project_id
tinyint precheck_pass_flag
}
eval_sign_task {
bigint id PK
bigint project_id
string biz_node_code
}
eval_sign_record {
bigint id PK
bigint sign_task_id
}
```
2026-07-17 14:18:53 +08:00
---
2026-07-20 11:02:57 +08:00
## 六、我的项目八节点 ↔ 表
2026-07-17 14:18:53 +08:00
2026-07-20 11:02:57 +08:00
入口:机构端 · 安评业务管理 · **我的项目**(监管端 · 安评项目管理 · **安评项目实时监控 / 项目踏勘监管** 只读查看)。
2026-07-17 14:18:53 +08:00
2026-07-20 11:02:57 +08:00
| 节点 | 原型页面要点 | 表 |
|------|--------------|-----|
| 01 风险分析 | 风险分析记录表、符合性、结论、参与人签字、批准 | eval_risk_analysis、eval_risk_participant |
| 02 业务合同 | 合同与企业信息、金额、扫描件 PDF | eval_contract |
| 03 项目组成立 | 多角色选人;负责人/过程控制负责人各 1 人 | eval_team、eval_project_member |
| 04 现场踏勘 | 从业告知→勘查打卡→整改→企业报告→复查 | eval_survey、eval_survey_notice、eval_survey_checkin、eval_survey_attach |
| 05 报告编制 | 编辑器、模板、版本、责任页签字 | eval_report_draft、eval_sign_task、eval_sign_record |
| 06 内部审核 | 审核意见与结论 | eval_internal_review |
| 07 技术审核 | 审核意见与结论 | eval_tech_review |
| 08 过程控制 | 前 7 节点完成后办理、归档 | eval_process_control → eval_report |
2026-07-17 14:18:53 +08:00
---
## 七、执行说明
```bash
mysql -u<user> -p <database> < docs/db/phase2/init-phase2.sql
```
2026-07-20 11:02:57 +08:00
测试库验证后再用于正式环境。