完善结果总览模型区卡片展示与联动修复

This commit is contained in:
wkc
2026-03-20 14:02:18 +08:00
parent 726265fb70
commit 538fb9c9f3
10 changed files with 128 additions and 18 deletions

View File

@@ -43,4 +43,12 @@ public class CcdiProjectRiskModelPeopleQueryDTO {
.distinct()
.collect(Collectors.joining(","));
}
public Integer getModelCodesCount() {
String modelCodesCsv = getModelCodesCsv();
if (modelCodesCsv == null || modelCodesCsv.isBlank()) {
return 0;
}
return modelCodesCsv.split(",").length;
}
}

View File

@@ -199,14 +199,28 @@
<select id="selectRiskModelCardsByProjectId" resultType="com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardVO">
select
base.model_code,
max(base.model_name) as model_name,
count(1) as warning_count,
count(distinct base.staff_id_card) as people_count
models.model_code,
models.model_name,
coalesce(stats.warning_count, 0) as warning_count,
coalesce(stats.people_count, 0) as people_count
from (
<include refid="resolvedEmployeeRiskBaseSql"/>
) base
group by base.model_code
select
rule.model_code,
max(rule.model_name) as model_name
from ccdi_bank_tag_rule rule
where enabled = 1
group by rule.model_code
) models
left join (
select
base.model_code,
count(1) as warning_count,
count(distinct base.staff_id_card) as people_count
from (
<include refid="resolvedEmployeeRiskBaseSql"/>
) base
group by base.model_code
) stats on models.model_code = stats.model_code
order by warning_count desc, model_code asc
</select>
@@ -241,7 +255,7 @@
</if>
group by base.project_id, base.staff_id_card
<if test="query.modelCodes != null and query.modelCodes.size() > 0 and query.matchMode == 'ALL'">
having count(distinct base.model_code) = #{query.modelCodes.size}
having count(distinct base.model_code) = #{query.modelCodesCount}
</if>
order by max(base.staff_name) asc, base.staff_id_card asc
</select>