|
|
|
@ -7,10 +7,11 @@ from datetime import datetime |
|
|
|
|
deptEntity = DeptEntity |
|
|
|
|
userDao = UserDao |
|
|
|
|
class DeptDao(BaseDao): |
|
|
|
|
def select_dept_list( self,dept: Dept): |
|
|
|
|
def select_dept_list(self, dept: Dept): |
|
|
|
|
session = self.get_raw_session() |
|
|
|
|
try: |
|
|
|
|
dept_qry = session.query(DeptEntity).filter(DeptEntity.deleted == 0) |
|
|
|
|
# 查询本级单位 |
|
|
|
|
dept_qry = session.query(DeptEntity).filter(DeptEntity.deleted == 0, DeptEntity.id == dept.id,) |
|
|
|
|
if dept.name: |
|
|
|
|
dept_qry = dept_qry.filter( |
|
|
|
|
DeptEntity.name.like(f"%{dept.name}%") |
|
|
|
@ -19,14 +20,35 @@ class DeptDao(BaseDao): |
|
|
|
|
dept_qry = dept_qry.filter( |
|
|
|
|
DeptEntity.status == dept.status |
|
|
|
|
) |
|
|
|
|
results = dept_qry.all() |
|
|
|
|
parent_results = dept_qry.all() |
|
|
|
|
|
|
|
|
|
# 初始化结果列表 |
|
|
|
|
all_depts = [] |
|
|
|
|
|
|
|
|
|
# 定义递归函数来查找子部门 |
|
|
|
|
def find_subdepartments(parent_id): |
|
|
|
|
subdept_qry = session.query(DeptEntity).filter( |
|
|
|
|
DeptEntity.parent_id == parent_id, |
|
|
|
|
DeptEntity.deleted == 0 |
|
|
|
|
) |
|
|
|
|
subdepts = subdept_qry.all() |
|
|
|
|
for subdept in subdepts: |
|
|
|
|
all_depts.append(subdept) |
|
|
|
|
find_subdepartments(subdept.id) |
|
|
|
|
|
|
|
|
|
# 遍历父部门并查找其子部门 |
|
|
|
|
for parent_dept in parent_results: |
|
|
|
|
all_depts.append(parent_dept) |
|
|
|
|
find_subdepartments(parent_dept.id) |
|
|
|
|
|
|
|
|
|
finally: |
|
|
|
|
session.close() |
|
|
|
|
if results is not None: |
|
|
|
|
|
|
|
|
|
if all_depts: |
|
|
|
|
depts = [] |
|
|
|
|
dept_resp = DeptResponse() |
|
|
|
|
|
|
|
|
|
for dept in results: |
|
|
|
|
for dept in all_depts: |
|
|
|
|
depts.append( |
|
|
|
|
Dept.from_dict({ |
|
|
|
|
"id": dept.id, |
|
|
|
|