@@ -1,47 +1,43 @@
-- 数据管理: 供应商类型
-- 业务表与字典 bms_supplier_type 使用同一套编码,初始数据与现有供应商档案口径一致
-- 供应商类型只维护在数据字典 bms_supplier_type
-- 供应商档案下拉、列表、导出都读该字典;不再使用业务表和独立菜单
SET NAMES utf8mb4 ;
CREATE TABLE IF NOT EXISTS bms_supplier_type (
type_id bigint ( 20 ) NOT NULL AUTO_INCREMENT COMMENT ' 类型ID ' ,
type_code varchar ( 32 ) NOT NULL COMMENT ' 类型编码(字典键值) ' ,
type_name varchar ( 100 ) NOT NULL COMMENT ' 类型名称 ' ,
type_sort int ( 4 ) NOT NULL DEFAULT 0 COMMENT ' 显示排序 ' ,
status char ( 1 ) NOT NULL DEFAULT ' 0 ' COMMENT ' 状态(0正常 1停用) ' ,
remark varchar ( 500 ) DEFAULT NULL COMMENT ' 备注 ' ,
create_by varchar ( 64 ) DEFAULT ' ' COMMENT ' 创建者 ' ,
create_time datetime DEFAULT NULL COMMENT ' 创建时间 ' ,
update_by varchar ( 64 ) DEFAULT ' ' COMMENT ' 更新者 ' ,
update_time datetime DEFAULT NULL COMMENT ' 更新时间 ' ,
del_flag char ( 1 ) DEFAULT ' 0 ' COMMENT ' 删除标记(0存在 1删除) ' ,
PRIMARY KEY ( type_id ) ,
UNIQUE KEY uk_bms_supplier_type_code ( type_code ) ,
UNIQUE KEY uk_bms_supplier_type_name ( type_name ) ,
KEY idx_bms_supplier_type_status ( status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = ' 供应商类型 ' ;
-- 已执行过旧脚本时,拆掉供应商类型业务表和「数据管理 / 供应商类型」菜单
DROP TABLE IF EXISTS bms_supplier_type ;
-- 已有供应商档案的类型列只有 1 位,放宽后才能保存新编码
DELETE rm FROM sys_role_menu rm
INNER JOIN sys_menu m ON rm . menu_id = m . menu_id
INNER JOIN sys_menu p ON m . parent_id = p . menu_id
WHERE m . menu_type = ' F '
AND ( p . perms = ' data:supplierType:list ' OR p . component = ' data/supplierType/index ' ) ;
DELETE m FROM sys_menu m
INNER JOIN sys_menu p ON m . parent_id = p . menu_id
WHERE m . menu_type = ' F '
AND ( p . perms = ' data:supplierType:list ' OR p . component = ' data/supplierType/index ' ) ;
DELETE rm FROM sys_role_menu rm
INNER JOIN sys_menu m ON rm . menu_id = m . menu_id
WHERE m . perms LIKE ' data:supplierType:% '
OR m . component = ' data/supplierType/index ' ;
DELETE FROM sys_menu
WHERE perms LIKE ' data:supplierType:% '
OR component = ' data/supplierType/index ' ;
-- 类型编码不再限制为 1 位,与字典键值对齐
ALTER TABLE sup_supplier
MODIFY COLUMN supplier_type varchar ( 32 ) DEFAULT NULL COMMENT ' 供应商类型(字典 bms_supplier_type) ' ;
INSERT INTO bms_supplier_type ( type_code , type_name , type_sort , status , remark , create_by , create_time , del_flag )
SELECT v . type_code , v . type_name , v . type_sort , ' 0 ' , v . remark , ' admin ' , sysdate ( ) , ' 0 '
FROM (
SELECT ' 1 ' AS type_code , ' 卡车行 ' AS type_name , 1 AS type_sort , ' 原供应商档案口径 ' AS remark
UNION ALL SELECT ' 2 ' , ' 航司代理 ' , 2 , ' 原供应商档案口径 '
UNION ALL SELECT ' 3 ' , ' 报关行 ' , 3 , ' 原供应商档案口径 '
UNION ALL SELECT ' 4 ' , ' 清关行 ' , 4 , ' 原供应商档案口径 '
UNION ALL SELECT ' 5 ' , ' 尾派服务商 ' , 5 , ' 原供应商档案口径 '
UNION ALL SELECT ' 6 ' , ' 报关代理 ' , 6 , ' 原供应商档案口径 '
) v
WHERE NOT EXISTS (
SELECT 1 FROM bms_supplier_type t WHERE t . type_code = v . type_code OR t . type_name = v . type_name
) ;
INSERT INTO sys_dict_type ( dict_name , dict_type , status , create_by , create_time , remark )
SELECT ' 供应商类型 ' , ' bms_supplier_type ' , ' 0 ' , ' admin ' , sysdate ( ) , ' 供应商档案使用的类型,与供应商类型管理保持一致 '
SELECT ' 供应商类型 ' , ' bms_supplier_type ' , ' 0 ' , ' admin ' , sysdate ( ) , ' 供应商档案使用的类型,在系统字典中维护 '
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_dict_type WHERE dict_type = ' bms_supplier_type ' ) ;
UPDATE sys_dict_type
SET dict_name = ' 供应商类型 ' ,
remark = ' 供应商档案使用的类型,在系统字典中维护 '
WHERE dict_type = ' bms_supplier_type ' ;
INSERT INTO sys_dict_data ( dict_sort , dict_label , dict_value , dict_type , css_class , list_class , is_default , status , create_by , create_time , remark )
SELECT v . type_sort , v . type_name , v . type_code , ' bms_supplier_type ' , ' ' , ' primary ' , ' N ' , ' 0 ' , ' admin ' , sysdate ( ) , v . remark
FROM (
@@ -55,49 +51,3 @@ FROM (
WHERE NOT EXISTS (
SELECT 1 FROM sys_dict_data d WHERE d . dict_type = ' bms_supplier_type ' AND d . dict_value = v . type_code
) ;
SET @ parentId : = (
SELECT menu_id FROM sys_menu
WHERE path = ' data ' AND menu_type = ' M '
ORDER BY menu_id ASC LIMIT 1
) ;
SET @ parentId : = IFNULL ( @ parentId , (
SELECT parent_id FROM sys_menu
WHERE perms = ' data:region:list ' OR component = ' data/region/index ' OR component = ' data/exchangerate/index '
ORDER BY menu_id ASC LIMIT 1
) ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , query , route_name , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time , remark )
SELECT 2490 , ' 供应商类型 ' , @ parentId , 40 , ' supplierType ' , ' data/supplierType/index ' , ' ' , ' SupplierType ' , 1 , 0 , ' C ' , ' 0 ' , ' 0 ' , ' data:supplierType:list ' , ' tree ' , ' admin ' , sysdate ( ) , ' 供应商类型维护,并同步字典 bms_supplier_type '
FROM DUAL WHERE @ parentId IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2490 OR perms = ' data:supplierType:list ' ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2491 , ' 查询 ' , 2490 , 1 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:query ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2491 ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2492 , ' 新增 ' , 2490 , 2 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:add ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2492 ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2493 , ' 修改 ' , 2490 , 3 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:edit ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2493 ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2494 , ' 删除 ' , 2490 , 4 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:remove ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2494 ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2495 , ' 导出 ' , 2490 , 5 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:export ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2495 ) ;
INSERT INTO sys_menu ( menu_id , menu_name , parent_id , order_num , path , component , is_frame , is_cache , menu_type , visible , status , perms , icon , create_by , create_time )
SELECT 2496 , ' 启停 ' , 2490 , 6 , ' ' , NULL , 1 , 0 , ' F ' , ' 0 ' , ' 0 ' , ' data:supplierType:changeStatus ' , ' # ' , ' admin ' , sysdate ( )
FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE menu_id = 2496 ) ;
INSERT INTO sys_role_menu ( role_id , menu_id )
SELECT 1 , m . menu_id FROM (
SELECT 2490 AS menu_id UNION SELECT 2491 UNION SELECT 2492 UNION SELECT 2493
UNION SELECT 2494 UNION SELECT 2495 UNION SELECT 2496
) m
WHERE NOT EXISTS ( SELECT 1 FROM sys_role_menu rm WHERE rm . role_id = 1 AND rm . menu_id = m . menu_id ) ;