feat: 在主窗口中新增打印托盘号功能,并优化托盘完成处理逻辑

This commit is contained in:
zhu-mengmeng 2025-07-18 15:17:59 +08:00
parent 1af12e3cf2
commit 470c58ace0
3 changed files with 50 additions and 29 deletions

Binary file not shown.

View File

@ -2,11 +2,11 @@ from pymodbus.client import ModbusTcpClient
import time
client = ModbusTcpClient('localhost', port=5020)
client.connect()
client.write_registers(address=11, values=[212])
client.write_registers(address=11, values=[2122])
# client.write_registers(address=3, values=[0])
time.sleep(2)
client.write_registers(address=0, values=[0])
client.write_registers(address=4, values=[0])
# time.sleep(2)
# client.write_registers(address=0, values=[0])
# client.write_registers(address=4, values=[0])
# client.write_registers(address=30, values=[25])
# client.write_registers(address=5, values=[16])
@ -15,6 +15,6 @@ client.write_registers(address=4, values=[0])
client.write_registers(address=13, values=[1])
result = client.read_holding_registers(address=0, count=1)
result = client.read_holding_registers(address=11, count=1)
print(result.registers[0],"123===")
client.close()

View File

@ -3354,19 +3354,32 @@ class MainWindow(MainWindowUI):
""")
self.delete_row_button.clicked.connect(self.handle_delete_row)
# 创建打印按钮
# 打印托盘号按钮
self.print_tray_button = QPushButton("打印托盘号")
self.print_tray_button.setFont(self.normal_font)
self.print_tray_button.setStyleSheet("""
QPushButton {
padding: 5px 8px;
background-color: #e3f2fd;
border: 1px solid #2196f3;
}
QPushButton:hover {
background-color: #c8e6c9;
}
""")
self.print_tray_button.clicked.connect(lambda: self.handle_tray_complete(ismt=False))
# 打印选中行按钮
self.print_row_button = QPushButton("打印选中行")
self.print_row_button.setFont(self.normal_font)
self.print_row_button.setStyleSheet("""
QPushButton {
padding: 5px 10px;
background-color: #e3f2fd;
border: 1px solid #2196f3;
border-radius: 4px;
font-weight: bold;
padding: 5px 8px;
background-color: #e0e0e0;
border: 1px solid #cccccc;
}
QPushButton:hover {
background-color: #bbdefb;
background-color: #f5f5f5;
}
""")
self.print_row_button.clicked.connect(self.handle_print_row)
@ -3376,6 +3389,7 @@ class MainWindow(MainWindowUI):
title_layout.addStretch()
title_layout.addWidget(self.print_row_button)
title_layout.addWidget(self.delete_row_button)
title_layout.addWidget(self.print_tray_button)
# 设置容器样式
title_container.setFixedHeight(40)
@ -3453,15 +3467,18 @@ class MainWindow(MainWindowUI):
def handle_tray_complete(self):
"""处理托盘完成按钮点击事件"""
def handle_tray_complete(self, ismt=True):
"""托盘完成或打印托盘号事件
Args:
ismt: 是否满托True为满托False为未满托
"""
try:
# 获取托盘号
tray_id = self.tray_edit.currentText()
if not tray_id:
QMessageBox.warning(self, "提示", "请先选择托盘号")
return
if ismt:
# 确认对话框
reply = QMessageBox.question(
self,
@ -3480,7 +3497,7 @@ class MainWindow(MainWindowUI):
# 准备参数
params = {
'ismt': True,
'ismt': ismt,
'corp_id': self.corp_id,
'tray_id': tray_id,
'ip': '192.168.1.246'
@ -3491,8 +3508,12 @@ class MainWindow(MainWindowUI):
# 处理响应
if response.get('status', False):
if ismt:
QMessageBox.information(self, "成功", "托盘已标记为完成")
logging.info(f"托盘 {tray_id} 已标记为完成")
else:
QMessageBox.information(self, "成功", "托盘号已打印")
logging.info(f"托盘号 {tray_id} 已打印")
else:
error_msg = response.get('message', '未知错误')
QMessageBox.warning(self, "失败", f"标记托盘完成失败: {error_msg}")