refactor: update orchestrator service and travel form view

- services/orchestrator.py: update orchestrator service
- views/TravelReimbursementCreateView.vue: update travel form view
- views/scripts/TravelReimbursementCreateView.js: update travel form script
This commit is contained in:
caoxiaozhu
2026-05-13 15:40:41 +00:00
parent f804a23239
commit edb484e2f6
3 changed files with 353 additions and 3 deletions

View File

@@ -1257,8 +1257,9 @@ class OrchestratorService:
if employee is not None:
add_condition("employee_id", employee.id)
add_condition("employee_name", employee.name)
add_condition("employee_name", employee.email)
if self._employee_name_is_unique(employee):
add_condition("employee_name", employee.name)
else:
add_condition("employee_id", normalized_user_id)
add_condition("employee_name", normalized_user_id)
@@ -1268,6 +1269,19 @@ class OrchestratorService:
return conditions, "你的报销单"
return conditions, "当前用户的报销单"
def _employee_name_is_unique(self, employee: Employee) -> bool:
normalized_name = str(employee.name or "").strip()
if not normalized_name:
return False
same_name_count = int(
self.db.scalar(
select(func.count()).select_from(Employee).where(Employee.name == normalized_name)
)
or 0
)
return same_name_count == 1
@staticmethod
def _has_privileged_expense_query_access(context_json: dict[str, Any]) -> bool:
role_codes = {