8 小时以前 8655501ffb8dbdaf2508e575933063e6731be714
sql/mysql/mes_pro_batch_bag_code_init.sql
@@ -12,8 +12,10 @@
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pro_batch` (
    `id`              BIGINT       NOT NULL AUTO_INCREMENT COMMENT '编号',
    `code`            VARCHAR(64)  NOT NULL COMMENT '批次号(自动生成:前缀+日期+产线+品种+流水号)',
    `code`            VARCHAR(64)  DEFAULT NULL COMMENT '批次号(补录业务信息后自动生成;单次录入或补录流程必填)',
    `temp_code`       VARCHAR(64)  DEFAULT NULL COMMENT '临时批次码(PB-8位全局序号,预生成二维码阶段使用)',
    `item_id`         BIGINT       NOT NULL COMMENT '品种(产品物料)编号,关联 mdm_item.id',
    `line_id`         BIGINT       DEFAULT NULL COMMENT '产线编号,关联 mes_pro_line.id',
    `line_code`       VARCHAR(32)  DEFAULT NULL COMMENT '产线编码(手填,参与批次号生成)',
    `line_name`       VARCHAR(64)  DEFAULT NULL COMMENT '产线名称(手填)',
    `machinery_id`    BIGINT       DEFAULT NULL COMMENT '生产设备编号(机),关联 mes_dv_machinery.id',
@@ -23,6 +25,11 @@
    `owner_user_id`   BIGINT       DEFAULT NULL COMMENT '责任人用户编号(责任落实到人),关联 system_users.id',
    `bag_quantity`    INT          NOT NULL DEFAULT 0 COMMENT '已生成袋码数量(一袋一码)',
    `pallet_quantity` INT          NOT NULL DEFAULT 0 COMMENT '已生成托盘码数量',
    `inbound_time`    DATETIME     DEFAULT NULL COMMENT '入库时间',
    `inbound_bag_quantity` INT      DEFAULT NULL COMMENT '累计入库袋数',
    `inbound_event_id` BIGINT      DEFAULT NULL COMMENT '最近入库事件编号',
    `inbound_device_code` VARCHAR(64) DEFAULT NULL COMMENT '入库设备编码',
    `inbound_line_code` VARCHAR(64) DEFAULT NULL COMMENT '入库产线编码',
    `status`          TINYINT      NOT NULL DEFAULT 10 COMMENT '批次状态(字典 mes_pro_batch_status:10 草稿 20 生产中 30 已完成 40 已作废)',
    `remark`          VARCHAR(500) DEFAULT NULL COMMENT '备注',
    `creator`         VARCHAR(64)  DEFAULT '' COMMENT '创建者',
@@ -32,6 +39,7 @@
    `deleted`         BIT(1)       NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_code` (`code`),
    UNIQUE KEY `uk_temp_code` (`temp_code`),
    KEY `idx_item_id` (`item_id`),
    KEY `idx_work_order_id` (`work_order_id`),
    KEY `idx_status` (`status`)
@@ -61,12 +69,14 @@
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pro_pallet` (
    `id`         BIGINT       NOT NULL AUTO_INCREMENT COMMENT '编号',
    `code`       VARCHAR(64)  NOT NULL COMMENT '托盘码(批次号-P+托盘序号,全局唯一)',
    `batch_id`   BIGINT       NOT NULL COMMENT '生产批次编号,关联 mes_pro_batch.id',
    `code`       VARCHAR(64)  DEFAULT NULL COMMENT '托盘码(批次号-P+托盘序号,绑定批次后生成)',
    `temp_code`  VARCHAR(64)  DEFAULT NULL COMMENT '临时托盘码(PL-8位全局序号,预生成二维码阶段使用)',
    `batch_id`   BIGINT       DEFAULT NULL COMMENT '生产批次编号,绑定批次后关联 mes_pro_batch.id',
    `batch_code` VARCHAR(64)  DEFAULT NULL COMMENT '批次号(冗余,便于展示)',
    `pallet_no`  INT          NOT NULL COMMENT '批次内托盘序号',
    `pallet_no`  INT          DEFAULT NULL COMMENT '批次内托盘序号(绑定批次后生成)',
    `capacity`   INT          DEFAULT NULL COMMENT '可装袋数(袋/托盘)',
    `bag_count`  INT          NOT NULL DEFAULT 0 COMMENT '已绑定袋码数量',
    `auto_generated` BIT(1)    NOT NULL DEFAULT b'0' COMMENT '是否自动生成',
    `status`     TINYINT      NOT NULL DEFAULT 10 COMMENT '状态(字典 mes_pro_pallet_status:10 启用 20 作废)',
    `remark`     VARCHAR(255) DEFAULT NULL COMMENT '备注',
    `creator`    VARCHAR(64)  DEFAULT '' COMMENT '创建者',
@@ -76,6 +86,7 @@
    `deleted`    BIT(1)       NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_code` (`code`),
    UNIQUE KEY `uk_temp_code` (`temp_code`),
    KEY `idx_batch_id` (`batch_id`)
) ENGINE = InnoDB COMMENT = 'MES 托盘码';
@@ -85,15 +96,17 @@
CREATE TABLE IF NOT EXISTS `mes_pro_bag_code` (
    `id`          BIGINT       NOT NULL AUTO_INCREMENT COMMENT '编号',
    `uuid`        VARCHAR(32)  DEFAULT NULL COMMENT '生成组 UUID(标记同一次生成的数据包)',
    `code`        VARCHAR(64)  NOT NULL COMMENT '袋码(二维码内容:批次号-袋序号,全局唯一)',
    `bag_no`      INT          NOT NULL COMMENT '批次内袋序号',
    `batch_id`    BIGINT       NOT NULL COMMENT '生产批次编号,关联 mes_pro_batch.id',
    `code`        VARCHAR(64)  NOT NULL COMMENT '袋码(二维码内容,全局唯一)',
    `bag_no`      INT          NOT NULL COMMENT '全局袋序号',
    `batch_id`    BIGINT       DEFAULT NULL COMMENT '生产批次编号,录入信息后关联 mes_pro_batch.id',
    `batch_code`  VARCHAR(64)  DEFAULT NULL COMMENT '批次号(冗余,便于展示)',
    `item_id`     BIGINT       DEFAULT NULL COMMENT '品种(产品物料)编号(冗余自批次)',
    `pallet_id`   BIGINT       DEFAULT NULL COMMENT '绑定托盘编号,关联 mes_pro_pallet.id',
    `pallet_code` VARCHAR(64)  DEFAULT NULL COMMENT '托盘码(冗余,便于展示)',
    `status`      TINYINT      NOT NULL DEFAULT 10 COMMENT '状态(字典 mes_pro_bag_code_status:10 已生成 20 已导出印刷 30 已作废)',
    `print_time`  DATETIME     DEFAULT NULL COMMENT '导出(交付印刷)时间',
    `cancel_time` DATETIME     DEFAULT NULL COMMENT '作废时间',
    `cancel_reason` VARCHAR(255) DEFAULT NULL COMMENT '作废原因',
    `remark`      VARCHAR(255) DEFAULT NULL COMMENT '备注',
    `creator`     VARCHAR(64)  DEFAULT '' COMMENT '创建者',
    `create_time` DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
@@ -105,10 +118,43 @@
    KEY `idx_batch_id` (`batch_id`),
    KEY `idx_uuid` (`uuid`),
    KEY `idx_pallet_id` (`pallet_id`)
) ENGINE = InnoDB COMMENT = 'MES 袋码赋码(一袋一码)';
 ) ENGINE = InnoDB COMMENT = 'MES 袋码赋码(一袋一码)';
-- ----------------------------
-- 5. 批次号自动编码规则:PRO_BATCH_CODE
-- 5. 袋码替换记录表
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pro_bag_code_replace` (
    `id`              BIGINT       NOT NULL AUTO_INCREMENT COMMENT '编号',
    `replace_uuid`    VARCHAR(32)  NOT NULL COMMENT '替换组 UUID',
    `batch_id`        BIGINT       NOT NULL COMMENT '生产批次编号',
    `batch_code`      VARCHAR(64)  DEFAULT NULL COMMENT '生产批次号',
    `old_bag_code_id` BIGINT       NOT NULL COMMENT '旧袋码编号',
    `old_code`        VARCHAR(64)  NOT NULL COMMENT '旧袋码',
    `old_bag_no`      INT          NOT NULL COMMENT '旧袋序号',
    `old_status`      TINYINT      NOT NULL COMMENT '旧袋码作废前状态',
    `old_pallet_id`   BIGINT       DEFAULT NULL COMMENT '旧袋码原托盘编号',
    `old_pallet_code` VARCHAR(64)  DEFAULT NULL COMMENT '旧袋码原托盘码',
    `new_bag_code_id` BIGINT       NOT NULL COMMENT '新袋码编号',
    `new_code`        VARCHAR(64)  NOT NULL COMMENT '新袋码',
    `new_bag_no`      INT          NOT NULL COMMENT '新袋序号',
    `reason`          VARCHAR(255) NOT NULL COMMENT '替换原因',
    `replace_time`    DATETIME     NOT 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_old_bag_code_id` (`old_bag_code_id`),
    UNIQUE KEY `uk_new_bag_code_id` (`new_bag_code_id`),
    KEY `idx_replace_uuid` (`replace_uuid`),
    KEY `idx_batch_id` (`batch_id`),
    KEY `idx_old_code` (`old_code`),
    KEY `idx_new_code` (`new_code`)
) ENGINE = InnoDB COMMENT = 'MES 袋码替换记录';
-- ----------------------------
-- 6. 批次号自动编码规则:PRO_BATCH_CODE
--    结构:固定字符(PC) + 日期(yyyyMMdd) + 输入字符(产线编码+品种编码) + 流水号(3位,按日循环)
--    示例:PC20260818L01NY001
-- ----------------------------
@@ -189,7 +235,8 @@
(602620, '生成二维码数据包', 'mes:pro-bag-code:generate', 3, 2, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602621, '袋码删除', 'mes:pro-bag-code:delete', 3, 3, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602622, '袋码导出', 'mes:pro-bag-code:export', 3, 4, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602623, '袋码绑定托盘', 'mes:pro-bag-code:bind', 3, 5, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
(602623, '袋码绑定托盘', 'mes:pro-bag-code:bind', 3, 5, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602629, '袋码破损替换', 'mes:pro-bag-code:replace', 3, 6, 602618, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
-- 托盘码管理
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)