-- =============================================
-- MES 产品设计模块 - 初始化脚本
-- =============================================

-- ----------------------------
-- 设计项目
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_project` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `task_code` varchar(64) DEFAULT NULL COMMENT '任务编码',
    `task_name` varchar(255) DEFAULT NULL COMMENT '任务名称',
    `product_code` varchar(64) DEFAULT NULL COMMENT '产品编码',
    `product_name` varchar(255) DEFAULT NULL COMMENT '产品名称',
    `version` varchar(64) DEFAULT NULL COMMENT '版本号',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0=待发布 1=待上传 2=待审核 3=待归档 4=已归档）',
    `chief_designer` bigint DEFAULT NULL COMMENT '主设计师',
    `reviewer` bigint DEFAULT NULL COMMENT '审核人',
    `plan_finish_time` datetime 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`)
) ENGINE=InnoDB COMMENT='MES 设计项目';

-- ----------------------------
-- 设计资料子表
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_document` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `project_id` bigint NOT NULL COMMENT '设计项目ID',
    `document_type` varchar(64) DEFAULT NULL COMMENT '资料类型',
    `document_name` varchar(255) DEFAULT NULL COMMENT '资料名称',
    `document_version` varchar(64) DEFAULT NULL COMMENT '版本',
    `file_name` varchar(255) DEFAULT NULL COMMENT '文件名',
    `upload_user_id` bigint DEFAULT NULL COMMENT '上传人',
    `upload_time` datetime DEFAULT NULL COMMENT '上传时间',
    `file_url` varchar(512) DEFAULT NULL COMMENT '文件URL（预留）',
    `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_document_audit` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `audit_no` varchar(64) DEFAULT NULL COMMENT '审核单号',
    `document_id` bigint NOT NULL COMMENT '资料ID',
    `document_name` varchar(255) DEFAULT NULL COMMENT '资料名称（冗余）',
    `document_version` varchar(64) DEFAULT NULL COMMENT '资料版本（冗余）',
    `reviewer` bigint DEFAULT NULL COMMENT '审核人',
    `audit_status` tinyint DEFAULT NULL COMMENT '审核状态',
    `audit_time` datetime 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`)
) ENGINE=InnoDB COMMENT='MES 资料审核';

-- ----------------------------
-- 归档台账
-- ----------------------------
CREATE TABLE IF NOT EXISTS `mes_pd_archive` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `archive_code` varchar(64) DEFAULT NULL COMMENT '归档编号',
    `project_id` bigint NOT NULL COMMENT '设计项目ID',
    `archiver` bigint DEFAULT NULL COMMENT '归档人',
    `archive_status` tinyint DEFAULT NULL COMMENT '归档状态',
    `archive_time` datetime 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`)
) ENGINE=InnoDB COMMENT='MES 归档台账';

-- ----------------------------
-- 字典类型
-- ----------------------------
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('设计项目状态', 'mes_pd_project_status', 0, '设计项目状态', '1', NOW(), '1', NOW(), b'0'),
('资料类型', 'mes_pd_document_type', 0, '资料类型', '1', NOW(), '1', NOW(), b'0'),
('资料审核状态', 'mes_pd_document_audit_status', 0, '资料审核状态', '1', NOW(), '1', NOW(), b'0'),
('归档状态', 'mes_pd_archive_status', 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, '待发布', '0', 'mes_pd_project_status', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'),
(1, '待上传', '1', 'mes_pd_project_status', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'),
(2, '待审核', '2', 'mes_pd_project_status', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0'),
(3, '待归档', '3', 'mes_pd_project_status', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'),
(4, '已归档', '4', 'mes_pd_project_status', 0, 'danger', '', '', '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, '待审核', '0', 'mes_pd_document_audit_status', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'),
(1, '审核通过', '1', 'mes_pd_document_audit_status', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'),
(2, '审核不通过', '2', 'mes_pd_document_audit_status', 0, 'danger', '', '', '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, '待归档', '0', 'mes_pd_archive_status', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'),
(1, '已归档', '1', 'mes_pd_archive_status', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0');

-- ----------------------------
-- 菜单 - 一级目录：产品设计
-- 注意：parent_id 需要根据实际MES父菜单ID调整
-- ----------------------------
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
('产品设计', '', 2, 20, 0, 'pd', '', '', 0, '1', NOW(), '1', NOW(), b'0');
SET @pd_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
('设计项目', '', 2, 1, @pd_menu_id, 'project', '', 'mes/pd/project/index', 0, '1', NOW(), '1', NOW(), b'0');
SET @project_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-project:query', 3, 1, @project_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('设计项目创建', 'mes:pd-project:create', 3, 2, @project_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('设计项目更新', 'mes:pd-project:update', 3, 3, @project_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('设计项目删除', 'mes:pd-project:delete', 3, 4, @project_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('设计项目导出', 'mes:pd-project:export', 3, 5, @project_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, 2, @pd_menu_id, 'archive', '', 'mes/pd/archive/index', 0, '1', NOW(), '1', NOW(), b'0');
SET @archive_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-archive:query', 3, 1, @archive_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('归档台账创建', 'mes:pd-archive:create', 3, 2, @archive_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('归档台账更新', 'mes:pd-archive:update', 3, 3, @archive_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('归档台账删除', 'mes:pd-archive:delete', 3, 4, @archive_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0'),
('归档台账导出', 'mes:pd-archive:export', 3, 5, @archive_menu_id, '', '', '', 0, '1', NOW(), '1', NOW(), b'0');
