zcloud_gbs_safetyDutyList/docs/安全责任清单表结构设计.md

27 KiB
Raw Permalink Blame History

安全责任清单表结构设计

一、需求概述

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-Q12026-Q22026-Q32026-Q4 Q1-Q4分别表示四个季度
半年 yyyy-Hn 2026-H12026-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

九、注意事项

  1. 周期判断逻辑:需要在应用层或定时任务中实现周期判断逻辑,自动检测是否按时反馈
  2. 索引优化:根据实际查询场景,可能需要调整或添加复合索引
  3. 数据量预估:反馈表数据量可能较大,建议定期归档历史数据
  4. 并发控制:使用 version 字段实现乐观锁,防止并发更新冲突