补充异常对象原因快照展示

This commit is contained in:
wkc
2026-03-25 16:58:55 +08:00
parent be3448eb44
commit 9442a4116c
9 changed files with 103 additions and 0 deletions

View File

@@ -16,6 +16,8 @@ public class CcdiProjectPersonAnalysisObjectRecordVO {
private List<String> riskTags;
private String reasonDetail;
private String summary;
private List<CcdiProjectPersonAnalysisObjectFieldVO> extraFields = new ArrayList<>();

View File

@@ -440,6 +440,7 @@
when tr.object_type = 'STAFF_ID_CARD' then '员工对象'
else tr.object_type
end) as subtitle,
group_concat(distinct tr.reason_detail order by tr.rule_code asc separator '') as reasonDetail,
group_concat(distinct tr.rule_name order by tr.rule_code asc separator '、') as summary
from ccdi_bank_statement_tag_result tr
left join ccdi_base_staff staff

View File

@@ -62,6 +62,8 @@ class CcdiProjectOverviewMapperSqlTest {
assertTrue(objectRowsSql.contains("from ccdi_bank_statement_tag_result"), objectRowsSql);
assertTrue(objectRowsSql.contains("tr.object_type"), objectRowsSql);
assertTrue(objectRowsSql.contains("tr.reason_detail"), objectRowsSql);
assertTrue(objectRowsSql.contains("as reasonDetail"), objectRowsSql);
assertTrue(objectRowsSql.contains("tr.staff_id_card = #{staffIdCard}") || objectRowsSql.contains("#{staffIdCard}"), objectRowsSql);
}

View File

@@ -190,6 +190,7 @@ class CcdiProjectOverviewServiceImplTest {
objectRow.setTitle("张三");
objectRow.setSubtitle("关联人员");
objectRow.setRiskTags(List.of("频繁往来"));
objectRow.setReasonDetail("命中近30日高频往来规则存在多笔短周期回流");
objectRow.setSummary("与项目关键人员存在异常资金往来");
when(overviewMapper.selectPersonAnalysisObjectRows(40L, "330000000000000001"))
.thenReturn(List.of(objectRow));
@@ -207,6 +208,10 @@ class CcdiProjectOverviewServiceImplTest {
List<?> statementRecords = result.getAbnormalDetail().getGroups().get(0).getRecords();
assertEquals(1, ((CcdiBankStatementListVO) statementRecords.getFirst()).getHitTags().size());
List<?> objectRecords = result.getAbnormalDetail().getGroups().get(1).getRecords();
assertEquals(
"命中近30日高频往来规则存在多笔短周期回流",
((CcdiProjectPersonAnalysisObjectRecordVO) objectRecords.getFirst()).getReasonDetail()
);
assertNotNull(((CcdiProjectPersonAnalysisObjectRecordVO) objectRecords.getFirst()).getExtraFields());
}