# 安全责任清单表结构设计 ## 一、需求概述 ### 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` 字段实现乐观锁,防止并发更新冲突