From 3246e8981f78cdf8d10e1d232925f5950d03db64 Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Sun, 20 Jul 2025 18:15:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90=E8=99=9A=E6=8B=9F=E8=AE=A2=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/jtDB.db | Bin 196608 -> 196608 bytes from pymodbus.py | 2 +- ui/main_window_ui.py | 23 +++++++++ widgets/main_window.py | 58 ++++++++++++++++++----- widgets/order_query_dialog.py | 86 ++++++++++++++++++---------------- 5 files changed, 116 insertions(+), 53 deletions(-) diff --git a/db/jtDB.db b/db/jtDB.db index ee9b90e18f4757491871ed9f7ba3b0c34f4fe637..128bcfc780ea769bf27d2117d495af5022d05919 100644 GIT binary patch delta 1962 zcmcJQNo*Tc9L8txdd!If0(uFND%4gL2P70!#&#vL%#qAx^xp3+ z-+bTuzZoB=$H(c}8vNXx_aJ`m>T5qgh5OY5t^4qI)T6D_#$Go=$e_*|_kcmpw>=12 znzI%R!x}S*!r#ZO4u_HUVfLf8Z)_fBg#L;4750o*)9HyOzYVKzI$$@MVlj8jZElYX zG8g8AP>awWKiCoPC^sc3bmZB?@t0%IcL`jnN8q~nu*}IJzRkDvYtXZBqs_O!{4Vhp zF5Dt;d-<>;OA5~gq=+bmc^zUbA(>NOnsKq425SosoE#YJPE6GK)YspyF5ExMx;&j2 z)@e5}^R!3>EKbv;5y&a{3xCe)Qk{+`nTfY>pR?BQ!s;2ur3RL3@h8ygEYzqy%Qj*i zEviGy)6TW)Gj~3C_fGE9wd)^0!||h|g|`>4+43tSN3hHns%bS?a5@H=G^>&%CYm=( zjwqb0$O5Ypx!V0HJIH^NITHb7KM2B$NF__x8SKPRVn9}3Zx2q9WMfr%p^Yi8a&0{^H9eW$#DROSH+A+h&fEP<(X-?i9ev{sXl9)#cKM~ z5YXaIF_W)&{aV~rrMTVb=0zywefuK#jq4Y#tY~bUFk|@lA5V}rEx5C9DOnd!Ey_A z-(iZL<0;>4k5FD}=$?xHxplImCs>r*T>9BFlIB33M%~|(ZzND?xdE4jY zUHX)L#_nc*WZEq;!$U)csxv=r=+xZ%ibTaEBuUc`ShE&TV|pMf+Oc{Zx7RSDTXdV7 z{EzMyKHS1nlsMeo*VEhm##V26UOSPM+TQ_0z5=#57b*>_+(!|f=Y;;OP~MeE>upOA zyR&N|>#Xcr_2^q0+L5Op9!J3epwR6>kkF+;_>Hs#uu09FvGj0OE>B?fR5DC7APT~6 zNqx+Yp$jQ!{!d(*0?eiTEH*#MEUziFSQtHp|Fbkx7hevqINT2};3WMARy!ASr$@3< z*(A4~1e)fh-E@hyqxls4LLAF_N~KecR+B&$(FR<>@r0IPA8JTJl1OE}rOK;DD=9Fd I$V0gGFFm63g8%>k delta 653 zcmXw#Ur1A77{Bu{4?F!wC0Uy=_U@Lpcx^N1>P+1BBVeh%0Fid|6~zo z3Brce@o6#~x_nV6uk2-Ukm$uRBpyq5j1b_ zR(#gIvYcf>{LFWmGmLSs4q6^?PN9W*?o!7r(VO9;IVl)wDncLuH(=WlrHdlDl(L{`$+W;SXHo_Mu zS~5afLVI!-g8$`EVwlb5prxb%A!c8NaZyVQ@+Xh^H3oIWlwQG~7AO9WWITcJ1bs-| l= 2: # 确保不是表头行 selected_rows = [self.process_table.model().index(current_row, 0)] else: - QMessageBox.warning(self, "提示", "请先选择要删除的微丝产线数据行") return # 确认删除 @@ -3993,7 +4030,6 @@ class MainWindow(MainWindowUI): if current_row >= 0: # 包装记录表格没有表头行 selected_rows = [self.record_table.model().index(current_row, 0)] else: - QMessageBox.warning(self, "提示", "请先选择要删除的包装记录行") return # 确认删除 diff --git a/widgets/order_query_dialog.py b/widgets/order_query_dialog.py index 1210217..fa7af56 100644 --- a/widgets/order_query_dialog.py +++ b/widgets/order_query_dialog.py @@ -270,47 +270,51 @@ class OrderQueryDialog(OrderQueryDialogUI): # 处理查询结果 results = [] for row in rows: - # 将元组转换为字典 - order_data = { - "note": row[0], - "mo": row[1], - "customer": row[2], - "customerexp": row[3], - "khno": row[4], - "ddzl": row[5], - "khjq": row[6], - "code": row[7], - "type": row[8], - "cz": row[9], - "size": row[10], - "cd": row[11], - "maxsl": row[12], - "spack": row[13], - "zx_name": row[14], - "zx_code": row[15], - "zx_zl": row[16], - "template_name": row[17], - "bqlb": row[18], - "dycz": row[19], - "luno": row[20], - "corp": row[21], - "sl": row[22], - "tccd": row[23], - "bccd": row[24], - "ysl": row[25], - "qfqd": row[26], - "yzgg": row[27], - "tqd": row[28], - "bqd": row[29], - "bzfs": row[30], - "ddyq": row[31], - "remarks_hb": row[32], - "bz_tqd": row[33], - "bz_bqd": row[34], - "zzyq": row[35], - "rq": row[36] - } - results.append(order_data) + # 将元组转换为字典,使用安全的索引访问 + try: + order_data = { + "note": row[0] if len(row) > 0 else "", + "mo": row[1] if len(row) > 1 else "", + "customer": row[2] if len(row) > 2 else "", + "customerexp": row[3] if len(row) > 3 else "", + "khno": row[4] if len(row) > 4 else "", + "ddzl": row[5] if len(row) > 5 else "", + "khjq": row[6] if len(row) > 6 else "", + "code": row[7] if len(row) > 7 else "", + "type": row[8] if len(row) > 8 else "", + "cz": row[9] if len(row) > 9 else "", + "size": row[10] if len(row) > 10 else "", + "cd": row[11] if len(row) > 11 else "", + "maxsl": row[12] if len(row) > 12 else "", + "spack": row[13] if len(row) > 13 else "", + "zx_name": row[14] if len(row) > 14 else "", + "zx_code": row[15] if len(row) > 15 else "", + "zx_zl": row[16] if len(row) > 16 else "", + "template_name": row[17] if len(row) > 17 else "", + "bqlb": row[18] if len(row) > 18 else "", + "dycz": row[19] if len(row) > 19 else "", + "luno": row[20] if len(row) > 20 else "", + "corp": row[21] if len(row) > 21 else "", + "sl": row[22] if len(row) > 22 else "", + "tccd": row[23] if len(row) > 23 else "", + "bccd": row[24] if len(row) > 24 else "", + "ysl": row[25] if len(row) > 25 else "", + "qfqd": row[26] if len(row) > 26 else "", + "yzgg": row[27] if len(row) > 27 else "", + "tqd": row[28] if len(row) > 28 else "", + "bqd": row[29] if len(row) > 29 else "", + "bzfs": row[30] if len(row) > 30 else "", + "ddyq": row[31] if len(row) > 31 else "", + "remarks_hb": row[32] if len(row) > 32 else "", + "bz_tqd": row[33] if len(row) > 33 else "", + "bz_bqd": row[34] if len(row) > 34 else "", + "zzyq": row[35] if len(row) > 35 else "", + "rq": row[36] if len(row) > 36 else "" + } + results.append(order_data) + except Exception as e: + logging.error(f"处理查询结果行时出错: {str(e)}, 行数据: {row}") + continue # 保存查询结果 self.query_results = results