This commit is contained in:
csj
2026-09-17 14:13:31 +08:00
parent ced5db5473
commit 10697d3dfa
18 changed files with 2097 additions and 26 deletions
+16 -3
View File
@@ -9,6 +9,8 @@ from pathlib import Path
from domain import auto_match, enrich, extract
from exports import export_expense, export_ppt, export_travel
from expense_template import export_custom_expense, inspect_template, validate_template
from expense_preview import prepare_preview
PROTOCOL = sys.stdout
SUPPORTED = {'.jpg', '.jpeg', '.png', '.webp', '.bmp', '.gif', '.pdf'}
@@ -83,6 +85,10 @@ def dispatch(request):
operation = request['operation']
if operation == 'scan':
return scan(request)
if operation == 'inspect-expense-template':
return inspect_template(request['templatePath'])
if operation == 'validate-expense-template':
return validate_template(request['templatePath'], request['templateMapping'])
state = request['state']
if operation == 'refresh':
return enrich(state)
@@ -97,9 +103,16 @@ def dispatch(request):
elif operation == 'travel':
export_travel(state, temporary)
elif operation == 'expense':
template = Path(__file__).parent / 'personal-expense-template.xlsx'
metadata = export_expense(state, temporary, template, request.get('purposes', {}), request.get('signatures', []),
request.get('payee', {}), request.get('categoryPurposes'))
if request.get('templatePath'):
metadata = export_custom_expense(state, temporary, request['templatePath'], request.get('templateMapping'),
request.get('purposes', {}), request.get('signatures', []),
request.get('payee', {}), request.get('categoryPurposes'))
else:
template = Path(__file__).parent / 'personal-expense-template.xlsx'
metadata = export_expense(state, temporary, template, request.get('purposes', {}), request.get('signatures', []),
request.get('payee', {}), request.get('categoryPurposes'))
if request.get('preparePreview'):
metadata.update(prepare_preview(temporary))
else:
raise ValueError('未知操作:' + operation)
os.replace(temporary, destination)