|
@@ -168,7 +168,6 @@ async def auto_import_script_api(
|
|
|
front_gray: Union[UploadFile, str, None] = File(None, description="正面灰度图文件"),
|
|
front_gray: Union[UploadFile, str, None] = File(None, description="正面灰度图文件"),
|
|
|
back_gray: Union[UploadFile, str, None] = File(None, description="背面灰度图文件")
|
|
back_gray: Union[UploadFile, str, None] = File(None, description="背面灰度图文件")
|
|
|
):
|
|
):
|
|
|
- logger.info(f"--- 开始自动导入任务:auto_import_script_api: {card_name} ---")
|
|
|
|
|
local_base_url = str(request.base_url).rstrip('/')
|
|
local_base_url = str(request.base_url).rstrip('/')
|
|
|
|
|
|
|
|
main_inputs = {
|
|
main_inputs = {
|
|
@@ -197,6 +196,18 @@ async def auto_import_script_api(
|
|
|
if not strict_mode and provided_main_count == 0 and not valid_gray_files:
|
|
if not strict_mode and provided_main_count == 0 and not valid_gray_files:
|
|
|
raise HTTPException(status_code=400, detail="未提供任何图片文件,无法创建。")
|
|
raise HTTPException(status_code=400, detail="未提供任何图片文件,无法创建。")
|
|
|
|
|
|
|
|
|
|
+ logger.info(
|
|
|
|
|
+ "auto_import_script_api start card_name=%s cardNo=%s card_type=%s is_reflect_card=%s strict_mode=%s "
|
|
|
|
|
+ "main_types=%s gray_types=%s",
|
|
|
|
|
+ card_name,
|
|
|
|
|
+ cardNo or "",
|
|
|
|
|
+ card_type.value,
|
|
|
|
|
+ is_reflect_card,
|
|
|
|
|
+ strict_mode,
|
|
|
|
|
+ ",".join(valid_main_files.keys()) or "none",
|
|
|
|
|
+ ",".join(valid_gray_files.keys()) or "none",
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
is_reflect_str = "true" if is_reflect_card else "false"
|
|
is_reflect_str = "true" if is_reflect_card else "false"
|
|
|
|
|
|
|
|
timeout = aiohttp.ClientTimeout(total=180, connect=5, sock_connect=5, sock_read=120)
|
|
timeout = aiohttp.ClientTimeout(total=180, connect=5, sock_connect=5, sock_read=120)
|
|
@@ -207,7 +218,12 @@ async def auto_import_script_api(
|
|
|
main_bytes_data = {k: (await v.read(), v.filename) for k, v in valid_main_files.items()}
|
|
main_bytes_data = {k: (await v.read(), v.filename) for k, v in valid_main_files.items()}
|
|
|
gray_bytes_data = {k: (await v.read(), v.filename) for k, v in valid_gray_files.items()}
|
|
gray_bytes_data = {k: (await v.read(), v.filename) for k, v in valid_gray_files.items()}
|
|
|
|
|
|
|
|
- logger.info(f"--- 开始自动导入任务: {card_name} ---")
|
|
|
|
|
|
|
+ logger.info(
|
|
|
|
|
+ "auto_import_script_api files_loaded card_name=%s main_count=%s gray_count=%s",
|
|
|
|
|
+ card_name,
|
|
|
|
|
+ len(main_bytes_data),
|
|
|
|
|
+ len(gray_bytes_data),
|
|
|
|
|
+ )
|
|
|
processed_results = []
|
|
processed_results = []
|
|
|
for img_type, (f_bytes, f_name) in main_bytes_data.items():
|
|
for img_type, (f_bytes, f_name) in main_bytes_data.items():
|
|
|
if len(f_bytes) == 0:
|
|
if len(f_bytes) == 0:
|
|
@@ -219,7 +235,13 @@ async def auto_import_script_api(
|
|
|
card_id = await create_card_record(
|
|
card_id = await create_card_record(
|
|
|
session, local_base_url, card_name, cardNo, card_type
|
|
session, local_base_url, card_name, cardNo, card_type
|
|
|
)
|
|
)
|
|
|
- logger.info(f"卡片记录创建成功,ID: {card_id}")
|
|
|
|
|
|
|
+ logger.info(
|
|
|
|
|
+ "auto_import_script_api card_created card_name=%s card_id=%s processed_main_count=%s gray_count=%s",
|
|
|
|
|
+ card_name,
|
|
|
|
|
+ card_id,
|
|
|
|
|
+ len(processed_results),
|
|
|
|
|
+ len(gray_bytes_data),
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
# ---------- 修改点:safe_upload_task 调用 + gather ----------
|
|
# ---------- 修改点:safe_upload_task 调用 + gather ----------
|
|
|
upload_tasks = []
|
|
upload_tasks = []
|
|
@@ -233,7 +255,12 @@ async def auto_import_script_api(
|
|
|
await asyncio.gather(*upload_tasks)
|
|
await asyncio.gather(*upload_tasks)
|
|
|
# ------------------------------------------------------------
|
|
# ------------------------------------------------------------
|
|
|
|
|
|
|
|
- logger.info(f"--- 自动导入流程结束, Card ID: {card_id} ---")
|
|
|
|
|
|
|
+ logger.info(
|
|
|
|
|
+ "auto_import_script_api finished card_name=%s card_id=%s upload_task_count=%s",
|
|
|
|
|
+ card_name,
|
|
|
|
|
+ card_id,
|
|
|
|
|
+ len(upload_tasks),
|
|
|
|
|
+ )
|
|
|
return {
|
|
return {
|
|
|
"message": "导入成功",
|
|
"message": "导入成功",
|
|
|
"card_id": card_id,
|
|
"card_id": card_id,
|
|
@@ -241,10 +268,16 @@ async def auto_import_script_api(
|
|
|
"cardNo": cardNo
|
|
"cardNo": cardNo
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- except HTTPException:
|
|
|
|
|
|
|
+ except HTTPException as e:
|
|
|
|
|
+ logger.error(
|
|
|
|
|
+ "auto_import_script_api failed_http card_name=%s detail=%s status_code=%s",
|
|
|
|
|
+ card_name,
|
|
|
|
|
+ e.detail,
|
|
|
|
|
+ e.status_code,
|
|
|
|
|
+ )
|
|
|
raise
|
|
raise
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- logger.error(f"[流程终止] 发生异常: {e}")
|
|
|
|
|
|
|
+ logger.exception("auto_import_script_api failed_unexpected card_name=%s", card_name)
|
|
|
raise HTTPException(status_code=500, detail=f"自动化处理异常: {str(e)}")
|
|
raise HTTPException(status_code=500, detail=f"自动化处理异常: {str(e)}")
|
|
|
|
|
|
|
|
|
|
|