-- Issue #24:协议单操作过程日志(before / action / after) -- MySQL 5.7;可重复执行(CREATE IF NOT EXISTS)。上线前须备份并在目标副本验证。 -- DDL 隐式提交;该脚本不作为自动应用启动步骤。 CREATE TABLE IF NOT EXISTS biz_protocol_operation_log ( id VARCHAR(64) NOT NULL, biz_type VARCHAR(32) NOT NULL COMMENT '业务类型 cell_storage/research_donation', biz_id VARCHAR(64) NOT NULL COMMENT '协议单或捐赠单ID', protocol_no VARCHAR(64) NULL COMMENT '协议/捐赠编号快照', action VARCHAR(32) NOT NULL COMMENT '动作 create/update/delete/void/activate/expire/to_research/to_storage/audit', client_channel VARCHAR(16) NOT NULL DEFAULT 'web' COMMENT '来源端 web/mini', before_json MEDIUMTEXT NULL COMMENT '操作前协议信息JSON', after_json MEDIUMTEXT NULL COMMENT '操作后协议信息JSON', operator_user_id VARCHAR(64) NULL COMMENT '操作人用户ID', operator_user_name VARCHAR(64) NULL COMMENT '操作人姓名快照', operate_time DATETIME NOT NULL COMMENT '业务操作时间', tenant_no VARCHAR(64) NOT NULL, order_num INT NULL, remark VARCHAR(512) NULL, create_by VARCHAR(64) NULL, create_dept_id VARCHAR(64) NOT NULL DEFAULT '', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_by VARCHAR(64) NULL, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, del_flag SMALLINT NOT NULL DEFAULT 0, PRIMARY KEY (id), KEY ix_pol_biz (tenant_no, biz_type, biz_id, del_flag), KEY ix_pol_time (tenant_no, operate_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;