-- ============================================= -- 批次六: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` = '生产工单提交审批';