fix: 统一mock流水可识别身份证来源
This commit is contained in:
338
lsfx-mock-server/services/statement_rule_samples.py
Normal file
338
lsfx-mock-server/services/statement_rule_samples.py
Normal file
@@ -0,0 +1,338 @@
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
|
||||
DEFAULT_LARGE_TRANSACTION_THRESHOLDS = {
|
||||
"SINGLE_TRANSACTION_AMOUNT": 1111,
|
||||
"CUMULATIVE_TRANSACTION_AMOUNT": 50000001,
|
||||
"ANNUAL_TURNOVER": 50000001,
|
||||
"LARGE_CASH_DEPOSIT": 2000001,
|
||||
"FREQUENT_CASH_DEPOSIT": 5,
|
||||
"FREQUENT_TRANSFER": 100001,
|
||||
}
|
||||
|
||||
IDENTITY_POOL = {
|
||||
"staff_primary": {
|
||||
"name": "模型测试员工",
|
||||
"id_card": "330101198801010011",
|
||||
"account": "6222024000000001",
|
||||
},
|
||||
"family_primary": {
|
||||
"name": "模型测试家属",
|
||||
"id_card": "330101199001010022",
|
||||
"account": "6222024000000002",
|
||||
},
|
||||
"staff_secondary": {
|
||||
"name": "模型二测试员工",
|
||||
"id_card": "330101198802020033",
|
||||
"account": "6222024000000003",
|
||||
},
|
||||
"family_secondary": {
|
||||
"name": "模型二测试家属",
|
||||
"id_card": "330101199202020044",
|
||||
"account": "6222024000000004",
|
||||
},
|
||||
}
|
||||
|
||||
IDENTITY_CARD_POOL = tuple(identity["id_card"] for identity in IDENTITY_POOL.values())
|
||||
|
||||
REFERENCE_NOW = datetime(2026, 3, 18, 9, 0, 0)
|
||||
|
||||
|
||||
def _format_datetime(value: datetime) -> str:
|
||||
return value.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
|
||||
def _format_date(value: datetime) -> str:
|
||||
return value.strftime("%Y-%m-%d")
|
||||
|
||||
|
||||
def _build_statement(
|
||||
group_id: int,
|
||||
log_id: int,
|
||||
*,
|
||||
trx_datetime: datetime,
|
||||
cret_no: str,
|
||||
customer_name: str,
|
||||
user_memo: str,
|
||||
cash_type: str,
|
||||
dr_amount: float = 0.0,
|
||||
cr_amount: float = 0.0,
|
||||
le_name: str = "模型测试主体",
|
||||
account_mask_no: str = "6222024999999999",
|
||||
customer_account_mask_no: str = "9558800000000001",
|
||||
bank_comments: str = "",
|
||||
customer_bank: str = "",
|
||||
) -> Dict:
|
||||
trans_amount = round(dr_amount if dr_amount > 0 else cr_amount, 2)
|
||||
balance_amount = round(80000000 + cr_amount - dr_amount, 2)
|
||||
|
||||
return {
|
||||
"accountId": 0,
|
||||
"accountMaskNo": account_mask_no,
|
||||
"accountingDate": _format_date(trx_datetime),
|
||||
"accountingDateId": int(trx_datetime.strftime("%Y%m%d")),
|
||||
"archivingFlag": 0,
|
||||
"attachments": 0,
|
||||
"balanceAmount": balance_amount,
|
||||
"bank": "ZJRCU",
|
||||
"bankComments": bank_comments,
|
||||
"bankStatementId": 0,
|
||||
"bankTrxNumber": "",
|
||||
"batchId": log_id,
|
||||
"cashType": cash_type,
|
||||
"commentsNum": 0,
|
||||
"crAmount": round(cr_amount, 2),
|
||||
"createDate": _format_datetime(REFERENCE_NOW),
|
||||
"createdBy": "902001",
|
||||
"cretNo": cret_no,
|
||||
"currency": "CNY",
|
||||
"customerAccountMaskNo": customer_account_mask_no,
|
||||
"customerBank": customer_bank,
|
||||
"customerId": -1,
|
||||
"customerName": customer_name,
|
||||
"customerReference": "",
|
||||
"downPaymentFlag": 0,
|
||||
"drAmount": round(dr_amount, 2),
|
||||
"exceptionType": "",
|
||||
"groupId": group_id,
|
||||
"internalFlag": 0,
|
||||
"leId": 16308,
|
||||
"leName": le_name,
|
||||
"overrideBsId": 0,
|
||||
"paymentMethod": "",
|
||||
"sourceCatalogId": 0,
|
||||
"split": 0,
|
||||
"subBankstatementId": 0,
|
||||
"toDoFlag": 0,
|
||||
"transAmount": trans_amount,
|
||||
"transFlag": "P" if dr_amount > 0 else "R",
|
||||
"transTypeId": 0,
|
||||
"transformAmount": 0,
|
||||
"transformCrAmount": 0,
|
||||
"transformDrAmount": 0,
|
||||
"transfromBalanceAmount": 0,
|
||||
"trxBalance": 0,
|
||||
"trxDate": _format_datetime(trx_datetime),
|
||||
"uploadSequnceNumber": 0,
|
||||
"userMemo": user_memo,
|
||||
}
|
||||
|
||||
|
||||
def build_large_transaction_seed_statements(
|
||||
group_id: int,
|
||||
log_id: int,
|
||||
primary_enterprise_name: Optional[str] = None,
|
||||
primary_account_no: Optional[str] = None,
|
||||
) -> List[Dict]:
|
||||
le_name = primary_enterprise_name or "模型测试主体"
|
||||
account_no = primary_account_no or "6222024999999999"
|
||||
|
||||
statements: List[Dict] = []
|
||||
|
||||
statements.extend([
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=9, hours=1),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="杭州贝壳房地产经纪有限公司",
|
||||
user_memo="购买房产首付款",
|
||||
cash_type="对公转账",
|
||||
dr_amount=680000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024555500001",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=8, hours=2),
|
||||
cret_no=IDENTITY_POOL["family_primary"]["id_card"],
|
||||
customer_name="兰溪星耀汽车销售服务有限公司",
|
||||
user_memo="购车首付款",
|
||||
cash_type="对公转账",
|
||||
dr_amount=380000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024555500002",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=7, hours=1),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="国家金库兰溪市中心支库",
|
||||
user_memo="个人所得税税款",
|
||||
cash_type="税务缴款",
|
||||
dr_amount=126000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024555500003",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=6, hours=3),
|
||||
cret_no=IDENTITY_POOL["family_secondary"]["id_card"],
|
||||
customer_name="兰溪市税务局",
|
||||
user_memo="房产税务缴税",
|
||||
cash_type="税务缴款",
|
||||
dr_amount=88000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024555500004",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=5, hours=2),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="浙江远望贸易有限公司",
|
||||
user_memo="经营往来收入",
|
||||
cash_type="对公转账",
|
||||
cr_amount=18800000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024666600001",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=5, hours=1),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="浙江远望贸易有限公司",
|
||||
user_memo="项目回款收入",
|
||||
cash_type="对公转账",
|
||||
cr_amount=20800000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024666600001",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=4, hours=4),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="浙江远望贸易有限公司",
|
||||
user_memo="业务合作收入",
|
||||
cash_type="对公转账",
|
||||
cr_amount=20700000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024666600001",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 9, 0, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="现金存款",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3000000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 9, 30, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="ATM现金存款",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3100000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 10, 0, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="自助存款现金存入",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3200000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 10, 30, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="CRS存款",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3300000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 11, 0, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="本行ATM存款",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3400000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=datetime(2026, 3, 10, 11, 30, 0),
|
||||
cret_no=IDENTITY_POOL["staff_primary"]["id_card"],
|
||||
customer_name="",
|
||||
user_memo="柜面现金存款",
|
||||
cash_type="现金存款",
|
||||
cr_amount=3500000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=3, hours=1),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="异地转账平台",
|
||||
user_memo="手机银行转账",
|
||||
cash_type="转账支出",
|
||||
dr_amount=12000000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024777700001",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=3, hours=2),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="跨行转账中心",
|
||||
user_memo="对外转账",
|
||||
cash_type="转账支出",
|
||||
dr_amount=10000000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024777700002",
|
||||
),
|
||||
_build_statement(
|
||||
group_id,
|
||||
log_id,
|
||||
trx_datetime=REFERENCE_NOW - timedelta(days=2, hours=5),
|
||||
cret_no=IDENTITY_POOL["staff_secondary"]["id_card"],
|
||||
customer_name="跨境转账服务平台",
|
||||
user_memo="网银转账",
|
||||
cash_type="转账支出",
|
||||
dr_amount=9000000.0,
|
||||
le_name=le_name,
|
||||
account_mask_no=account_no,
|
||||
customer_account_mask_no="6222024777700003",
|
||||
),
|
||||
])
|
||||
|
||||
return statements
|
||||
Reference in New Issue
Block a user