补充结果总览模型卡片统计查询

This commit is contained in:
wkc
2026-03-20 11:09:09 +08:00
parent c149b2ae33
commit 5abfc3e0b7
3 changed files with 53 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package com.ruoyi.ccdi.project.mapper;
import com.ruoyi.ccdi.project.domain.CcdiProject; import com.ruoyi.ccdi.project.domain.CcdiProject;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -37,6 +38,14 @@ public interface CcdiProjectOverviewMapper {
*/ */
List<CcdiProjectEmployeeRiskAggregateVO> selectTopRiskPeopleByProjectId(@Param("projectId") Long projectId); List<CcdiProjectEmployeeRiskAggregateVO> selectTopRiskPeopleByProjectId(@Param("projectId") Long projectId);
/**
* 查询风险模型卡片
*
* @param projectId 项目ID
* @return 风险模型卡片列表
*/
List<CcdiProjectRiskModelCardVO> selectRiskModelCardsByProjectId(@Param("projectId") Long projectId);
/** /**
* 查询项目风险人数汇总 * 查询项目风险人数汇总
* *

View File

@@ -27,7 +27,8 @@
coalesce(direct_staff.dept_id, statement_staff.dept_id, family_staff.dept_id) as dept_id, coalesce(direct_staff.dept_id, statement_staff.dept_id, family_staff.dept_id) as dept_id,
tr.rule_code, tr.rule_code,
tr.rule_name, tr.rule_name,
tr.model_code tr.model_code,
tr.model_name
from ccdi_bank_statement_tag_result tr from ccdi_bank_statement_tag_result tr
left join ccdi_base_staff direct_staff left join ccdi_base_staff direct_staff
on tr.object_type = 'STAFF_ID_CARD' on tr.object_type = 'STAFF_ID_CARD'
@@ -179,6 +180,19 @@
limit 10 limit 10
</select> </select>
<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
from (
<include refid="resolvedEmployeeRiskBaseSql"/>
) base
group by base.model_code
order by warning_count desc, model_code asc
</select>
<select id="selectRiskCountSummaryByProjectId" resultType="map"> <select id="selectRiskCountSummaryByProjectId" resultType="map">
select select
coalesce(sum(case when agg.rule_count >= 5 then 1 else 0 end), 0) as highRiskCount, coalesce(sum(case when agg.rule_count >= 5 then 1 else 0 end), 0) as highRiskCount,

View File

@@ -0,0 +1,29 @@
package com.ruoyi.ccdi.project.mapper;
import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.Path;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
class CcdiProjectOverviewMapperRiskModelCardsTest {
@Test
void shouldExposeRiskModelCardsMapperMethod() throws Exception {
Method method = CcdiProjectOverviewMapper.class.getMethod("selectRiskModelCardsByProjectId", Long.class);
assertNotNull(method);
}
@Test
void shouldDefineRiskModelCardsSqlUsingEmployeeResolvedBase() throws Exception {
String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml"));
assertTrue(xml.contains("<select id=\"selectRiskModelCardsByProjectId\""));
assertTrue(xml.contains("<include refid=\"resolvedEmployeeRiskBaseSql\"/>"));
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"));
}
}