-- =============================================
-- MES 工艺参数与工艺参数模板 - 初始化脚本
-- =============================================

-- ----------------------------
-- 工艺参数
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_process_param` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `param_code` varchar(64) DEFAULT NULL COMMENT '参数编码',
    `param_name` varchar(255) NOT NULL COMMENT '参数名称',
    `param_type` tinyint DEFAULT NULL COMMENT '参数类型（字典 mes_pd_process_param_type）',
    `unit_measure_id` bigint DEFAULT NULL COMMENT '计量单位ID（关联 mes_md_unit_measure）',
    `required` bit(1) NOT NULL DEFAULT b'0' 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`)
) ENGINE=InnoDB COMMENT='MES 工艺参数';

-- ----------------------------
-- 工艺参数模板
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_process_param_template` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `template_code` varchar(64) DEFAULT NULL COMMENT '模板编码',
    `template_name` varchar(255) NOT NULL COMMENT '模板名称',
    `template_type` tinyint DEFAULT NULL COMMENT '模板类型（字典 mes_pd_process_param_template_type）',
    `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`)
) ENGINE=InnoDB COMMENT='MES 工艺参数模板';

-- ----------------------------
-- 工艺参数模板明细（快照表）
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_process_param_template_detail` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `template_id` bigint NOT NULL COMMENT '模板ID（关联 mes_pd_process_param_template）',
    `process_param_id` bigint DEFAULT NULL COMMENT '工艺参数ID（仅作溯源，不影响快照值）',
    `param_code` varchar(64) DEFAULT NULL COMMENT '参数编码（快照）',
    `param_name` varchar(255) DEFAULT NULL COMMENT '参数名称（快照）',
    `param_type` tinyint DEFAULT NULL COMMENT '参数类型（快照）',
    `unit_measure_id` bigint DEFAULT NULL COMMENT '计量单位ID（快照）',
    `required` bit(1) NOT NULL DEFAULT b'0' 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`)
) ENGINE=InnoDB COMMENT='MES 工艺参数模板明细';

-- ----------------------------
-- 字典类型
-- ----------------------------
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('工艺参数类型', 'mes_pd_process_param_type', 0, '工艺参数类型', '1', NOW(), '1', NOW(), b'0'),
('工艺参数模板类型', 'mes_pd_process_param_template_type', 0, '工艺参数模板类型', '1', NOW(), '1', NOW(), b'0');

-- ----------------------------
-- 字典数据 - 工艺参数类型
-- ----------------------------
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, '文本', '1', 'mes_pd_process_param_type', 0, 'default', '', '', '1', NOW(), '1', NOW(), b'0'),
(1, '数值', '2', 'mes_pd_process_param_type', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'),
(2, '布尔', '3', 'mes_pd_process_param_type', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'),
(3, '日期', '4', 'mes_pd_process_param_type', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0');

-- ----------------------------
-- 字典数据 - 工艺参数模板类型
-- ----------------------------
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, '通用', '1', 'mes_pd_process_param_template_type', 0, 'default', '', '', '1', NOW(), '1', NOW(), b'0'),
(1, '工序', '2', 'mes_pd_process_param_template_type', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'),
(2, '产品', '3', 'mes_pd_process_param_template_type', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0');

-- ----------------------------
-- 菜单 - 工艺参数（二级菜单，挂在产品设计下）
-- 注意：parent_id 使用变量 @pd_menu_id，需与 mes_pd_init.sql 中的产品设计一级菜单配合
-- 如果产品设计菜单已存在，请先设置 @pd_menu_id 为实际的菜单ID
-- ----------------------------

-- 二级菜单：工艺参数
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('工艺参数', '', 2, 3, @pd_menu_id, 'process-param', '', 'mes/pd/processparam/index', 0, '1', NOW(), '1', NOW(), b'0');
SET @process_param_menu_id = LAST_INSERT_ID();

-- 工艺参数按钮权限
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('工艺参数查询', 'mes:pd-process-param:query', 3, 1, @process_param_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数创建', 'mes:pd-process-param:create', 3, 2, @process_param_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数更新', 'mes:pd-process-param:update', 3, 3, @process_param_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数删除', 'mes:pd-process-param:delete', 3, 4, @process_param_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数导出', 'mes:pd-process-param:export', 3, 5, @process_param_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0');

-- 二级菜单：工艺参数模板
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('工艺参数模板', '', 2, 4, @pd_menu_id, 'process-param-template', '', 'mes/pd/processparamtemplate/index', 0, '1', NOW(), '1', NOW(), b'0');
SET @template_menu_id = LAST_INSERT_ID();

-- 工艺参数模板按钮权限
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('工艺参数模板查询', 'mes:pd-process-param-template:query', 3, 1, @template_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数模板创建', 'mes:pd-process-param-template:create', 3, 2, @template_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数模板更新', 'mes:pd-process-param-template:update', 3, 3, @template_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数模板删除', 'mes:pd-process-param-template:delete', 3, 4, @template_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('工艺参数模板导出', 'mes:pd-process-param-template:export', 3, 5, @template_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0');
