From f2605183fb42384f365fbcc323871df9e16c5d5f Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 18:21:25 +0800
Subject: [PATCH] chore: sql script for review audit db changes

---
 sql/mysql/xgdl_review_audit_pending_changes.sql |  279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 279 insertions(+), 0 deletions(-)

diff --git a/sql/mysql/xgdl_review_audit_pending_changes.sql b/sql/mysql/xgdl_review_audit_pending_changes.sql
new file mode 100644
index 0000000..38e98c2
--- /dev/null
+++ b/sql/mysql/xgdl_review_audit_pending_changes.sql
@@ -0,0 +1,279 @@
+-- ============================================================================
+-- 鏂扮枂-鏂伴珮鍔� 椤圭洰锛氬崟鎹鏍哥姸鎬佹満鏀归�� + 鐢靛姏浣滀笟璁″垝鐢熸垚宸ュ崟 寰呮墽琛屾暟鎹簱鍙樻洿
+-- 鐩爣搴擄細mom-xgdl
+-- 璇存槑锛氭湰鑴氭湰骞傜瓑锛屽彲閲嶅鎵ц锛涘凡瀛樺湪鐨勫瓧娈�/鑿滃崟浼氳嚜鍔ㄨ烦杩囥��
+--       寮�鍙戝簱锛�192.168.197.128锛夊凡鍏ㄩ儴鎵ц杩囷紝鏈剼鏈敤浜庡悜鍏跺畠鐜锛堝娴嬭瘯/鐢熶骇锛夊悓姝ャ��
+-- 瀵瑰簲浠g爜鎻愪氦锛�
+--   refactor(crm/erp/hrm/mes): 鍗曟嵁瀹℃牳鏀逛负瀹℃壒閰嶇疆鐘舵�佹満
+--   fix(mes): 鐢靛姏浣滀笟璁″垝鐢熸垚宸ュ崟琛ュ厖缂栫爜瑙勫垯鍙栧彿
+-- ============================================================================
+
+SET NAMES utf8mb4;
+
+-- ============================================================================
+-- 绗竴閮ㄥ垎锛�20 寮犲崟鎹〃鏂板瀹℃牳浜哄洓瀛楁
+--   reviewer_id / reviewer_name / review_time / review_remark
+-- ============================================================================
+
+DROP TABLE IF EXISTS _tmp_xgdl_review_cols;
+CREATE TABLE _tmp_xgdl_review_cols (
+    tbl    VARCHAR(64)  NOT NULL,
+    col    VARCHAR(64)  NOT NULL,
+    coldef VARCHAR(255) NOT NULL
+);
+
+INSERT INTO _tmp_xgdl_review_cols (tbl, col, coldef) VALUES
+-- CRM
+('crm_cancellation',            'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('crm_cancellation',            'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('crm_cancellation',            'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('crm_cancellation',            'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('crm_contract',                'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('crm_contract',                'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('crm_contract',                'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('crm_contract',                'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('crm_invoice',                 'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('crm_invoice',                 'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('crm_invoice',                 'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('crm_invoice',                 'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('crm_refund',                  'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('crm_refund',                  'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('crm_refund',                  'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('crm_refund',                  'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+-- ERP
+('erp_finance_payment',         'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('erp_finance_payment',         'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('erp_finance_payment',         'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('erp_finance_payment',         'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('erp_purchase_request',        'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('erp_purchase_request',        'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('erp_purchase_request',        'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('erp_purchase_request',        'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+-- HRM
+('hrm_leave_application',       'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_leave_application',       'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_leave_application',       'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_leave_application',       'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('hrm_regularize_application',  'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_regularize_application',  'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_regularize_application',  'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_regularize_application',  'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('hrm_resignation_application', 'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_resignation_application', 'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_resignation_application', 'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_resignation_application', 'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('hrm_transfer_application',    'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_transfer_application',    'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_transfer_application',    'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_transfer_application',    'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('hrm_attendance_exception',    'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_attendance_exception',    'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_attendance_exception',    'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_attendance_exception',    'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('hrm_performance_appraise',    'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('hrm_performance_appraise',    'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('hrm_performance_appraise',    'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('hrm_performance_appraise',    'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+-- MES
+('mes_pd_project',              'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_pd_project',              'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_pd_project',              'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_pd_project',              'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('product_tech_confirm',        'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('product_tech_confirm',        'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('product_tech_confirm',        'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('product_tech_confirm',        'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_equipment_receipt',    'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_equipment_receipt',    'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_equipment_receipt',    'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_equipment_receipt',    'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_item_receipt',         'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_item_receipt',         'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_item_receipt',         'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_item_receipt',         'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_misc_issue',           'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_misc_issue',           'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_misc_issue',           'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_misc_issue',           'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_misc_receipt',         'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_misc_receipt',         'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_misc_receipt',         'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_misc_receipt',         'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_return_vendor',        'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_return_vendor',        'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_return_vendor',        'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_return_vendor',        'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�'''),
+('mes_wm_stock_taking_task',    'reviewer_id',    'bigint COMMENT ''瀹℃牳浜虹敤鎴风紪鍙凤紙鎻愪氦瀹℃壒鏃舵寚瀹氾級'''),
+('mes_wm_stock_taking_task',    'reviewer_name',  'varchar(64) COMMENT ''瀹℃牳浜哄鍚嶏紙鍐椾綑锛�'''),
+('mes_wm_stock_taking_task',    'review_time',    'datetime COMMENT ''瀹℃牳鏃堕棿'''),
+('mes_wm_stock_taking_task',    'review_remark',  'varchar(500) COMMENT ''瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛�''');
+
+DROP PROCEDURE IF EXISTS xgdl_add_review_cols;
+DELIMITER $$
+CREATE PROCEDURE xgdl_add_review_cols()
+BEGIN
+    DECLARE v_done INT DEFAULT 0;
+    DECLARE v_tbl VARCHAR(64);
+    DECLARE v_col VARCHAR(64);
+    DECLARE v_def VARCHAR(255);
+    DECLARE cur CURSOR FOR SELECT tbl, col, coldef FROM _tmp_xgdl_review_cols;
+    DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1;
+
+    OPEN cur;
+    read_loop: LOOP
+        FETCH cur INTO v_tbl, v_col, v_def;
+        IF v_done = 1 THEN
+            LEAVE read_loop;
+        END IF;
+        IF EXISTS (SELECT 1 FROM information_schema.tables
+                   WHERE table_schema = DATABASE() AND table_name = v_tbl)
+           AND NOT EXISTS (SELECT 1 FROM information_schema.columns
+                   WHERE table_schema = DATABASE() AND table_name = v_tbl AND column_name = v_col)
+        THEN
+            SET @ddl = CONCAT('ALTER TABLE `', v_tbl, '` ADD COLUMN `', v_col, '` ', v_def);
+            PREPARE stmt FROM @ddl;
+            EXECUTE stmt;
+            DEALLOCATE PREPARE stmt;
+        END IF;
+    END LOOP;
+    CLOSE cur;
+END$$
+DELIMITER ;
+
+CALL xgdl_add_review_cols();
+DROP PROCEDURE IF EXISTS xgdl_add_review_cols;
+DROP TABLE IF EXISTS _tmp_xgdl_review_cols;
+
+-- ============================================================================
+-- 绗簩閮ㄥ垎锛氬鏍告寜閽彍鍗曪紙system_menu锛宼ype=3 鎸夐挳锛�
+--   鎸傝浇浣嶇疆锛氫笌鍚岃祫婧愩�屼慨鏀广�嶆寜閽悓鐖剁骇锛涘凡瀛樺湪鍒欒烦杩�
+-- ============================================================================
+
+-- 閫愭潯鎻掑叆锛氬悕绉般�佹潈闄愩�侀敋鐐规潈闄愶紙鍚岃祫婧愮殑 :update 鎸夐挳锛�
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '閿�鎴风敵璇峰鏍�' AS name, 'crm:cancellation:audit' AS perm, 'crm:cancellation:update' AS anchor) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'crm:cancellation:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'crm:cancellation:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鍚堝悓瀹℃牳' AS name, 'crm:contract:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'crm:contract:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'crm:contract:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鍙戠エ瀹℃牳' AS name, 'crm:invoice:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'crm:invoice:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'crm:invoice:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '閫�璐瑰崟瀹℃牳' AS name, 'crm:refund:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'crm:refund:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'crm:refund:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '浠樻鍗曞鏍�' AS name, 'erp:finance-payment:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'erp:finance-payment:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'erp:finance-payment:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '閲囪喘鐢宠瀹℃牳' AS name, 'erp:purchase-request:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'erp:purchase-request:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'erp:purchase-request:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '璇峰亣鐢宠瀹℃牳' AS name, 'hrm:leave:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'hrm:leave:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'hrm:leave:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '杞鐢宠瀹℃牳' AS name, 'hrm:regularize:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'hrm:regularize:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'hrm:regularize:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '绂昏亴鐢宠瀹℃牳' AS name, 'hrm:resignation:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'hrm:resignation:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'hrm:resignation:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '璋冨姩鐢宠瀹℃牳' AS name, 'hrm:transfer:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'hrm:transfer:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'hrm:transfer:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鑰冨嫟寮傚父瀹℃牳' AS name, 'hrm:attendance-exception:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'hrm:attendance-exception:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'hrm:attendance-exception:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '椤圭洰瀹℃牳' AS name, 'mes:pd-project:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:pd-project:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:pd-project:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鎶�鏈‘璁ゅ嚱瀹℃牳' AS name, 'mes:pd-tech-confirm:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:pd-tech-confirm:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:pd-tech-confirm:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '閲囪喘鍏ュ簱鍗曞鏍�' AS name, 'mes:wm-item-receipt:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm-item-receipt:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm-item-receipt:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鏉傞」鍑哄簱鍗曞鏍�' AS name, 'mes:wm-misc-issue:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm-misc-issue:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm-misc-issue:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '閲囪喘閫�璐у崟瀹℃牳' AS name, 'mes:wm-return-vendor:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm-return-vendor:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm-return-vendor:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鐩樼偣浠诲姟瀹℃牳' AS name, 'mes:wm-stock-taking-task:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm-stock-taking-task:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm-stock-taking-task:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '璁惧鍏ュ簱鍗曞鏍�' AS name, 'mes:wm:equipment-receipt:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm:equipment-receipt:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm:equipment-receipt:audit') m);
+
+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 t.name, t.perm, 3, 99, a.parent_id, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM (SELECT '鏉傞」鍏ュ簱鍗曞鏍�' AS name, 'mes:wm:misc-receipt:audit' AS perm) t
+JOIN (SELECT MIN(x.parent_id) AS parent_id FROM system_menu x WHERE x.deleted = 0 AND x.permission = 'mes:wm:misc-receipt:update') a ON 1 = 1
+WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM system_menu WHERE deleted = 0 AND permission = 'mes:wm:misc-receipt:audit') m);
+
+-- ============================================================================
+-- 绗笁閮ㄥ垎锛氱數鍔涗綔涓氳鍒掔敓鎴愬伐鍗� 鈥斺�� 宸ュ崟缂栫爜鍙栧彿瑙勫垯锛堟棤鍙樻洿锛屼粎璇存槑锛�
+--   fix(mes) 浣跨敤 PRO_WORK_ORDER_CODE 缂栫爜瑙勫垯鑷姩鐢熸垚宸ュ崟缂栫爜銆�
+--   璇ヨ鍒欙紙WO_ + yyyyMMdd + 4 浣嶅惊鐜祦姘村彿锛岃鍒欑粍鎴� 3 娈碉級鍦�
+--   mes_md_auto_code_rule / mes_md_auto_code_part 涓凡瀛樺湪锛屾棤闇�鎵ц SQL銆�
+--   鍏ㄦ柊鐜璇锋墽琛� sql/mysql/mes_auto_code_rule_init.sql 鍒濆鍖栧叏閮ㄧ紪鐮佽鍒�
+--   锛堟敞鎰忥細璇ヨ剼鏈細 TRUNC 寮忛噸寤鸿鍒欒〃锛屼粎閫傜敤浜庨娆″垵濮嬪寲锛屽嬁鍦ㄥ凡鏈夋暟鎹殑鐜鎵ц锛夈��
+-- ============================================================================
+
+-- 瀹屾垚銆傚彲鎵ц浠ヤ笅璇彞鏍¢獙锛�
+-- SELECT table_name, column_name FROM information_schema.columns
+--  WHERE table_schema = DATABASE() AND column_name = 'reviewer_id';
+-- SELECT permission FROM system_menu WHERE deleted = 0 AND permission LIKE '%:audit';

--
Gitblit v1.9.3