|
|
@@ -135,7 +135,7 @@ class EmployeeService:
|
|
|
"""
|
|
|
crud = EmployeeCRUD(auth)
|
|
|
offset = (page_no - 1) * page_size
|
|
|
- return await crud.page(
|
|
|
+ result = await crud.page(
|
|
|
offset=offset,
|
|
|
limit=page_size,
|
|
|
order_by=[{"id": "desc"}],
|
|
|
@@ -143,6 +143,30 @@ class EmployeeService:
|
|
|
out_schema=EmployeeListOutSchema,
|
|
|
preload=["user"]
|
|
|
)
|
|
|
+
|
|
|
+ # 补充部门名称
|
|
|
+ if result.get("items"):
|
|
|
+ from app.plugin.module_payment.department.model import DepartmentModel
|
|
|
+ from sqlalchemy import select
|
|
|
+ dept_ids = set()
|
|
|
+ for item in result["items"]:
|
|
|
+ dept_ids_list = item.get("department_ids") or []
|
|
|
+ if dept_ids_list:
|
|
|
+ dept_ids.update(str(d) for d in dept_ids_list if d)
|
|
|
+
|
|
|
+ if dept_ids:
|
|
|
+ dept_stmt = select(DepartmentModel.department_id, DepartmentModel.department_name).where(
|
|
|
+ DepartmentModel.department_id.in_(list(dept_ids)),
|
|
|
+ )
|
|
|
+ dept_result = await auth.db.execute(dept_stmt)
|
|
|
+ dept_map = {row.department_id: row.department_name for row in dept_result.fetchall() if row.department_id}
|
|
|
+
|
|
|
+ for item in result["items"]:
|
|
|
+ dept_ids_list = item.get("department_ids") or []
|
|
|
+ names = [dept_map.get(str(d), "") for d in dept_ids_list if dept_map.get(str(d))]
|
|
|
+ item["department_name"] = "、".join(filter(None, names)) or None
|
|
|
+
|
|
|
+ return result
|
|
|
|
|
|
@classmethod
|
|
|
async def info_service(
|