fix: статус «не распознан» + лог ошибок удаления

This commit is contained in:
2026-06-28 10:08:48 +04:00
parent 49b09a2a1a
commit 741c4eb8d1
+11 -8
View File
@@ -92,12 +92,20 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "",
if contract_id: if contract_id:
try: try:
supplements.delete_by_document(contract_id, filename) supplements.delete_by_document(contract_id, filename)
except Exception: except Exception as e:
pass import logging
logging.getLogger(__name__).warning("delete_by_document failed: %s", e)
doc = documents.insert(filename, mime, b64, batch_id=batch_id, zip_source=zip_source, doc = documents.insert(filename, mime, b64, batch_id=batch_id, zip_source=zip_source,
content_hash=content_hash) content_hash=content_hash)
parsed = parse_file(filename, file_data)
if parsed and parsed.get("status") == "parsed":
documents.set_parsed(doc["id"], parsed["elements"])
elif parsed and parsed.get("status") == "error":
documents.set_error(doc["id"], parsed.get("error", "parse failed"))
return {"ok": False, "error": f"parse failed: {parsed.get('error')}", "doc_id": doc["id"]}
if not contract_id: if not contract_id:
from datetime import datetime from datetime import datetime
now = datetime.now() now = datetime.now()
@@ -109,12 +117,6 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "",
supplements.insert(contract_id, doc["id"], supp_type) supplements.insert(contract_id, doc["id"], supp_type)
parsed = parse_file(filename, file_data)
if parsed and parsed.get("status") == "parsed":
documents.set_parsed(doc["id"], parsed["elements"])
elif parsed and parsed.get("status") == "error":
documents.set_error(doc["id"], parsed.get("error", "parse failed"))
return { return {
"ok": True, "ok": True,
"doc_id": doc["id"], "doc_id": doc["id"],
@@ -122,6 +124,7 @@ def store_document(filename: str, file_data: bytes, contract_id: str = "",
"filename": filename, "filename": filename,
"size": len(file_data), "size": len(file_data),
"parsed": parsed, "parsed": parsed,
"warning": "file may be unreadable" if not parsed or not parsed.get("element_count") else None,
} }