-- 需求工单表 CREATE TABLE IF NOT EXISTS `requirement` ( `requirement_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,需求ID', `tenant_id` BIGINT NOT NULL COMMENT '租户ID', `requirement_code` VARCHAR(50) NOT NULL COMMENT '需求编号', `requirement_name` VARCHAR(200) NOT NULL COMMENT '需求名称', `description` TEXT COMMENT '需求描述', `project_id` BIGINT NOT NULL COMMENT '项目ID', `customer_id` BIGINT NOT NULL COMMENT '客户ID', `priority` VARCHAR(20) DEFAULT 'normal' COMMENT '优先级:high-高,normal-中,low-低', `estimated_hours` DECIMAL(8,2) DEFAULT 0.00 COMMENT '预估开发工时(小时)', `actual_hours` DECIMAL(8,2) DEFAULT 0.00 COMMENT '实际开发工时(小时)', `planned_start` DATE COMMENT '计划开始日期', `planned_end` DATE COMMENT '计划结束日期', `actual_start` DATE COMMENT '实际开始日期', `actual_end` DATE COMMENT '实际结束日期', `delivery_date` DATE COMMENT '交付日期', `receivable_amount` DECIMAL(15,2) DEFAULT 0.00 COMMENT '应收款金额', `receivable_date` DATE COMMENT '应收款日期', `status` VARCHAR(20) DEFAULT 'pending' COMMENT '状态:pending-待开发,developing-开发中,delivered-已交付,completed-已完成', `progress` INT DEFAULT 0 COMMENT '开发进度(0-100)', `attachment_url` VARCHAR(500) COMMENT '附件URL', `created_by` BIGINT COMMENT '创建人ID', `created_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_by` BIGINT COMMENT '更新人ID', `updated_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除:0-未删除,1-已删除', PRIMARY KEY (`requirement_id`), UNIQUE KEY `uk_tenant_code` (`tenant_id`, `requirement_code`), INDEX `idx_tenant` (`tenant_id`), INDEX `idx_project` (`project_id`), INDEX `idx_customer` (`customer_id`), INDEX `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='需求工单表';