This commit is contained in:
zlwu committed 2026-08-19 16:33:51 +08:00
1 parent 08f3b76e24
commit c7a7b6fa45
19 files changed
+22594 -10954

No files matched your search

@@ -0,0 +1,91 @@
-- 入库放行审核:生产 / 质检菜单(sys_menu)
-- MySQL 5.7;可重复执行
-- 市场 → 细胞存储 原菜单(biz:storageReleaseReview:list)保持不变
-- 不写入 sys_role_menu:由管理员在角色管理中勾选新菜单
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @prm_id = CONVERT('PRM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @qcm_id = CONVERT('QCM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 注意:954…001 已占用「生产任务组合模版」,生产侧入库放行用 955…001
SET @menu_prod = CONVERT('95500000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @menu_qc = CONVERT('70000000000000000000000000000014' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 1) 生产 → 生产管理 → 入库放行审核
INSERT INTO sys_menu (
id, menu_name, parent_id, menu_type, path, component, perms,
is_frame, visible, status, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
@menu_prod,
'入库放行审核',
@prm_id,
'C',
'storage-release-review',
'/quality-inspection/storage-release-review/index',
'production:storageReleaseReview:list',
1, '1', '1', @tenant_no, 4,
'生产侧入库放行审核(仅审生产结论;双通过后可入库)',
NULL, '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = @menu_prod
OR m.perms COLLATE utf8mb4_unicode_ci = 'production:storageReleaseReview:list'
);
UPDATE sys_menu
SET
menu_name = '入库放行审核',
parent_id = @prm_id,
menu_type = 'C',
path = 'storage-release-review',
component = '/quality-inspection/storage-release-review/index',
perms = 'production:storageReleaseReview:list',
visible = '1',
status = '1',
order_num = 4,
remark = '生产侧入库放行审核(仅审生产结论;双通过后可入库)',
del_flag = 0,
update_time = NOW()
WHERE id COLLATE utf8mb4_unicode_ci = @menu_prod;
-- 2) 质检 → 质检管理 → 入库放行审核
INSERT INTO sys_menu (
id, menu_name, parent_id, menu_type, path, component, perms,
is_frame, visible, status, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
@menu_qc,
'入库放行审核',
@qcm_id,
'C',
'storage-release-review',
'/quality-inspection/storage-release-review/index',
'quality:storageReleaseReview:list',
1, '1', '1', @tenant_no, 3,
'质检侧入库放行审核(仅审质检结论;双通过后可入库)',
NULL, '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = @menu_qc
OR m.perms COLLATE utf8mb4_unicode_ci = 'quality:storageReleaseReview:list'
);
UPDATE sys_menu
SET
menu_name = '入库放行审核',
parent_id = @qcm_id,
menu_type = 'C',
path = 'storage-release-review',
component = '/quality-inspection/storage-release-review/index',
perms = 'quality:storageReleaseReview:list',
visible = '1',
status = '1',
order_num = 3,
remark = '质检侧入库放行审核(仅审质检结论;双通过后可入库)',
del_flag = 0,
update_time = NOW()
WHERE id COLLATE utf8mb4_unicode_ci = @menu_qc;
@@ -0,0 +1,111 @@
-- 入库放行审核:给指定角色授权(sys_role_menu)
-- MySQL 5.7;可重复执行
-- 研发主管 → 生产侧入库放行审核
-- 质量主管 → 质检侧入库放行审核
-- 祖先菜单(生产/生产管理、质检/质检管理)若已有则不重复插入
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 研发主管
SET @role_rd = CONVERT('2668804724054AB6A45DF35D2108138B' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 质量主管
SET @role_qa = CONVERT('35DD110367764827ACCCFEEBA1E21699' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 生产入库放行
SET @menu_prod = CONVERT('95500000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 质检入库放行
SET @menu_qc = CONVERT('70000000000000000000000000000014' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @top_prod = CONVERT('TOP00000000000000000000000000002' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @prm_id = CONVERT('PRM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @top_qc = CONVERT('TOP00000000000000000000000000003' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @qcm_id = CONVERT('QCM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @web_root = CONVERT('2' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 软删恢复
UPDATE sys_role_menu
SET del_flag = 0, update_time = NOW(), remark = 'grant storage release dual-gate'
WHERE tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND del_flag = 1
AND (
(role_id COLLATE utf8mb4_unicode_ci = @role_rd AND menu_id COLLATE utf8mb4_unicode_ci IN (@web_root, @top_prod, @prm_id, @menu_prod))
OR
(role_id COLLATE utf8mb4_unicode_ci = @role_qa AND menu_id COLLATE utf8mb4_unicode_ci IN (@web_root, @top_qc, @qcm_id, @menu_qc))
);
-- 研发主管:Web 根 + 生产 + 生产管理 + 生产入库放行
INSERT INTO sys_role_menu (
id, role_id, menu_id, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
UPPER(MD5(CONCAT(x.role_id, '|', x.menu_id))),
x.role_id,
x.menu_id,
@tenant_no,
0,
'grant storage release dual-gate',
'admin',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT @role_rd AS role_id, @web_root AS menu_id
UNION ALL SELECT @role_rd, @top_prod
UNION ALL SELECT @role_rd, @prm_id
UNION ALL SELECT @role_rd, @menu_prod
) x
WHERE EXISTS (
SELECT 1 FROM sys_role r
WHERE r.id COLLATE utf8mb4_unicode_ci = x.role_id AND r.del_flag = 0
)
AND EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = x.menu_id AND m.del_flag = 0
)
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id COLLATE utf8mb4_unicode_ci = x.role_id
AND rm.menu_id COLLATE utf8mb4_unicode_ci = x.menu_id
AND rm.tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND rm.del_flag = 0
);
-- 质量主管:Web 根 + 质检 + 质检管理 + 质检入库放行
INSERT INTO sys_role_menu (
id, role_id, menu_id, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
UPPER(MD5(CONCAT(x.role_id, '|', x.menu_id))),
x.role_id,
x.menu_id,
@tenant_no,
0,
'grant storage release dual-gate',
'admin',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT @role_qa AS role_id, @web_root AS menu_id
UNION ALL SELECT @role_qa, @top_qc
UNION ALL SELECT @role_qa, @qcm_id
UNION ALL SELECT @role_qa, @menu_qc
) x
WHERE EXISTS (
SELECT 1 FROM sys_role r
WHERE r.id COLLATE utf8mb4_unicode_ci = x.role_id AND r.del_flag = 0
)
AND EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = x.menu_id AND m.del_flag = 0
)
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id COLLATE utf8mb4_unicode_ci = x.role_id
AND rm.menu_id COLLATE utf8mb4_unicode_ci = x.menu_id
AND rm.tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND rm.del_flag = 0
);
@@ -0,0 +1,42 @@
-- 市场 → 细胞存储 → 入库放行审核:取消全部角色授权 + 菜单软删
-- MySQL 5.7;可重复执行
-- 目标菜单:id=70000000000000000000000000000011
-- perms=biz:storageReleaseReview:list
-- 不影响生产/质检侧入库放行审核菜单与授权
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @menu_market = CONVERT('70000000000000000000000000000011' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 1) 取消任意角色对该菜单的授权(软删 sys_role_menu)
UPDATE sys_role_menu
SET
del_flag = 1,
update_time = NOW(),
remark = 'revoke market storage release review (overview offline)'
WHERE menu_id COLLATE utf8mb4_unicode_ci = @menu_market
AND del_flag = 0;
-- 兼容按 perms 关联(若存在重复/历史 id)
UPDATE sys_role_menu rm
INNER JOIN sys_menu m
ON m.id COLLATE utf8mb4_unicode_ci = rm.menu_id COLLATE utf8mb4_unicode_ci
SET
rm.del_flag = 1,
rm.update_time = NOW(),
rm.remark = 'revoke market storage release review (overview offline)'
WHERE m.perms COLLATE utf8mb4_unicode_ci = 'biz:storageReleaseReview:list'
AND rm.del_flag = 0;
-- 2) 菜单表虚拟删除
UPDATE sys_menu
SET
del_flag = 1,
visible = '0',
status = '0',
update_time = NOW(),
remark = '市场侧入库放行审核暂下线(改由生产/质检入口)'
WHERE (
id COLLATE utf8mb4_unicode_ci = @menu_market
OR perms COLLATE utf8mb4_unicode_ci = 'biz:storageReleaseReview:list'
)
AND del_flag = 0;