补充结果总览模型卡片统计查询
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目风险人数汇总
|
* 查询项目风险人数汇总
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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"));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user