安全责任清单表结构设计
一、需求概述
1.1 业务流程
- 股份端创建任务清单 → 填写(名称,级别,责任岗位,开关,创建公司,创建部门,创建人)
- 根据任务清单ID进入任务列表 → 新建、查看
- 下发 → 给某公司的执行人
- 执行人按反馈周期按时提交反馈
- 清单已完成或已关闭后可评分
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
-- =============================================
-- 任务清单表
-- =============================================
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
九、注意事项
- 周期判断逻辑:需要在应用层或定时任务中实现周期判断逻辑,自动检测是否按时反馈
- 索引优化:根据实际查询场景,可能需要调整或添加复合索引
- 数据量预估:反馈表数据量可能较大,建议定期归档历史数据
- 并发控制:使用
version 字段实现乐观锁,防止并发更新冲突