完善 MCS 桌面代理与开炼机动作同步,修复原料相关菜单权限,桌面端新增上辅机 MES 菜单。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-27 15:56:05 +08:00
parent 7a9c19e4f3
commit 442a4c8ae2
113 changed files with 10169 additions and 91 deletions

View File

@@ -0,0 +1,4 @@
-- 设备库桥接中间库配置增加桌面代理访问模式
ALTER TABLE `mes_xsl_mcs_db_config`
ADD COLUMN `access_mode` varchar(32) DEFAULT 'DESKTOP_AGENT' COMMENT '访问模式 DESKTOP_AGENT/DIRECT' AFTER `remark`,
ADD COLUMN `agent_device_id` varchar(100) DEFAULT NULL COMMENT '绑定桌面代理deviceId' AFTER `access_mode`;

View File

@@ -0,0 +1,105 @@
-- MES上辅机开炼机动作 MCSToMES_Act_Mill mes_xsl_mill_action
-- 1. MES 接收表
-- 2. 采集配置FULL / 30秒 / GUID 匹配+ 字段映射
-- 3. 中间库原表菜单 + 接收表菜单 + admin 授权
SET NAMES utf8mb4;
-- ===================== 1. MES 接收表 =====================
CREATE TABLE IF NOT EXISTS `mes_xsl_mill_action` (
`id` varchar(32) NOT NULL COMMENT '主键',
`guid` varchar(50) NOT NULL COMMENT '源表GUID(匹配键)',
`act_addr` int DEFAULT NULL COMMENT '动作地址',
`act_name` varchar(50) DEFAULT NULL COMMENT '动作名称',
`act_name_en` varchar(50) DEFAULT NULL COMMENT '动作名称()',
`act_memo` varchar(20) DEFAULT NULL COMMENT '动作备注',
`act_repaddr` int DEFAULT NULL COMMENT '动作关联地址',
`write_time` datetime DEFAULT NULL COMMENT '写入时间()',
`read_time` datetime DEFAULT NULL COMMENT '读取时间()',
`rw_flag` int DEFAULT NULL COMMENT '读写标识',
`tenant_id` int DEFAULT '0' COMMENT '租户',
`sys_org_code` varchar(64) DEFAULT NULL COMMENT '部门',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` int DEFAULT '0' COMMENT '删除标记(0正常1删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mma_guid` (`guid`),
KEY `idx_mma_act_name` (`act_name`),
KEY `idx_mma_write_time` (`write_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES开炼机动作接收表(采集自MCSToMES_Act_Mill)';
-- ===================== 2. 采集配置 + 字段映射 =====================
INSERT INTO `mes_xsl_mcs_sync_config`
(`id`, `biz_type`, `config_name`, `biz_name`, `source_table`, `source_table_comment`,
`target_table`, `target_table_comment`, `interval_seconds`, `status`, `sync_mode`,
`remark`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`)
SELECT '1900000000000000880', 'MILL_ACT', '开炼机动作采集', '开炼机动作', 'MCSToMES_Act_Mill', '开炼机动作',
'mes_xsl_mill_action', 'MES开炼机动作接收表', 30, '0', 'FULL',
'开炼机动作 FULL 按GUID Upsert默认30秒', 0, 'admin', NOW(), 'admin', NOW(), 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_xsl_mcs_sync_config` WHERE `biz_type` = 'MILL_ACT' AND `tenant_id` = 0);
INSERT INTO `mes_xsl_mcs_sync_field`
(`id`, `config_id`, `source_field`, `source_field_comment`, `source_field_type`,
`target_field`, `target_field_comment`, `match_key`, `sort_no`,
`tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`)
SELECT * FROM (
SELECT '1900000000000000881' id, '1900000000000000880' config_id, 'GUID' sf, 'GUID' sfc, 'varchar' sft, 'guid' tf, '源表GUID' tfc, '1' mk, 1 sn, 0 tid, 'admin' cb, NOW() ct, 'admin' ub, NOW() ut, 0 df
UNION ALL SELECT '1900000000000000882', '1900000000000000880', 'act_addr', '动作地址', 'int', 'act_addr', '动作地址', '0', 2, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000883', '1900000000000000880', 'act_name', '动作名称', 'varchar', 'act_name', '动作名称', '0', 3, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000884', '1900000000000000880', 'act_name_en', '动作名称()', 'varchar', 'act_name_en', '动作名称()', '0', 4, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000885', '1900000000000000880', 'act_memo', '动作备注', 'varchar', 'act_memo', '动作备注', '0', 5, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000886', '1900000000000000880', 'act_Repaddr', '动作关联地址', 'int', 'act_repaddr', '动作关联地址', '0', 6, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000887', '1900000000000000880', 'WriteTime', '写入时间', 'datetime', 'write_time', '写入时间', '0', 7, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000888', '1900000000000000880', 'ReadTime', '读取时间', 'datetime', 'read_time', '读取时间', '0', 8, 0, 'admin', NOW(), 'admin', NOW(), 0
UNION ALL SELECT '1900000000000000889', '1900000000000000880', 'RW_Flag', '读写标识', 'int', 'rw_flag', '读写标识', '0', 9, 0, 'admin', NOW(), 'admin', NOW(), 0
) t
WHERE NOT EXISTS (SELECT 1 FROM `mes_xsl_mcs_sync_field` WHERE `config_id` = '1900000000000000880');
-- ===================== 3. 中间库原表菜单上辅机数据 =====================
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000890', '1900000000000000830', '开炼机动作', '/xslmesMcs/mcsToMesActMill', 'xslmesMcs/mcsToMesActMill/index', 1, NULL, NULL, 1, NULL, '0', 5.50, 0, 'ant-design:apartment-outlined', 1, 1, 0, 0, 'MCSToMES_Act_Mill 开炼机动作中间表', 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000890');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000891', '1900000000000000890', '采集设置', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mcsSyncConfig:setting', '1', 1.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000891');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000892', '1900000000000000890', '导出', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mcsToMesActMill:exportXls', '1', 2.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000892');
-- ===================== 4. MES 接收表菜单技术管理 =====================
UPDATE `sys_permission`
SET `is_leaf` = 0, `update_time` = NOW()
WHERE `id` = '1900000000000000810' AND `is_leaf` = 1;
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000894', '1900000000000000810', '开炼机动作接收', '/xslmes/mesXslMillAction', 'xslmes/mesXslMillAction/MesXslMillActionList', 1, 'MesXslMillActionList', NULL, 1, NULL, '0', 1.10, 0, 'ant-design:cluster-outlined', 1, 1, 0, 0, 'mes_xsl_mill_action 开炼机动作接收表', 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000894');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000895', '1900000000000000894', '采集设置', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mcsSyncConfig:setting', '1', 1.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000895');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
SELECT '1900000000000000896', '1900000000000000894', '导出', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_mill_action:exportXls', '1', 2.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000896');
-- admin 授权
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
FROM `sys_role` r
JOIN (
SELECT id FROM `sys_permission`
WHERE id IN (
'1900000000000000890','1900000000000000891','1900000000000000892',
'1900000000000000894','1900000000000000895','1900000000000000896'
)
) p ON 1 = 1
WHERE r.`role_code` = 'admin'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.`role_id` = r.id AND rp.`permission_id` = p.id
);

View File

@@ -0,0 +1,14 @@
-- 开炼机动作中间库原表改由桌面端展示隐藏 MES Web 中间库菜单
SET NAMES utf8mb4;
UPDATE `sys_permission`
SET `del_flag` = 1, `status` = '0', `update_time` = NOW()
WHERE `id` IN ('1900000000000000890', '1900000000000000891', '1900000000000000892')
AND `del_flag` = 0;
-- 接收表菜单名称保持开炼机动作接收仅查 MySQL 接收数据
UPDATE `sys_permission`
SET `name` = '开炼机动作接收',
`description` = 'mes_xsl_mill_action 开炼机动作接收表仅展示采集入库数据',
`update_time` = NOW()
WHERE `id` = '1900000000000000894';

View File

@@ -0,0 +1,74 @@
-- 修复原材料检验标准菜单避开已被人工小料占用的 0730/0750 ID
SET NAMES utf8mb4;
-- 1) 新建页面菜单MES原料仓储 与送检记录同级
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000897', '1900000000000000700', '原材料检验标准', '/mes/rawMaterialInspectStd',
'mes/rawmaterialinspectstd/index', 1, NULL, NULL,
1, NULL, '0', 21.50, 0, 'ant-design:safety-outlined', 1, 1,
0, 0, 'MES原材料检验标准送检记录匹配用', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000897');
-- 2) 按钮权限改挂到新菜单从误挂的人工小料计划维护下挪回
UPDATE `sys_permission`
SET `parent_id` = '1900000000000000897', `update_time` = NOW()
WHERE `id` IN (
'1900000000000000732','1900000000000000733','1900000000000000734',
'1900000000000000735','1900000000000000736','1900000000000000737'
)
AND `perms` LIKE 'mes:mes_raw_material_inspect_std:%';
-- 3) 添加按钮
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000898', '1900000000000000897', '添加', NULL, NULL, 0, NULL, NULL,
2, 'mes:mes_raw_material_inspect_std:add', '1', 1.00, 0, NULL, 1, 0,
0, 0, NULL, 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000898');
-- 4) admin 授权
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
FROM `sys_role` r
JOIN (
SELECT id FROM `sys_permission`
WHERE id IN (
'1900000000000000897','1900000000000000898',
'1900000000000000732','1900000000000000733','1900000000000000734',
'1900000000000000735','1900000000000000736','1900000000000000737'
)
) p ON 1 = 1
WHERE r.`role_code` = 'admin'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.`role_id` = r.id AND rp.`permission_id` = p.id
);
-- 5) 打印实体映射
INSERT INTO `print_biz_perm_entity` (`perm_id`, `entity_class`)
SELECT '1900000000000000897', 'org.jeecg.modules.mes.material.entity.MesRawMaterialInspectStd'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `print_biz_perm_entity`
WHERE `perm_id` = '1900000000000000897'
AND `entity_class` = 'org.jeecg.modules.mes.material.entity.MesRawMaterialInspectStd'
);
SELECT p.id, pp.name AS parent_name, p.name, p.url, p.component
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id = '1900000000000000897' OR p.parent_id = '1900000000000000897';

View File

@@ -0,0 +1,123 @@
-- 补回被需求计划菜单 ID 占用挤掉的两个日志菜单 ID不改动现有需求计划
-- 1) 原材料卡片修改日志
-- 2) 原料入场删除日志
SET NAMES utf8mb4;
-- ===================== 1. 原材料卡片修改日志 =====================
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000899', '1900000000000000700', '原材料卡片修改日志',
'/xslmes/mesXslRawMaterialCardEditLog',
'xslmes/mesXslRawMaterialCardEditLog/MesXslRawMaterialCardEditLogList',
1, NULL, NULL, 1, NULL, '0', 13.00, 0, 'ant-design:history-outlined', 1, 1,
0, 0, '记录 Web/桌面端编辑原材料卡片剩余量与库区', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000899')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `del_flag` = 0 AND `menu_type` = 1 AND `name` = '原材料卡片修改日志'
);
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000900', '1900000000000000899', '查询', NULL, NULL, 0, NULL, NULL,
2, 'xslmes:mes_xsl_raw_material_card_edit_log:list', '1', 1.00, 0, NULL, 1, 0,
0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000900');
-- 0712 仍是卡片修改日志导出权限挪到新菜单下
UPDATE `sys_permission`
SET `parent_id` = '1900000000000000899', `name` = '导出', `update_time` = NOW()
WHERE `id` = '1900000000000000712'
AND `perms` = 'xslmes:mes_xsl_raw_material_card_edit_log:exportXls';
-- 0712 已被改成别的权限则新建导出按钮
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000901', '1900000000000000899', '导出', NULL, NULL, 0, NULL, NULL,
2, 'xslmes:mes_xsl_raw_material_card_edit_log:exportXls', '1', 2.00, 0, NULL, 1, 0,
0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000901')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `parent_id` = '1900000000000000899'
AND `perms` = 'xslmes:mes_xsl_raw_material_card_edit_log:exportXls'
);
-- ===================== 2. 原料入场删除日志 =====================
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000902', '1900000000000000700', '原料入场删除日志',
'/xslmes/mesXslRawMaterialEntryDeleteLog',
'xslmes/mesXslRawMaterialEntryDeleteLog/MesXslRawMaterialEntryDeleteLogList',
1, NULL, NULL, 1, NULL, '0', 14.00, 0, 'ant-design:delete-row-outlined', 1, 1,
0, 0, '查询已逻辑删除的原料入场记录', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000902')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `del_flag` = 0 AND `menu_type` = 1 AND `name` = '原料入场删除日志'
);
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000903', '1900000000000000902', '查询', NULL, NULL, 0, NULL, NULL,
2, 'xslmes:mes_xsl_raw_material_entry_delete_log:list', '1', 1.00, 0, NULL, 1, 0,
0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000903');
-- ===================== 3. admin 授权 =====================
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
FROM `sys_role` r
JOIN (
SELECT id FROM `sys_permission`
WHERE id IN (
'1900000000000000899','1900000000000000900','1900000000000000901',
'1900000000000000712',
'1900000000000000902','1900000000000000903'
)
) p ON 1 = 1
WHERE r.`role_code` = 'admin'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.`role_id` = r.id AND rp.`permission_id` = p.id
);
SELECT p.id, pp.name AS parent_name, p.name, p.url, p.component, p.perms
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id IN (
'1900000000000000899','1900000000000000900','1900000000000000901','1900000000000000712',
'1900000000000000902','1900000000000000903'
)
OR p.parent_id IN ('1900000000000000899','1900000000000000902')
ORDER BY p.id;

View File

@@ -0,0 +1,149 @@
-- 修复挂错父菜单的按钮并补回被 ID 占用挤掉的页面
-- A) 胶料小料锁定日志0215 被设备对应部位占用
-- B) 清理工序管理/设备类别新增按钮上误写的页面 url/component
-- C) 原材料检验项目导入按钮 0067 误挂在工序新增
SET NAMES utf8mb4;
-- ===================== A. 胶料小料锁定日志 =====================
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `is_route`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000904', '1860000000000000162', '胶料小料锁定日志',
'/xslmes/mesXslRubberSmallLockLog',
'xslmes/mesXslRubberSmallLockLog/MesXslRubberSmallLockLogList',
'MesXslRubberSmallLockLogList', 1, NULL,
1, NULL, '0', 7.00, 0, 'ant-design:file-text-outlined', 1, 1,
0, 0, 'MES胶料小料锁定日志', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000904')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `del_flag` = 0 AND `menu_type` = 1 AND `name` = '胶料小料锁定日志'
);
-- 锁定日志按钮从设备对应部位挪回
UPDATE `sys_permission`
SET `parent_id` = '1900000000000000904', `update_time` = NOW()
WHERE `id` IN (
'1860000000000000217','1860000000000000218','1860000000000000219',
'1860000000000000220','1860000000000000221'
)
AND `perms` LIKE 'mes:mes_xsl_rubber_small_lock_log:%';
-- 新增 0216 已被设备对应部位导出占用
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000905', '1900000000000000904', '新增', NULL, NULL, 0, NULL, NULL,
2, 'mes:mes_xsl_rubber_small_lock_log:add', '1', 1.00, 0, NULL, 1, 0,
0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000905')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `parent_id` = '1900000000000000904'
AND `perms` = 'mes:mes_xsl_rubber_small_lock_log:add'
);
-- ===================== B. 清理按钮上误写的页面路由 =====================
UPDATE `sys_permission`
SET `url` = NULL, `component` = NULL, `component_name` = NULL, `is_route` = 0, `update_time` = NOW()
WHERE `id` IN ('1860000000000000061', '1860000000000000071')
AND `menu_type` = 2;
-- ===================== C. 原材料检验项目 =====================
INSERT INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
)
SELECT
'1900000000000000906', '1900000000000000700', '原材料检验项目',
'/mes/rawMaterialInspectItem', 'mes/rawmaterialinspectitem/index',
1, NULL, NULL, 1, NULL, '0', 21.40, 0, 'ant-design:check-square-outlined', 1, 1,
0, 0, 'MES原材料检验项目', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000906')
AND NOT EXISTS (
SELECT 1 FROM `sys_permission`
WHERE `del_flag` = 0 AND `menu_type` = 1 AND `name` = '原材料检验项目'
);
-- 导入按钮从工序新增下挪到检验项目
UPDATE `sys_permission`
SET `parent_id` = '1900000000000000906', `name` = '导入', `update_time` = NOW()
WHERE `id` = '1860000000000000067'
AND `perms` = 'mes:mes_raw_material_inspect_item:importExcel';
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1900000000000000907', '1900000000000000906', '新增', 2, 'mes:mes_raw_material_inspect_item:add', '1', 1.00, 0, 1, 0, '1', 0, 'admin', NOW()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000907');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1900000000000000908', '1900000000000000906', '编辑', 2, 'mes:mes_raw_material_inspect_item:edit', '1', 2.00, 0, 1, 0, '1', 0, 'admin', NOW()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000908');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1900000000000000909', '1900000000000000906', '删除', 2, 'mes:mes_raw_material_inspect_item:delete', '1', 3.00, 0, 1, 0, '1', 0, 'admin', NOW()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000909');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1900000000000000910', '1900000000000000906', '批量删除', 2, 'mes:mes_raw_material_inspect_item:deleteBatch', '1', 4.00, 0, 1, 0, '1', 0, 'admin', NOW()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000910');
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1900000000000000911', '1900000000000000906', '导出', 2, 'mes:mes_raw_material_inspect_item:exportXls', '1', 5.00, 0, 1, 0, '1', 0, 'admin', NOW()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000911');
-- ===================== D. admin 授权 =====================
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
FROM `sys_role` r
JOIN (
SELECT id FROM `sys_permission`
WHERE id IN (
'1900000000000000904','1900000000000000905',
'1860000000000000217','1860000000000000218','1860000000000000219',
'1860000000000000220','1860000000000000221',
'1900000000000000906','1860000000000000067',
'1900000000000000907','1900000000000000908','1900000000000000909',
'1900000000000000910','1900000000000000911'
)
) p ON 1 = 1
WHERE r.`role_code` = 'admin'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.`role_id` = r.id AND rp.`permission_id` = p.id
);
-- 校验输出
SELECT 'lock_log' AS kind, p.id, pp.name AS parent_name, p.name, p.perms, p.url
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id = '1900000000000000904' OR p.parent_id = '1900000000000000904'
UNION ALL
SELECT 'inspect_item', p.id, pp.name, p.name, p.perms, p.url
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id = '1900000000000000906' OR p.parent_id = '1900000000000000906'
UNION ALL
SELECT 'cleaned_btn', p.id, pp.name, p.name, p.perms, p.url
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id IN ('1860000000000000061','1860000000000000071')
UNION ALL
SELECT 'equip_part', p.id, pp.name, p.name, p.perms, p.url
FROM sys_permission p
LEFT JOIN sys_permission pp ON pp.id = p.parent_id
WHERE p.id = '1860000000000000215' OR p.parent_id = '1860000000000000215';

View File

@@ -0,0 +1,17 @@
-- 原材料检验项目/标准补授权给 admin/system/vue3/zuhuadmin菜单恢复后按钮权限未同步到各角色
SET NAMES utf8mb4;
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NOW(), '127.0.0.1'
FROM `sys_role` r
CROSS JOIN `sys_permission` p
WHERE r.role_code IN ('admin', 'system', 'vue3', 'zuhuadmin')
AND (
p.perms LIKE 'mes:mes_raw_material_inspect_item:%'
OR p.perms LIKE 'mes:mes_raw_material_inspect_std:%'
OR p.id IN ('1900000000000000897', '1900000000000000906')
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.role_id = r.id AND rp.permission_id = p.id
);