补充异常账户规则样本生成器

This commit is contained in:
wkc
2026-03-31 20:42:22 +08:00
parent f0e2595a2b
commit f981dc9906
2 changed files with 153 additions and 0 deletions

View File

@@ -811,6 +811,117 @@ def build_salary_unused_samples(group_id: int, log_id: int, **kwargs) -> List[Di
]
def build_sudden_account_closure_samples(
group_id: int,
log_id: int,
*,
account_fact: Dict,
le_name: str = "模型测试主体",
) -> List[Dict]:
invalid_date = datetime.strptime(account_fact["invalid_date"], "%Y-%m-%d")
owner_id_card = account_fact["owner_id_card"]
account_no = account_fact["account_no"]
account_name = account_fact["account_name"]
return [
_build_statement(
group_id,
log_id,
trx_datetime=invalid_date - timedelta(days=30, hours=-1),
cret_no=owner_id_card,
customer_name="杭州临时往来款账户",
user_memo=f"{account_name}销户前资金回笼",
cash_type="对私转账",
cr_amount=88000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666610001",
),
_build_statement(
group_id,
log_id,
trx_datetime=invalid_date - timedelta(days=12, hours=2),
cret_no=owner_id_card,
customer_name="杭州消费支付商户",
user_memo=f"{account_name}销户前集中支出",
cash_type="快捷支付",
dr_amount=62000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666610002",
),
_build_statement(
group_id,
log_id,
trx_datetime=invalid_date - timedelta(days=1, hours=3),
cret_no=owner_id_card,
customer_name="浙江异常账户清理专户",
user_memo=f"{account_name}异常账户销户前转出",
cash_type="对私转账",
dr_amount=126000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666610003",
),
]
def build_dormant_account_large_activation_samples(
group_id: int,
log_id: int,
*,
account_fact: Dict,
le_name: str = "模型测试主体",
) -> List[Dict]:
effective_date = datetime.strptime(account_fact["effective_date"], "%Y-%m-%d")
activation_start = datetime(effective_date.year, effective_date.month, effective_date.day) + timedelta(days=181)
owner_id_card = account_fact["owner_id_card"]
account_no = account_fact["account_no"]
account_name = account_fact["account_name"]
return [
_build_statement(
group_id,
log_id,
trx_datetime=activation_start,
cret_no=owner_id_card,
customer_name="浙江存量资产回收账户",
user_memo=f"{account_name}休眠后异常账户激活入账",
cash_type="对公转账",
cr_amount=180000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666620001",
),
_build_statement(
group_id,
log_id,
trx_datetime=activation_start + timedelta(days=9, hours=2),
cret_no=owner_id_card,
customer_name="浙江大额往来备付金专户",
user_memo=f"{account_name}休眠激活后大额转入",
cash_type="对公转账",
cr_amount=260000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666620002",
),
_build_statement(
group_id,
log_id,
trx_datetime=activation_start + timedelta(days=18, hours=1),
cret_no=owner_id_card,
customer_name="杭州临时资金调拨账户",
user_memo=f"{account_name}休眠账户异常账户激活转出",
cash_type="对私转账",
dr_amount=120000.0,
le_name=le_name,
account_mask_no=account_no,
customer_account_mask_no="6222024666620003",
),
]
LARGE_TRANSACTION_BUILDERS = {
"HOUSE_OR_CAR_EXPENSE": build_house_or_car_samples,
"TAX_EXPENSE": build_tax_samples,