-- ============================================================ -- 顺延强制管理 · 数据层 -- ============================================================ DROP TABLE IF EXISTS oa_postpone_record; CREATE TABLE oa_postpone_record ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', business_type VARCHAR(64) NOT NULL COMMENT '业务类型 task / step / requirement', business_id BIGINT NOT NULL COMMENT '业务表主键', business_title VARCHAR(255) DEFAULT NULL COMMENT '业务名称(冗余展示)', owner_id BIGINT NOT NULL COMMENT '事项 owner(顺延申请人)', owner_name VARCHAR(64) DEFAULT NULL, original_deadline DATETIME NOT NULL COMMENT '本次顺延前的截止时间', new_deadline DATETIME NOT NULL COMMENT '申请的新截止时间', reason VARCHAR(1024) NOT NULL COMMENT '顺延理由', postpone_seq INT NOT NULL COMMENT '这是第几次顺延(含本次)', need_approval TINYINT NOT NULL DEFAULT 0 COMMENT '0直接生效 1需要审批', approval_instance_id BIGINT DEFAULT NULL COMMENT '审批单 id', status TINYINT NOT NULL DEFAULT 1 COMMENT '0待审批 1已生效 2被驳回 3已撤回', create_by VARCHAR(64) DEFAULT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_by VARCHAR(64) DEFAULT NULL, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, del_flag TINYINT NOT NULL DEFAULT 0, PRIMARY KEY (id), KEY idx_biz (business_type, business_id), KEY idx_owner (owner_id), KEY idx_inst (approval_instance_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='顺延记录(任务/步骤/采购需求 通用)'; -- 在审批配置里注册 3 个新业务(第 3 次及以后顺延会调 approvalService.submit 用到) INSERT INTO oa_approval_config (business_type, business_name, approver_ids, sign_type, enabled, remark) VALUES ('task_postpone', '任务顺延(第3次起)', '1', 1, 1, '默认 admin 占位,请改成项目负责人'), ('step_postpone', '进度步骤顺延(第3次起)', '1', 1, 1, '默认 admin 占位,请改成项目负责人'), ('req_postpone', '采购需求顺延(第3次起)', '1', 1, 1, '默认 admin 占位,请改成项目负责人');