2026-06-29 940c8481d2fdcf51341db4ccd6fd6fcc2d43debb
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
-- =============================================
-- 批次六:MES 生产工单 BPM 审批集成
-- 执行顺序:1
-- =============================================
 
-- 1. 为 MES 生产工单表添加流程实例编号字段
ALTER TABLE `mes_pro_work_order` ADD COLUMN `process_instance_id` VARCHAR(64) NULL COMMENT 'BPM 流程实例编号' AFTER `status`;
 
-- 2. 为流程实例编号创建索引(可选,用于按流程实例查询)
-- ALTER TABLE `mes_pro_work_order` ADD INDEX `idx_process_instance_id` (`process_instance_id`);
 
-- 3. 更新工单状态字典数据(添加审批中、审批不通过状态)
-- 注意:如果字典数据已存在则忽略
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_work_order_status', 0, 'warning', '', 'MES生产工单状态-审批中', '1', NOW(), '1', NOW(), b'0'),
    (5, '审批不通过', '5', 'mes_pro_work_order_status', 0, 'danger', '', 'MES生产工单状态-审批不通过', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `updater` = '1', `update_time` = NOW();
 
-- 4. 添加菜单按钮(提交审批)
-- 先查询生产工单菜单ID(假设菜单路径为 MES管理 > 生产管理 > 生产工单)
SET @workorder_menu_id = (SELECT `id` FROM `system_menu` WHERE `name` = '生产工单' AND `parent_id` IN (SELECT `id` FROM `system_menu` WHERE `name` = '生产管理') LIMIT 1);
 
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
SELECT '生产工单提交审批', 'mes:pro-work-order:update', 3, 6, @workorder_menu_id, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE @workorder_menu_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `name` = '生产工单提交审批' AND `parent_id` = @workorder_menu_id);
 
-- 5. 为角色分配提交审批按钮权限(根据实际需要调整)
-- 示例:为 MES 管理员角色分配权限
-- INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
-- SELECT r.id, m.id, '1', NOW(), '1', NOW(), b'0', 1
-- FROM `system_role` r, `system_menu` m
-- WHERE r.name = 'MES管理员' AND m.name = '生产工单提交审批';
 
-- =============================================
-- 回滚脚本(如需回滚执行以下语句)
-- =============================================
-- ALTER TABLE `mes_pro_work_order` DROP COLUMN `process_instance_id`;
-- DELETE FROM `system_dict_data` WHERE `dict_type` = 'mes_pro_work_order_status' AND `value` IN ('1', '5');
-- DELETE FROM `system_menu` WHERE `name` = '生产工单提交审批';