From ed8b5d0faf854e77eed5107588affa63378dcce6 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Wed, 10 Sep 2025 16:11:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E8=AE=B0=E5=BD=95=E8=A1=A8=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-fastapi-backend/002简单http服务.py | 2 +- .../module_admin/dao/door_dao.py | 9 +++++++++ .../service/identification_record_service.py | 18 +++++++++++++++--- ruoyi-fastapi-backend/utils/haikang_util.py | 2 +- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/ruoyi-fastapi-backend/002简单http服务.py b/ruoyi-fastapi-backend/002简单http服务.py index 591a94c..a842620 100644 --- a/ruoyi-fastapi-backend/002简单http服务.py +++ b/ruoyi-fastapi-backend/002简单http服务.py @@ -50,7 +50,7 @@ class CustomHTTPRequestHandler(BaseHTTPRequestHandler): logger.info("POST 请求数据为空") elif self.headers.get("Content-Type") == "application/json": data = json.loads(post_data.decode("utf-8")) - # logger.info(f"接收到JSON数据: {data}") + logger.info(f"接收到JSON数据: {data}") else: # 解析表单数据 data = urllib.parse.parse_qs(post_data.decode("utf-8")) diff --git a/ruoyi-fastapi-backend/module_admin/dao/door_dao.py b/ruoyi-fastapi-backend/module_admin/dao/door_dao.py index aa31052..684888c 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/door_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/door_dao.py @@ -10,6 +10,15 @@ class DoorDao: 门禁设备模块数据库操作层 """ + @classmethod + async def get_door_index_code_list(cls, db: AsyncSession, permission: str = None): + """ + 获取门禁设备索引编码列表 + """ + query = select(Door.indexCode).where(Door.permission == permission if permission else True) + result = await db.execute(query) + return [row[0] for row in result.all()] + @classmethod async def get_door_detail_by_id(cls, db: AsyncSession, id: int): """ diff --git a/ruoyi-fastapi-backend/module_admin/service/identification_record_service.py b/ruoyi-fastapi-backend/module_admin/service/identification_record_service.py index eef420d..eb1605e 100644 --- a/ruoyi-fastapi-backend/module_admin/service/identification_record_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/identification_record_service.py @@ -3,7 +3,9 @@ from typing import List from config.constant import CommonConstant from exceptions.exception import ServiceException from module_admin.entity.vo.common_vo import CrudResponseModel +from module_admin.entity.do.identification_record_do import IdentificationRecord from module_admin.dao.identification_record_dao import Identification_recordDao +from module_admin.dao.door_dao import DoorDao from module_admin.entity.vo.identification_record_vo import DeleteIdentification_recordModel, Identification_recordModel, Identification_recordPageQueryModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil @@ -38,8 +40,9 @@ class Identification_recordService: start_time = cls.time_2_iso8601(query_object.begin_create_time) if query_object.begin_create_time else None end_time = cls.time_2_iso8601(query_object.end_create_time) if query_object.end_create_time else None - # 获取门禁点列表 - haikang_record_list = await HaikangUtil.query_door_events_v2([] + # 获取门禁点列表, 获取机器人添加的门禁设备列表,有权限的. + door_index_code_list = await DoorDao.get_door_index_code_list(query_db, permission='1') + haikang_record_list = await HaikangUtil.query_door_events_v2(door_index_code_list ,pageNo=query_object.page_num , pageSize=max(t-query_object.page_size, t-len(identification_record_list_result.rows)) ,startTime=start_time, endTime=end_time @@ -48,7 +51,7 @@ class Identification_recordService: # print(identification_record_list_result.rows) # print("*"*100) # print(haikang_record_list[1]) - return identification_record_list_result.rows + haikang_record_list[1]["list"] + return identification_record_list_result.rows + cls.parse_haikang_record_list(haikang_record_list[1]["list"]) # return None @@ -162,3 +165,12 @@ class Identification_recordService: iso_format = dt.isoformat() return iso_format + + @classmethod + def parse_haikang_record_list(cls, record_list: list): + back = list() + for record in record_list: + back.append(IdentificationRecord(person_name=record['personName'], person_status="1", door_name=record['doorName'], pic_uri=record['picUri'] + , status="1", source="haikang", conf=100, create_time=record['eventTime'])) + + return back diff --git a/ruoyi-fastapi-backend/utils/haikang_util.py b/ruoyi-fastapi-backend/utils/haikang_util.py index 27947c7..599ad55 100644 --- a/ruoyi-fastapi-backend/utils/haikang_util.py +++ b/ruoyi-fastapi-backend/utils/haikang_util.py @@ -234,7 +234,7 @@ class HaikangUtil: @classmethod # 查询门禁点事件v2 - async def query_door_events_v2(cls, door_index_code: str, **args): + async def query_door_events_v2(cls, door_index_code: list, **args): """查询门禁点事件v2 Args: