diff --git a/ruoyi-fastapi-backend/.env.dev b/ruoyi-fastapi-backend/.env.dev index e314f15..c01d3d6 100644 --- a/ruoyi-fastapi-backend/.env.dev +++ b/ruoyi-fastapi-backend/.env.dev @@ -102,6 +102,10 @@ HAIKANG_FACE_DELETE = '/api/frs/v1/face/deletion' HAIKANG_FACE_SAVE_PATH = "./face_images" +HAIKANG_VISITOR_PICTURES_SAVE_PATH = "./visitor/face_images/" +HAIKANG_VISITOR_RECORD_TXT = "./visitor/visitorIds.txt" +#---------------------------------海康平台配置end---------------------------------- + # # 人脸分组1vN检索 # HAIKANG_APPLICATION_ONETOMANY_URL = '/api/frs/v1/application/oneToMany' diff --git a/ruoyi-fastapi-backend/005测试compreface人脸识别服务.py b/ruoyi-fastapi-backend/005测试compreface人脸识别服务.py index c266850..aac49e7 100644 --- a/ruoyi-fastapi-backend/005测试compreface人脸识别服务.py +++ b/ruoyi-fastapi-backend/005测试compreface人脸识别服务.py @@ -14,7 +14,7 @@ def face_recognition_file(image_path, url): return response.json() if __name__ == '__main__': - image_path = './haotian.jpg' + image_path = './moshengren.jpg' url = 'http://10.0.0.202:9099/system/compreface/face_recognition' # print(face_recognition_stream(image_path, url)) print(face_recognition_file(image_path, url)) \ No newline at end of file diff --git a/ruoyi-fastapi-backend/config/env.py b/ruoyi-fastapi-backend/config/env.py index b2a622d..cdf05d2 100644 --- a/ruoyi-fastapi-backend/config/env.py +++ b/ruoyi-fastapi-backend/config/env.py @@ -192,6 +192,8 @@ class HaiKangSettings: HAIKANG_FACE_DELETE = '/api/frs/v1/face/deletion' HAIKANG_FACE_SAVE_PATH = "./face_images" + HAIKANG_VISITOR_PICTURES_SAVE_PATH = "./visitor/face_images/" + HAIKANG_VISITOR_RECORD_TXT = "./visitor/visitorIds.txt" diff --git a/ruoyi-fastapi-backend/module_admin/controller/compreface_controller.py b/ruoyi-fastapi-backend/module_admin/controller/compreface_controller.py index 4ff8b1c..3f0a16f 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/compreface_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/compreface_controller.py @@ -32,10 +32,10 @@ async def face_recognition(request: Request, file: UploadFile = File(None)) -> d return ResponseUtil.success(data=result) -def my_job(): - print("任务执行时间:", datetime.datetime.now()) +# def my_job(): +# print("任务执行时间:", datetime.datetime.now()) -from config.get_scheduler import scheduler -from apscheduler.triggers.cron import CronTrigger -trigger = CronTrigger(minute='*', second=0) -scheduler.add_job(my_job, trigger=trigger) \ No newline at end of file +# from config.get_scheduler import scheduler +# from apscheduler.triggers.cron import CronTrigger +# trigger = CronTrigger(minute='*', second=0) +# scheduler.add_job(my_job, trigger=trigger) \ No newline at end of file diff --git a/ruoyi-fastapi-backend/module_admin/service/haikang_service.py b/ruoyi-fastapi-backend/module_admin/service/haikang_service.py index f4a8a03..b6dd17e 100644 --- a/ruoyi-fastapi-backend/module_admin/service/haikang_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/haikang_service.py @@ -1,8 +1,10 @@ from utils.haikang_util import HaikangUtil from module_admin.entity.vo.haikang_vo import VisitorReservationQueryModel +from config.env import HaiKangConfig import json import base64 import asyncio +import os class HaiKangService: """ @@ -136,26 +138,36 @@ class HaiKangService: visitor_list += result[1]['list'] else: break + # else: + # return [] # # print(visitor_list) + + os.makedirs(os.path.dirname(HaiKangConfig.HAIKANG_VISITOR_PICTURES_SAVE_PATH), exist_ok=True) - with open("./visitor/visitorIds.txt", "r", encoding="utf-8") as f: + with open(HaiKangConfig.HAIKANG_VISITOR_RECORD_TXT, "r", encoding="utf-8") as f: visitor_ids = [line.rstrip('\n') for line in f] # print(visitor_ids) + + + visitor_save_path_name_list = list() visitor_ids_add = list() for visitor in visitor_list: if visitor["visitorId"] not in visitor_ids: visitor_ids_add.append(visitor["visitorId"]) # 获取图片 try: - await HaikangUtil.query_visitor_record_pictures(visitor["svrIndexCode"], visitor["picUri"], f"./visitor/face_images/{visitor['visitorName']}") + result = await HaikangUtil.query_visitor_record_pictures(visitor["svrIndexCode"], visitor["picUri"], f"{HaiKangConfig.HAIKANG_VISITOR_PICTURES_SAVE_PATH}{visitor['visitorName']}") await asyncio.sleep(1) + visitor_save_path_name_list.append(result) except Exception as e: print(e, visitor["visitorId"]) with open("./visitor/visitorIds.txt", "a", encoding="utf-8") as f: for visitor_id in visitor_ids_add: f.write(visitor_id + "\n") + + return visitor_save_path_name_list diff --git a/ruoyi-fastapi-backend/utils/haikang_util.py b/ruoyi-fastapi-backend/utils/haikang_util.py index 9ac544f..eeeae3b 100644 --- a/ruoyi-fastapi-backend/utils/haikang_util.py +++ b/ruoyi-fastapi-backend/utils/haikang_util.py @@ -457,15 +457,15 @@ class HaikangUtil: back = await cls.send_request("POST", url, headers, body_json) if back["code"] == "0": - # logger.info(f"查询访客预约记录成功") + logger.info(f"查询访客预约记录成功") return [True, back["data"]] else: - # logger.error(f"查询访客预约记录失败 ", back["code"], back["msg"]) + logger.error(f"查询访客预约记录失败 ", back["code"], back["msg"]) return [False, back["code"], back["msg"]] # 获取访客记录中的图片 @classmethod - async def query_visitor_record_pictures(cls, svrIndexCode: str, picUri: str, save_path): + async def query_visitor_record_pictures(cls, svrIndexCode: str, picUri: str, save_path:str): """获取访客记录中的图片 Args: @@ -490,12 +490,16 @@ class HaikangUtil: back = await cls.send_request("POST", url, headers, body_json, False) os.makedirs(save_path, exist_ok=True) - save_path = os.path.join(save_path, picUri.split('/')[-1]+".jpg") + + name = save_path.split('/')[-1] + save_path = os.path.join(save_path, name+".jpg") with open(save_path, 'wb') as f: for chunk in back.iter_bytes(chunk_size=8192): if chunk: # 忽略 keep-alive 的空 chunk f.write(chunk) + return [save_path, name] + @@ -1019,34 +1023,34 @@ class HaikangUtil: return [False, back["code"], back["msg"]] # 查询访客预约记录, visitorStatus: 0 待审核, 1 正常, 2 迟到, 3 失效, 4 审核退回, 9 审核失效, 10 邀约中, 11 邀约失效 - @classmethod - async def query_visitor_record( - cls, **args - ): - """查询访客预约记录 + # @classmethod + # async def query_visitor_record( + # cls, **args + # ): + # """查询访客预约记录 - Args: - pageNo (int, optional): 页码. Defaults to 1. - pageSize (int, optional): 每页个数. Defaults to 10. - visitorStatus (int, optional): 访客状态. Defaults to 1. + # Args: + # pageNo (int, optional): 页码. Defaults to 1. + # pageSize (int, optional): 每页个数. Defaults to 10. + # visitorStatus (int, optional): 访客状态. Defaults to 1. - Returns: - _type_: _description_ - """ - url = f"{HaiKangConfig.HAIKANG_URL}:{HaiKangConfig.HAIKANG_PORT}/artemis{HaiKangConfig.HAIKANG_VISITOR_RECORD_SEARCH}" - body_dict = args + # Returns: + # _type_: _description_ + # """ + # url = f"{HaiKangConfig.HAIKANG_URL}:{HaiKangConfig.HAIKANG_PORT}/artemis{HaiKangConfig.HAIKANG_VISITOR_RECORD_SEARCH}" + # body_dict = args - body_json = json.dumps(body_dict, separators=(",", ":")) + # body_json = json.dumps(body_dict, separators=(",", ":")) - headers = cls.build_signed_headers( - "POST", url, body_json, HaiKangConfig.HAIKANG_AK, HaiKangConfig.HAIKANG_SK - ) + # headers = cls.build_signed_headers( + # "POST", url, body_json, HaiKangConfig.HAIKANG_AK, HaiKangConfig.HAIKANG_SK + # ) - back = await cls.send_request("POST", url, headers, body_json) + # back = await cls.send_request("POST", url, headers, body_json) - if back["code"] == "0": - logger.info(f"查询访客预约记录成功") - return [True, back["data"]] - else: - logger.error(f"查询访客预约记录失败 ", back["code"], back["msg"]) - return [False, back["code"], back["msg"]] + # if back["code"] == "0": + # logger.info(f"查询访客预约记录成功") + # return [True, back["data"]] + # else: + # logger.error(f"查询访客预约记录失败 ", back["code"], back["msg"]) + # return [False, back["code"], back["msg"]]