补充异常账户模型建表和规则元数据

This commit is contained in:
wkc
2026-03-31 16:29:48 +08:00
parent 988c2d3572
commit 127a59bf78
3 changed files with 67 additions and 2 deletions

View File

@@ -27,4 +27,21 @@ class CcdiAbnormalAccountRuleSqlMetadataTest {
() -> assertTrue(sql.contains("'OBJECT'"))
);
}
@Test
void abnormalAccountMetadataSql_shouldContainAccountInfoTableDefinition() throws IOException {
Path path = Path.of("..", "sql", "migration",
"2026-03-31-create-ccdi-account-info-and-abnormal-account-rules.sql");
assertTrue(Files.exists(path), "异常账户模型迁移脚本应存在");
String sql = Files.readString(path, StandardCharsets.UTF_8).toLowerCase();
assertAll(
() -> assertTrue(sql.contains("create table if not exists `ccdi_account_info`")),
() -> assertTrue(sql.contains("`account_no`")),
() -> assertTrue(sql.contains("`owner_type`")),
() -> assertTrue(sql.contains("`effective_date`")),
() -> assertTrue(sql.contains("`invalid_date`"))
);
}
}

View File

@@ -30,6 +30,23 @@ class CcdiBankTagRuleSqlMetadataTest {
assertPhase2Metadata(migrationSql);
}
@Test
void abnormalAccountMetadataSql_shouldContainBusinessCaliberAndRuleRemark() throws IOException {
String migrationSql = readProjectFile("sql", "migration",
"2026-03-31-create-ccdi-account-info-and-abnormal-account-rules.sql");
assertAll(
() -> assertTrue(migrationSql.contains("员工本人账户已销户且销户日前30天内仍存在交易记录。"),
"SUDDEN_ACCOUNT_CLOSURE 应使用设计文档中的业务口径"),
() -> assertTrue(migrationSql.contains("员工本人账户开户后长期未使用,首次启用后出现大额资金流动。"),
"DORMANT_ACCOUNT_LARGE_ACTIVATION 应使用设计文档中的业务口径"),
() -> assertTrue(migrationSql.contains("真实规则识别员工本人账户销户前30天内仍有交易的员工对象"),
"SUDDEN_ACCOUNT_CLOSURE 应同步真实规则说明"),
() -> assertTrue(migrationSql.contains("真实规则:识别长期休眠后首次启用即出现大额资金流动的员工对象"),
"DORMANT_ACCOUNT_LARGE_ACTIVATION 应同步真实规则说明")
);
}
private void assertPhase1Metadata(String sqlContent) {
assertAll(
() -> assertTrue(sqlContent.contains("'FOREX_BUY_AMT'")