feat: 查询结果中添加海关标准描述

This commit is contained in:
皓月归尘 2025-04-21 03:12:33 +08:00
parent 92a57fa5d0
commit 413a34f99d

View File

@ -16,6 +16,7 @@ from typing import Optional
import pandas as pd
from elasticsearch.helpers import async_bulk
from fastapi import APIRouter, Depends, Path, Request, Query
from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse, FileResponse
from tortoise.transactions import in_transaction
@ -56,7 +57,7 @@ async def get_upload_template(request: Request, type: str = Path(description="
raise ServiceException(message="文件不存在!")
return FileResponse(
path=template_path,
filename=f"上传模版.{type}",
filename=f"UploadTemplate.{type}",
media_type=media_type
)
@ -78,7 +79,7 @@ async def get_query_template(request: Request, type: str = Path(description="文
}.get(type)
return FileResponse(
path=template_path,
filename=f"查询模版.{type}",
filename=f"QueryTemplate.{type}",
media_type=media_type
)
@ -398,6 +399,13 @@ async def get_code_list(
}
for hit in hits
]
if matches:
# 先只查询匹配率最高的后续需要再加上其余四个查询5个查询耗时过长
data = await get_hts(matches[0]["code"])
if data:
matches[0]["hts_data"] = jsonable_encoder(data)
else:
matches[0]["hts_text"] = None
data_list.append({
"id": uuid.uuid4().__str__(),
"query_text": desc,
@ -547,6 +555,13 @@ async def get_code_list(
}
for hit in hits
]
if matches:
# 先只查询匹配率最高的后续需要再加上其余四个查询5个查询耗时过长
data = await get_hts(matches[0]["code"])
if data:
matches[0]["hts_data"] = jsonable_encoder(data)
else:
matches[0]["hts_text"] = None
data_list.append({
"id": uuid.uuid4().__str__(),
"query_text": desc,
@ -1310,9 +1325,7 @@ async def code_import_audit_all(request: Request, current_user: dict = Depends(L
return Response.success()
@codeAPI.get("/hts", response_class=JSONResponse, response_model=BaseResponse, summary="查询HTS")
async def query_hts(request: Request, code=Query(description="编码"),
current_user: dict = Depends(LoginController.get_current_user)):
async def get_hts(code: str) -> dict:
def normalize_numeric_code(code_str):
"""
处理编码字符串
@ -1411,12 +1424,19 @@ async def query_hts(request: Request, code=Query(description="编码"),
additional_duties="additional_duties",
footnotes="footnotes",
)
return {
"oneResult": oneResult,
"secondResult": secondResult,
"threeResult": threeResult,
"fourResult": fourResult,
"fiveResult": fiveResult,
}
@codeAPI.get("/hts", response_class=JSONResponse, response_model=BaseResponse, summary="查询HTS")
async def query_hts(request: Request, code=Query(description="编码"),
current_user: dict = Depends(LoginController.get_current_user)):
data = await get_hts(code=code)
return Response.success(
data={
"oneResult": oneResult,
"secondResult": secondResult,
"threeResult": threeResult,
"fourResult": fourResult,
"fiveResult": fiveResult,
}
data=data
)