From 14c80fbd16a51a355138345ecf69df9ca37746bf Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期五, 06 十一月 2026 09:18:32 +0800
Subject: [PATCH] 完善售后退货联动和订单作废保护

---
 sql/mysql/after_sale_finance_draft_menu_20261105.sql |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/sql/mysql/after_sale_finance_draft_menu_20261105.sql b/sql/mysql/after_sale_finance_draft_menu_20261105.sql
index 7aaa361..6dafee6 100644
--- a/sql/mysql/after_sale_finance_draft_menu_20261105.sql
+++ b/sql/mysql/after_sale_finance_draft_menu_20261105.sql
@@ -1,9 +1,24 @@
--- 鍦ㄨ储鍔$鐞嗕笅澧炲姞鐙珛瀹℃牳鑽夌鍏ュ彛锛涜鑹叉潈闄愬湪鐩爣绯荤粺涓樉寮忓垎閰嶃��
-SET @finance_parent := (SELECT id FROM system_menu WHERE path='finance' AND type=1 AND deleted=b'0' AND name='璐㈠姟绠$悊' LIMIT 1);
+-- 鍏ュ彛褰掑叆鏃㈡湁鍞悗绠$悊涓�绾ц彍鍗曪紝涓嶆柊澧炴垨淇敼涓�绾ц彍鍗曘��
+-- 鐩存帴鎵ц鍚庨渶鎸夌洰鏍囩幆澧冭繍缁存祦绋嬪埛鏂扮浉鍏宠彍鍗曞強瑙掕壊鏉冮檺缂撳瓨銆�
+SET @finance_parent := (SELECT id FROM system_menu WHERE path='/aftersales' AND parent_id=0 AND type=1 AND deleted=b'0' LIMIT 1);
 INSERT INTO system_menu (name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,updater)
 SELECT '鍞悗璐㈠姟鑽夌','',2,30,@finance_parent,'after-sale-draft','lucide:file-check','erp/finance/after-sale-draft/index','ErpAfterSaleFinanceDraft',0,b'1',b'1',b'1','1','1'
 WHERE @finance_parent IS NOT NULL AND NOT EXISTS(SELECT 1 FROM system_menu WHERE component='erp/finance/after-sale-draft/index' AND deleted=b'0');
 SET @finance_page := (SELECT id FROM system_menu WHERE component='erp/finance/after-sale-draft/index' AND deleted=b'0' LIMIT 1);
+-- 鍏煎鍏堝墠瀹夎鍒� ERP 璐㈠姟绠$悊涓嬬殑鐗堟湰锛屼粎绉诲姩宸茬煡鐨勬棫鍏ュ彛銆�
+UPDATE system_menu SET parent_id=@finance_parent, path='after-sale-draft', updater='1', update_time=NOW()
+WHERE id=@finance_page AND @finance_parent IS NOT NULL AND parent_id IN
+ (SELECT id FROM (SELECT f.id FROM system_menu f JOIN system_menu e ON f.parent_id=e.id
+   WHERE f.path='finance' AND e.path='/erp' AND e.parent_id=0 AND f.deleted=b'0' AND e.deleted=b'0') old_parent);
+-- 鍘熸湁鑽夌浣跨敤瑙掕壊闇�瑕佸敭鍚庣鐞嗙洰褰曟墠鑳界湅鍒板凡鎺堟潈鐨勯〉闈€��
+INSERT INTO system_role_menu (role_id,menu_id,creator,updater,tenant_id)
+SELECT DISTINCT rm.role_id,@finance_parent,'1','1',rm.tenant_id
+FROM system_role_menu rm
+WHERE @finance_parent IS NOT NULL AND @finance_page IS NOT NULL AND rm.deleted=b'0'
+  AND rm.menu_id=@finance_page
+  AND NOT EXISTS (SELECT 1 FROM system_role_menu existing
+    WHERE existing.role_id=rm.role_id AND existing.tenant_id=rm.tenant_id
+      AND existing.menu_id=@finance_parent AND existing.deleted=b'0');
 INSERT INTO system_menu (name,permission,type,sort,parent_id,path,icon,status,visible,keep_alive,always_show,creator,updater)
 SELECT p.name,p.permission,3,p.sort_no,@finance_page,'','',0,b'1',b'1',b'1','1','1'
 FROM (SELECT '鑽夌鏌ヨ' name,'erp:after-sale-finance:query' permission,1 sort_no UNION ALL SELECT '鑽夌瀹℃牳','erp:after-sale-finance:review',2) p

--
Gitblit v1.9.3