完成中介库导入改造

This commit is contained in:
wkc
2026-04-20 15:17:31 +08:00
parent 60a7906eb3
commit 6385778e4c
31 changed files with 1566 additions and 373 deletions

View 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 = '其他'
);

View File

@@ -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);