完成中介库导入改造
This commit is contained in:
153
sql/migration/2026-04-20-fix-ccdi-person-sub-type-dict.sql
Normal file
153
sql/migration/2026-04-20-fix-ccdi-person-sub-type-dict.sql
Normal file
@@ -0,0 +1,153 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET CHARACTER SET utf8mb4;
|
||||
SET character_set_client = utf8mb4;
|
||||
SET character_set_connection = utf8mb4;
|
||||
SET character_set_results = utf8mb4;
|
||||
|
||||
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
|
||||
SELECT '人员子类型', 'ccdi_person_sub_type', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_type
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_type
|
||||
SET dict_name = '人员子类型',
|
||||
status = '0',
|
||||
remark = '中介黑名单-人员子类型',
|
||||
update_by = 'admin',
|
||||
update_time = NOW()
|
||||
WHERE dict_type = 'ccdi_person_sub_type';
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 1,
|
||||
dict_label = '本人',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '本人';
|
||||
|
||||
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 1, '本人', '本人', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '本人'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 2,
|
||||
dict_label = '配偶',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '配偶';
|
||||
|
||||
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 2, '配偶', '配偶', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '配偶'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 3,
|
||||
dict_label = '子女',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '子女';
|
||||
|
||||
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 3, '子女', '子女', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '子女'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 4,
|
||||
dict_label = '父母',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '父母';
|
||||
|
||||
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 4, '父母', '父母', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '父母'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 5,
|
||||
dict_label = '兄弟姐妹',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '兄弟姐妹';
|
||||
|
||||
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 5, '兄弟姐妹', '兄弟姐妹', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '兄弟姐妹'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_data
|
||||
SET dict_sort = 6,
|
||||
dict_label = '其他',
|
||||
css_class = '',
|
||||
list_class = 'default',
|
||||
is_default = 'N',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '中介黑名单-人员子类型'
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '其他';
|
||||
|
||||
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 6, '其他', '其他', 'ccdi_person_sub_type', '', 'default', 'N', '0', 'admin', NOW(), '中介黑名单-人员子类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type = 'ccdi_person_sub_type'
|
||||
AND dict_value = '其他'
|
||||
);
|
||||
@@ -0,0 +1,73 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET CHARACTER SET utf8mb4;
|
||||
SET character_set_client = utf8mb4;
|
||||
SET character_set_connection = utf8mb4;
|
||||
SET character_set_results = utf8mb4;
|
||||
|
||||
-- 迁移前检查 1:找不到对应本人 biz_id 的亲属记录
|
||||
SELECT
|
||||
child.biz_id AS child_biz_id,
|
||||
child.name AS child_name,
|
||||
child.person_id AS child_person_id,
|
||||
child.related_num_id AS legacy_owner_biz_id
|
||||
FROM ccdi_biz_intermediary child
|
||||
LEFT JOIN ccdi_biz_intermediary parent
|
||||
ON child.related_num_id = parent.biz_id
|
||||
AND parent.person_sub_type = '本人'
|
||||
WHERE child.person_sub_type <> '本人'
|
||||
AND (child.related_num_id IS NULL OR parent.biz_id IS NULL);
|
||||
|
||||
-- 迁移前检查 2:本人 person_id 为空的记录
|
||||
SELECT
|
||||
child.biz_id AS child_biz_id,
|
||||
child.name AS child_name,
|
||||
child.person_id AS child_person_id,
|
||||
child.related_num_id AS legacy_owner_biz_id,
|
||||
parent.biz_id AS parent_biz_id,
|
||||
parent.name AS parent_name,
|
||||
parent.person_id AS parent_person_id
|
||||
FROM ccdi_biz_intermediary child
|
||||
JOIN ccdi_biz_intermediary parent
|
||||
ON child.related_num_id = parent.biz_id
|
||||
AND parent.person_sub_type = '本人'
|
||||
WHERE child.person_sub_type <> '本人'
|
||||
AND (parent.person_id IS NULL OR TRIM(parent.person_id) = '');
|
||||
|
||||
-- 迁移前检查 3:迁移后同一中介本人下 related_num_id + person_id 冲突的记录
|
||||
SELECT
|
||||
parent.person_id AS owner_person_id,
|
||||
child.person_id AS relative_person_id,
|
||||
COUNT(*) AS conflict_count,
|
||||
GROUP_CONCAT(child.biz_id ORDER BY child.biz_id SEPARATOR ',') AS child_biz_ids
|
||||
FROM ccdi_biz_intermediary child
|
||||
JOIN ccdi_biz_intermediary parent
|
||||
ON child.related_num_id = parent.biz_id
|
||||
AND parent.person_sub_type = '本人'
|
||||
WHERE child.person_sub_type <> '本人'
|
||||
AND parent.person_id IS NOT NULL
|
||||
AND TRIM(parent.person_id) <> ''
|
||||
GROUP BY parent.person_id, child.person_id
|
||||
HAVING COUNT(*) > 1;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
UPDATE ccdi_biz_intermediary child
|
||||
JOIN ccdi_biz_intermediary parent
|
||||
ON child.related_num_id = parent.biz_id
|
||||
SET child.related_num_id = parent.person_id
|
||||
WHERE child.person_sub_type <> '本人';
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- 迁移后检查:亲属记录应统一按本人证件号码关联
|
||||
SELECT
|
||||
child.biz_id AS child_biz_id,
|
||||
child.related_num_id AS owner_person_id,
|
||||
parent.biz_id AS parent_biz_id,
|
||||
parent.person_id AS parent_person_id
|
||||
FROM ccdi_biz_intermediary child
|
||||
LEFT JOIN ccdi_biz_intermediary parent
|
||||
ON child.related_num_id = parent.person_id
|
||||
AND parent.person_sub_type = '本人'
|
||||
WHERE child.person_sub_type <> '本人'
|
||||
AND (child.related_num_id IS NULL OR parent.biz_id IS NULL);
|
||||
Reference in New Issue
Block a user