-- 二维码大批量导出任务:临时 ZIP 落盘 + 进度/取消 -- 说明:大批量导出不在请求线程内完成,改为落任务后由后台线程流式生成 ZIP, -- 前端轮询真实进度并支持取消;ZIP 下载完成后立即删除,异常残留由定时任务清理。 CREATE TABLE IF NOT EXISTS `mes_pro_qr_export_task` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号', `biz_type` VARCHAR(32) NOT NULL COMMENT '业务类型(BAG_LABEL/BAG_BUSINESS/PALLET_LABEL/PALLET_BUSINESS/BATCH_LABEL/BATCH_BUSINESS)', `uuid` VARCHAR(64) DEFAULT NULL COMMENT '生成组 UUID(与批次编号二选一)', `batch_id` BIGINT DEFAULT NULL COMMENT '生产批次编号(与 UUID 二选一)', `task_name` VARCHAR(128) DEFAULT NULL COMMENT '任务名称(展示用)', `status` TINYINT NOT NULL COMMENT '状态(10 排队中 20 生成中 30 待下载 40 已取消 50 已失败 60 已下载)', `total_count` INT NOT NULL DEFAULT 0 COMMENT '标签总张数', `finished_count` INT NOT NULL DEFAULT 0 COMMENT '已生成张数', `file_path` VARCHAR(512) DEFAULT NULL COMMENT '临时 ZIP 绝对路径(为空表示未落盘或已删除)', `file_size` BIGINT DEFAULT NULL COMMENT '临时 ZIP 大小(字节)', `error_msg` VARCHAR(512) DEFAULT NULL COMMENT '失败原因', `finish_time` DATETIME DEFAULT NULL COMMENT '完成时间', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_status` (`status`), KEY `idx_create_time` (`create_time`) ) ENGINE = InnoDB COMMENT = 'MES 二维码导出任务';