修复中介库

This commit is contained in:
wkc
2026-04-20 11:24:18 +08:00
parent c278d11390
commit 2b321a8621
31 changed files with 1360 additions and 1466 deletions

View File

@@ -4,57 +4,86 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiIntermediaryMapper">
<!--
中介黑名单联合查询
支持按中介类型筛选: 1=个人中介, 2=实体中介, null=全部
使用MyBatis Plus分页插件自动处理分页
-->
<!-- 中介综合库联合查询 -->
<select id="selectIntermediaryList" resultType="com.ruoyi.info.collection.domain.vo.CcdiIntermediaryVO">
SELECT * FROM (
<!-- 查询个人中介 -->
SELECT
biz_id as id,
name,
person_id as certificate_no,
'1' as intermediary_type,
person_type,
company,
data_source,
create_time,
update_time
CAST('INTERMEDIARY' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci AS record_type,
biz_id COLLATE utf8mb4_general_ci AS record_id,
name COLLATE utf8mb4_general_ci AS name,
person_id COLLATE utf8mb4_general_ci AS certificate_no,
name COLLATE utf8mb4_general_ci AS related_intermediary_name,
CAST('本人' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci AS relation_text,
person_id COLLATE utf8mb4_general_ci AS related_intermediary_certificate_no,
create_time
FROM ccdi_biz_intermediary
WHERE person_sub_type COLLATE utf8mb4_general_ci = '本人' COLLATE utf8mb4_general_ci
UNION ALL
<!-- 查询实体中介 -->
SELECT
social_credit_code as id,
enterprise_name as name,
social_credit_code as certificate_no,
'2' as intermediary_type,
'实体' as person_type,
enterprise_name as company,
data_source,
create_time,
update_time
FROM ccdi_enterprise_base_info
WHERE risk_level = '1' AND ent_source = 'INTERMEDIARY'
CAST('RELATIVE' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci AS record_type,
child.biz_id COLLATE utf8mb4_general_ci AS record_id,
child.name COLLATE utf8mb4_general_ci AS name,
child.person_id COLLATE utf8mb4_general_ci AS certificate_no,
parent.name COLLATE utf8mb4_general_ci AS related_intermediary_name,
child.person_sub_type COLLATE utf8mb4_general_ci AS relation_text,
parent.person_id COLLATE utf8mb4_general_ci AS related_intermediary_certificate_no,
child.create_time
FROM ccdi_biz_intermediary child
INNER JOIN ccdi_biz_intermediary parent
ON child.related_num_id COLLATE utf8mb4_general_ci = parent.biz_id COLLATE utf8mb4_general_ci
AND parent.person_sub_type COLLATE utf8mb4_general_ci = '本人' COLLATE utf8mb4_general_ci
WHERE child.person_sub_type IS NOT NULL
AND child.person_sub_type COLLATE utf8mb4_general_ci != '本人' COLLATE utf8mb4_general_ci
UNION ALL
SELECT
CAST('ENTERPRISE_RELATION' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci AS record_type,
CAST(rel.id AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci AS record_id,
COALESCE(
ent.enterprise_name COLLATE utf8mb4_general_ci,
rel.social_credit_code COLLATE utf8mb4_general_ci
) COLLATE utf8mb4_general_ci AS name,
rel.social_credit_code COLLATE utf8mb4_general_ci AS certificate_no,
parent.name COLLATE utf8mb4_general_ci AS related_intermediary_name,
COALESCE(
NULLIF(rel.relation_person_post COLLATE utf8mb4_general_ci, ''),
CAST('实体' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_general_ci
) COLLATE utf8mb4_general_ci AS relation_text,
parent.person_id COLLATE utf8mb4_general_ci AS related_intermediary_certificate_no,
rel.create_time
FROM ccdi_intermediary_enterprise_relation rel
INNER JOIN ccdi_biz_intermediary parent
ON rel.intermediary_biz_id COLLATE utf8mb4_general_ci = parent.biz_id COLLATE utf8mb4_general_ci
AND parent.person_sub_type COLLATE utf8mb4_general_ci = '本人' COLLATE utf8mb4_general_ci
LEFT JOIN ccdi_enterprise_base_info ent
ON rel.social_credit_code COLLATE utf8mb4_general_ci = ent.social_credit_code COLLATE utf8mb4_general_ci
) AS combined_result
<where>
<!-- 按中介类型筛选 -->
<if test="query.intermediaryType != null and query.intermediaryType != ''">
AND intermediary_type = #{query.intermediaryType}
<if test="query.recordType != null and query.recordType != ''">
AND record_type COLLATE utf8mb4_general_ci =
CONVERT(#{query.recordType} USING utf8mb4) COLLATE utf8mb4_general_ci
</if>
<!-- 按姓名/机构名称模糊查询 -->
<if test="query.name != null and query.name != ''">
AND name LIKE CONCAT('%', #{query.name}, '%')
AND name COLLATE utf8mb4_general_ci LIKE
CONCAT('%', CONVERT(#{query.name} USING utf8mb4), '%') COLLATE utf8mb4_general_ci
</if>
<!-- 按证件号/统一社会信用代码精确查询 -->
<if test="query.certificateNo != null and query.certificateNo != ''">
AND certificate_no = #{query.certificateNo}
AND certificate_no COLLATE utf8mb4_general_ci =
CONVERT(#{query.certificateNo} USING utf8mb4) COLLATE utf8mb4_general_ci
</if>
<if test="query.relatedIntermediaryKeyword != null and query.relatedIntermediaryKeyword != ''">
AND (
related_intermediary_name COLLATE utf8mb4_general_ci LIKE
CONCAT('%', CONVERT(#{query.relatedIntermediaryKeyword} USING utf8mb4), '%') COLLATE utf8mb4_general_ci
OR related_intermediary_certificate_no COLLATE utf8mb4_general_ci LIKE
CONCAT('%', CONVERT(#{query.relatedIntermediaryKeyword} USING utf8mb4), '%') COLLATE utf8mb4_general_ci
)
</if>
</where>
ORDER BY update_time DESC
ORDER BY create_time DESC
</select>
</mapper>