53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
import json
|
|
|
|
from app import app
|
|
|
|
|
|
SESSION_ID = "39511ed73abe48208df44b7ab96af166"
|
|
|
|
|
|
with app.app_context():
|
|
from insurance.db.compat import db
|
|
from insurance.document.evidence import map_extraction_evidence
|
|
from insurance.document.service import get_owned_document, load_document_ir
|
|
from insurance.models.ppt_session import PptSession
|
|
from insurance.plan_data.service import confirm_snapshot, create_draft_from_legacy
|
|
|
|
session = db.session.get(PptSession, SESSION_ID)
|
|
extractions = json.loads(session.extractions_json or "[]")
|
|
confirmed = []
|
|
for extraction in extractions:
|
|
document = get_owned_document(int(extraction["documentId"]), session.user_id)
|
|
evidence = map_extraction_evidence(
|
|
document.id,
|
|
extraction["data"],
|
|
load_document_ir(document),
|
|
)
|
|
extraction["evidence"] = evidence
|
|
draft = create_draft_from_legacy(
|
|
int(extraction["documentId"]),
|
|
session.user_id,
|
|
extraction["data"],
|
|
evidence_entries=evidence,
|
|
)
|
|
try:
|
|
confirmed.append(confirm_snapshot(draft.id, session.user_id))
|
|
except Exception as exc:
|
|
print(json.dumps({
|
|
"draftId": draft.id,
|
|
"error": str(exc),
|
|
"details": getattr(exc, "data", {}),
|
|
}, ensure_ascii=False), flush=True)
|
|
raise
|
|
|
|
session.snapshot_ids_json = json.dumps([item.id for item in confirmed])
|
|
session.extractions_json = json.dumps(extractions, ensure_ascii=False)
|
|
session.status = "confirmed"
|
|
session.workflow_step = "ready"
|
|
db.session.commit()
|
|
print(json.dumps({
|
|
"sessionId": SESSION_ID,
|
|
"snapshotIds": [item.id for item in confirmed],
|
|
"statuses": [item.status for item in confirmed],
|
|
}, ensure_ascii=False))
|