567 lines
27 KiB
Markdown
567 lines
27 KiB
Markdown
|
|
# 安全责任清单表结构设计
|
|||
|
|
|
|||
|
|
## 一、需求概述
|
|||
|
|
|
|||
|
|
### 1.1 业务流程
|
|||
|
|
|
|||
|
|
1. **股份端创建任务清单** → 填写(名称,级别,责任岗位,开关,创建公司,创建部门,创建人)
|
|||
|
|
2. **根据任务清单ID进入任务列表** → 新建、查看
|
|||
|
|
3. **下发** → 给某公司的执行人
|
|||
|
|
4. **执行人按反馈周期按时提交反馈**
|
|||
|
|
5. **清单已完成或已关闭后可评分**
|
|||
|
|
|
|||
|
|
### 1.2 反馈周期规则
|
|||
|
|
|
|||
|
|
| 周期类型 | 规则说明 |
|
|||
|
|
|---------|---------|
|
|||
|
|
| 每月 | 每个月必须要有反馈,否则判定为有异常并记录 |
|
|||
|
|
| 每季度 | 按自然季度划分(3个月为一个季度),每个季度必须有一次反馈,否则判定为异常 |
|
|||
|
|
| 半年 | 按自然年划分(6个月为半年),每半年必须有一次反馈,否则判定为异常 |
|
|||
|
|
| 年 | 按自然年划分,每年必须有一次反馈,否则判定为异常 |
|
|||
|
|
|
|||
|
|
> **备注**:周期内可多次提交反馈
|
|||
|
|
|
|||
|
|
### 1.3 状态说明
|
|||
|
|
|
|||
|
|
- **已完成**:清单的周期时间结束
|
|||
|
|
- **已关闭**:手动关闭
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、表结构设计
|
|||
|
|
|
|||
|
|
### 2.1 ER关系图
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
safety_accountability_task_list (任务清单表)
|
|||
|
|
│
|
|||
|
|
├── 1:N ──→ safety_accountability_task_detail (任务清单详细表)
|
|||
|
|
│ │
|
|||
|
|
│ ├── 1:N ──→ safety_accountability_feedback (执行反馈表)
|
|||
|
|
│ │
|
|||
|
|
│ └── 1:N ──→ safety_accountability_feedback_exception (反馈异常信息表)
|
|||
|
|
│
|
|||
|
|
└── 关联 ──→ 执行人信息(user表)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 表清单
|
|||
|
|
|
|||
|
|
| 序号 | 表名 | 表中文名 | 说明 |
|
|||
|
|
|-----|------|---------|------|
|
|||
|
|
| 1 | safety_accountability_task_list | 任务清单表 | 存储任务清单主信息 |
|
|||
|
|
| 2 | safety_accountability_task_detail | 任务清单详细表 | 存储任务详情及执行内容 |
|
|||
|
|
| 3 | safety_accountability_feedback | 执行反馈表 | 存储执行人提交的反馈 |
|
|||
|
|
| 4 | safety_accountability_feedback_exception | 反馈异常信息表 | 记录反馈异常信息 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、详细表结构
|
|||
|
|
|
|||
|
|
### 3.1 任务清单表 (safety_accountability_task_list)
|
|||
|
|
|
|||
|
|
**功能说明**:存储任务清单主信息,包括创建、下发、执行、评分等完整生命周期。
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|
|||
|
|
|-------|------|---------|-------|------|
|
|||
|
|
| id | bigint(20) | 是 | 自增 | 主键 |
|
|||
|
|
| task_list_id | varchar(64) | 是 | - | 清单UUID(业务主键) |
|
|||
|
|
| task_list_name | varchar(255) | 是 | - | 清单名称 |
|
|||
|
|
| task_level | tinyint(4) | 是 | - | 任务级别:1-企业级 2-部门级 3-班组级 |
|
|||
|
|
| responsibility_post | varchar(255) | 否 | NULL | 责任岗位 |
|
|||
|
|
| switch_flag | tinyint(4) | 是 | 1 | 开启/关闭:0-关 1-开 |
|
|||
|
|
| status | tinyint(4) | 是 | 1 | 状态:1-进行中 2-已完成 3-已关闭 |
|
|||
|
|
| period_start_time | datetime | 是 | - | 执行周期开始时间 |
|
|||
|
|
| period_end_time | datetime | 是 | - | 执行周期结束时间 |
|
|||
|
|
| feedback_status | tinyint(4) | 否 | 1 | 反馈状态:1-正常 2-存在异常 |
|
|||
|
|
| score | decimal(5,2) | 否 | NULL | 评分数 |
|
|||
|
|
| score_time | datetime | 否 | NULL | 评分时间 |
|
|||
|
|
| score_user_id | bigint(20) | 否 | NULL | 评分人ID |
|
|||
|
|
| score_user_name | varchar(50) | 否 | NULL | 评分人姓名 |
|
|||
|
|
| score_department_id | bigint(20) | 否 | NULL | 评分部门ID |
|
|||
|
|
| score_department_name | varchar(100) | 否 | NULL | 评分部门名称 |
|
|||
|
|
| create_corp_id | bigint(20) | 否 | NULL | 创建公司ID |
|
|||
|
|
| create_corp_name | varchar(100) | 否 | NULL | 创建公司名称 |
|
|||
|
|
| create_department_id | bigint(20) | 否 | NULL | 创建部门ID |
|
|||
|
|
| create_department_name | varchar(100) | 否 | NULL | 创建部门名称 |
|
|||
|
|
| create_user_id | bigint(20) | 否 | NULL | 创建人ID |
|
|||
|
|
| create_user_name | varchar(50) | 否 | NULL | 创建人姓名 |
|
|||
|
|
| issue_status | tinyint(4) | 否 | 0 | 下发状态:0-未下发 1-已下发 |
|
|||
|
|
| issue_time | datetime | 否 | NULL | 下发时间 |
|
|||
|
|
| issue_user_id | bigint(20) | 否 | NULL | 下发人ID |
|
|||
|
|
| issue_user_name | varchar(50) | 否 | NULL | 下发人姓名 |
|
|||
|
|
| execute_corp_id | bigint(20) | 否 | NULL | 执行公司ID |
|
|||
|
|
| execute_corp_name | varchar(100) | 否 | NULL | 执行公司名称 |
|
|||
|
|
| execute_department_id | bigint(20) | 否 | NULL | 执行部门ID |
|
|||
|
|
| execute_department_name | varchar(100) | 否 | NULL | 执行部门名称 |
|
|||
|
|
| execute_user_id | bigint(20) | 否 | NULL | 执行人员ID |
|
|||
|
|
| execute_user_name | varchar(50) | 否 | NULL | 执行人员姓名 |
|
|||
|
|
| close_time | datetime | 否 | NULL | 关闭时间 |
|
|||
|
|
| close_user_id | bigint(20) | 否 | NULL | 关闭人ID |
|
|||
|
|
| close_user_name | varchar(50) | 否 | NULL | 关闭人姓名 |
|
|||
|
|
| close_reason | varchar(500) | 否 | NULL | 关闭原因 |
|
|||
|
|
|
|||
|
|
**索引设计**:
|
|||
|
|
|
|||
|
|
| 索引名 | 索引类型 | 字段 |
|
|||
|
|
|-------|---------|------|
|
|||
|
|
| PRIMARY | 主键 | id |
|
|||
|
|
| uk_task_list_id | 唯一索引 | task_list_id |
|
|||
|
|
| idx_create_corp_id | 普通索引 | create_corp_id |
|
|||
|
|
| idx_execute_corp_id | 普通索引 | execute_corp_id |
|
|||
|
|
| idx_execute_user_id | 普通索引 | execute_user_id |
|
|||
|
|
| idx_status | 普通索引 | status |
|
|||
|
|
| idx_period_time | 普通索引 | period_start_time, period_end_time |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3.2 任务清单详细表 (safety_accountability_task_detail)
|
|||
|
|
|
|||
|
|
**功能说明**:存储任务详情,关联任务清单表,包含执行内容、反馈周期、评分等信息。
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|
|||
|
|
|-------|------|---------|-------|------|
|
|||
|
|
| id | bigint(20) | 是 | 自增 | 主键 |
|
|||
|
|
| task_detail_id | varchar(64) | 是 | - | 任务详情UUID(业务主键) |
|
|||
|
|
| task_list_id | varchar(64) | 是 | - | 任务清单主键(关联任务清单表) |
|
|||
|
|
| execute_content | text | 否 | NULL | 执行内容 |
|
|||
|
|
| feedback_cycle | tinyint(4) | 是 | - | 反馈周期:1-每月 2-季度 3-半年 4-年 |
|
|||
|
|
| task_status | tinyint(4) | 是 | 1 | 任务状态:1-进行中 2-已完成 3-已关闭 |
|
|||
|
|
| feedback_status | tinyint(4) | 否 | 1 | 反馈状态:1-正常 2-存在异常 |
|
|||
|
|
| task_score | decimal(5,2) | 否 | NULL | 任务分值 |
|
|||
|
|
| task_rating | decimal(5,2) | 否 | NULL | 任务评分 |
|
|||
|
|
| score_time | datetime | 否 | NULL | 评分时间 |
|
|||
|
|
| score_department_id | bigint(20) | 否 | NULL | 评分部门ID |
|
|||
|
|
| score_department_name | varchar(100) | 否 | NULL | 评分部门名称 |
|
|||
|
|
| score_user_id | bigint(20) | 否 | NULL | 评分人ID |
|
|||
|
|
| score_user_name | varchar(50) | 否 | NULL | 评分人姓名 |
|
|||
|
|
| current_period | varchar(20) | 否 | NULL | 当前周期标识 |
|
|||
|
|
| last_feedback_time | datetime | 否 | NULL | 上次反馈时间 |
|
|||
|
|
| last_feedback_period | varchar(20) | 否 | NULL | 上次反馈周期标识 |
|
|||
|
|
| abnormal_count | int(11) | 否 | 0 | 异常次数(未按时反馈累计次数) |
|
|||
|
|
|
|||
|
|
**索引设计**:
|
|||
|
|
|
|||
|
|
| 索引名 | 索引类型 | 字段 |
|
|||
|
|
|-------|---------|------|
|
|||
|
|
| PRIMARY | 主键 | id |
|
|||
|
|
| uk_task_detail_id | 唯一索引 | task_detail_id |
|
|||
|
|
| idx_task_list_id | 普通索引 | task_list_id |
|
|||
|
|
| idx_task_status | 普通索引 | task_status |
|
|||
|
|
| idx_feedback_status | 普通索引 | feedback_status |
|
|||
|
|
| idx_current_period | 普通索引 | current_period |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3.3 执行反馈表 (safety_accountability_feedback)
|
|||
|
|
|
|||
|
|
**功能说明**:存储执行人提交的反馈信息,支持周期内多次反馈。
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|
|||
|
|
|-------|------|---------|-------|------|
|
|||
|
|
| id | bigint(20) | 是 | 自增 | 主键 |
|
|||
|
|
| feedback_id | varchar(64) | 是 | - | 反馈UUID(业务主键) |
|
|||
|
|
| task_detail_id | varchar(64) | 是 | - | 任务详情UUID(关联任务清单详细表) |
|
|||
|
|
| task_list_id | varchar(64) | 是 | - | 任务清单UUID(冗余字段,便于查询) |
|
|||
|
|
| feedback_period | varchar(20) | 是 | - | 反馈周期标识 |
|
|||
|
|
| feedback_cycle | tinyint(4) | 是 | - | 反馈周期类型:1-每月 2-季度 3-半年 4-年 |
|
|||
|
|
| feedback_content | text | 否 | NULL | 反馈内容 |
|
|||
|
|
| feedback_time | datetime | 是 | - | 反馈时间 |
|
|||
|
|
| feedback_user_id | bigint(20) | 否 | NULL | 反馈人ID |
|
|||
|
|
| feedback_user_name | varchar(50) | 否 | NULL | 反馈人姓名 |
|
|||
|
|
| feedback_corp_id | bigint(20) | 否 | NULL | 反馈人公司ID |
|
|||
|
|
| feedback_corp_name | varchar(100) | 否 | NULL | 反馈人公司名称 |
|
|||
|
|
| feedback_department_id | bigint(20) | 否 | NULL | 反馈人部门ID |
|
|||
|
|
| feedback_department_name | varchar(100) | 否 | NULL | 反馈人部门名称 |
|
|||
|
|
| is_ontime | tinyint(4) | 否 | 1 | 是否按时反馈:1-是 0-否 |
|
|||
|
|
|
|||
|
|
**索引设计**:
|
|||
|
|
|
|||
|
|
| 索引名 | 索引类型 | 字段 |
|
|||
|
|
|-------|---------|------|
|
|||
|
|
| PRIMARY | 主键 | id |
|
|||
|
|
| uk_feedback_id | 唯一索引 | feedback_id |
|
|||
|
|
| idx_task_detail_id | 普通索引 | task_detail_id |
|
|||
|
|
| idx_task_list_id | 普通索引 | task_list_id |
|
|||
|
|
| idx_feedback_period | 普通索引 | feedback_period |
|
|||
|
|
| idx_feedback_user_id | 普通索引 | feedback_user_id |
|
|||
|
|
| idx_feedback_time | 普通索引 | feedback_time |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3.4 反馈异常信息表 (safety_accountability_feedback_exception)
|
|||
|
|
|
|||
|
|
**功能说明**:记录反馈异常信息,包括未按时反馈等情况。
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|
|||
|
|
|-------|------|---------|-------|------|
|
|||
|
|
| id | bigint(20) | 是 | 自增 | 主键 |
|
|||
|
|
| exception_id | varchar(64) | 是 | - | 反馈异常UUID(业务主键) |
|
|||
|
|
| task_detail_id | varchar(64) | 是 | - | 任务详情主键(关联任务清单详细表) |
|
|||
|
|
| task_list_id | varchar(64) | 否 | NULL | 任务清单主键(冗余字段) |
|
|||
|
|
| feedback_id | varchar(64) | 否 | NULL | 关联的反馈ID(如果是反馈触发的异常) |
|
|||
|
|
| exception_period | varchar(20) | 否 | NULL | 异常周期标识 |
|
|||
|
|
| exception_type | tinyint(4) | 是 | - | 异常类型:1-未按时反馈 2-反馈内容异常 3-其他 |
|
|||
|
|
| exception_info | text | 否 | NULL | 反馈异常信息 |
|
|||
|
|
| exception_time | datetime | 否 | CURRENT_TIMESTAMP | 异常时间 |
|
|||
|
|
| handle_status | tinyint(4) | 否 | 0 | 处理状态:0-未处理 1-已处理 |
|
|||
|
|
| handle_time | datetime | 否 | NULL | 处理时间 |
|
|||
|
|
| handle_user_id | bigint(20) | 否 | NULL | 处理人ID |
|
|||
|
|
| handle_user_name | varchar(50) | 否 | NULL | 处理人姓名 |
|
|||
|
|
| handle_remark | varchar(500) | 否 | NULL | 处理备注 |
|
|||
|
|
|
|||
|
|
**索引设计**:
|
|||
|
|
|
|||
|
|
| 索引名 | 索引类型 | 字段 |
|
|||
|
|
|-------|---------|------|
|
|||
|
|
| PRIMARY | 主键 | id |
|
|||
|
|
| uk_exception_id | 唯一索引 | exception_id |
|
|||
|
|
| idx_task_detail_id | 普通索引 | task_detail_id |
|
|||
|
|
| idx_task_list_id | 普通索引 | task_list_id |
|
|||
|
|
| idx_exception_type | 普通索引 | exception_type |
|
|||
|
|
| idx_exception_period | 普通索引 | exception_period |
|
|||
|
|
| idx_handle_status | 普通索引 | handle_status |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、通用字段说明
|
|||
|
|
|
|||
|
|
所有表均包含以下通用字段:
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 默认值 | 说明 |
|
|||
|
|
|-------|------|-------|------|
|
|||
|
|
| delete_enum | varchar(32) | 'FALSE' | 删除标识:TRUE/FALSE |
|
|||
|
|
| remarks | varchar(500) | NULL | 备注 |
|
|||
|
|
| create_name | varchar(50) | NULL | 创建人姓名 |
|
|||
|
|
| update_name | varchar(50) | NULL | 更新人姓名 |
|
|||
|
|
| tenant_id | bigint(20) | NULL | 租户ID |
|
|||
|
|
| org_id | bigint(20) | NULL | 单位ID |
|
|||
|
|
| version | int(11) | 0 | 版本 |
|
|||
|
|
| create_time | datetime | CURRENT_TIMESTAMP | 创建时间 |
|
|||
|
|
| update_time | datetime | CURRENT_TIMESTAMP ON UPDATE | 修改时间 |
|
|||
|
|
| create_id | bigint(20) | NULL | 创建人ID |
|
|||
|
|
| update_id | bigint(20) | NULL | 修改人ID |
|
|||
|
|
| env | varchar(50) | NULL | 环境标识 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、周期标识格式说明
|
|||
|
|
|
|||
|
|
### 5.1 周期标识格式定义
|
|||
|
|
|
|||
|
|
| 周期类型 | 周期标识格式 | 示例 | 说明 |
|
|||
|
|
|---------|-------------|------|------|
|
|||
|
|
| 每月 | `yyyy-MM` | `2026-05` | 表示2026年5月 |
|
|||
|
|
| 每季度 | `yyyy-Qn` | `2026-Q1`、`2026-Q2`、`2026-Q3`、`2026-Q4` | Q1-Q4分别表示四个季度 |
|
|||
|
|
| 半年 | `yyyy-Hn` | `2026-H1`、`2026-H2` | H1表示上半年,H2表示下半年 |
|
|||
|
|
| 年 | `yyyy` | `2026` | 表示2026年整年 |
|
|||
|
|
|
|||
|
|
### 5.2 季度划分规则
|
|||
|
|
|
|||
|
|
| 季度 | 包含月份 | 周期标识示例 |
|
|||
|
|
|-----|---------|-------------|
|
|||
|
|
| Q1(第一季度) | 1月、2月、3月 | 2026-Q1 |
|
|||
|
|
| Q2(第二季度) | 4月、5月、6月 | 2026-Q2 |
|
|||
|
|
| Q3(第三季度) | 7月、8月、9月 | 2026-Q3 |
|
|||
|
|
| Q4(第四季度) | 10月、11月、12月 | 2026-Q4 |
|
|||
|
|
|
|||
|
|
### 5.3 半年划分规则
|
|||
|
|
|
|||
|
|
| 半年 | 包含月份 | 周期标识示例 |
|
|||
|
|
|-----|---------|-------------|
|
|||
|
|
| H1(上半年) | 1月-6月 | 2026-H1 |
|
|||
|
|
| H2(下半年) | 7月-12月 | 2026-H2 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、设计优化说明
|
|||
|
|
|
|||
|
|
### 6.1 任务清单表优化
|
|||
|
|
|
|||
|
|
| 优化项 | 原设计 | 优化后 | 优化原因 |
|
|||
|
|
|-------|-------|-------|---------|
|
|||
|
|
| 下发相关字段 | 无 | 新增下发状态、下发时间、下发人 | 支持下发流程跟踪 |
|
|||
|
|
| 关闭相关字段 | 无 | 新增关闭时间、关闭人、关闭原因 | 支持手动关闭记录 |
|
|||
|
|
| 评分相关字段 | 评分数 | 新增评分时间、评分人、评分部门 | 完善评分信息 |
|
|||
|
|
| 名称字段 | 无 | 新增创建公司名称、创建部门名称、执行公司名称等 | 减少关联查询,提升查询效率 |
|
|||
|
|
|
|||
|
|
### 6.2 任务详情表优化
|
|||
|
|
|
|||
|
|
| 优化项 | 原设计 | 优化后 | 优化原因 |
|
|||
|
|
|-------|-------|-------|---------|
|
|||
|
|
| 当前周期标识 | 无 | current_period | 快速判断当前应反馈的周期 |
|
|||
|
|
| 上次反馈信息 | 无 | last_feedback_time, last_feedback_period | 追踪反馈历史 |
|
|||
|
|
| 异常次数统计 | 无 | abnormal_count | 便于统计和展示异常情况 |
|
|||
|
|
|
|||
|
|
### 6.3 反馈表优化
|
|||
|
|
|
|||
|
|
| 优化项 | 原设计 | 优化后 | 优化原因 |
|
|||
|
|
|-------|-------|-------|---------|
|
|||
|
|
| 周期标识 | 反馈周期 | feedback_period(具体周期标识) | 精确判断是否按时反馈 |
|
|||
|
|
| 是否按时 | 无 | is_ontime | 便于统计按时/逾期反馈 |
|
|||
|
|
| 冗余字段 | 无 | task_list_id | 减少关联查询,提升查询效率 |
|
|||
|
|
| 反馈人详细信息 | 反馈人 | 新增反馈人公司、部门信息 | 完整记录反馈人信息 |
|
|||
|
|
|
|||
|
|
### 6.4 异常表优化
|
|||
|
|
|
|||
|
|
| 优化项 | 原设计 | 优化后 | 优化原因 |
|
|||
|
|
|-------|-------|-------|---------|
|
|||
|
|
| 异常类型 | 无 | exception_type | 区分不同类型的异常 |
|
|||
|
|
| 处理相关字段 | 无 | 新增处理状态、处理时间、处理人、处理备注 | 支持异常处理流程 |
|
|||
|
|
| 关联反馈 | 无 | feedback_id | 关联触发异常的反馈记录 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、完整建表SQL
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- =============================================
|
|||
|
|
-- 任务清单表
|
|||
|
|
-- =============================================
|
|||
|
|
CREATE TABLE `safety_accountability_task_list` (
|
|||
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|||
|
|
`task_list_id` varchar(64) NOT NULL COMMENT '清单UUID(业务主键)',
|
|||
|
|
`task_list_name` varchar(255) NOT NULL COMMENT '清单名称',
|
|||
|
|
`task_level` tinyint(4) NOT NULL COMMENT '任务级别:1-企业级 2-部门级 3-班组级',
|
|||
|
|
`responsibility_post` varchar(255) DEFAULT NULL COMMENT '责任岗位',
|
|||
|
|
`switch_flag` tinyint(4) NOT NULL DEFAULT '1' COMMENT '开启/关闭:0-关 1-开',
|
|||
|
|
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1-进行中 2-已完成 3-已关闭',
|
|||
|
|
`period_start_time` datetime NOT NULL COMMENT '执行周期开始时间',
|
|||
|
|
`period_end_time` datetime NOT NULL COMMENT '执行周期结束时间',
|
|||
|
|
`feedback_status` tinyint(4) DEFAULT '1' COMMENT '反馈状态:1-正常 2-存在异常',
|
|||
|
|
`score` decimal(5,2) DEFAULT NULL COMMENT '评分数',
|
|||
|
|
`score_time` datetime DEFAULT NULL COMMENT '评分时间',
|
|||
|
|
`score_user_id` bigint(20) DEFAULT NULL COMMENT '评分人ID',
|
|||
|
|
`score_user_name` varchar(50) DEFAULT NULL COMMENT '评分人姓名',
|
|||
|
|
`score_department_id` bigint(20) DEFAULT NULL COMMENT '评分部门ID',
|
|||
|
|
`score_department_name` varchar(100) DEFAULT NULL COMMENT '评分部门名称',
|
|||
|
|
`create_corp_id` bigint(20) DEFAULT NULL COMMENT '创建公司ID',
|
|||
|
|
`create_corp_name` varchar(100) DEFAULT NULL COMMENT '创建公司名称',
|
|||
|
|
`create_department_id` bigint(20) DEFAULT NULL COMMENT '创建部门ID',
|
|||
|
|
`create_department_name` varchar(100) DEFAULT NULL COMMENT '创建部门名称',
|
|||
|
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`create_user_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名',
|
|||
|
|
`issue_status` tinyint(4) DEFAULT '0' COMMENT '下发状态:0-未下发 1-已下发',
|
|||
|
|
`issue_time` datetime DEFAULT NULL COMMENT '下发时间',
|
|||
|
|
`issue_user_id` bigint(20) DEFAULT NULL COMMENT '下发人ID',
|
|||
|
|
`issue_user_name` varchar(50) DEFAULT NULL COMMENT '下发人姓名',
|
|||
|
|
`execute_corp_id` bigint(20) DEFAULT NULL COMMENT '执行公司ID',
|
|||
|
|
`execute_corp_name` varchar(100) DEFAULT NULL COMMENT '执行公司名称',
|
|||
|
|
`execute_department_id` bigint(20) DEFAULT NULL COMMENT '执行部门ID',
|
|||
|
|
`execute_department_name` varchar(100) DEFAULT NULL COMMENT '执行部门名称',
|
|||
|
|
`execute_user_id` bigint(20) DEFAULT NULL COMMENT '执行人员ID',
|
|||
|
|
`execute_user_name` varchar(50) DEFAULT NULL COMMENT '执行人员姓名',
|
|||
|
|
`close_time` datetime DEFAULT NULL COMMENT '关闭时间',
|
|||
|
|
`close_user_id` bigint(20) DEFAULT NULL COMMENT '关闭人ID',
|
|||
|
|
`close_user_name` varchar(50) DEFAULT NULL COMMENT '关闭人姓名',
|
|||
|
|
`close_reason` varchar(500) DEFAULT NULL COMMENT '关闭原因',
|
|||
|
|
`delete_enum` varchar(32) DEFAULT 'FALSE' COMMENT '删除标识:TRUE/FALSE',
|
|||
|
|
`remarks` varchar(500) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名',
|
|||
|
|
`update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名',
|
|||
|
|
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`org_id` bigint(20) DEFAULT NULL COMMENT '单位ID',
|
|||
|
|
`version` int(11) DEFAULT '0' COMMENT '版本',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|||
|
|
`create_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`update_id` bigint(20) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`env` varchar(50) DEFAULT NULL COMMENT '环境标识',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_task_list_id` (`task_list_id`),
|
|||
|
|
KEY `idx_create_corp_id` (`create_corp_id`),
|
|||
|
|
KEY `idx_execute_corp_id` (`execute_corp_id`),
|
|||
|
|
KEY `idx_execute_user_id` (`execute_user_id`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_period_time` (`period_start_time`, `period_end_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务清单表';
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 任务清单详细表
|
|||
|
|
-- =============================================
|
|||
|
|
CREATE TABLE `safety_accountability_task_detail` (
|
|||
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|||
|
|
`task_detail_id` varchar(64) NOT NULL COMMENT '任务详情UUID(业务主键)',
|
|||
|
|
`task_list_id` varchar(64) NOT NULL COMMENT '任务清单主键(关联任务清单表)',
|
|||
|
|
`execute_content` text COMMENT '执行内容',
|
|||
|
|
`feedback_cycle` tinyint(4) NOT NULL COMMENT '反馈周期:1-每月 2-季度 3-半年 4-年',
|
|||
|
|
`task_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务状态:1-进行中 2-已完成 3-已关闭',
|
|||
|
|
`feedback_status` tinyint(4) DEFAULT '1' COMMENT '反馈状态:1-正常 2-存在异常',
|
|||
|
|
`task_score` decimal(5,2) DEFAULT NULL COMMENT '任务分值',
|
|||
|
|
`task_rating` decimal(5,2) DEFAULT NULL COMMENT '任务评分',
|
|||
|
|
`score_time` datetime DEFAULT NULL COMMENT '评分时间',
|
|||
|
|
`score_department_id` bigint(20) DEFAULT NULL COMMENT '评分部门ID',
|
|||
|
|
`score_department_name` varchar(100) DEFAULT NULL COMMENT '评分部门名称',
|
|||
|
|
`score_user_id` bigint(20) DEFAULT NULL COMMENT '评分人ID',
|
|||
|
|
`score_user_name` varchar(50) DEFAULT NULL COMMENT '评分人姓名',
|
|||
|
|
`current_period` varchar(20) DEFAULT NULL COMMENT '当前周期标识(格式:2026-05表示月,2026-Q1表示季度,2026-H1表示半年,2026表示年)',
|
|||
|
|
`last_feedback_time` datetime DEFAULT NULL COMMENT '上次反馈时间',
|
|||
|
|
`last_feedback_period` varchar(20) DEFAULT NULL COMMENT '上次反馈周期标识',
|
|||
|
|
`abnormal_count` int(11) DEFAULT '0' COMMENT '异常次数(未按时反馈累计次数)',
|
|||
|
|
`delete_enum` varchar(32) DEFAULT 'FALSE' COMMENT '删除标识:TRUE/FALSE',
|
|||
|
|
`remarks` varchar(500) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名',
|
|||
|
|
`update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名',
|
|||
|
|
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`org_id` bigint(20) DEFAULT NULL COMMENT '单位ID',
|
|||
|
|
`version` int(11) DEFAULT '0' COMMENT '版本',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|||
|
|
`create_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`update_id` bigint(20) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`env` varchar(50) DEFAULT NULL COMMENT '环境标识',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_task_detail_id` (`task_detail_id`),
|
|||
|
|
KEY `idx_task_list_id` (`task_list_id`),
|
|||
|
|
KEY `idx_task_status` (`task_status`),
|
|||
|
|
KEY `idx_feedback_status` (`feedback_status`),
|
|||
|
|
KEY `idx_current_period` (`current_period`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务清单详细表';
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 执行反馈表
|
|||
|
|
-- =============================================
|
|||
|
|
CREATE TABLE `safety_accountability_feedback` (
|
|||
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|||
|
|
`feedback_id` varchar(64) NOT NULL COMMENT '反馈UUID(业务主键)',
|
|||
|
|
`task_detail_id` varchar(64) NOT NULL COMMENT '任务详情UUID(关联任务清单详细表)',
|
|||
|
|
`task_list_id` varchar(64) NOT NULL COMMENT '任务清单UUID(冗余字段,便于查询)',
|
|||
|
|
`feedback_period` varchar(20) NOT NULL COMMENT '反馈周期标识(格式:2026-05表示月,2026-Q1表示季度,2026-H1表示半年,2026表示年)',
|
|||
|
|
`feedback_cycle` tinyint(4) NOT NULL COMMENT '反馈周期类型:1-每月 2-季度 3-半年 4-年',
|
|||
|
|
`feedback_content` text COMMENT '反馈内容',
|
|||
|
|
`feedback_time` datetime NOT NULL COMMENT '反馈时间',
|
|||
|
|
`feedback_user_id` bigint(20) DEFAULT NULL COMMENT '反馈人ID',
|
|||
|
|
`feedback_user_name` varchar(50) DEFAULT NULL COMMENT '反馈人姓名',
|
|||
|
|
`feedback_corp_id` bigint(20) DEFAULT NULL COMMENT '反馈人公司ID',
|
|||
|
|
`feedback_corp_name` varchar(100) DEFAULT NULL COMMENT '反馈人公司名称',
|
|||
|
|
`feedback_department_id` bigint(20) DEFAULT NULL COMMENT '反馈人部门ID',
|
|||
|
|
`feedback_department_name` varchar(100) DEFAULT NULL COMMENT '反馈人部门名称',
|
|||
|
|
`is_ontime` tinyint(4) DEFAULT '1' COMMENT '是否按时反馈:1-是 0-否',
|
|||
|
|
`delete_enum` varchar(32) DEFAULT 'FALSE' COMMENT '删除标识:TRUE/FALSE',
|
|||
|
|
`remarks` varchar(500) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名',
|
|||
|
|
`update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名',
|
|||
|
|
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`org_id` bigint(20) DEFAULT NULL COMMENT '单位ID',
|
|||
|
|
`version` int(11) DEFAULT '0' COMMENT '版本',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|||
|
|
`create_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`update_id` bigint(20) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`env` varchar(50) DEFAULT NULL COMMENT '环境标识',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_feedback_id` (`feedback_id`),
|
|||
|
|
KEY `idx_task_detail_id` (`task_detail_id`),
|
|||
|
|
KEY `idx_task_list_id` (`task_list_id`),
|
|||
|
|
KEY `idx_feedback_period` (`feedback_period`),
|
|||
|
|
KEY `idx_feedback_user_id` (`feedback_user_id`),
|
|||
|
|
KEY `idx_feedback_time` (`feedback_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='执行反馈表';
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 反馈异常信息表
|
|||
|
|
-- =============================================
|
|||
|
|
CREATE TABLE `safety_accountability_feedback_exception` (
|
|||
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|||
|
|
`exception_id` varchar(64) NOT NULL COMMENT '反馈异常UUID(业务主键)',
|
|||
|
|
`task_detail_id` varchar(64) NOT NULL COMMENT '任务详情主键(关联任务清单详细表)',
|
|||
|
|
`task_list_id` varchar(64) DEFAULT NULL COMMENT '任务清单主键(冗余字段)',
|
|||
|
|
`feedback_id` varchar(64) DEFAULT NULL COMMENT '关联的反馈ID(如果是反馈触发的异常)',
|
|||
|
|
`exception_period` varchar(20) DEFAULT NULL COMMENT '异常周期标识',
|
|||
|
|
`exception_type` tinyint(4) NOT NULL COMMENT '异常类型:1-未按时反馈 2-反馈内容异常 3-其他',
|
|||
|
|
`exception_info` text COMMENT '反馈异常信息',
|
|||
|
|
`exception_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '异常时间',
|
|||
|
|
`handle_status` tinyint(4) DEFAULT '0' COMMENT '处理状态:0-未处理 1-已处理',
|
|||
|
|
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
|
|||
|
|
`handle_user_id` bigint(20) DEFAULT NULL COMMENT '处理人ID',
|
|||
|
|
`handle_user_name` varchar(50) DEFAULT NULL COMMENT '处理人姓名',
|
|||
|
|
`handle_remark` varchar(500) DEFAULT NULL COMMENT '处理备注',
|
|||
|
|
`delete_enum` varchar(32) DEFAULT 'FALSE' COMMENT '删除标识:TRUE/FALSE',
|
|||
|
|
`remarks` varchar(500) DEFAULT NULL COMMENT '备注',
|
|||
|
|
`create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名',
|
|||
|
|
`update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名',
|
|||
|
|
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
|
|||
|
|
`org_id` bigint(20) DEFAULT NULL COMMENT '单位ID',
|
|||
|
|
`version` int(11) DEFAULT '0' COMMENT '版本',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|||
|
|
`create_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|||
|
|
`update_id` bigint(20) DEFAULT NULL COMMENT '修改人ID',
|
|||
|
|
`env` varchar(50) DEFAULT NULL COMMENT '环境标识',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_exception_id` (`exception_id`),
|
|||
|
|
KEY `idx_task_detail_id` (`task_detail_id`),
|
|||
|
|
KEY `idx_task_list_id` (`task_list_id`),
|
|||
|
|
KEY `idx_exception_type` (`exception_type`),
|
|||
|
|
KEY `idx_exception_period` (`exception_period`),
|
|||
|
|
KEY `idx_handle_status` (`handle_status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='反馈异常信息表';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、业务流程数据流转示例
|
|||
|
|
|
|||
|
|
### 8.1 创建任务清单流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1. 股份端用户创建任务清单
|
|||
|
|
↓
|
|||
|
|
INSERT INTO safety_accountability_task_list
|
|||
|
|
(task_list_id, task_list_name, task_level, ..., status=1, issue_status=0)
|
|||
|
|
|
|||
|
|
2. 添加任务详情
|
|||
|
|
↓
|
|||
|
|
INSERT INTO safety_accountability_task_detail
|
|||
|
|
(task_detail_id, task_list_id, execute_content, feedback_cycle, ...)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.2 下发任务流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1. 选择执行人,下发任务
|
|||
|
|
↓
|
|||
|
|
UPDATE safety_accountability_task_list
|
|||
|
|
SET issue_status=1, issue_time=NOW(),
|
|||
|
|
execute_corp_id=xxx, execute_user_id=xxx, ...
|
|||
|
|
WHERE task_list_id=xxx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.3 提交反馈流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1. 执行人提交反馈
|
|||
|
|
↓
|
|||
|
|
INSERT INTO safety_accountability_feedback
|
|||
|
|
(feedback_id, task_detail_id, feedback_period, feedback_content, ...)
|
|||
|
|
|
|||
|
|
2. 更新任务详情
|
|||
|
|
↓
|
|||
|
|
UPDATE safety_accountability_task_detail
|
|||
|
|
SET last_feedback_time=NOW(), last_feedback_period='2026-Q1', ...
|
|||
|
|
WHERE task_detail_id=xxx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.4 异常记录流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1. 定时任务检测未按时反馈
|
|||
|
|
↓
|
|||
|
|
INSERT INTO safety_accountability_feedback_exception
|
|||
|
|
(exception_id, task_detail_id, exception_type=1, exception_period='2026-Q1', ...)
|
|||
|
|
|
|||
|
|
2. 更新异常次数
|
|||
|
|
↓
|
|||
|
|
UPDATE safety_accountability_task_detail
|
|||
|
|
SET abnormal_count=abnormal_count+1, feedback_status=2
|
|||
|
|
WHERE task_detail_id=xxx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、注意事项
|
|||
|
|
|
|||
|
|
1. **周期判断逻辑**:需要在应用层或定时任务中实现周期判断逻辑,自动检测是否按时反馈
|
|||
|
|
2. **索引优化**:根据实际查询场景,可能需要调整或添加复合索引
|
|||
|
|
3. **数据量预估**:反馈表数据量可能较大,建议定期归档历史数据
|
|||
|
|
4. **并发控制**:使用 `version` 字段实现乐观锁,防止并发更新冲突
|