yunzer_go/server/database/yz_tenant_tasks.sql

75 lines
5.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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系统任务表多租户适配';