-- ============================================= -- 赋码管理 - 大批量生成任务表 -- 用于承接几十万条袋码的后台生成、进度展示、取消与失败回收 -- MySQL 8.4 适用 -- ============================================= SET NAMES utf8mb4; CREATE TABLE IF NOT EXISTS `mes_pro_bag_code_generate_task` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号', `request_id` VARCHAR(64) DEFAULT NULL COMMENT '幂等键(前端每次提交生成一个 UUID,重试复用)', `biz_type` VARCHAR(16) NOT NULL COMMENT '业务类型(PACKAGE 数据包 / RAW 原始数据)', `uuid` VARCHAR(32) NOT NULL COMMENT '生成组 UUID(提交时生成,失败/取消后用于清理)', `item_id` BIGINT NOT NULL COMMENT '品种(物料)编号,关联 mdm_item.id', `item_code` VARCHAR(64) DEFAULT NULL COMMENT '品种编码(快照)', `item_name` VARCHAR(255) DEFAULT NULL COMMENT '品种名称(快照)', `unit_type` VARCHAR(32) DEFAULT NULL COMMENT '计量单位类型(吨 / 48袋 / 100袋)', `per_pallet` INT NOT NULL DEFAULT 0 COMMENT '每托盘袋数(吨类型为 0)', `pallet_count` INT NOT NULL DEFAULT 0 COMMENT '托盘数(原始数据为 0)', `total_count` INT NOT NULL COMMENT '袋码总数', `finished_count` INT NOT NULL DEFAULT 0 COMMENT '已生成袋码数', `status` TINYINT NOT NULL DEFAULT 10 COMMENT '状态(10 排队中 20 生成中 25 取消中 30 已完成 40 已取消 50 已失败)', `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注(写入生成的袋码)', `error_msg` VARCHAR(500) 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`), UNIQUE KEY `uk_request_id` (`request_id`), KEY `idx_status` (`status`), KEY `idx_uuid` (`uuid`) ) ENGINE = InnoDB COMMENT = 'MES 袋码批量生成任务';