gaoluyang
9 天以前 7bd10d34e8a8dc2437ec8551eb511e37634d7306
sql/mysql/pro_mps_audit_20261030.sql
@@ -1,8 +1,9 @@
-- =============================================
-- 计划排程(MPS)审核流 + 辅料采购 升级脚本
-- 1) mes_pro_mps 增加:计划开始日期、审核信息、采购申请单关联
-- 1) mes_pro_mps 增加:计划开始日期、审核信息、采购申请单关联、审批流程实例编号
-- 2) 字典 mes_pro_mps_status 增加:4-审核中、5-已审核
-- 3) 菜单/按钮:提交审核、审核、生成采购申请单
-- 3) 菜单/按钮:提交审核、生成采购申请单(页面内「审核」按钮已废弃,审批统一在协同办公完成)
-- 4) 审批流程:需部署流程定义 mes-pro-mps-audit(见 docs/sql/mes_pro_mps_audit_20261102.bpmn)
-- 可重复执行,不包含 tenant_id(项目不使用多租户)
-- =============================================
START TRANSACTION;
@@ -45,6 +46,14 @@
              'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- 审批流程实例编号:提交审核后进入协同办公审批,审批结果回写本表
SET @exists = (SELECT COUNT(*) FROM information_schema.columns
               WHERE table_schema = DATABASE() AND table_name = 'mes_pro_mps' AND column_name = 'process_instance_id');
SET @sql = IF(@exists = 0,
              'ALTER TABLE mes_pro_mps ADD COLUMN process_instance_id varchar(64) DEFAULT NULL COMMENT ''BPM 流程实例编号'' AFTER purchase_request_id',
              'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- =============================================
-- 2. 字典数据:MPS 状态增加 审核中(4)、已审核(5)
-- =============================================
@@ -63,9 +72,14 @@
WHERE NOT EXISTS (SELECT 1 FROM system_dict_data WHERE dict_type = 'mes_pro_mps_status' AND value = '5' AND deleted = b'0');
-- =============================================
-- 3. 按钮权限:提交审核 / 审核 / 生成采购申请单
-- 3. 按钮权限:提交审核 / 生成采购申请单
-- =============================================
SET @mps_page = (SELECT id FROM system_menu WHERE deleted = b'0' AND permission = 'mes:pro-mps:query' ORDER BY id LIMIT 1);
-- 3.0 清理旧版页面内「审核」按钮(审批已改为在协同办公完成)
DELETE FROM system_role_menu
WHERE menu_id IN (SELECT id FROM (SELECT id FROM system_menu WHERE permission = 'mes:pro-mps:audit' AND deleted = b'0') t);
DELETE FROM system_menu WHERE permission = 'mes:pro-mps:audit' AND deleted = b'0';
-- 3.1 提交审核
SET @btn = (SELECT id FROM system_menu WHERE deleted = b'0' AND permission = 'mes:pro-mps:submit' ORDER BY id LIMIT 1);
@@ -74,14 +88,7 @@
SELECT @next, '生产计划-提交审核', 'mes:pro-mps:submit', 3, 20, @mps_page, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'
FROM DUAL WHERE @btn IS NULL AND @mps_page IS NOT NULL;
-- 3.2 审核
SET @btn = (SELECT id FROM system_menu WHERE deleted = b'0' AND permission = 'mes:pro-mps:audit' ORDER BY id LIMIT 1);
SET @next = (SELECT IFNULL(MAX(id), 0) + 1 FROM system_menu);
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)
SELECT @next, '生产计划-审核', 'mes:pro-mps:audit', 3, 21, @mps_page, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'
FROM DUAL WHERE @btn IS NULL AND @mps_page IS NOT NULL;
-- 3.3 生成采购申请单
-- 3.2 生成采购申请单
SET @btn = (SELECT id FROM system_menu WHERE deleted = b'0' AND permission = 'mes:pro-mps:generate-purchase' ORDER BY id LIMIT 1);
SET @next = (SELECT IFNULL(MAX(id), 0) + 1 FROM system_menu);
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)
@@ -89,12 +96,31 @@
FROM DUAL WHERE @btn IS NULL AND @mps_page IS NOT NULL;
-- =============================================
-- 4. 授权:超级管理员直接拥有全部菜单,此处仅补普通角色按需授权(示例:生产计划已有查询权限的角色)
-- 4. 协同办公流程分类:生产计划审批(流程定义 mes-pro-mps-audit 部署后归属该分类)
-- =============================================
INSERT INTO bpm_category(name, code, description, status, sort, creator, create_time, updater, update_time, deleted)
SELECT '生产计划审批', 'mes_pro_mps_approve', 'MES 生产计划审批', 0, 72, '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM bpm_category WHERE code = 'mes_pro_mps_approve' AND deleted = b'0');
-- =============================================
-- 5. 协同办公审批详情:绑定生产计划业务详情组件,审批人可查看计划数据
-- =============================================
INSERT INTO bpm_business_attach(process_definition_key, business_type, component_path, status, remark,
                                creator, create_time, updater, update_time, deleted)
SELECT 'mes-pro-mps-audit', 'mes_pro_mps', '/mes/pro/mps/detail/approve/index.vue', 0,
       '生产计划审批展示生产计划详情', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM bpm_business_attach
                  WHERE process_definition_key = 'mes-pro-mps-audit' AND deleted = b'0');
-- =============================================
-- 6. 授权:超级管理员直接拥有全部菜单,此处仅补普通角色按需授权(示例:生产计划已有查询权限的角色)
-- =============================================
INSERT INTO system_role_menu(role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT DISTINCT rm.role_id, m.id, '1', NOW(), '1', NOW(), b'0'
FROM system_role_menu rm
JOIN system_menu m ON m.permission IN ('mes:pro-mps:submit', 'mes:pro-mps:audit', 'mes:pro-mps:generate-purchase')
JOIN system_menu m ON m.permission IN ('mes:pro-mps:submit', 'mes:pro-mps:generate-purchase')
    AND m.deleted = b'0'
JOIN system_menu parent ON parent.id = rm.menu_id AND parent.permission = 'mes:pro-mps:query' AND parent.deleted = b'0'
WHERE rm.deleted = b'0'