-- ============================================= -- MES 生产主计划(MPS)表 -- ============================================= CREATE TABLE IF NOT EXISTS `mes_pro_mps` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `code` varchar(64) NOT NULL COMMENT 'MPS 编码', `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0=草稿 1=已下发 2=已完成 3=已取消)', -- 来源信息(来自销售订单) `sale_order_id` bigint DEFAULT NULL COMMENT '销售订单ID', `sale_order_no` varchar(64) DEFAULT NULL COMMENT '销售订单号', `sale_order_item_id` bigint DEFAULT NULL COMMENT '销售订单明细ID', -- 产品信息 `product_id` bigint NOT NULL COMMENT '产品编号', `quantity` decimal(24,6) NOT NULL COMMENT '计划生产数量', `quantity_produced` decimal(24,6) DEFAULT 0 COMMENT '已生产数量', `unit_measure_id` bigint DEFAULT NULL COMMENT '计量单位ID', -- 客户信息 `client_id` bigint DEFAULT NULL COMMENT '客户编号', -- 时间信息 `request_date` datetime DEFAULT NULL COMMENT '需求日期', `issue_date` datetime DEFAULT NULL COMMENT '下发日期', `finish_date` datetime DEFAULT NULL COMMENT '完成日期', -- 生产工单关联(下发后生成) `work_order_id` bigint DEFAULT NULL COMMENT '生产工单ID', `work_order_code` varchar(64) DEFAULT NULL COMMENT '生产工单编码', -- 合并下发标识 `merge_flag` tinyint DEFAULT 0 COMMENT '是否合并下发(0=否 1=是)', `merge_batch_no` varchar(64) DEFAULT NULL COMMENT '合并批次号', -- 其他 `remark` varchar(500) 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 '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_sale_order_item_id` (`sale_order_item_id`), KEY `idx_product_id` (`product_id`), KEY `idx_status` (`status`), KEY `idx_merge_batch_no` (`merge_batch_no`) ) ENGINE=InnoDB COMMENT='MES 生产主计划'; -- ============================================= -- MPS 合并下发明细表 -- ============================================= CREATE TABLE IF NOT EXISTS `mes_pro_mps_merge_item` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `merge_batch_no` varchar(64) NOT NULL COMMENT '合并批次号', `mps_id` bigint NOT NULL COMMENT 'MPS 编号', `work_order_id` bigint DEFAULT NULL COMMENT '生成的生产工单ID', `quantity` decimal(24,6) NOT NULL COMMENT '分配数量', `remark` varchar(500) 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 '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_merge_batch_no` (`merge_batch_no`), KEY `idx_mps_id` (`mps_id`) ) ENGINE=InnoDB COMMENT='MPS 合并下发明细'; -- ============================================= -- 销售订单明细表扩展字段 -- ============================================= ALTER TABLE `erp_sale_order_items` ADD COLUMN `need_production` tinyint DEFAULT 0 COMMENT '是否需要生产(0=否 1=是)' AFTER `out_count`, ADD COLUMN `mps_id` bigint DEFAULT NULL COMMENT '关联的MPS编号' AFTER `need_production`; -- ============================================= -- 字典类型 - MPS 状态 -- ============================================= INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES ('MPS 状态', 'mes_pro_mps_status', 0, 'MPS 状态', '1', NOW(), '1', NOW(), b'0'); -- ============================================= -- 字典数据 - MPS 状态 -- ============================================= INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (0, '草稿', '0', 'mes_pro_mps_status', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'), (1, '已下发', '1', 'mes_pro_mps_status', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'), (2, '已完成', '2', 'mes_pro_mps_status', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'), (3, '已取消', '3', 'mes_pro_mps_status', 0, 'danger', '', '', '1', NOW(), '1', NOW(), b'0');