实现lsfx-mock全命中SQL对齐
This commit is contained in:
@@ -10,6 +10,7 @@ class Phase2BaselineService:
|
||||
|
||||
SUPPLIER_PURCHASE_ID = "LSFXMOCKP2PUR001"
|
||||
SUPPLIER_NAME = "兰溪市联调供应链有限公司"
|
||||
LOW_INCOME_RELATIVE_RULE_CODE = "LOW_INCOME_RELATIVE_LARGE_TRANSACTION"
|
||||
ASSET_IDENTIFIERS = {
|
||||
"HOUSE_REGISTRATION_MISMATCH": "LSFX Mock P2 HOUSE_REGISTRATION_MISMATCH",
|
||||
"PROPERTY_FEE_REGISTRATION_MISMATCH": "LSFX Mock P2 PROPERTY_FEE_REGISTRATION_MISMATCH",
|
||||
@@ -207,6 +208,63 @@ class Phase2BaselineService:
|
||||
).strip(),
|
||||
]
|
||||
|
||||
def _build_low_income_family_baseline_sql(
|
||||
self,
|
||||
staff_id_card: str,
|
||||
family_id_cards: List[str],
|
||||
) -> List[str]:
|
||||
target_family_id_card = next((card for card in family_id_cards if card), None)
|
||||
if not target_family_id_card:
|
||||
return []
|
||||
|
||||
return [
|
||||
dedent(
|
||||
f"""
|
||||
INSERT INTO ccdi_staff_fmy_relation (
|
||||
person_id,
|
||||
relation_type,
|
||||
relation_name,
|
||||
gender,
|
||||
relation_cert_type,
|
||||
relation_cert_no,
|
||||
relation_desc,
|
||||
status,
|
||||
effective_date,
|
||||
remark,
|
||||
data_source,
|
||||
is_emp_family,
|
||||
is_cust_family,
|
||||
created_by,
|
||||
updated_by,
|
||||
annual_income
|
||||
)
|
||||
VALUES (
|
||||
{self._sql_quote(staff_id_card)},
|
||||
'父亲',
|
||||
'LSFX低收入亲属',
|
||||
'M',
|
||||
'身份证',
|
||||
{self._sql_quote(target_family_id_card)},
|
||||
'用于命中 LOW_INCOME_RELATIVE_LARGE_TRANSACTION 真实规则',
|
||||
1,
|
||||
NOW(),
|
||||
'LSFX Mock 低收入亲属基线',
|
||||
'SYSTEM',
|
||||
1,
|
||||
0,
|
||||
'admin',
|
||||
'admin',
|
||||
0.00
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
annual_income = 0.00,
|
||||
status = 1,
|
||||
updated_by = 'admin',
|
||||
update_time = CURRENT_TIMESTAMP;
|
||||
"""
|
||||
).strip()
|
||||
]
|
||||
|
||||
def build_sql_plan(
|
||||
self,
|
||||
staff_id_card: str,
|
||||
@@ -228,6 +286,13 @@ class Phase2BaselineService:
|
||||
for rule_code in selected_rule_codes:
|
||||
if rule_code == "SUPPLIER_CONCENTRATION":
|
||||
sql_plan.extend(self._build_supplier_concentration_sql(staff_id_card))
|
||||
elif rule_code == self.LOW_INCOME_RELATIVE_RULE_CODE:
|
||||
sql_plan.extend(
|
||||
self._build_low_income_family_baseline_sql(
|
||||
staff_id_card=staff_id_card,
|
||||
family_id_cards=family_id_cards or [],
|
||||
)
|
||||
)
|
||||
elif rule_code in self.ASSET_IDENTIFIERS:
|
||||
family_id, person_id = asset_owner_ids[rule_code]
|
||||
sql_plan.extend(
|
||||
|
||||
Reference in New Issue
Block a user