Kaynağa Gözat

风险防控-巡查人员列表更新。

baoyubo 6 ay önce
ebeveyn
işleme
249519e6da

+ 33 - 19
routers/api/riskManagement/user.py

@@ -12,6 +12,8 @@ from database import get_db
 from typing import List
 from models import *
 from utils import *
+from utils.ry_system_util import *
+from utils.riskManagement_uitl import *
 import json
 import traceback
 
@@ -31,14 +33,22 @@ async def get_inspection_user_list(
     user_id = Depends(valid_access_token)
 ):
     try:
-        # 构建查询
-        query = db.query(RiskManagementInspectionUser)
-        query = query.filter(RiskManagementInspectionUser.del_flag != '2')
+
         # 应用查询条件
+        query = db.query(SysUser)
+        query = query.filter(SysUser.del_flag != '2')
+
         if nickName:
-            query = query.filter(RiskManagementInspectionUser.nick_name.like(f'%{nickName}%'))
+            query = query.filter(SysUser.nick_name.like(f'%{nickName}%'))
+
         if deptId:
-            query = query.filter(RiskManagementInspectionUser.dept_id == deptId)
+            user_ids = [i.user_id for i in dept_id_get_user_info(db,deptId)]
+            query = query.filter(SysUser.user_id._in(user_ids))
+        user_ids = [i.user_id for i in query.all()]
+        # 构建查询
+        query = db.query(RiskManagementInspectionUser)
+        query = query.filter(RiskManagementInspectionUser.del_flag != '2')
+        query = query.filter(RiskManagementInspectionUser.user_id._in(user_ids))
 
         # 计算总条目数
         total_items = query.count()
@@ -50,24 +60,28 @@ async def get_inspection_user_list(
         InspectionUsers = query.offset((page - 1) * pageSize).limit(pageSize).all()
 
         # 将查询结果转换为列表形式的字典
-        InspectionUsers_list = [
-            {
+        InspectionUsers_list = []
+        for user in InspectionUsers:
+            user_info = user_id_get_user_info(db,user.user_id)
+            dept = dept_id_get_dept_info(db,user_info.dept_id)
+            ancestors_names = dept_id_get_ancestors_names(db,dept)
+            area_code = user.area_code
+            area = area_code_get_ancestors_names(db,area_code_get_area_info(db,area_code))
+            user_info = {
                 "id": user.id,
                 "user_id": user.user_id,
-                "dept_id": user.dept_id,
-                "dept_name": user.dept_name,
-                "ancestors_names": user.ancestors_names,
-                "user_name": user.user_name,
+                "dept_id": user_info.dept_id,
+                "dept_name": dept.dept_name,
+                "ancestors_names": ancestors_names,
+                "user_name": user_info.user_name,
                 "create_time": user.create_time.strftime('%Y-%m-%d'),
-                "phonenumber": user.phonenumber,
-                "nick_name": user.nick_name,
+                "phonenumber": user_info.phonenumber,
+                "nick_name": user_info.nick_name,
                 "area_code": user.area_code,
-                "area": user.area,
-                "yzy_account":user.yzy_account
-            }
-            for user in InspectionUsers
-        ]
-
+                "area": area,
+                "yzy_account":user_info.yzy_account
+                }
+            InspectionUsers_list.append(user_info)
         # 返回结果
         return {
             "code": 200,

+ 15 - 0
utils/riskManagement_uitl.py

@@ -0,0 +1,15 @@
+from models import *
+
+def area_code_get_ancestors_names(db,area_info, ancestors_name=''):
+    ancestors_name = area_info.area_name + ancestors_name
+    if area_info.parent_id == 0:
+        return ancestors_name
+    else:
+        return area_code_get_ancestors_names(area_code_get_area_info(db,area_info.parent_id), ancestors_name)
+
+def area_code_get_area_info(db,area_code):
+    # 机构id获取机构信息
+    query = db.query(GovdataArea)
+    query = query.filter(GovdataArea.status == '1')
+    query = query.filter(GovdataArea.area_code == area_code)
+    return query.first()

+ 31 - 11
utils/ry_system_util.py

@@ -1,12 +1,32 @@
 from models import *
 
 def dept_id_get_dept_info(db,dept_id):
+    # 机构id获取机构信息
     query = db.query(SysDept)
     query = query.filter(SysDept.del_flag != '2')
     query = query.filter(SysDept.dept_id == dept_id)
     return query.first()
+def parent_id_get_dept_info(db,parent_id):
+    query = db.query(SysDept)
+    query = query.filter(SysDept.del_flag != '2')
+    query = query.filter(SysDept.parent_id == parent_id)
+    return query.all()
 
+def nick_name_get_user_info(db,nickName):
+    query = db.query(SysUser)
+    # query = query.filter(SysUserRole.del_flag != '2')
+    query = query.filter(SysUser.nick_name.like(f'%{nickName}%'))
+    resutl = query.all()
+    return [i.user_id for i in resutl]
+
+def dept_id_get_user_info(db,dept_id):
+    # 用户id获取用户信息
+    query = db.query(SysUser)
+    query = query.filter(SysUser.del_flag != '2')
+    query = query.filter(SysUser.user_id == dept_id)
+    return query.all()
 def user_id_get_user_info(db,user_id):
+    # 用户id获取用户信息
     query = db.query(SysUser)
     query = query.filter(SysUser.del_flag != '2')
     query = query.filter(SysUser.user_id == user_id)
@@ -67,18 +87,8 @@ def parent_id_get_exclude_dept_info(db,dept_id):
         query = query.filter(SysDept.dept_id != dept_id)
     return query.all()
 
-def parent_id_get_dept_info(db,parent_id):
-    query = db.query(SysDept)
-    query = query.filter(SysDept.del_flag != '2')
-    query = query.filter(SysDept.parent_id == parent_id)
-    return query.all()
 
 
-def dept_id_get_dept_info(db, dept_id):
-    query = db.query(SysDept)
-    query = query.filter(SysDept.del_flag != '2')
-    query = query.filter(SysDept.dept_id == dept_id)
-    return query.first()
 
 def parent_id_get_menu_info(db,parent_id):
     query = db.query(SysMenu)
@@ -98,4 +108,14 @@ def role_id_get_role_depts(db,role_id):
     # query = query.filter(SysUserRole.del_flag != '2')
     query = query.filter(SysRoleDept.role_id == role_id)
     resutl = query.all()
-    return [i.dept_id for i in resutl]
+    return [i.dept_id for i in resutl]
+
+
+
+
+def dept_id_get_ancestors_names(db,dept, ancestors_name=''):
+    ancestors_name = '/' + dept.dept_name + ancestors_name
+    if dept.parent_id == 0:
+        return ancestors_name
+    else:
+        return dept_id_get_ancestors_names(dept_id_get_dept_info(db,dept.parent_id), ancestors_name)