75 lines
5.0 KiB
SQL
75 lines
5.0 KiB
SQL
CREATE TABLE `yz_tenant_tasks` (
|
||
-- 主键与基础标识
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID(主键)',
|
||
`tenant_id` bigint NOT NULL COMMENT '租户ID(多租户隔离,如无多租户需求可设为默认1)',
|
||
`task_no` varchar(64) NOT NULL COMMENT '任务编号(唯一标识,如TASK20251112001)',
|
||
|
||
-- 任务核心信息
|
||
`task_name` varchar(255) NOT NULL COMMENT '任务名称',
|
||
`task_desc` text COMMENT '任务描述(富文本内容,支持图片/表格)',
|
||
`task_type` varchar(32) DEFAULT 'common' COMMENT '任务类型(common=普通任务,project=项目任务,repeat=重复任务,可自定义)',
|
||
`business_tag` varchar(64) COMMENT '业务标签(多个标签用逗号分隔,如"紧急,日常协作")',
|
||
|
||
-- 关联信息
|
||
`parent_task_id` bigint DEFAULT NULL COMMENT '父任务ID(子任务关联用,无父任务则为NULL)',
|
||
`project_id` bigint DEFAULT NULL COMMENT '关联项目ID(关联OA项目模块)',
|
||
`related_id` bigint DEFAULT NULL COMMENT '关联其他模块ID(如审批单ID、客户ID)',
|
||
`related_type` varchar(32) COMMENT '关联模块类型(approval=审批单,customer=客户,为空则无关联)',
|
||
|
||
-- 人员配置
|
||
`creator_id` bigint NOT NULL COMMENT '创建人ID',
|
||
`creator_name` varchar(64) NOT NULL COMMENT '创建人姓名',
|
||
`principal_id` bigint NOT NULL COMMENT '负责人ID',
|
||
`principal_name` varchar(64) NOT NULL COMMENT '负责人姓名',
|
||
`participant_ids` varchar(512) COMMENT '参与人ID(多个用逗号分隔)',
|
||
`participant_names` varchar(512) COMMENT '参与人姓名(多个用逗号分隔)',
|
||
`cc_ids` varchar(512) COMMENT '抄送人ID(多个用逗号分隔)',
|
||
`cc_names` varchar(512) COMMENT '抄送人姓名(多个用逗号分隔)',
|
||
|
||
-- 时间配置
|
||
`plan_start_time` datetime DEFAULT NULL COMMENT '计划开始时间',
|
||
`plan_end_time` datetime NOT NULL COMMENT '计划截止时间',
|
||
`actual_start_time` datetime DEFAULT NULL COMMENT '实际开始时间',
|
||
`actual_end_time` datetime DEFAULT NULL COMMENT '实际结束时间',
|
||
`estimated_hours` decimal(10,2) DEFAULT NULL COMMENT '预估工时(小时)',
|
||
`actual_hours` decimal(10,2) DEFAULT NULL COMMENT '实际工时(小时)',
|
||
|
||
-- 状态与优先级
|
||
`task_status` varchar(32) NOT NULL DEFAULT 'not_started' COMMENT '任务状态(not_started=未开始,in_progress=进行中,paused=暂停,completed=已完成,closed=已关闭,可自定义)',
|
||
`priority` varchar(16) NOT NULL DEFAULT 'medium' COMMENT '优先级(high=高,medium=中,low=低,urgent=紧急)',
|
||
`progress` tinyint NOT NULL DEFAULT 0 COMMENT '任务进度(0-100,子任务存在时自动计算)',
|
||
|
||
-- 规则与审批配置
|
||
`need_approval` tinyint NOT NULL DEFAULT 0 COMMENT '是否需要完成审批(0=否,1=是)',
|
||
`approval_id` bigint DEFAULT NULL COMMENT '关联审批单ID(完成审批时填写)',
|
||
`delay_approved` tinyint NOT NULL DEFAULT 0 COMMENT '是否已延期审批(0=否,1=是)',
|
||
`old_plan_end_time` datetime COMMENT '原计划截止时间(延期时记录)',
|
||
|
||
-- 重复任务配置
|
||
`repeat_type` varchar(16) DEFAULT NULL COMMENT '重复类型(daily=按日,weekly=按周,monthly=按月,为空则非重复任务)',
|
||
`repeat_cycle` int DEFAULT NULL COMMENT '重复周期(如每周重复则为7,每月重复则为30)',
|
||
`repeat_end_time` datetime DEFAULT NULL COMMENT '重复截止时间(重复任务终止时间)',
|
||
|
||
-- 辅助字段
|
||
`attachment_ids` varchar(1024) COMMENT '附件ID(关联文件表,多个用逗号分隔)',
|
||
`remark` varchar(512) COMMENT '备注(额外说明)',
|
||
`is_archived` tinyint NOT NULL DEFAULT 0 COMMENT '是否归档(0=未归档,1=已归档)',
|
||
`archive_time` datetime COMMENT '归档时间',
|
||
|
||
-- 审计字段
|
||
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint NOT NULL DEFAULT 0 COMMENT '逻辑删除(0=正常,1=删除)',
|
||
`deleted_time` datetime COMMENT '删除时间',
|
||
`operator_id` bigint COMMENT '最后操作人ID',
|
||
`operator_name` varchar(64) COMMENT '最后操作人姓名',
|
||
|
||
-- 索引
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tenant_task_no` (`tenant_id`,`task_no`) COMMENT '租户+任务编号唯一索引',
|
||
KEY `idx_tenant_principal` (`tenant_id`,`principal_id`) COMMENT '租户+负责人索引(查询个人任务)',
|
||
KEY `idx_tenant_status` (`tenant_id`,`task_status`) COMMENT '租户+状态索引(筛选任务状态)',
|
||
KEY `idx_tenant_project` (`tenant_id`,`project_id`) COMMENT '租户+项目索引(查询项目下任务)',
|
||
KEY `idx_tenant_plan_end_time` (`tenant_id`,`plan_end_time`) COMMENT '租户+截止时间索引(逾期提醒、日历视图)',
|
||
KEY `idx_parent_task_id` (`parent_task_id`) COMMENT '父任务ID索引(查询子任务)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA系统任务表(多租户适配)'; |