From f4b11085aa7097bc0fb63527d6b467baccf57f2d Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Sun, 20 Jul 2025 14:17:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E8=BD=B4=E5=8F=B7=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/jtDB.db | Bin 192512 -> 192512 bytes from pymodbus.py | 2 +- widgets/main_window.py | 47 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/db/jtDB.db b/db/jtDB.db index c3f565614ec7d07f73130cdab02b794b05eb5470..010dbb17f837dbbc5fedcbb0431876744477f1d5 100644 GIT binary patch delta 1443 zcmZp8z}@hGdxA9Y1O^5MeIVusV&;h&=8O|ICfu@PRGw^Yuf!NLInKU~El!e`*_3JW z1U3;SmYa(l6!=(yY8m-|0Z9fO{$JY#4H)0^Gs|@bY${+85MbjmVc?JB+ruZtTfuXU z$7Hieg8~n8qrCFu#C|b(16@O}5a)o903%Zaa|06t%ZL!K5D?qYz|z>zWb%ey8FdpY zLvt%*Q#~U~b0ZTABLgE-T?2DnBLf9PWEs=R8xw@ZQA8|@D~n4~a~tKAKz1eJvdh%a z(#X=p*g@fjK$7pJPYwzyclD*_??bc5)XLOM&)D3+!qgI%j5*8+aJ3c&FefO2oG{tA zPj>UV-pC+UCSX`;ZsvLLgP*yP>DgxX3(Sn01qJRfnut$|VPP=lK(oTc%Gg+ZQZ!Z> zBa6*apI_Z!QDR7En9Px&E%}1Al$DXClSPnuCbJsTMkX7^vN46kO)p%|Bx3<|mx+~$v7QMqSy&o-VFU?63f0lu^OrMC;*jL> zVBqAu&cGYPXT;yZFTi=7=Os@mw<6a{pe=hjfes4=1%xX&#TXbue2-=aDB0l&7DyuH zp2?6nSx_Jr=)Fjw_e@+UHnFrb0ve7|lsk|2Ji{HJ^KNh!c82paC^IthPu`dz!pzNW zGI?Q&Fy)Rd=nR`IpD#YyKSP2Vh6Tb5LrS4K#HLWbWemwczs3Xo8ie9kV~}6TF%g(e rvw$Y10V6jA7$-85Kcq<@nWIgt%St=&ZNw0Fwa#fE|gV delta 959 zcmZ`$Ye-XJ82-NZobAl%IdeD@r|G6M6P=!O=A0MME$c@jrDC8$R!|{@mvE2+OI=_M z6)y++ShJL@V+?K zi4e+?OCy(}f3FQY?;n3vh>cP~Q4+3^YKuCRM`Kya3R0g^2lVq>c7uvVi^zyvYNDFJ z=`n8==cr!#8-0PMkc-m8F!1;hc1YUDEUL*M9h=hs^Lt1ix#jHcBrs6My{LNFDg~ zUqZ79Eb2krFk2G7q&}^B%@AdUqL6N-9>NU1hkE4mpQYUKdj>)Vsr18d%AJwoFMOAY zu}P|bKTCBKC6k~ROj6^b4=1fZ%~I{h2Fk59`j+&DnP!+d{xU+`oH(?oM zVPRF=^&p7p02RwL5@rZ2@+z&&SmOu`sKVquV{Qs@Q!@CBqugn!qoFi>I{^G&+4LS$ diff --git a/from pymodbus.py b/from pymodbus.py index b818fa1..cbb9ec3 100644 --- a/from pymodbus.py +++ b/from pymodbus.py @@ -15,7 +15,7 @@ client.write_registers(address=11, values=[9422]) # client.write_registers(address=2, values=[0]) # client.write_registers(address=13, values=[1]) # time.sleep(2) -client.write_registers(address=13, values=[0]) +client.write_registers(address=13, values=[1]) diff --git a/widgets/main_window.py b/widgets/main_window.py index bf56ea2..40eb596 100644 --- a/widgets/main_window.py +++ b/widgets/main_window.py @@ -219,6 +219,46 @@ class MainWindow(MainWindowUI): inspection_dao = InspectionDAO() axios_num = inspection_dao.get_axios_num_by_order_id(order_id) return axios_num + + def get_current_row_axios_num(self, data_row): + """获取当前行的轴号,优先使用用户输入的轴号,否则使用数据库中的轴号+1 + + Args: + data_row: 数据行索引 + + Returns: + int: 轴号 + """ + try: + # 获取启用的检验配置 + enabled_configs = self.inspection_manager.get_enabled_configs() + + # 计算贴标列索引 - 贴标位置在检验列之后的第一列 + label_col = 2 + len(enabled_configs) + + # 获取当前行的贴标值(轴号) + label_item = self.process_table.item(data_row, label_col) + if label_item: + current_axios = label_item.text().strip() + if current_axios and current_axios.isdigit(): + # 如果当前行有有效的轴号,直接使用 + axios_num = int(current_axios) + logging.info(f"使用当前行轴号: {axios_num}") + return axios_num + + # 如果当前行没有轴号,使用数据库中的轴号+1 + tray_id = self.tray_edit.currentText() + db_axios_num = self.get_axios_num(tray_id) + axios_num = db_axios_num + 1 + logging.info(f"当前行无轴号,使用数据库轴号+1: {axios_num}") + return axios_num + + except Exception as e: + logging.error(f"获取当前行轴号失败: {str(e)}") + # 出错时使用数据库轴号+1作为备选 + tray_id = self.tray_edit.currentText() + db_axios_num = self.get_axios_num(tray_id) + return db_axios_num + 1 def load_config(self): """加载配置文件""" config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "config", "app_config.json") @@ -2196,7 +2236,8 @@ class MainWindow(MainWindowUI): net_weight_item = QTableWidgetItem(str(net_weight_kg)) net_weight_item.setTextAlignment(Qt.AlignCenter) self.process_table.setItem(data_row, net_weight_col, net_weight_item) - axios_num = self.get_axios_num_by_order_id(self._current_order_code) + 1 + # 获取轴号,优先使用当前行的轴号 + axios_num = self.get_current_row_axios_num(data_row) # 如果开启 api 模式,则调用接口添加到包装记录 if AppMode.is_api(): from dao.inspection_dao import InspectionDAO @@ -2428,8 +2469,8 @@ class MainWindow(MainWindowUI): # 计算贴标列索引 - 贴标位置在检验列之后的第一列 label_col = 2 + len(enabled_configs) - # 生成贴标号(托盘号+轴号) - axios_num = self.get_axios_num(tray_id)+1 + # 生成贴标号(托盘号+轴号),优先使用当前行的轴号 + axios_num = self.get_current_row_axios_num(data_row) # 断开单元格变更信号,避免程序自动写入时触发 try: