From 44a797c59b52337e01f7c7922fa89c9cb5d04513 Mon Sep 17 00:00:00 2001 From: Voge1imkafig <2390349500@qq.com> Date: Tue, 8 Jul 2025 10:41:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Generate_Report.py | 7 +- tools/API.py | 2 +- tools/Get_Json.py | 73 +++++++++--------- tools/__pycache__/Get_Json.cpython-313.pyc | Bin 3684 -> 4591 bytes .../__pycache__/get_pictures.cpython-313.pyc | Bin 10736 -> 10736 bytes tools/get_pictures.py | 25 +++++- 6 files changed, 68 insertions(+), 39 deletions(-) diff --git a/Generate_Report.py b/Generate_Report.py index 561fb8d..fd42563 100644 --- a/Generate_Report.py +++ b/Generate_Report.py @@ -12,7 +12,8 @@ from tools.content_tools import ( from tools.get_pictures import ( make_Thumbnail,resize_and_reduce_quality, - get_picture_nums,find_image,collect_defect_data + get_picture_nums,find_image,collect_defect_data, + process_picture_data ) from tools.Get_Json import (get_project_info,get_jizu_info, @@ -179,7 +180,11 @@ async def generate_report(base_info, baogao_info): temperature = shigong_data['temperature'] #温度 wind_speed = shigong_data['windSpeed'] #风速 weather = get_weather(shigong_data["weatherCode"]) #天气 + #拉取图片数据 picture_data = get_picture(turbine_id) + #获取缺陷图列表和典型图列表 + defect_pictures, typical_pictures = process_picture_data(picture_data, image_source_to_find) + #处理图片数据 date_year_month = get_year_month(baogao_date) diff --git a/tools/API.py b/tools/API.py index 7e4a6f3..0a1db69 100644 --- a/tools/API.py +++ b/tools/API.py @@ -4,4 +4,4 @@ GETJIZUINFO = "/turbine/detail/{turbineId}" GETSHIGONGINFO = "/t-construction/list" GETWEATHERINFO = "/weather-type/{weatherCode}" GETPICTURELIST = "/image/list" -GETPARTLIST = "/part/list" \ No newline at end of file +GETPARTLIST = "/part/list" diff --git a/tools/Get_Json.py b/tools/Get_Json.py index 594e888..7334787 100644 --- a/tools/Get_Json.py +++ b/tools/Get_Json.py @@ -53,7 +53,7 @@ def get_part_list(turbineId : str) -> dict: -def get_picture(turbineId : str): +def get_picture(turbineId : str) -> list[dict]: """获取对应机组所有图片 Args: @@ -61,40 +61,32 @@ def get_picture(turbineId : str): Return: list: 包含所有图片信息的列表(按部件分list) [ - [ - { - "imageId": "字符串", - "imageName": "字符串", - "imagePath": "字符串", - "partId": "字符串", - "partName": "字符串", - "imageResolution": "字符串", - "focalDistance": "字符串/None", - "shootingTime": "字符串/None", - "cameraManufacturer": "字符串/None", - "cameraModel": "字符串/None", - "weather": "字符串/None", - "weatherLabel": "字符串/None", - "humidness": "数值/None", - "temperature": "字符串/None", - "windLevel": "数值/None", - "shootingMethod": "字符串/None", - "shootingMethodLabel": "字符串/None", - "shootingDistance": "数值/None", - "collectorName": "字符串/None", - "imageType": "None", - "imageTypeLabel": "None", - "audioList": "None", - "gps": "字符串/None" - }, - ... - ], - [ - { - // 相同结构的字典对象 - }, - ... - ] + { + "imageId": "图片id", + "imageName": "图片名", + "imagePath": "图片路径", + "partId": "部件id", + "partName": "部件名", + "imageResolution": "字符串", + "focalDistance": "字符串/None", + "shootingTime": "字符串/None", + "cameraManufacturer": "字符串/None", + "cameraModel": "字符串/None", + "weather": "字符串/None", + "weatherLabel": "字符串/None", + "humidness": "数值/None", + "temperature": "字符串/None", + "windLevel": "数值/None", + "shootingMethod": "字符串/None", + "shootingMethodLabel": "字符串/None", + "shootingDistance": "数值/None", + "collectorName": "字符串/None", + "imageType": "None", + "imageTypeLabel": "None", + "audioList": "None", + "gps": "字符串/None" + }, + ... ] """ picturerul = DTURL + GETPICTURELIST @@ -104,6 +96,15 @@ def get_picture(turbineId : str): params = { "partId" : part_id, } - result.append(get_data(picturerul, params = params)) + for images in get_data(picturerul, params = params): + result.append(images) + print(f"图片数据获取成功:{result}") return result + +def find_defect_record(defect_pictures : list[dict]): + """查找缺陷图片的缺陷记录 + + Args: + defect_pictures (list[dict]): 缺陷图列表 + """ \ No newline at end of file diff --git a/tools/__pycache__/Get_Json.cpython-313.pyc b/tools/__pycache__/Get_Json.cpython-313.pyc index ab1f69d87254eb6721e0f770ad5979897fcc605e..f88480437c3cb476a055419b19f8eff9b609a785 100644 GIT binary patch delta 1661 zcma)6TTc@~6rOEMmF-0Z0pqpQ3zQ(BXcSb85fl8`$EKB94K-VQG7putPnGCuuyoSx$*FgQB&Xw{-; zaVRoL?k0%HcQUI~Qw&(GOOpwz^8sLW4#K4?A=tFW4Kc3^Sq@DZwr@pty-VAW9+}i- ziu$8bY74Mu17HAXEl}4+L(JEqb!p9@R1?R#wEKWf7rLbbVBz7g)cHgj{34A$lKV&J z$6DoZi`*ZUo=(h%?~~*i=;g~v3mQTQHZd$+8c`LBBd(?r zF(ei+n$3R#Hqboh4+#v%Dq-LE%)fgzH!_sS*vz>peXicUJib!#je-Wu!El3@7A^%DwI5ESKgZF-`_R+^ma2)!Ph&y#k{;yj>Af+XeWLB$ zj4`9r9=7)$_-4#q)PkIof6~F$T}wugMot;?2K3LbO_3$jx3(%sV{{dq81&#m! delta 732 zcmaE_{6vQDGcPX}0}wDy&(84YoX97^xNV}k0;9-8k1B;=ff()>W>%nVuwV>xuuu%M z2}iK76hjtE5l=d!rs&2CQ#rkEiDc#`rl-ai=a&{Gr^c7$$ERiHrQG5vEKRM*Ow5Zf zsVqpn#hU_TR%GU-gSp8pARD2814uIi@#h(n7qZFKvqXdJ1A|ZoQ$`3Yk5!)`k1do{ zn88Dyfgz7Qm@$;yfH99Flr4xIsu+oi=7ez~Jc5}lnP8?UF!(AmFmN*{Fhq01RD`l2 zWYd{7S?Wu#0;OK`ZGYN7?P=?dr}MgXp6}W9a_07@v-dskY=7D@{l&r+TwIPt>BUxD z3P4a&T9lNTm+G0Kpix{>q-mw_a&h0YIlDYvz_QqaMnNMdv$!N0s5%y?9AfUXxl5nz zn(%Dith6UP_JMUG2OrF6h)bSt+zoUVP%TU;O4!2GLL85xw#XRhwIU-R;Wzm{zl`cF zw#0&h)V!1;36QuDkkI5T0)`Mnkp+mb1QAw~1qF23i$Ni(pfK56KuXXN$OOq3`vZvv zhA%>s%LTLyKCm%x^7r$0@=nQ^QFT$w`WlDLM@|M2*)LoStXv&xt-eJHK;@cDMWR5; zPm_1@O94BbTP&cEC<2+dk^!usNF2z%#bJ}1pHiBWYFFeA Image: return new_img except Exception as e: print(f"图片处理有问题:{e}") - return None \ No newline at end of file + return None + +def process_picture_data(picture_data : list[dict], + image_source_to_find : list[str], + quexian_type : str, + dianxing_type : str) -> tuple[list[str], list[str]]: + """处理从数据库获取的图片数据 + + Args: + picture_data (list[dict]): 图片数据 + image_source_to_find (list[str]): 要查找的图片来源枚举(外内防雷) + quexian_type (str): 缺陷类型枚举值 + dianxing_type (str): 典型类型枚举值 + Returns: + tuple( + defct_pictures, 缺陷图列表 + dianxing_pictures 典型图列表 + ) + """ + #过滤目标来源的图片数据 + picture_data = [pic for pic in picture_data if pic['imageSource'] in image_source_to_find] + #分别择出缺陷图和典型图 + return [pic for pic in picture_data if pic['imageType'] == quexian_type], [pic for pic in picture_data if pic['imageType'] == dianxing_type] + \ No newline at end of file