修复Mock流水按数据库员工及亲属绑定身份证
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from fastapi import BackgroundTasks, UploadFile
|
||||
from utils.response_builder import ResponseBuilder
|
||||
from config.settings import settings
|
||||
from services.staff_identity_repository import StaffIdentityRepository
|
||||
from typing import Dict, List, Union
|
||||
from dataclasses import dataclass, field
|
||||
import time
|
||||
@@ -59,13 +60,19 @@ class FileRecord:
|
||||
trx_date_start_id: int = 20240101
|
||||
trx_date_end_id: int = 20241231
|
||||
|
||||
# 新增字段 - 身份绑定
|
||||
staff_name: str = ""
|
||||
staff_id_card: str = ""
|
||||
family_id_cards: List[str] = field(default_factory=list)
|
||||
|
||||
|
||||
class FileService:
|
||||
"""文件上传和解析服务"""
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, staff_identity_repository=None):
|
||||
self.file_records: Dict[int, FileRecord] = {} # logId -> FileRecord
|
||||
self.log_counter = settings.INITIAL_LOG_ID
|
||||
self.staff_identity_repository = staff_identity_repository or StaffIdentityRepository()
|
||||
|
||||
def get_file_record(self, log_id: int) -> FileRecord:
|
||||
"""按 logId 获取已存在的文件记录。"""
|
||||
@@ -118,6 +125,9 @@ class FileService:
|
||||
trx_date_end_id: int,
|
||||
le_id: int,
|
||||
login_le_id: int,
|
||||
staff_name: str = "",
|
||||
staff_id_card: str = "",
|
||||
family_id_cards: List[str] = None,
|
||||
parsing: bool = True,
|
||||
status: int = -5,
|
||||
) -> FileRecord:
|
||||
@@ -145,10 +155,17 @@ class FileService:
|
||||
total_records=total_records,
|
||||
trx_date_start_id=trx_date_start_id,
|
||||
trx_date_end_id=trx_date_end_id,
|
||||
staff_name=staff_name,
|
||||
staff_id_card=staff_id_card,
|
||||
family_id_cards=list(family_id_cards or []),
|
||||
parsing=parsing,
|
||||
status=status,
|
||||
)
|
||||
|
||||
def _select_staff_identity_scope(self) -> dict:
|
||||
"""读取一个员工及其亲属身份范围。"""
|
||||
return self.staff_identity_repository.select_random_staff_with_families()
|
||||
|
||||
async def upload_file(
|
||||
self, group_id: int, file: UploadFile, background_tasks: BackgroundTasks
|
||||
) -> Dict:
|
||||
@@ -177,6 +194,7 @@ class FileService:
|
||||
|
||||
# 生成单一主绑定
|
||||
primary_enterprise_name, primary_account_no = self._generate_primary_binding()
|
||||
identity_scope = self._select_staff_identity_scope()
|
||||
|
||||
# 创建完整的文件记录
|
||||
file_record = self._create_file_record(
|
||||
@@ -194,6 +212,9 @@ class FileService:
|
||||
trx_date_end_id=trx_date_end_id,
|
||||
le_id=10000 + random.randint(0, 9999),
|
||||
login_le_id=10000 + random.randint(0, 9999),
|
||||
staff_name=identity_scope["staff_name"],
|
||||
staff_id_card=identity_scope["staff_id_card"],
|
||||
family_id_cards=identity_scope["family_id_cards"],
|
||||
)
|
||||
|
||||
# 存储记录
|
||||
@@ -500,6 +521,7 @@ class FileService:
|
||||
log_id = self.log_counter
|
||||
|
||||
primary_enterprise_name, primary_account_no = self._generate_primary_binding()
|
||||
identity_scope = self._select_staff_identity_scope()
|
||||
file_record = self._create_file_record(
|
||||
log_id=log_id,
|
||||
group_id=group_id,
|
||||
@@ -515,6 +537,9 @@ class FileService:
|
||||
trx_date_end_id=data_end_date_id,
|
||||
le_id=10000 + random.randint(0, 9999),
|
||||
login_le_id=10000 + random.randint(0, 9999),
|
||||
staff_name=identity_scope["staff_name"],
|
||||
staff_id_card=identity_scope["staff_id_card"],
|
||||
family_id_cards=identity_scope["family_id_cards"],
|
||||
parsing=False,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user