From 8402a2cb7fef52e1f34b7f47ae71dea13c79d17e Mon Sep 17 00:00:00 2001 From: Voge1imkafig <2390349500@qq.com> Date: Wed, 30 Jul 2025 17:31:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=84=B1=E7=A6=BB=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E6=B7=BB=E5=8A=A0=E6=A0=87=E9=A2=98=E8=A1=8C?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E8=B0=83=E8=AF=95=E5=AE=8C=E4=BA=86?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?->dict->=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BA=8C=E7=BB=B4list->?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=A1=A8=E6=A0=BC=E7=9A=84=E6=97=A0=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=95=B0=E6=8D=AE=E6=B5=81=E3=80=82=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E9=87=91=E9=A3=8E=E6=A8=A1=E6=9D=BF=E8=83=BD=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=88=B0=E5=99=A8=E5=85=B7=E8=A1=A8=E6=A0=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dt_report.py | 6 +- Jf_report.py | 56 ++- __pycache__/Dt_report.cpython-310.pyc | Bin 15589 -> 15660 bytes __pycache__/Jf_report.cpython-310.pyc | Bin 8058 -> 9168 bytes core/__pycache__/tables.cpython-310.pyc | Bin 7089 -> 7242 bytes core/tables.py | 15 +- output/test.docx | Bin 37017 -> 0 bytes ...告一期012号2025年07月29日版36.docx | Bin 139593 -> 0 bytes ...告一期012号2025年07月30日版.docx} | Bin 139676 -> 140854 bytes tools/1.md | 86 ++++ tools/Get_Json.py | 5 +- tools/__pycache__/API.cpython-310.pyc | Bin 576 -> 576 bytes tools/__pycache__/Get_Json.cpython-310.pyc | Bin 5456 -> 5382 bytes .../__pycache__/dataproccess.cpython-310.pyc | Bin 10400 -> 12264 bytes tools/__pycache__/defines.cpython-310.pyc | Bin 4409 -> 5889 bytes .../document_tools.cpython-310.pyc | Bin 25286 -> 26029 bytes .../__pycache__/json_to_docx.cpython-310.pyc | Bin 9523 -> 9989 bytes tools/dataproccess.py | 77 +++- tools/defines.py | 47 ++- tools/document_tools.py | 367 ++++++++++++++---- tools/json_to_docx.py | 46 ++- 21 files changed, 577 insertions(+), 128 deletions(-) delete mode 100644 output/test.docx delete mode 100644 output/三峡能源阿城万兴风电场防雷通道检测项目项目叶片外观、内部、防雷检查报告一期012号2025年07月29日版36.docx rename output/{三峡能源阿城万兴风电场防雷通道检测项目项目叶片外观、内部、防雷检查报告一期012号2025年07月29日版35.docx => 三峡能源阿城万兴风电场防雷通道检测项目项目叶片外观、内部、防雷检查报告一期012号2025年07月30日版.docx} (94%) create mode 100644 tools/1.md diff --git a/Dt_report.py b/Dt_report.py index 784c7b9..a550877 100644 --- a/Dt_report.py +++ b/Dt_report.py @@ -26,7 +26,7 @@ from tools.Get_Json import ( from tools.dataproccess import ( caculate_work_days,get_year_month, merge_info,get_defect_str, - safe_get,get_resource_path + safe_get,get_resource_path,merge_dicts ) @@ -121,8 +121,8 @@ async def generate_dt_report(base_info, baogao_info): # weather = get_weather(shigong_data["weatherCode"]) #天气 不从此接口获取,待定!!! #拉取部件、图片数据 - part_data, picture_data, Yepians = get_part_picture(turbine_id) - + part_data, picture_data1, picture_data2, Yepians = get_part_picture(turbine_id) + picture_data = merge_dicts(picture_data1, picture_data2) print(Yepians) Y1_info = get_yepian_xiangqing(Yepians[0]["partId"]) Y_Code = [yepian["partCode"] for yepian in Yepians] diff --git a/Jf_report.py b/Jf_report.py index 066cb9d..b37d8ea 100644 --- a/Jf_report.py +++ b/Jf_report.py @@ -3,7 +3,7 @@ from tools.document_tools import ( create_document, add_documents,add_table_and_replace, add_table_to_document,add_dynamic_table, process_server_images_table,add_header,add_landscape_section, - merge_documents,add_table,add_defect_info_table + merge_documents,add_table,add_defect_info_table,add_table_title ) # 内容处理工具 @@ -28,9 +28,11 @@ from tools.dataproccess import ( caculate_work_days,get_year_month, merge_info,get_defect_str,get_defect_json, safe_get,get_resource_path,get_defedct_info, + tree_dict_to_table_data,merge_dicts, + defect_list_addtitle ) -from tools.json_to_docx import json_to_docx +from tools.json_to_docx import json_to_docx, list_to_json_with_merges from core.tables import fill_tables @@ -123,8 +125,8 @@ async def generate_jf_report(base_info, baogao_info): # weather = get_weather(shigong_data["weatherCode"]) #天气 不从此接口获取,待定!!! #拉取部件、图片数据 - part_data, picture_data, Yepians = get_part_picture(turbine_id) - + part_data, picture_data1, picture_data2, Yepians = get_part_picture(turbine_id) + picture_data = merge_dicts(picture_data1, picture_data2) print(Yepians) Y1_info = get_yepian_xiangqing(Yepians[0]["partId"]) Y_Code = [yepian["partCode"] for yepian in Yepians] @@ -142,10 +144,17 @@ async def generate_jf_report(base_info, baogao_info): jiancha = [] neirong = [] neirong2 = [] + use_tool_table = [] + table_index = 1 #获取对应枚举字段 if if_waibu: baogao_label.append("外观") image_source_to_find.append(baogao_info['waibu_enum']) + use_tool_table.extend( + [ [str(idx)] + item + for idx, item in enumerate(USE_TOOL_ENUM.OUT.LIST, start=table_index) ] + ) + table_index += len(USE_TOOL_ENUM.OUT.LIST) if baogao_info["shigong_fangan"] == None: print("未传入施工方案,使用已有枚举") renyuan_peizhi.append(SHIGONG_FANGAN_ENUM.WAIBU.RENYUAN_PEIZHI) @@ -160,6 +169,11 @@ async def generate_jf_report(base_info, baogao_info): if if_neibu: baogao_label.append("内部") image_source_to_find.append(baogao_info['neibu_enum']) + use_tool_table.extend( + [ [str(idx)] + item + for idx, item in enumerate(USE_TOOL_ENUM.IN.LIST, start=table_index) ] + ) + table_index += len(USE_TOOL_ENUM.IN.LIST) if baogao_info["shigong_fangan"] == None: renyuan_peizhi.append(SHIGONG_FANGAN_ENUM.NEIBU.RENYUAN_PEIZHI) gongzuo_neirong.append(SHIGONG_FANGAN_ENUM.NEIBU.GONGZUO_NEIRONG) @@ -173,6 +187,11 @@ async def generate_jf_report(base_info, baogao_info): if if_fanglei: baogao_label.append("防雷") image_source_to_find.append(baogao_info['fanglei_enum']) + use_tool_table.extend( + [ [str(idx)] + item + for idx, item in enumerate(USE_TOOL_ENUM.LIGHT.LIST, start=table_index) ] + ) + table_index += len(USE_TOOL_ENUM.LIGHT.LIST) if baogao_info["shigong_fangan"] == None: renyuan_peizhi.append(SHIGONG_FANGAN_ENUM.FANGLEI.YEPIAN.RENYUAN_PEIZHI) gongzuo_neirong.append(SHIGONG_FANGAN_ENUM.FANGLEI.YEPIAN.GONGZUO_NEIRONG) @@ -235,13 +254,14 @@ async def generate_jf_report(base_info, baogao_info): "top_margin" : JF_T_MARGIN, "bottom_margin" : JF_B_MARGIN, })) + #加封面 merge_documents(output_dir, add_list) - + #页眉 add_header(output_dir, TEMPLATE_HEADER.JINFENG_HEADER.ENUM) - + #项目机组信息表格 print(add_documents(output_dir, get_resource_path(MUBAN_DIR + '/jf_table_title.docx'))) total_table_num = 0 - print(add_table(output_dir, get_resource_path(MUBAN_DIR + '/jinfeng_table.docx'))) + print(add_table(output_dir, get_resource_path(MUBAN_DIR + '/jinfeng_table.docx'), REPORT_ENUM=TEMPLATE_HEADER.JINFENG_HEADER.ENUM)) total_picture_num += 1 list_to_replace = { 'jia_company_name' : Jia_company, @@ -271,14 +291,22 @@ async def generate_jf_report(base_info, baogao_info): print(search_and_replace(output_dir, find_text, replace_text)) print(f"静态内容生成完毕,开始生成动态内容") - defect_info = get_defedct_info(defect_records_with_pic) + #缺陷信息表格1 + defect_info, defect_part_type_list = get_defedct_info(defect_records_with_pic) - total_picture_num = add_defect_info_table(output_dir, defect_info, get_resource_path(MUBAN_DIR + '/quexian_liebiao.docx'), total_table_num) + total_picture_num = add_defect_info_table(output_dir, defect_info, get_resource_path(MUBAN_DIR + '/quexian_liebiao.docx'), total_table_num,TEMPLATE_HEADER.JINFENG_HEADER.ENUM) - # defect_json = get_defect_json(defect_info, Y_Code, jizu_bianhao) + #缺陷信息表格2 - # print(f"{defect_json} {type(defect_json)}") - # doc = json_to_docx(defect_json) - - # doc.save(output_dir) \ No newline at end of file + table_list = tree_dict_to_table_data(defect_part_type_list) + table_list = defect_list_addtitle(table_list, jizu_bianhao) + print(table_list) + add_table_title(output_dir, DEFECT_TABLE_TITLE) + table_json = list_to_json_with_merges(table_list, style_config=STYLE_CONFIG, merge_columns=2) + json_to_docx(table_json, output_dir).save(output_dir) + + #使用器具记录表 + add_table_title(output_dir, USE_TOOL_TABLE_TITLE) + print(use_tool_table) + json_to_docx(list_to_json_with_merges(use_tool_table, style_config=STYLE_CONFIG, detect_merges=False),output_dir).save(output_dir) \ No newline at end of file diff --git a/__pycache__/Dt_report.cpython-310.pyc b/__pycache__/Dt_report.cpython-310.pyc index b29a7cc948998f67b8b2ff0b5c005a27159f6f31..32dc3e908c714cd1c3c0edb19e7ad793d21fb842 100644 GIT binary patch delta 6152 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 RVsS#2bCT0(n;}oK{|^fR@p%9M diff --git a/__pycache__/Jf_report.cpython-310.pyc b/__pycache__/Jf_report.cpython-310.pyc index e0184b33c220bf4b3f12be3fa96d5b114aed8e1a..86bf4361c2e1bd1ebb0c7cb9530644d53dd6c903 100644 GIT binary patch delta 3416 zcmbtXOKcm*8Q$3?X-eWt4~u#ye(1qSmTgJ4@qZGC6ngMyW>Q5 zX3IEq)24|MyW3M8qtc;3jiyBa9h#tr0xi%(4`~m*WZN|Dp+Is;3;5FZ;{G!$Gjs~~ zQUdeO|C)dPZ|0xXuYaHYeZW<4I%@^^ef+mKuQrd~b9IOobZ=nfaLy5TAOQJ zbvapCH!Z5sgyl6ET(W7EBp?_>$;v*_aAed%o-M?M)P~W*%^-2@D`|2y!Goy!`_g{* zMM%gADoc7b(A?r?pFo0PmJ~g+PVSgw!J3HU(UC%R|Su5uPWVbgYa3{e=gT*GzUA>a8Qd}HbKQ0s1oGEP%TwZ9ef5V(Ek@IQK{cW)6LO50n?qS2GgCX2GgCX22=9l z<^O?Z)a%B#C*dNX}b;bC$$A|_X3 zVsbSqFTPX(b(wSQGB`(k^f*0L7B7ifK$|72FO&r>Ncw4z254Vd0`;7B9&Yn|8R7A3 z7Qp&G6wWv3dAQre1Bt&20l!4&pvFZetqA#ci$Lsm#hbrFg7!QTZnz#U~>oNfn{D@r?-(;z-wMX3-L9F zx!*c%1MjOebYGzDF!pUV;sn$oyjIYsAK15%7RG^+7TMh>3>!(xB#q#}H3_&u8s0jB zGfZxQB@aZ#vw2(8!ucB0TCHQA@TQ)Mr?!!!WC&mL!u#V~w!-B&S7PRTMOmnDU+Ib! z-B*jRS9A*F)@!vW5y&tNlM!-^94Dh>jGVygdp1lq#UPyLEO^29>Ld-*XjugA6!@Ob zoGE3_a#0}TpkT?|U;)eg;_$dO4`I*kT3+Ux!lKMs{K_W3XgbR=&!z>uL7Q}hZ&EkV zTeKbMtMm|1O80$DuhB-(e3N>BmP*tM(`&RI=xy2n^mQ@;w2bcn{T8QhaQbc9sv~-m zw$Ky&-Y2&a?Z@AF&-x>zU7#1XCbxxY;j$Czb3t2#w5I^;0$nWgMDI%1{|PnpCO?H~ zI#)*E7t@wX#1C#Uj{Lg}ADw5%0;ghy+Ml6I@F8C&0lG}v;lsZSAO2+?ViwLM$WLyL zE|c^4E&TSTq^*z;U7_K!xD}>QPjJl4FJhiB_4Ab>GDrQeViUi!Dbe~WXI9g`cXzJU z{YtW7_)DZ@CU7*6{Isk_>5wb;4 z9Egfu;huP1T!fI|@(>x4N|c9^B7?0~n8NKx~2yH9YpA zJ%&{!NrmV(&*yW`%tgtv031b*afOP=b(QcxWqJjO{-x))|9`k&J_)z;Vg2{ePPB0q zxqZl}Tky|E7h(y2WGTG!VyHHXFz@POBD!B;_NUD%uORpPFv%N?avNv*h zb;c(u-v>9tiDkkX4YP0XMGb3FN#}{ePTi=V_RmZ#g<^@xiA8@R7@3JGO)Qs2M)oof zXZt9I?Gj@z>mzML$(If^1?fa~_V|P7(ZB3!iL$CPtF10oP~<^=wyNS|dpONK;1<$(Syg_{Tz|;OeMT6l gsxvpgKl=Q0%}ryd$?mZZSVrs~yF;>zEyyAM2RKE(mjD0& delta 2344 zcmZuyS!|m{5Z?XmIL_rbN8>n$agHW&bM;7*CT-I?x6@p0TGF_Oak78YxW4*((~JFa zTNetI3JEJAq&5)KBKm+3Ql3zG0bWoM5<*BI3nU&uDo+$15f99+Lz)y4&FsuKGdthT zzyAMk2LI}|MDp^o5&V6|Up;Hyv1F-Go}i_swpNS?B1$kfl;_P0S-h4|zBgZDhM+Z6 z;4KIhdJCm*3>Jloy-ROYv3)Oq;rJWgU2)Vp2X`6%Fj*1Rh z!A5VRT${X2a&7iDlWdZ619@9W)+BP}{wCEp=8}yy}F1?K+)|S8+(Jicv9IzvD z(2f#V-%Z@4=LW?3gxAh?lU_U0J7DdDbq__PpS9mXWPt6tgO-hAhdHEof^>oG1=$C( zAEX=P0LVcQH%JfLx`?&=an`j`LI#si$U0X_7$!q@Bt1+#Km(mqAni41G%Pk}dsj-R zEl?V;%ba~{UYYc|*SvD+?O*dMgcrtHh#iDZhh)qR*2s#LwI}14jM7Thp1^R5v1NlT z-Mj}9#${?9wEt6*oREH+$0l-)z(#V8z(#V8Kt+5LyCcuA+emJ56S<=@ zvwl(0IwiSd8^}HXA99N3S|j&dz`2QDTmTyx3V$O<;cp({)H=!I(h{?h7Oi5tSZ6{x zsp!3WAFWOxy`R>we%8wx5(YpA^g)>QU;>i^=ZrwzOHmt{W`i(#@3KK&KSWNj0k}$v z@TO3>+=!@oQMs&Rq&qRXVu71*lK+rZAHT`!V2hh@jg;7JKu?JZf+i8I4QyShW3@>P zk#`_+n$^NqwE!Ic9rUDeI8W+nvO$ktFVBypQ!!HoDT4M1AN~9$d^ZeH`fSg)@$^ z@r1mIi-z;>!QHtbPrr{1!0T^zTH>er}`_^CgY8=aq}3!0ktGN;w( zygwXEWlrz#&4y5;OO9gJAQU)>Di0WjM%quP7SM?pQ^sV z8K0&`BN}x99{Z5DIj2JY)NG+OqCRIf zqNy#^KND1ATCG6x(mN9M%zPNIcLCF07wVQ!g8hb($>GVlnfHYvWFe?_W5|e!i`9mU U&DM-2V}m)@lxr|6r8rml2ZNJ}*Z=?k diff --git a/core/__pycache__/tables.cpython-310.pyc b/core/__pycache__/tables.cpython-310.pyc index 6a3dfa44719cb4aa7f3833b209f4687964fec87b..f4899953ff8f54e0532f1c9d7d004169a049138c 100644 GIT binary patch delta 1178 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 z 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 Je`!cQ; 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 I901Apf174begFUf diff --git a/tools/1.md b/tools/1.md new file mode 100644 index 0000000..fcc0d2f --- /dev/null +++ b/tools/1.md @@ -0,0 +1,86 @@ +```python +def tree_dict_to_table_data(tree: Dict) -> List[List[str]]: + """ + 将树状字典转换为二维表格数据 + + 参数: + tree: 树状字典,结构为dict[dict[...[list]]] + + 返回: + 二维列表表示的表格数据 + """ + if not tree: + return [] + + # 首先确定树的深度 + depth = 0 + current = tree + while isinstance(current, dict): + depth += 1 + # 获取第一个子节点来继续探测深度 + if current: + current = next(iter(current.values())) + else: + break + + # 收集所有路径和叶子节点 + paths = [] + + def traverse(node, current_path): + if isinstance(node, dict): + for key, value in node.items(): + traverse(value, current_path + [str(key)]) + elif isinstance(node, list): + paths.append((current_path, node)) + else: + paths.append((current_path, [str(node)])) + + traverse(tree, []) + + # 确定最大深度(处理可能的不平衡树) + max_depth = max(len(path) for path, _ in paths) if paths else 0 + max_leaf_length = max(len(leaf) for _, leaf in paths) if paths else 0 + + # 填充路径到最大深度 + filled_paths = [] + for path, leaf in paths: + # 填充路径 + filled_path = path.copy() + while len(filled_path) < max_depth: + filled_path.append("") # 用空字符串填充不足的深度 + + # 填充叶子节点 + filled_leaf = leaf.copy() + while len(filled_leaf) < max_leaf_length: + filled_leaf.append("") # 用空字符串填充不足的叶子长度 + + filled_paths.append((filled_path, filled_leaf)) + + # 构建表格数据 + table_data = [] + + # 添加路径部分的行 + for i in range(max_depth): + row = [] + for path, leaf in filled_paths: + row.append(path[i]) + table_data.append(row) + + # 添加叶子部分的行 + for i in range(max_leaf_length): + row = [] + for path, leaf in filled_paths: + row.append(leaf[i] if i < len(leaf) else "") + table_data.append(row) + + # 转置表格,使每个路径+叶子成为一列 + if table_data: + # 获取最大列数 + max_cols = max(len(row) for row in table_data) if table_data else 0 + # 统一每行的列数 + table_data = [row + [""] * (max_cols - len(row)) for row in table_data] + # 转置 + table_data = list(map(list, zip(*table_data))) + + return table_data +``` \ No newline at end of file diff --git a/tools/Get_Json.py b/tools/Get_Json.py index 00957b9..e303d58 100644 --- a/tools/Get_Json.py +++ b/tools/Get_Json.py @@ -1,7 +1,6 @@ import requests import json from tools.API import * -from tools.dataproccess import merge_dicts def get_data(url : str, data_type : str = "data", params : dict = None ) -> dict: headers = { @@ -97,9 +96,7 @@ def get_part_picture(turbineId : str) -> tuple[list[dict], dict[list], list[str] except Exception as e: print(f"获取叶片信息失败,异常:{e}") return None, None, None - #叶片和其它部件图片入队整合 - result = merge_dicts(yepian_part_result, part_result) - return part_data, result, Yepians + return part_data, yepian_part_result, part_result, Yepians def get_yepian_xiangqing(yepian_id : str) -> dict: url = GETYEPIANINFO.format(partId=yepian_id) diff --git a/tools/__pycache__/API.cpython-310.pyc b/tools/__pycache__/API.cpython-310.pyc index baf6e7aaa0c1281f5bead056cd088667cbcb0892..59d5c81113d523ddf02daa42d2e26d475da125c0 100644 GIT binary patch delta 20 acmX@Wa)5<9pO=@50SG>|cW&f1WdZ;-@&z0K delta 20 acmX@Wa)5<9pO=@50SJusn>TWsG64WCiv#}v diff --git a/tools/__pycache__/Get_Json.cpython-310.pyc b/tools/__pycache__/Get_Json.cpython-310.pyc index 4acc4faff54a1761fd23cb3d47f127197f9073ad..918b5b36c2a49ea984b6494efffa48705f4d82b9 100644 GIT binary patch delta 1987 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 O9z#mEVmpr6m;VKniKJZs diff --git a/tools/__pycache__/defines.cpython-310.pyc b/tools/__pycache__/defines.cpython-310.pyc index 40c2c278cb55bf54c3c748e3463222deff519122..029859049a571a6bafdc05a635500093dd626b7b 100644 GIT binary patch delta 2169 zcmaJ>ZA=qq9KYv!J&sWdRA8Gg^JTu3H$f$eQ)jUSn$#=OvczUvM?8XyFC^D=bL>L} z1jPo6IbiBU6mjh~Ls=?gD=?BJ`@T>6a32@$uKlnqh8UAA%l3bs0&4-io1*=$3Ia62B|u(5*jf%L|0V9#b17)Qlm|2H}XO5Z3R& zx~QHKjta-FQo^xr+EXkb7iB&kJB<7YEygD3XNcVe2E|>{W9B2YM|zf9DCO%oTHF-d zsXvcOwvfY2*bQ4*&)e*^&D-(GUJNBfwbGC+{l5&M$HAqOzCjW?AhPr^CXRttgkJE5FEQ(R(jdW?c<7SA)H3MYkNUHe)aY@McbY z3vae!*oL7L1MyWZxpJ!WQx(HPvf3@(&e?Ig685~AU9C& zj|1Q+BQokudU0bc$8ZTbGDDFW8{d3N&T6!u^jhsrGSg^jvWWXZPo_`vGE?W|-QoeV zZFH}3CjF9IiY!p6EvQ<`Gg{Cg>9lc6pa%H7cm!~b2DX%Kb$c6Z7OSnP9#d*DSOIvm zes!{z<+Jq+i3j2I82mmK0P>_w9F|Fc7@O#%L9*mkBZu^9-X7E>jppqO_=|w1gud7M zuBk&k$-DO!<{zq^(Zs`une}JGnR+j-&0JMN(|*GWQ=1)L7O4HB3$x?OK))8ABn%KJ zBOx^uO3Y9CajlahV_G=6&-EM!q>NuvV-ezXVQyX<^hA{D$I6|E(lecym{jJ5z$@X! zL)b$eR#_&bIZ^Hh;W!b#sy>({e069tc`Zbi+F&GkWl(&7>8fx6@lCK|=H%RFm(A;T zIvrlz-m@Ug_-NRjfZtaP&`NobKzV4m-)IcAA&*X=;ZEy13NnmTIGf#OCRL{|9xTM; zP%S@xJe2XUHr%`I)PYL51y%Xqz#>v)Wqddh?ouCJQAZ!+#Z-|0npxFhnQ_=%YX=K# z$U1P?4U47jvNZRv*n%?+Fd#jFPj&#T3ZD{aNP-e{fI3KpfmHMz8!}UI*y|f`GB{TC zPCU^)r>0WsdZG;6&|)*%%&5#*-IZ11hd_C50$9o^I-3k!xeK`@qC;Q-4+_q3DyT$f zwfOvBXrGJ@h`8cQ#nJ|+lDB6TX1v}IVbRW1;8t6KnV<~haON5^1P!xfX@ zW&)|J&=-U$Ou58r&q+Ii{Sf5R6=VGPAzX9HRWTVzM?6# zoeu%SX9Q?nZV742-{N_!y7sYd0WoeFMF{J)TKoV`yWmfMth0#J{JQjOp1Bm4LN*BP zXD?T@U%q&u;*u}*KIagT?_7)6Dv&2yJSgqV|0E!r+;+Fa=5@Kx0G@R6b@qDMWVO}V zPP)BrODzZqK{lkzDs3ilILnTy!+*_=EuAWYziXa(v5TOaw zDKpugy@pY0aw3=VAzUli5NQxs14#I3aumseIC3CD9zFiXf}B_pKPWD zP>)}cCCDm-%@CJ^OyhJ3iT7}Iba4%G2Pts`5zauuPm>khGY&90Yz7q>Pj=)NW;C80 z${)g1WHEU)zbT{FaqnB4)1ok60 tSg1H7u_!eK>`kC~>7r#S*sQw6VUwGmQks)$#|Sj7xMFgWSS1tJX8=WBk0$^C diff --git a/tools/__pycache__/document_tools.cpython-310.pyc b/tools/__pycache__/document_tools.cpython-310.pyc index 8eae6547f18cb91275891616639d71792aade2e7..8b950c5cbd1ffa4cdc2d7bbad030123c80fefc9f 100644 GIT binary patch delta 3589 zcmZuz4RBP|6@KUKdvD+VZ~jS0$q$%hHHm}(8DfwSg7TM53>%OjS(4lhWK9COc_|R? zx;UX#XP^adYf)j`=xAkXXF6`JSRIt<6zXU@(>k@fR%be`R&2Gkt+psi&v~1m{dqh4 z-E+@9_uPBWJ@>o!{7>QgFM)rL&*xU~YkcdT-OC<1?k|OVk6(8gcFGzUF6d`vu{u@| zs~gf-IjcCV_by=r@-b+DLHQaCBDSbKNnqMY%c#3|B`6Ho4I?*>uIgQdGGkTPyE0Z6 zTiK?dhn4I`^w7#e!wS2Wtzs=h`kVz@9COB&7b~nawwg7d+=TM#tZvB5+SnTG*~VhF zeS6G^)nWVE*m9a%a>!&iv76CgjoqA`?mD*qu-4noHn5F{mEN^%fNf$OhoSc-l)|hN zrJK=R7f$dN{CCd|Ww6aGf}YmlLV8AOM%VYQw->c#WW(sj-i;_@k0F(9Ww)aDO?Lmr zZQ1$Y3VU%H8ct(7yA22JKqot}W4Jer9s5`mb)8Jztb~Tr-*D6x!zbxyOCNwTiQ(tp zB4{A^Ho-Ln_Yr(YS_=-qgYts~yGy>X{2!yeWoO{D43)nG56h3r?}jJScT~Kg!AaR$ z)eeuyhpG++Pm#MP36>I^me*Fd!4G6teWm7oWKcuR+-IOb ziLwU&6OSWUiU13yRX*QREr)<lxfu)N7 zYnl8{)2+(bd`+>80~qv#4$4%(ax%>Vp-;nu$|-dk-ECF2DGXch(8u&_xexX!LU~YO zx1_nt{>@1zxFdj@5Ww?MvC z{a&S-t3KxvBO-OByqU z4xi&VNWobRIY*SqSV@#Qhr8~#EnIqq*@5`Tu zxgNZl?fIZx;V-8s5PL1pBZhn@XWxo@}}fUQhq5sYvq>zwt(bpUC%a zD1oz5Z(%xrhC1wR>4FYX44D+3tcD!Atqzh1R5Y@5HylJK(Ce<$tz1pgrTh~Q&{o5K8`B>#)x5<&U!<+&kDX&xYULgOxPKD+tZhKS=#eQ*~of=R+>2hqTLsIx6Qr zqHZt#?Mrh%`rC!KmC#f4PEwhJX-sDZbDlJaT?C|HMwZ=bCXIwsII%+Ke?Ojo6N%k5 zTi=6qcfun){5UfcUc5~`NLxPULKfB0z8P6Gz}!SUNNXb~6A8IzWiN6w(qYQMe0W9V zSQ^rwznHF)Tw6Aam6RjN0y8kH&J(%9TSPaiPvi-oEd@?#=+@h!uwcTEmpY6u5&nte z!b5#hI?EYWW>hS7mWvFVPwTY|oG9MhNaCh&3$N|Zhe*EiS>9X>#w*85#(Q${s?VPW zT#Y|bV23N0ees(O*Z2v0y+Pzg6PZyJg)GQ|LSqF-F+K6^VKylV$M|XCz$ZZAq$l0I z?YnB)yzRFDe~@qQX!R_nO>Q7qA{X~nE+(d&#BEjHKK2-I#WJL2DefG~{0PBwq;+Kv z$_2T0w6mwxU~Ofw(cpaEY;J%5co2l3=z{V2=mHDYJhP89GtM%#$bt~ktP z*HK5pfftF2JE7x_%*n=#YUkV4mUt2q5i>&*Ahf7%8TeSxqIhwoT-nQtDcNV#*KweW z_9N(CltK=EHx~RJf)N6os&bL07IJ6bO3#xvg^0RuA?xg~pQE0Pt9_P)q8Yc{V$aIHS~!Iuqp{&Zi&LK1?7?3r>0JVR6ev7EP(@Hp z@EdBVA*q%CGr*jUS6J2#RKb+oJg}nO+v$aQpa$mhM!SU46;)L~Hyr9`s-|8xboEoi faDP(Xox9yEb6@9fEZyi`;RU~1XqrK9#0&oh45xk4 delta 2970 zcmai$eQ;D)6~Nzl`*!#3SN0>Dgk2&b3nXll@EyKNAYXix!geDekwCHuxeLuUALQmm zB)n%}!YI~Kfvc3EFtgjKl@8OXWz~SK6~+;qB15M-)!E`drJz+2wKKI=6wi4Jr8EBF z+j+lx?mhRObMD7GcVD>zmwpZfLmrP)!sidi4?g+vsUroY&~>EhE^HOEp|5BgD@)d} zqGZhug-vJW2do_nSf_Xi=0lhGE%YK+$eYJ2uusJ7^C(+!KfHK=b&E;fCuteLGw{VG$Nk7f;9 zi=OJ)I`-K30jZ;bb+YyB@dMD&h|&hO5v3+H7sJq=z&C#1m5sHqFQTbt25eLR?19xC zt3g7!wSUdP+K#m-1;g0FI?(51Ox`3#yT`IWvs8s( zEPJQ)1e6`crR0JzpYUzMEW&pP$HeJrd*FnKlsy@K*zh!r%lS@bkjS{C zCGpE7>CTX3xOG>mKzAn!u=HZ-#nOkR4@*BfbEo_XVjx|ZkqnRSNe8i{-l%2rsKoc< zT4N1+6{L%_Vx~+$UYn6&Tr$Oy)D$w5DoIQ+>mhzBUz+AaD2Fl73d5^=Q&ZEW%$fmy zN%y9|faYwt!S;-7_;eprpOX0{Z5ne-fZ^BuraRKB=t@Fc;dGhqrz0?&9^Noq+%Am| zPE{mr`ktF083B;SyjnSPY7sp!fv4k?Jb_)?ak-dm1il&=wC2m*uv;1{VJ_zGpD{4g zC`8kRxN)yjSSizX}--eDM?W`3;&qng+{b5eBHT&_Kfhm7w)2q8YKXbERf$XT?WojgwM3kijUGeVv_tKqW` zBWLZ?k^>{W2zAlohu;W)hC2V4aES0a!64`a`lut~TXVZyd+6KY*rxi#Cv&@kK`6ja zXd0;d6FZ^Ai358*$OSQ(##cgaA!4;(YoS~`-8N$LQ*%UE z+Gm4PRJSiIj9T#Q(ruy2DyUElyfVw%*8?-n&!+CBWZuI1czy@WZKxw3R}u4RypP7K zs_evrAA|tN`;@!AbhABp=P*-(qN{EuV9+6R+eL~E?}7Hbvq`{ev~PTIqu7Dya6!jrY+2a z7m-g>Fv%8#@J==SrmTjfv}K%mGjP8-p!;=K30<%rJ)pZy$$Lscv+flV^BEqH24Q%C z?io3vJ84YX%KUv&M#j?00+`1ObtNrnHVhOm3cM=tw$ojvJvWkU6|zERKWQ`bcw{&{ zToW*7;x&Sr9aE#M2bm9l!9!Ne!WO13kqpc5G2MbUebHz*d#vMoviHs#2R}G>=+@-x zH=j=5dE*<|y3XqWzZ2m^y{n3LteQ|Gl8HzKCC*XYBkAVhm+%jOna#{ZM#(Lz=1==Y zF_|b+FHuVoeyTST)gsuv1ggb`?zx}}y?dE$4w=k}3*Av$18sSmxYOOTK#c_O?}7rn z3Dr?cEEbCb--vejOlq*kTKU(o7UN$h+t3)0_>Ahwhs;U=d3&W zhkCS}J>H{fNj}I=lMVB4l$lV@V>PFknS`P=Pac1Vr1uH;2o8#{oDdHwssw7Z= zpF6*Fh{e=o5O#@q$z|?9TvlbEpYo~Ln+z4T1h%SW&MN1^(#PG)+)yAFt8U+a0a+FN A9smFU diff --git a/tools/__pycache__/json_to_docx.cpython-310.pyc b/tools/__pycache__/json_to_docx.cpython-310.pyc index 288ea619174867297ae625b2b1b86df8713390f6..939842bd5acdad3be8219534539f42c82c2c6fe7 100644 GIT binary patch delta 4119 zcmaJ^Yiu0V6`nggvpX~U@Y-HK*4Xj-m1JWa@&E#nOMwJ8M8Se4C?tTa_1>|w&U)9r zJDWf{+f7N@*n$wk2$hmVvU!w8TWIToC<%|MQcJ5=mD>IqiAt?-fL}=cR}rA!x$C?P z?X2dzXU^l^bI-l^oVyF#zdsx+Mx&O3=kFiP?)%{8ld*R8*2(^@jT?E8hmNwnVQz5q zsIoW0uRnQs6Dys3a|_Fzys)}D*}1oqDW-0wOr77ryX{*5fMr)f>2lIEDACVh7YB=v4RS)s`w+9!)AopfueHnzZ83dZfnZ^+}}? zT%sF5hscsF=5*dTuFR`&%|MR{H;93o+z_zYHGnN=LekBkyJX?&uxaH<*aYNg>P}^0 zQ{W-iYWn6xsaP1{87Jdg#j-P1c1CzkcxSa6S-1CZ?ZL=OgvwwVvsh5|cI%z2cj2Hu z8en~%Z`^Xv0Hk6qK?>jp#NEOVilJh`Dfxkt?T8@B0tD9)BnZ|KtS8V2HUMBbKAN^f zhnF*N>lq}r?3!ev`x5jJ)e2bQ{n%C;copUcO?&QY=pbvO2mywci(}#ktKJdaJSwK!`*5_CFaKF8sTLfd}@GCaW^g< zX_St@9qCAomw+Qp^1BXh$I0#KM;*jyF2S2=U-1^XwQt7I^_2#`MGhv#S8<=Zy8{NdbT4|AVliLis)oqz; zc3Y(z?~@z6i{gQ~56QVF!Ar{TLAi8oZW~9Ud4h=nP(3&_)n5864IqGhZdeXWM=^Cq zr(vI9({VXm8(*1JV6rNSIpQ=aeDxLDX-L*2l~c+YEE|q^iyLy==xmZbUV|%0DE-6b zI5uA@wK#KX@$6e4&%bnj?wt2|g1iJ|C^^Ev+y~_?k z8zejMmN;MqYi2>5&xJkl_t~lmGWssSXH&j5l@XccCnyi$qu#cLPL}ufHGC9YMHYSD zy^YVZNiA)mEv_+PHToNGy zih-bHTgwAupwc06*+Dat&y5#GCNon)c*#V6V%aQz0E6ee`x0sIxu$yW$;6XYnJjc? zpFL?GiX7Z5i7mx^Q4FKwWuspnSUM<2*J`65CZ7ZVS!y3&9-kQq-o{&s04&vD38cRS zi!s4wyyu(V{uV{vX9vYyXay;Kb#!0PIre1ff6V@SWGK9sn!A@zc@~o2dH-lm28qh5 zUZ>i+(A07Rs~#tt)dY_dtRZ-cfR;s!0Q_JnR~XORhqQy6ONV5}{e)8Nq0qt2Sqf4u z*9OJX#do7P4rFY0{Q~G@b12Qcw~&1D@w za9iPFU%$7ID;B(S$^P}xNn4EDBbZ!yvQR?lv7NFgWNFeDpE?j>yaBwWKY3=`nyTg~ zDB+9}%`6pnZAKYajwxe|>pXbWz(qi#l!HteI<0Z-w2Bh1;!1!T!41@nJ8=aFIJg3c zTOAeJxE4?aDVUP4gMTNgHMo_a!)9vf>?u?f74-x?RMEx#u2I~JBojQKR1D6jz_{9e zMf}TETof=jgyd?uW+m(z;)EOKW{V=_Cm@$!H67Q&l|jlkDbW4DdZq86uiv|2w`%U! zK$sXl?1s2?T0@CJ9YivX;C_K3L+KdvGHV^mdXTI{osb)ajfEr~1!eA6QI2BALsWm3 z?Canb?kH|(P?`Q|p%E4|3R%Q?{c*jfIUt83RXNkar5Rm}K`AqRm#dF6B;1DbW_98C zHQ!{_tJZmQ>ipv`F3!BM_{7ZOuiseoUit8?Q;Rb{{Pf&oiziiNfxEx!89N6#FEzW3YqJ;?YS9Y@oY-(FUIb?rKzjVwD7zBQOfSJ~p^ z)Gh7aA3N^4=2g;Wq5(}!w}+@-0NT9`E4Ej6gBlhFFs*&1YLIG-pb@YO+3|k*cmUw* z2QvAxEnX(ZeFS@n8?MDzWD4W9pst6~`eh^WD^k2PZ==xKz$NFsdEv5vMpJeXDsN zDeWtk^L%9TCOZ3a-hMP&7Q!w#Bej{yy19osl#`}nSPS3+Q9a&NXU83%fh;`)h%_ab zp+=Y*P*s(wNc7r;;1|KLfutY9Yp{r_p$J6S5~59koBA>m@ZRg()aR>*gR2DTWugWAI+36tq*cFB#^0Oh zY972i(A6ti>*ICmNEYa2rT9$<_IT&I`q`V_$6bG@%ImpwP?n^%5c{DmsOO_1SF1df zbmfJA=!zTv24dommy!+$O8Me?f*Xhtto@Pry8j7e1%oK*%7L%lN*uLz>7WdsX7Uzt zQHi#dA0EU15Y&dkSZ;jTSrhL-;bG6|>1iWM{7iN+lnxB<8cqj>hKAEC#h~}|p548@ zByJ_3E0>_Flb~yfm?4-YIOg^DZmT{|8pCU}v6>ZY%a7K?d#B5HetA}Pne!Y3JQ zI^Di8I9cT7ynPD=sU!dqC62up$Bx5Qq{UimeA8$(+6>c(8f}`YvA9a|-u5potyRTN g#TM2sSWNxWQq?c8sXvct>IF-;K2x(^xNr4;0i|5hF8}}l delta 3587 zcmaJ@U2I%O6~1%-_U_$Zd)I5Pz(V3owe7V zy-tLg?N+h#Q_(=oJn)d1+M$4g)HJOr5~1YxtdSJP%=x1;*nXUOgxn+6{%8Tm=j)7#N;wDp9yjZCG^ZoXU=YR2cMi8iA2$8s-7n*n%c!*Ey+j zWzPn#e0lDmWGZBS~(+#0}g8Oz{9<<3d0h zF&`V@I_NafH0Ws399e!vn;~J#4~~_J6GJrXWyL@BJ)~V^j5AgT#K9sa5!Z}X(z*PO zF|3h{hzAdbwgQK3LueH*2iv;0Bbh|lfv^)nN7x16Yb-zP*sMjo6@0Gq01iui(_qPa7e163{kPfJg$7hPDCPW@uC3<_2B|DbvCefE#%da1(Ek zbPBL_0ipuS))tdI!NGL7QPK@O1#}Z{Tx{S?(v9Dv8?+6V4-WK$1EF#n#?rFice;XG z)y$h|ds?|pSPxJgSRb%g>H$YGJS5HP(yW1IuahZ=6qs(NU1eE1d4v}b1`$q*f%uM&ntW~s&ez~8 z4FhZM} zHNltzg+;NLbjY0eQ}PzsCB_?Cay3@aKy`lUh%};Cjl71eNdR9fou#$$x(tka@Rh;< zwrY_ivEhpnb{XQA{9)?$SH6zAWdJ|8BI_1v1AYnEe-Sk8kW1qG=@UIqL4U@W_C~fn;}G9+ zCvrs!i*YnxKQUVJeEsNX&hxeBCcYy=&AlBabG>Ock<&o!@elVT1Rsu-xX3s6R5VZF za2I1ec>`}>?W&Sjt|%jf8q}P#Ji_57JqlbJxT#b9CX^SCT&-50H_8UZI{dWLFreZExCys_%JSTzRwL9k;OBuadsP`8fLl0U!J)khUK#&Survshy~QnVp3|W< zxdF66gEw`!WL6#naAT`Hh(!{dHmmc=DxEIdaA(+{6M)hQ*AC1Ak~DHHP(B^vp_K{X z?ZDwx!Hqs;YHlI{Drg2(Vl;luC_gDFSK7C-qQ@~P?VH-g^*n($P~G%-vV5TBSt1T@ z`W6(rA8eX)FsE;;zPf#9nBro`@|;HnB3Oet_y*&Q6l4GO+ zkzV_e+%#kEgf~?6OV)Z>|E0@V!mF!)7by&Z--Ll05+AfCcK-+Zr4fK|JV`7yOjJ!( zRiZ*+&>xtO!nRHt zWn@jk#4-hEeN9s;$#_fgCndjVb0D}F_Ag>FT)dGsSLBxYAM9pAm5q&>mHi&9Z7%# zmmbz2wj1GT95AboR4k*l&r{R_g$S~w;a;qrjtW=o!%Sm0=8_*8DZ;+ziW4KF`I_Uv zegy)q*x%KeM#>@mjyiDC(fa!b*lir>Vh6;9u9q^M(2>tt){GS1>TC|-GQt&vOXA;M zUmd=M%+xjp_&FmIEWFGme+YBgDUgR>KiZ8>4JL@gHb8~gq1jCR~$0S lQmv#|>TYRHs*r+2e`pi+Gh0<3LGPih+Yi)1@we_R{{t*X5TXD8 diff --git a/tools/dataproccess.py b/tools/dataproccess.py index 8e964b6..5db02b0 100644 --- a/tools/dataproccess.py +++ b/tools/dataproccess.py @@ -1,4 +1,6 @@ import sys, os +from tools.Get_Json import get_defect_detail +from tools.defines import * def caculate_work_days(start_date : str, end_date : str) -> str: """根据起止日期计算工期 @@ -184,19 +186,29 @@ def get_defedct_info(defect_dict): ] ... } + } } + result2 (dict): + { + '叶片1': { #按叶片分记录 + '表面裂纹': [ #按类型分记录 + """ - result = {} + result = {} #缺陷等级数量列表 + result2 = {} #缺陷树状列表 for part_name, part_info in defect_dict.items(): if part_name not in result: result[part_name] = {} - + result2[part_name] = {} for defect_type, defect_list in part_info.items(): for defect_dict in defect_list: record = defect_dict['record'] type_label = record['defectTypeLabel'] level = record['defectLevel'] + if type_label not in result[part_name]: + result2[part_name][type_label] = [] + if type_label not in result[part_name]: result[part_name][type_label] = {} @@ -204,8 +216,20 @@ def get_defedct_info(defect_dict): result[part_name][type_label][level] = [] result[part_name][type_label][level].append(defect_dict) - - return result + p = record['defectPosition'] + t = record['defectTypeLabel'] + l = record['defectLevelLabel'] + d = record['description'] + did = record['defectId'] + iid = record['imageId'] + detail = get_defect_detail(did) + a = detail.get('axial', '') + c = detail.get('chordwise', '') + area = f"轴向:{a}mm,弦向:{c}mm" + + record_info = [f"{p},{t},{l},{d}", area, iid] + result2[part_name][type_label].append(record_info) + return result, result2 def get_defect_json(defect_info: dict, Y_code: list[str], turbine_code: str) -> dict: """将缺陷信息转换为表格形式的JSON格式 @@ -352,4 +376,47 @@ def create_cell(row, col, text, border, is_merged=False, is_primary=False): } }] }] - } \ No newline at end of file + } +from typing import Dict, List, Any + +def tree_dict_to_table_data(tree: Dict) -> List[List[Any]]: + """ + 将树状字典转换为二维表格数据(保留原始类型) + + 参数: + tree: 树状字典,结构为dict[dict[...[list]]] + + 返回: + 二维列表,每个子列表代表一条路径(元素类型与输入一致),确保最内层列表被展开 + """ + result = [] + + def traverse(node: Dict, path: List[Any]) -> None: + for key, value in node.items(): + current_path = path + [key] # 保留键的原始类型 + if isinstance(value, dict): + traverse(value, current_path) + elif isinstance(value, list): + for item in value: + if isinstance(item, list): + # 如果列表项本身是列表,则展开它 + result.append(current_path + item) + else: + # 否则作为单个元素添加 + result.append(current_path + [item]) + else: + result.append(current_path + [value]) # 保留值的原始类型 + + traverse(tree, []) + return result + +def defect_list_addtitle(list_data: List[List[str]], turbine_code: str): + """ + 给缺陷列表添加标题行 + """ + list_data.insert(0, DEFECT_TABLE) + for i,l1 in enumerate(list_data): + if i == 0: + continue + l1.insert(0, turbine_code) + return list_data \ No newline at end of file diff --git a/tools/defines.py b/tools/defines.py index e04190d..ed9410e 100644 --- a/tools/defines.py +++ b/tools/defines.py @@ -92,7 +92,7 @@ STYLE_CONFIG = { "alignment": "center", "font": { "name": "宋体", - "size": 9, + "size": 12, "bold": False, }, "border": { @@ -104,4 +104,47 @@ STYLE_CONFIG = { "shading": { "color": "FFFFFF" } -} \ No newline at end of file +} +TITLE_STYLE_CONFIG = { + "alignment": "center", + "font": { + "name": "宋体", + "size": 12, + "bold": False, + }, + "border": { + "top": {"style": "single", "size": "4", "color": "000000"}, + "bottom": {"style": "single", "size": "4", "color": "000000"}, + "left": {"style": "single", "size": "4", "color": "000000"}, + "right": {"style": "single", "size": "4", "color": "000000"} + }, + "shading": { + "color": "FFFFFF" + } +} +DEFECT_TABLE_TITLE = '叶片故障信息表' +DEFECT_TABLE = ['机组号', '叶片编号', '损伤名称', '损坏描述', '面积/S', '备注'] + +USE_TOOL_TABLE_TITLE = '使用工器具记录' +USE_TOOL_TABLE = ['序号', '工器具名称', '型号规格', '数量', '用途', '备注'] +class USE_TOOL_ENUM: + class OUT: + LIST = [ + ["无人机", "大疆 M30", "1", "叶片外观检查观测"] + ] + + class LIGHT: + LIST = [ + ["智能无人悬吊系统", "DT01", "1", "叶片导通测试"], + ["检测导线", "/", "3", "叶片导通测试"], + ["电阻仪", "S1950", "1", "叶片导通测试"] + ] + + class IN: + LIST = [ + ["头灯", "/", "2", "轮毂叶片内照明"], + ["含氧量检测仪", "/", "1", "叶片内部环境检测"], + ["活动扳手", "17-19", "2", "拆卸·禁锢盖板螺栓"], + ["手机", "/", "2", "拍照记录"], + ["叶片内部爬壁机器人", "DT02", "1", "拍照记录"] + ] \ No newline at end of file diff --git a/tools/document_tools.py b/tools/document_tools.py index 119835f..5ec53b3 100644 --- a/tools/document_tools.py +++ b/tools/document_tools.py @@ -6,16 +6,21 @@ import json, re from typing import Dict, List, Optional, Any from docx import Document +from core.tables import copy_table from utils.file_utils import check_file_writeable, ensure_docx_extension, create_document_copy -from utils.document_utils import get_document_properties, extract_document_text, get_document_structure +from utils.document_utils import get_document_properties, extract_document_text, get_document_structure, clear_header from core.styles import ensure_heading_style, ensure_table_style from docx.oxml.shared import qn -from docx.oxml import OxmlElement -from tools.content_tools import search_and_replace,add_picture_to_table +from docx.oxml import OxmlElement, parse_xml +from tools.content_tools import search_and_replace,add_picture_to_table,add_picture from tools.Get_Json import get_full_picture_url -from tools.get_pictures import resize_and_reduce_quality +from tools.get_pictures import resize_and_reduce_quality, get_template_pic +from tools.defines import * +from docx.enum.section import WD_SECTION +from tools.json_to_docx import list_to_json_with_merges, json_to_docx -async def create_document(filename: str, title: Optional[str] = None, author: Optional[str] = None) -> str: + +async def create_document(filename: str, title: Optional[str] = None, author: Optional[str] = None, section_args: Optional[Dict[str, Any]] = None) -> str: """创建一个包含可选元数据的新Word文档。 参数: @@ -45,11 +50,20 @@ async def create_document(filename: str, title: Optional[str] = None, author: Op # 更改纸张大小为A4 from docx.shared import Mm, Inches sections = doc.sections - for section in sections: - section.page_height = Mm(297) - section.page_width = Mm(210) - section.left_margin = Inches(0.94) - section.right_margin = Inches(0.94) + if section_args: + for section in sections: + section.page_height = Mm(section_args.get('page_height', 297)) + section.page_width = Mm(section_args.get('page_width', 210)) + section.left_margin = Mm(section_args.get('left_margin', 20)) + section.right_margin = Mm(section_args.get('right_margin', 20)) + section.top_margin = Mm(section_args.get('top_margin', 10)) + section.bottom_margin = Mm(section_args.get('bottom_margin', 10)) + else: + for section in sections: + section.page_height = Mm(297) + section.page_width = Mm(210) + section.left_margin = Inches(0.94) + section.right_margin = Inches(0.94) # Save the document doc.save(filename) @@ -152,13 +166,13 @@ def add_documents(target_filename: str, source_filename: str) -> str: target_doc = Document(target_filename) source_filename = ensure_docx_extension(source_filename) source_doc = Document(source_filename) + for source_paragraph in source_doc.paragraphs: new_paragraph = target_doc.add_paragraph(source_paragraph.text) new_paragraph.style = target_doc.styles['Normal'] # Default style #获取合并等样式2025427 new_paragraph.alignment = source_paragraph.alignment - print(f"Source paragraph alignment: {source_paragraph.alignment}") # Try to match the style if possible try: @@ -274,9 +288,8 @@ def set_document_para(target_doc: Document) -> Document: p.getparent().remove(p) return target_doc - -async def add_table_to_document(target_filename: str, source_filename: str, rows: int, cols: int, table_num: int, data: Optional[List[List[str]]] = None, ifadjustheight: Optional[bool] = True, height: Optional[float] = 1, key_words: re.Pattern[str] = None, ALIGMENT: Optional[str] = 'CENTER') -> str: +def add_table_to_document(target_filename: str, source_filename: str, rows: int, cols: int, table_num: int, data: Optional[List[List[str]]] = None, ifadjustheight: Optional[bool] = True, height: Optional[float] = 1, key_words: re.Pattern[str] = None, ALIGMENT: Optional[str] = 'CENTER') -> str: """复制源文件中的文字与表格(先文字后表格格式)到目标文档 Args: target_filename: 目标文档路径 @@ -291,13 +304,14 @@ async def add_table_to_document(target_filename: str, source_filename: str, rows target_filename = ensure_docx_extension(target_filename) source_filename = ensure_docx_extension(source_filename) source_doc = Document(source_filename) - target_doc = Document(target_filename) + target_doc.add_paragraph() try: # Copy all paragraphs for paragraph in source_doc.paragraphs: # Create a new paragraph with the same text and style new_paragraph = target_doc.add_paragraph(paragraph.text) + new_paragraph.style = target_doc.styles['Normal'] # Default style #获取合并等样式2025427 new_paragraph.alignment = paragraph.alignment @@ -335,21 +349,11 @@ async def add_table_to_document(target_filename: str, source_filename: str, rows # Font size if specified if run.font.size: new_run.font.size = run.font.size - - # 复制分页符(处理w:br标签) - for element in run._element: - if element.tag.endswith('br'): - br_type = element.get(qn('type'), '') - if br_type == 'page': - new_br = OxmlElement('w:br') - new_br.set(qn('type'), 'page') - new_run._element.append(new_br) except Exception as e: print(f"添加表格前文章失败:{str(e)}") try:# Copy all tables - from core.tables import copy_table copy_table(source_doc.tables[0], target_doc, ifadjustheight, height) except Exception as e: print(f"添加表格失败:{str(e)}") @@ -357,85 +361,108 @@ async def add_table_to_document(target_filename: str, source_filename: str, rows target_doc = set_document_para(target_doc) target_doc.save(target_filename) target_doc = Document(target_filename) - try: - target_doc = write_table(target_filename, rows, cols, table_num, data, ifadjustheight, height, key_words, ALIGMENT) - except Exception as e: - print(f"{target_filename}写入{data}失败:{str(e)}") + if data: + try: + target_doc = write_table(target_filename, rows, cols, table_num, data, ifadjustheight, height, key_words, ALIGMENT) + except Exception as e: + print(f"{target_filename}写入{data}失败:{str(e)}") target_doc.save(target_filename) return target_doc,f"{target_filename}添加表格{source_doc}成功" +from docx.document import Document as Document_ +from docx.table import Table +def add_table(target_filename: str, source_filename : str | Document_, if_merge = True, REPORT_ENUM = 'DT'): + if isinstance(source_filename, str): + output_doc = copy_table(Document(source_filename).tables[0], Document(target_filename), True, if_merge=if_merge, REPORT_ENUM = REPORT_ENUM) + output_doc.save(target_filename) + else: + try: + output_doc = copy_table(source_filename.tables[0], Document(target_filename), True, if_merge=if_merge, REPORT_ENUM = REPORT_ENUM) + output_doc.save(target_filename) + except Exception as e: + print(f"添加表格失败:{str(e)}") + return f"{target_filename}添加表格{source_filename}成功" -async def add_table_and_replace(target_filename: str, source_filename: str, ifadjustheight: Optional[bool] = True, list_to_replace: dict = {}, height: Optional[float] = 1): +def add_table_and_replace( + target_filename: str, + source_filename: str, + ifadjustheight: Optional[bool] = True, + list_to_replace: dict = {}, + height: Optional[float] = 1, + no_para : Optional[bool] = False, + REPORT_ENUM = 'DT'): """复制源文件中的文字与表格(先文字后表格格式)到目标文档 Args: target_filename: 目标文档路径 source_doc: 源文档路径 ifadjustheight: bool,为真则表格行高自动调整 list_to_replace: dict, 待替换内容和替换内容 + height: float, 表格行高 + no_para: bool, 无段落 """ target_filename = ensure_docx_extension(target_filename) source_filename = ensure_docx_extension(source_filename) source_doc = Document(source_filename) - target_doc = Document(target_filename) - try: - # Copy all paragraphs - for paragraph in source_doc.paragraphs: - # Create a new paragraph with the same text and style - new_paragraph = target_doc.add_paragraph(paragraph.text) - new_paragraph.style = target_doc.styles['Normal'] # Default style - #获取合并等样式2025427 - new_paragraph.alignment = paragraph.alignment + if not no_para: + try: + # Copy all paragraphs + for paragraph in source_doc.paragraphs: + # Create a new paragraph with the same text and style + new_paragraph = target_doc.add_paragraph(paragraph.text) + new_paragraph.style = target_doc.styles['Normal'] # Default style + #获取合并等样式2025427 + new_paragraph.alignment = paragraph.alignment - # 复制段落分页属性 - new_paragraph.paragraph_format.page_break_before = paragraph.paragraph_format.page_break_before - # Try to match the style if possible - try: - if paragraph.style and paragraph.style.name in target_doc.styles: - new_paragraph.style = target_doc.styles[paragraph.style.name] - except: - pass - # Copy run formatting - for i, run in enumerate(paragraph.runs): - if i < len(new_paragraph.runs): - new_run = new_paragraph.runs[i] - # Copy basic formatting - new_run.bold = run.bold - new_run.italic = run.italic - new_run.underline = run.underline - #添加同时合并字体2025427 - new_run.font.name = run.font.name - rPr = new_run.element.get_or_add_rPr() - rFonts = rPr.get_or_add_rFonts() - # 检查 run.font.name 是否为 None - if run.font.name is None: - # 设置默认的中文字体名称 - run.font.name = '宋体(中文正文)' # 或者使用其他你喜欢的中文字体 - rFonts.set(qn('w:eastAsia'), run.font.name) - new_run.font.color.rgb = run.font.color.rgb + # 复制段落分页属性 + new_paragraph.paragraph_format.page_break_before = paragraph.paragraph_format.page_break_before + # Try to match the style if possible + try: + if paragraph.style and paragraph.style.name in target_doc.styles: + new_paragraph.style = target_doc.styles[paragraph.style.name] + except: + pass + # Copy run formatting + for i, run in enumerate(paragraph.runs): + if i < len(new_paragraph.runs): + new_run = new_paragraph.runs[i] + # Copy basic formatting + new_run.bold = run.bold + new_run.italic = run.italic + new_run.underline = run.underline + #添加同时合并字体2025427 + new_run.font.name = run.font.name + rPr = new_run.element.get_or_add_rPr() + rFonts = rPr.get_or_add_rFonts() + # 检查 run.font.name 是否为 None + if run.font.name is None: + # 设置默认的中文字体名称 + run.font.name = '宋体(中文正文)' # 或者使用其他你喜欢的中文字体 + rFonts.set(qn('w:eastAsia'), run.font.name) + new_run.font.color.rgb = run.font.color.rgb - # Font size if specified - if run.font.size: - new_run.font.size = run.font.size - - # 复制分页符(处理w:br标签) - for element in run._element: - if element.tag.endswith('br'): - br_type = element.get(qn('type'), '') - if br_type == 'page': - new_br = OxmlElement('w:br') - new_br.set(qn('type'), 'page') - new_run._element.append(new_br) - except Exception as e: - print(f"添加表格前文章失败:{str(e)}") + # Font size if specified + if run.font.size: + new_run.font.size = run.font.size + + # 复制分页符(处理w:br标签) + for element in run._element: + if element.tag.endswith('br'): + br_type = element.get(qn('type'), '') + if br_type == 'page': + new_br = OxmlElement('w:br') + new_br.set(qn('type'), 'page') + new_run._element.append(new_br) + except Exception as e: + print(f"添加表格前文章失败:{str(e)}") try:# Copy all tables from core.tables import copy_table - copy_table(source_doc.tables[0], target_doc, ifadjustheight, height) + copy_table(source_doc.tables[0], target_doc, ifadjustheight, height, REPORT_ENUM=REPORT_ENUM) target_doc.save(target_filename) except Exception as e: print(f"添加表格失败:{str(e)}") for find_text, replace_text in list_to_replace.items(): - print(await search_and_replace(target_filename, find_text, replace_text)) + print(search_and_replace(target_filename, find_text, replace_text)) async def merge_documents(target_filename: str, source_filenames: List[str], add_page_breaks: bool = True) -> str: """合并文档(文本) 表格会添加到最后 @@ -726,4 +753,182 @@ async def process_server_images_table(data_list, image_source_list, output_dir, picture_index += 1 i += 1 print(message) - return i # 返回最后使用的表格序号 \ No newline at end of file + return i # 返回最后使用的表格序号 + +def add_header(target_dir : str, report_enum : str, if_clear_header : Optional[bool] = True): + """添加页眉,添加封面后调用此函数,会分离页面和后续页面的节。 + + Args: + target_dir (str): 目标目录 + start_section (int): 开始节 + end_section (int): 结束节 + report_enum (str): 报告类型(DT或JF) + """ + document = Document(target_dir) # 打开文档 + + if if_clear_header: + for section in document.sections: # 遍历所有节的页眉 + clear_header(section) # 清除页眉的段落 + + print(f"文档节数:{len(document.sections)},开始往当前节后添加页眉") + document.sections[0].header.is_linked_to_previous = False # 取消页眉与上一页关联 + + document.add_section(WD_SECTION.NEW_PAGE) + header = document.sections[1].header + + header.is_linked_to_previous = False # 取消页眉与上一页关联 + paragraph = header.paragraphs[0] # 获取页眉的第一个段落 + run = paragraph.add_run() + + if report_enum == 'JF': + print("添加金风模板的页眉") + pic = run.add_picture(get_template_pic(TEMPLATE_HEADER.JINFENG_HEADER.PIC_DIR)) + run = paragraph.add_run(TEMPLATE_HEADER.JINFENG_HEADER.PARA) + run.font.name = TEMPLATE_HEADER.JINFENG_HEADER.FONT + run.font.size = TEMPLATE_HEADER.JINFENG_HEADER.PT + document.save(target_dir) # 保存文档 + + elif report_enum == 'DT': + print("添加迪特模板的页眉") + pic = run.add_picture(get_template_pic(TEMPLATE_HEADER.DT_HEADER.PIC_DIR)) + run = paragraph.add_run(TEMPLATE_HEADER.DT_HEADER.PARA) + run.font.name = TEMPLATE_HEADER.DT_HEADER.FONT + run.font.size = TEMPLATE_HEADER.DT_HEADER.PT + document.save(target_dir) # 保存文档 + + else: + print("未知模板,不添加页眉") + # 定义边框的 XML 字符串 + border_xml = """ + + + + """ + + # 解析 XML 并添加到段落属性 + pPr = paragraph._element.get_or_add_pPr() + pBdr = parse_xml(border_xml) + pPr.append(pBdr) + + print(f"文档节数:{len(document.sections)}") + +from docx.enum.section import WD_ORIENT +from docx.enum.text import WD_BREAK + +def add_landscape_section(target_dir : str): + # 添加横向节 + doc = Document(target_dir) + section = doc.add_section() + section.orientation = WD_ORIENT.LANDSCAPE + section.page_width, section.page_height = section.page_height, section.page_width + + +def merge_documents(target_dir : str, source_dirs : List[str]): + """合并多个文档、图片 + + Args: + target_dir (str): 目标目录 + source_dirs (List[str]): 源目录列表 + """ + # 打开目标文档 + document = Document(target_dir) + + for dir in source_dirs: + if dir.endswith('.docx'): + print(add_documents(target_dir, dir)) + if dir.endswith('.jpg') or dir.endswith('.png'): + print(add_picture(target_dir, dir, is_center=True)) + +def add_defect_info_table(output_dir, defect_info, MUBAN_DIR, total_table_num, REPORT_ENUM): + """将defectinfo写入word文档 + + Args: + output_dir: 输出目录 + defect_info: 缺陷信息 + { + '叶片1': { #按叶片分记录 + '表面裂纹': { 'SLIGHT': #按类型分等级,等级从'defectLevel'获取 + [ #按等级分记录 + { + record:{...} + }, #一张图片一个记录 + ... + ] + ... + } + } + total_table_num: 总表格数量 + Returns: + table_num: 表格数量 + 功能:表头分别为:序号,缺陷类型,等级,损伤数量,处理建议,备注(是否完成处理) (默认否)。 + 总体就按等级分类,但损伤数量需要说明为:n支m处。n为有这个缺陷和等级的叶片数,m为有这个缺陷和等级的所有叶片加起来的缺陷数。 + 处理建议从record[0]的值中获取 + """ + table_data = [] # 存储所有表格数据的列表,每个元素是一个字典 # 添加新记录(使用字典格式) + table_data.append({ + "xuhao" : "序号", # 序号 + "defecttype" : "损伤名称", # 缺陷类型 + "level" : "损伤等级", # 等级 + "defectnuminfo" : "损伤数量", # 损伤数量 + "suggestion" : "处理建议", # 处理建议 + "remark" : "备注(是否处理完成)" # 备注(是否完成处理) + }) + # 遍历缺陷信息,整理数据 + for blade_name, defects in defect_info.items(): + for defect_type, levels in defects.items(): + for level, records in levels.items(): + if records: # 如果有记录 + # 计算损伤数量:n支m处 + blade_count = 1 # 当前叶片就是1支 + defect_count = len(records) # 当前叶片的缺陷数量 + + # 查找是否已有同类型同等级的数据 + found = False + for item in table_data: + if item["defecttype"] == defect_type and item["level"] == level: + # 更新已有记录 + current_n = item["defectnuminfo"] + parts = current_n.split("支") + existing_blades = int(parts[0]) + existing_defects = int(parts[1].split("处")[0]) + item["defectnuminfo"] = f"{existing_blades + blade_count}支{existing_defects + defect_count}处" + found = True + break + + if not found: + # 获取处理建议(假设第一条记录中有处理建议) + suggestion = records[0].get('record', {}).get('处理建议', '') + + # 添加新记录(使用字典格式) + table_data.append({ + "xuhao" : str(len(table_data)), # 序号 + "defecttype" : defect_type, # 缺陷类型 + "level" : level, # 等级 + "defectnuminfo" : f"{blade_count}支{defect_count}处", # 损伤数量 + "suggestion" : suggestion, # 处理建议 + "remark" : "否" # 备注(是否完成处理) + }) + # 添加空行 + for _ in range(2): + table_data.append({ + "xuhao" : "", # 序号 + "defecttype" : "", # 缺陷类型 + "level" : "", # 等级 + "defectnuminfo" : "", # 损伤数量 + "suggestion" : "", # 处理建议 + "remark" : "" # 备注(是否完成处理) + }) + for row in table_data: + add_table_and_replace(output_dir, MUBAN_DIR, list_to_replace=row, no_para = True, ifadjustheight=True, REPORT_ENUM=REPORT_ENUM) + total_table_num += 1 + return total_table_num + +from docx.enum.text import WD_ALIGN_PARAGRAPH +def add_table_title(output_dir, TITLE): + doc = Document(output_dir) + table = doc.add_table(rows=1, cols=6, style='Table Grid') + table.cell(0,0).merge(table.cell(0,5)) + para = table.cell(0,0).paragraphs[0] + para.text = TITLE + para.alignment = WD_ALIGN_PARAGRAPH.CENTER + doc.save(output_dir) \ No newline at end of file diff --git a/tools/json_to_docx.py b/tools/json_to_docx.py index 0348d51..a5b96b1 100644 --- a/tools/json_to_docx.py +++ b/tools/json_to_docx.py @@ -4,9 +4,12 @@ from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.shared import qn, OxmlElement import json -def json_to_docx(json_data): +def json_to_docx(json_data, output_dir = None): print(f"\n开始转换JSON到DOCX文档") - doc = Document() + if output_dir: + doc = Document(output_dir) + else: + doc = Document() total_elements = len(json_data) print(f"文档包含 {total_elements} 个元素(段落和表格)") @@ -73,7 +76,7 @@ def add_paragraph_from_json(doc, para_json): def add_table_from_json(doc, table_json, bold=False): print(f" 创建表格: {table_json['rows']}行 × {table_json['cols']}列") table = doc.add_table(rows=table_json["rows"], cols=table_json["cols"]) - + table.autofit = True # 自动调整列宽和行高 # 设置表格样式为无网格线(我们将自定义边框) table.style = 'Table Grid' @@ -172,13 +175,13 @@ def set_cell_alignment(cell, cell_data): # 垂直对齐设置 tcPr = cell._tc.get_or_add_tcPr() vAlign = OxmlElement('w:vAlign') - align_value = cell_data.get('vertical_align', 'top') + align_value = cell_data.get('vertical_align', 'center') print(f" 设置垂直对齐: {align_value}") # 确保使用有效的对齐值 valid_alignments = ['top', 'center', 'bottom'] if align_value not in valid_alignments: - align_value = 'top' # 默认值 + align_value = 'center' # 默认值 vAlign.set(qn('w:val'), align_value) tcPr.append(vAlign) @@ -243,11 +246,13 @@ if __name__ == "__main__": # 将JSON转换回DOCX json_to_docx(json_data, output_path) -from typing import List, Dict, Any +from typing import List, Dict, Any, Union + def list_to_json_with_merges( table_data: List[List[str]], style_config: Dict[str, Any] = None, - detect_merges: bool = True # 新增控制参数 + detect_merges: bool = True, + merge_columns: Union[int, List[int]] = None # 新增参数,控制合并哪些列 ) -> Dict[str, Any]: """ 将二维列表转换为表格JSON,可选是否合并相邻相同单元格 @@ -256,6 +261,10 @@ def list_to_json_with_merges( table_data: 二维字符串列表表示的表格数据 style_config: 包含样式配置的字典(可选) detect_merges: 是否检测并合并相邻相同单元格(默认为True) + merge_columns: 控制合并哪些列,可以是: + - None:合并所有列(默认) + - int n:只合并前n列 + - List[int]:只合并指定的列 返回: 符合表格JSON结构的字典 @@ -275,20 +284,31 @@ def list_to_json_with_merges( "cells": [[None for _ in range(cols)] for _ in range(rows)] } } + + # 处理merge_columns参数 + columns_to_merge = set() + if merge_columns is not None: + if isinstance(merge_columns, int): + columns_to_merge = set(range(merge_columns)) # 前n列 + elif isinstance(merge_columns, list): + columns_to_merge = set(merge_columns) # 指定列 for col in range(cols): + # 检查当前列是否需要合并 + should_merge = detect_merges + if merge_columns is not None: + should_merge = should_merge and (col in columns_to_merge) + start_row = 0 while start_row < rows: current_value = table_data[start_row][col] end_row = start_row - # 只有开启合并检测时才查找可合并区域 - if detect_merges: + if should_merge: while end_row + 1 < rows and table_data[end_row + 1][col] == current_value: end_row += 1 - # 处理单元格(区分合并/非合并模式) - if detect_merges and end_row > start_row: # 合并模式 + if should_merge and end_row > start_row: merge_info = { "start_row": start_row, "start_col": col, @@ -308,7 +328,7 @@ def list_to_json_with_merges( merge_range=merge_info ) result["content"]["cells"][row][col] = cell_data - else: # 非合并模式或无需合并的单单元格 + else: cell_data = create_cell_data( row=start_row, col=col, @@ -337,7 +357,7 @@ def create_cell_data( "col": col, "is_merged": is_merged, "content": create_cell_content(value, style_config), - "alignment": style_config.get("alignment", "left") if style_config else "left", + "alignment": style_config.get("alignment", "center") if style_config else "center", "border": style_config.get("border", {}) if style_config else {}, "shading": style_config.get("shading", {}) if style_config else {}, "margins": style_config.get("margins", {}) if style_config else {}