-- =====================================================
|
-- MDM 主数据模块 - 数据库表结构
|
-- 执行顺序:先执行此脚本创建表,再执行数据迁移脚本
|
-- =====================================================
|
|
-- =====================================================
|
-- 01. 物料分类表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_item_category`;
|
CREATE TABLE `mdm_item_category` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号',
|
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父分类编号(根节点=0)',
|
`code` varchar(50) DEFAULT NULL COMMENT '分类编码',
|
`name` varchar(100) NOT NULL COMMENT '分类名称',
|
`item_type` tinyint DEFAULT NULL COMMENT '适用物料类型(1:物料 2:产品 3:半成品 NULL:全部)',
|
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
KEY `idx_parent_id` (`parent_id`),
|
KEY `idx_code` (`code`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 物料分类表';
|
|
-- =====================================================
|
-- 02. 计量单位表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_unit_measure`;
|
CREATE TABLE `mdm_unit_measure` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '单位编号',
|
`code` varchar(50) NOT NULL COMMENT '单位编码',
|
`name` varchar(50) NOT NULL COMMENT '单位名称',
|
`primary_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否主单位',
|
`primary_id` bigint DEFAULT NULL COMMENT '主单位编号',
|
`change_rate` decimal(24,6) DEFAULT 1.000000 COMMENT '与主单位换算比例',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_code` (`code`, `deleted`),
|
KEY `idx_name` (`name`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 计量单位表';
|
|
-- =====================================================
|
-- 03. 品牌表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_brand`;
|
CREATE TABLE `mdm_brand` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌编号',
|
`code` varchar(50) NOT NULL COMMENT '品牌编码',
|
`name` varchar(100) NOT NULL COMMENT '品牌名称',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_code` (`code`, `deleted`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 品牌表';
|
|
-- =====================================================
|
-- 04. 物料主数据表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_item`;
|
CREATE TABLE `mdm_item` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '物料编号',
|
`code` varchar(50) NOT NULL COMMENT '物料编码',
|
`name` varchar(200) NOT NULL COMMENT '物料名称',
|
`bar_code` varchar(100) DEFAULT NULL COMMENT '物料条码',
|
`specification` varchar(200) DEFAULT NULL COMMENT '规格型号',
|
`category_id` bigint DEFAULT NULL COMMENT '物料分类编号',
|
`unit_measure_id` bigint DEFAULT NULL COMMENT '计量单位编号',
|
`item_type` tinyint NOT NULL DEFAULT 1 COMMENT '物料类型(1:物料 2:产品 3:半成品)',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`purchase_price` decimal(24,2) DEFAULT NULL COMMENT '采购价',
|
`sales_price` decimal(24,2) DEFAULT NULL COMMENT '销售价',
|
`cost_price` decimal(24,2) DEFAULT NULL COMMENT '成本价',
|
`min_price` decimal(24,2) DEFAULT NULL COMMENT '最低价',
|
`safety_stock` decimal(24,6) DEFAULT NULL COMMENT '安全库存',
|
`min_stock` decimal(24,6) DEFAULT NULL COMMENT '最低库存量',
|
`max_stock` decimal(24,6) DEFAULT NULL COMMENT '最高库存量',
|
`min_order_qty` decimal(24,6) DEFAULT NULL COMMENT '最小订货量',
|
`lead_time` int DEFAULT NULL COMMENT '采购提前期(天)',
|
`is_batch_managed` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否批次管理',
|
`is_serial_managed` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否序列号管理',
|
`barcode_rule_id` bigint DEFAULT NULL COMMENT '条码规则ID',
|
`expiry_day` int DEFAULT NULL COMMENT '保质期天数',
|
`high_value` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否高值物料',
|
`weight` decimal(24,6) DEFAULT NULL COMMENT '重量(kg)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_code` (`code`, `deleted`),
|
KEY `idx_name` (`name`),
|
KEY `idx_category_id` (`category_id`),
|
KEY `idx_item_type` (`item_type`),
|
KEY `idx_status` (`status`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 物料主数据表';
|
|
-- =====================================================
|
-- 05. 物料SKU表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_item_sku`;
|
CREATE TABLE `mdm_item_sku` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'SKU编号',
|
`item_id` bigint NOT NULL COMMENT '物料编号',
|
`code` varchar(50) NOT NULL COMMENT 'SKU编码',
|
`name` varchar(200) NOT NULL COMMENT 'SKU名称',
|
`bar_code` varchar(100) DEFAULT NULL COMMENT 'SKU条码',
|
`length` decimal(24,6) DEFAULT NULL COMMENT '长度(cm)',
|
`width` decimal(24,6) DEFAULT NULL COMMENT '宽度(cm)',
|
`height` decimal(24,6) DEFAULT NULL COMMENT '高度(cm)',
|
`gross_weight` decimal(24,6) DEFAULT NULL COMMENT '毛重(kg)',
|
`net_weight` decimal(24,6) DEFAULT NULL COMMENT '净重(kg)',
|
`cost_price` decimal(24,2) DEFAULT NULL COMMENT '成本价',
|
`sale_price` decimal(24,2) DEFAULT NULL COMMENT '销售价',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_code` (`code`, `deleted`),
|
KEY `idx_item_id` (`item_id`),
|
KEY `idx_bar_code` (`bar_code`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 物料SKU表';
|
|
-- =====================================================
|
-- 06. 物料批次属性配置表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_item_batch_config`;
|
CREATE TABLE `mdm_item_batch_config` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置编号',
|
`item_id` bigint NOT NULL COMMENT '物料编号',
|
`produce_date_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用生产日期',
|
`expire_date_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用失效日期',
|
`receipt_date_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用入库日期',
|
`vendor_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用供应商',
|
`client_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用客户',
|
`sales_order_code_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用销售订单号',
|
`purchase_order_code_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用采购订单号',
|
`work_order_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用生产工单',
|
`task_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用生产任务',
|
`workstation_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用工位',
|
`tool_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用工装夹具',
|
`mold_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用模具',
|
`lot_number_flag` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否启用批次号',
|
`quality_status_flag` bit(1) NOT NULL DEFAULT b'0' 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_item_id` (`item_id`, `deleted`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 物料批次属性配置表';
|
|
-- =====================================================
|
-- 07. 仓库表
|
-- =====================================================
|
DROP TABLE IF EXISTS `mdm_warehouse`;
|
CREATE TABLE `mdm_warehouse` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '仓库编号',
|
`code` varchar(50) NOT NULL COMMENT '仓库编码',
|
`name` varchar(100) NOT NULL COMMENT '仓库名称',
|
`type` tinyint DEFAULT NULL COMMENT '仓库类型',
|
`address` varchar(500) DEFAULT NULL COMMENT '仓库地址',
|
`principal` varchar(64) DEFAULT NULL COMMENT '负责人',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
|
`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 '是否删除',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_code` (`code`, `deleted`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MDM 仓库表';
|