xiaoyi
10 天以前 fae95228037f0c1304c1917ae5fff452f2160c5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-- ============================================================
-- 电力数转增强 - 第七阶段(工艺设计)数据库变更
-- 适用:MySQL 8.4+
-- 说明:工序电力工艺分类 + 应急处置预案新表 + 字典 + 菜单(幂等)
-- 注意:本脚本不包含 tenant_id(项目未启用多租户)
-- ============================================================
 
-- ---------- 1. 工序表:电力工艺分类 ----------
SET @col = (SELECT COUNT(*) FROM information_schema.columns
            WHERE table_schema = DATABASE() AND table_name = 'mes_pro_process' AND column_name = 'type');
SET @sql = IF(@col = 0,
  'ALTER TABLE mes_pro_process ADD COLUMN type INT NULL COMMENT ''电力工艺分类(字典 mes_pro_process_type)'' AFTER name',
  'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
 
-- ---------- 2. 应急处置预案表 ----------
CREATE TABLE IF NOT EXISTS `mes_pro_emergency_plan` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '预案编码',
  `name` varchar(200) DEFAULT NULL COMMENT '预案名称',
  `plan_type` tinyint DEFAULT NULL COMMENT '预案类型(1=停电,2=设备故障,3=火灾,4=自然灾害,5=其他)',
  `content` text COMMENT '处置内容',
  `org_unit` varchar(200) DEFAULT NULL COMMENT '责任单位/部门',
  `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0=草稿,10=已发布)',
  `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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MES 应急处置预案';
 
-- ---------- 3. 字典:电力工艺分类 / 预案类型 ----------
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`)
VALUES
('MES 电力工艺分类', 'mes_pro_process_type', 0, 'MES 电力工艺分类(1=电网调度,2=变电运维,3=线路巡检,4=发电运维,5=储能充放电)', '1', NOW(), '1', NOW(), b'0', NULL),
('MES 应急处置预案类型', 'mes_pro_emergency_plan_type', 0, 'MES 应急处置预案类型(1=停电,2=设备故障,3=火灾,4=自然灾害,5=其他)', '1', NOW(), '1', NOW(), b'0', NULL)
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`);
 
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
(1, '电网调度', '1', 'mes_pro_process_type', 0, 'primary', '', '电网调度工艺', '1', NOW(), '1', NOW(), b'0'),
(2, '变电运维', '2', 'mes_pro_process_type', 0, 'warning', '', '变电运维工艺', '1', NOW(), '1', NOW(), b'0'),
(3, '线路巡检', '3', 'mes_pro_process_type', 0, 'info', '', '线路巡检工艺', '1', NOW(), '1', NOW(), b'0'),
(4, '发电运维', '4', 'mes_pro_process_type', 0, 'success', '', '发电运维工艺', '1', NOW(), '1', NOW(), b'0'),
(5, '储能充放电', '5', 'mes_pro_process_type', 0, 'danger', '', '储能充放电工艺', '1', NOW(), '1', NOW(), b'0'),
(1, '停电', '1', 'mes_pro_emergency_plan_type', 0, 'danger', '', '停电处置', '1', NOW(), '1', NOW(), b'0'),
(2, '设备故障', '2', 'mes_pro_emergency_plan_type', 0, 'warning', '', '设备故障处置', '1', NOW(), '1', NOW(), b'0'),
(3, '火灾', '3', 'mes_pro_emergency_plan_type', 0, 'error', '', '火灾处置', '1', NOW(), '1', NOW(), b'0'),
(4, '自然灾害', '4', 'mes_pro_emergency_plan_type', 0, 'processing', '', '自然灾害处置', '1', NOW(), '1', NOW(), b'0'),
(5, '其他', '5', 'mes_pro_emergency_plan_type', 0, 'default', '', '其他应急', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `label` = VALUES(`label`), `sort` = VALUES(`sort`);
 
-- ---------- 4. 菜单:应急处置预案(父菜单 6809 工艺设计) ----------
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`)
VALUES
(1065235, '应急处置预案', '', 2, 99, 6809, 'emergency-plan', 'ep:warning', 'mes/pro/emergencyplan/index', 'MesProEmergencyPlan', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065236, '应急预案查询', 'mes:pro-emergency-plan:query', 3, 1, 1065235, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065237, '应急预案创建', 'mes:pro-emergency-plan:create', 3, 2, 1065235, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065238, '应急预案更新', 'mes:pro-emergency-plan:update', 3, 3, 1065235, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065239, '应急预案删除', 'mes:pro-emergency-plan:delete', 3, 4, 1065235, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`);
 
-- 角色授权(普通角色2 / 租户管理员109、111)
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
SELECT r.role_id, m.menu_id, '1', NOW(), '1', NOW(), b'0', 1
FROM (SELECT 2 AS role_id UNION ALL SELECT 109 UNION ALL SELECT 111) r
CROSS JOIN (SELECT 1065235 AS menu_id UNION ALL SELECT 1065236 UNION ALL SELECT 1065237 UNION ALL SELECT 1065238 UNION ALL SELECT 1065239) m
LEFT JOIN `system_role_menu` existing ON existing.role_id = r.role_id AND existing.menu_id = m.menu_id AND existing.deleted = b'0'
WHERE existing.id IS NULL;