完善结果总览模型区卡片展示与联动修复
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -21,9 +21,14 @@ class CcdiProjectOverviewMapperRiskModelCardsTest {
|
||||
String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml"));
|
||||
|
||||
assertTrue(xml.contains("<select id=\"selectRiskModelCardsByProjectId\""));
|
||||
assertTrue(xml.contains("from ("));
|
||||
assertTrue(xml.contains("from ccdi_bank_tag_rule"));
|
||||
assertTrue(xml.contains("where enabled = 1"));
|
||||
assertTrue(xml.contains("left join ("));
|
||||
assertTrue(xml.contains("<include refid=\"resolvedEmployeeRiskBaseSql\"/>"));
|
||||
assertTrue(xml.contains("coalesce(stats.warning_count, 0) as warning_count"));
|
||||
assertTrue(xml.contains("coalesce(stats.people_count, 0) as people_count"));
|
||||
assertTrue(xml.contains("count(1) as warning_count"));
|
||||
assertTrue(xml.contains("count(distinct base.staff_id_card) as people_count"));
|
||||
assertTrue(xml.contains("order by warning_count desc, model_code asc"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,8 @@ class CcdiProjectOverviewMapperRiskModelPeopleTest {
|
||||
assertTrue(xml.contains("<select id=\"selectRiskModelPeoplePage\""));
|
||||
assertTrue(xml.contains("query.modelCodes != null and query.modelCodes.size() > 0"));
|
||||
assertTrue(xml.contains("query.matchMode == 'ALL'"));
|
||||
assertTrue(xml.contains("count(distinct base.model_code) = #{query.modelCodes.size}"));
|
||||
assertFalse(xml.contains("#{query.modelCodes.size}"));
|
||||
assertTrue(xml.contains("count(distinct base.model_code) = #{query.modelCodesCount}"));
|
||||
assertTrue(xml.contains("<bind name=\"projectId\" value=\"query.projectId\"/>"));
|
||||
assertTrue(xml.contains("base.staff_name like concat('%', trim(#{query.keyword}), '%')"));
|
||||
assertTrue(xml.contains("cast(base.staff_code as char) like concat('%', trim(#{query.keyword}), '%')"));
|
||||
|
||||
Reference in New Issue
Block a user