去除供应商类型多余代码
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -1,11 +1,40 @@
|
||||
-- 客户、供应商主表增加合同开始时间、合同结束时间
|
||||
-- 已存在的库执行本脚本;列已存在时不要重复执行
|
||||
-- 客户主表增加合同开始时间、合同结束时间
|
||||
-- 供应商只增加合同结束时间;合同开始时间与原有合作开始日期重复,已有列则删除
|
||||
-- 客户列已存在时不要重复执行前面的 ALTER
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- 先去掉供应商上后加的合同开始时间,避免后续语句失败时这一列还留着
|
||||
SET @has_supplier_contract_start := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'sup_supplier'
|
||||
AND COLUMN_NAME = 'contract_start_date'
|
||||
);
|
||||
SET @drop_supplier_contract_start := IF(
|
||||
@has_supplier_contract_start > 0,
|
||||
'ALTER TABLE sup_supplier DROP COLUMN contract_start_date',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE drop_supplier_contract_start_stmt FROM @drop_supplier_contract_start;
|
||||
EXECUTE drop_supplier_contract_start_stmt;
|
||||
DEALLOCATE PREPARE drop_supplier_contract_start_stmt;
|
||||
|
||||
ALTER TABLE ctr_customer
|
||||
ADD COLUMN contract_start_date date DEFAULT NULL COMMENT '合同开始时间' AFTER credit_ed,
|
||||
ADD COLUMN contract_end_date date DEFAULT NULL COMMENT '合同结束时间' AFTER contract_start_date;
|
||||
|
||||
ALTER TABLE sup_supplier
|
||||
ADD COLUMN contract_start_date date DEFAULT NULL COMMENT '合同开始时间' AFTER cooperation_start_date,
|
||||
ADD COLUMN contract_end_date date DEFAULT NULL COMMENT '合同结束时间' AFTER contract_start_date;
|
||||
-- 供应商原有合作开始日期,只补合同结束时间(已有则跳过)
|
||||
SET @has_supplier_contract_end := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'sup_supplier'
|
||||
AND COLUMN_NAME = 'contract_end_date'
|
||||
);
|
||||
SET @add_supplier_contract_end := IF(
|
||||
@has_supplier_contract_end = 0,
|
||||
'ALTER TABLE sup_supplier ADD COLUMN contract_end_date date DEFAULT NULL COMMENT ''合同结束时间'' AFTER cooperation_start_date',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_supplier_contract_end_stmt FROM @add_supplier_contract_end;
|
||||
EXECUTE add_supplier_contract_end_stmt;
|
||||
DEALLOCATE PREPARE add_supplier_contract_end_stmt;
|
||||
|
||||
Reference in New Issue
Block a user