refactor(backend): update reimbursement and related services
- endpoints/reimbursements.py: update reimbursement API endpoint - schemas/reimbursement.py: update reimbursement data schemas - services/expense_claims.py: update expense claims service - services/ontology.py: update ontology service - services/user_agent.py: update user agent service
This commit is contained in:
@@ -65,6 +65,10 @@ EXPENSE_TYPE_LABELS = {
|
||||
"meal": "餐费",
|
||||
"meeting": "会务费",
|
||||
"entertainment": "业务招待费",
|
||||
"office": "办公费",
|
||||
"training": "培训费",
|
||||
"communication": "通讯费",
|
||||
"welfare": "福利费",
|
||||
"other": "其他费用",
|
||||
}
|
||||
|
||||
@@ -74,6 +78,10 @@ GROUP_SCENE_LABELS = {
|
||||
"meal": "伙食费",
|
||||
"transport": "交通费",
|
||||
"hotel": "住宿费",
|
||||
"office": "办公费",
|
||||
"training": "培训费",
|
||||
"communication": "通讯费",
|
||||
"welfare": "福利费",
|
||||
"other": "其他费用",
|
||||
}
|
||||
|
||||
@@ -1825,6 +1833,14 @@ class UserAgentService:
|
||||
return "meal", "餐费"
|
||||
if "会务" in compact:
|
||||
return "meeting", "会务费"
|
||||
if any(keyword in compact for keyword in ("办公费", "办公用品", "文具", "耗材", "办公耗材", "打印纸", "办公设备", "键盘", "鼠标", "白板")):
|
||||
return "office", "办公费"
|
||||
if any(keyword in compact for keyword in ("培训费", "培训", "讲师费", "课时费", "课程费")):
|
||||
return "training", "培训费"
|
||||
if any(keyword in compact for keyword in ("通讯费", "话费", "流量费", "宽带费")):
|
||||
return "communication", "通讯费"
|
||||
if any(keyword in compact for keyword in ("福利费", "团建", "慰问", "节日福利", "体检费")):
|
||||
return "welfare", "福利费"
|
||||
return "other", str(value or "").strip() or "其他费用"
|
||||
|
||||
def _resolve_required_review_keys(
|
||||
@@ -1951,6 +1967,13 @@ class UserAgentService:
|
||||
"group_code": group_code,
|
||||
"scene_label": "餐饮票据",
|
||||
}
|
||||
if any(keyword in compact for keyword in ("办公用品", "文具", "耗材", "办公耗材", "打印纸", "键盘", "鼠标", "白板", "墨盒", "硒鼓")):
|
||||
return {
|
||||
"document_type": "other",
|
||||
"expense_type": "office",
|
||||
"group_code": "office",
|
||||
"scene_label": "办公用品票据",
|
||||
}
|
||||
return {
|
||||
"document_type": "other",
|
||||
"expense_type": expense_type_code or "other",
|
||||
@@ -1962,7 +1985,7 @@ class UserAgentService:
|
||||
def _normalize_group_code(expense_type_code: str) -> str:
|
||||
if expense_type_code in {"travel", "hotel", "transport"}:
|
||||
return "travel"
|
||||
if expense_type_code in {"entertainment", "meal"}:
|
||||
if expense_type_code in {"entertainment", "meal", "office", "training", "communication", "welfare"}:
|
||||
return expense_type_code
|
||||
return "other"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user