调整
This commit is contained in:
parent
b5420880f7
commit
275ad1a720
@ -123,7 +123,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electricity": {
|
"electricity": {
|
||||||
"auto_start": false,
|
"auto_start": true,
|
||||||
"interval_minutes": 30
|
"interval_minutes": 30
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -2,7 +2,7 @@ from pymodbus.client import ModbusTcpClient
|
|||||||
import time
|
import time
|
||||||
client = ModbusTcpClient('localhost', port=5020)
|
client = ModbusTcpClient('localhost', port=5020)
|
||||||
client.connect()
|
client.connect()
|
||||||
client.write_registers(address=11, values=[25700])
|
client.write_registers(address=11, values=[19200])
|
||||||
# client.write_registers(address=3, values=[0])
|
# client.write_registers(address=3, values=[0])
|
||||||
# time.sleep(2)
|
# time.sleep(2)
|
||||||
# client.write_registers(address=0, values=[0])
|
# client.write_registers(address=0, values=[0])
|
||||||
@ -13,7 +13,7 @@ client.write_registers(address=11, values=[25700])
|
|||||||
# 贴标完成
|
# 贴标完成
|
||||||
# client.write_registers(address=24, values=[1])
|
# client.write_registers(address=24, values=[1])
|
||||||
# client.write_registers(address=2, values=[0])
|
# client.write_registers(address=2, values=[0])
|
||||||
client.write_registers(address=13, values=[1])
|
client.write_registers(address=13, values=[0])
|
||||||
# time.sleep(2)
|
# time.sleep(2)
|
||||||
# client.write_registers(address=20, values=[0])
|
# client.write_registers(address=20, values=[0])
|
||||||
# time.sleep(3)
|
# time.sleep(3)
|
||||||
|
|||||||
@ -20,7 +20,7 @@ class MainWindowUI(QMainWindow):
|
|||||||
"炉号": "luno",
|
"炉号": "luno",
|
||||||
"轴型": "zx_name",
|
"轴型": "zx_name",
|
||||||
"标签": "template_name",
|
"标签": "template_name",
|
||||||
"打印材质": "cz",
|
"打印材质": "dycz",
|
||||||
"底托类型": "spack_type",
|
"底托类型": "spack_type",
|
||||||
"强度范围": "qx",
|
"强度范围": "qx",
|
||||||
"强度": "qd",
|
"强度": "qd",
|
||||||
|
|||||||
@ -175,6 +175,73 @@ class ReportDialogUI(QDialog):
|
|||||||
|
|
||||||
# 添加到主布局
|
# 添加到主布局
|
||||||
self.main_layout.addWidget(self.report_table)
|
self.main_layout.addWidget(self.report_table)
|
||||||
|
|
||||||
|
# 创建汇总区域
|
||||||
|
self.create_summary_section()
|
||||||
|
|
||||||
|
def create_summary_section(self):
|
||||||
|
"""创建汇总区域"""
|
||||||
|
# 汇总容器
|
||||||
|
self.summary_frame = QFrame()
|
||||||
|
self.summary_frame.setFrameShape(QFrame.StyledPanel)
|
||||||
|
self.summary_frame.setStyleSheet("""
|
||||||
|
QFrame {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
|
||||||
|
self.summary_layout = QHBoxLayout(self.summary_frame)
|
||||||
|
self.summary_layout.setContentsMargins(15, 10, 15, 10)
|
||||||
|
self.summary_layout.setSpacing(20)
|
||||||
|
|
||||||
|
# 汇总标题
|
||||||
|
self.summary_title = QLabel("汇总统计")
|
||||||
|
self.summary_title.setFont(self.title_font)
|
||||||
|
self.summary_title.setStyleSheet("color: #495057; font-weight: bold;")
|
||||||
|
|
||||||
|
# 总轴数
|
||||||
|
self.total_axes_label = QLabel("总轴数:")
|
||||||
|
self.total_axes_label.setFont(self.normal_font)
|
||||||
|
self.total_axes_label.setStyleSheet("color: #495057; font-weight: bold;")
|
||||||
|
self.total_axes_value = QLabel("0")
|
||||||
|
self.total_axes_value.setFont(self.normal_font)
|
||||||
|
self.total_axes_value.setStyleSheet("color: #007bff; font-weight: bold;")
|
||||||
|
self.total_axes_value.setMinimumWidth(80)
|
||||||
|
|
||||||
|
# 总净重
|
||||||
|
self.total_weight_label = QLabel("总净重:")
|
||||||
|
self.total_weight_label.setFont(self.normal_font)
|
||||||
|
self.total_weight_label.setStyleSheet("color: #495057; font-weight: bold;")
|
||||||
|
self.total_weight_value = QLabel("0.00 ")
|
||||||
|
self.total_weight_value.setFont(self.normal_font)
|
||||||
|
self.total_weight_value.setStyleSheet("color: #28a745; font-weight: bold;")
|
||||||
|
self.total_weight_value.setMinimumWidth(100)
|
||||||
|
|
||||||
|
# 记录数
|
||||||
|
self.record_count_label = QLabel("记录数:")
|
||||||
|
self.record_count_label.setFont(self.normal_font)
|
||||||
|
self.record_count_label.setStyleSheet("color: #495057; font-weight: bold;")
|
||||||
|
self.record_count_value = QLabel("0")
|
||||||
|
self.record_count_value.setFont(self.normal_font)
|
||||||
|
self.record_count_value.setStyleSheet("color: #6c757d; font-weight: bold;")
|
||||||
|
self.record_count_value.setMinimumWidth(60)
|
||||||
|
|
||||||
|
# 添加到汇总布局
|
||||||
|
self.summary_layout.addWidget(self.summary_title)
|
||||||
|
self.summary_layout.addStretch()
|
||||||
|
self.summary_layout.addWidget(self.total_axes_label)
|
||||||
|
self.summary_layout.addWidget(self.total_axes_value)
|
||||||
|
self.summary_layout.addSpacing(20)
|
||||||
|
self.summary_layout.addWidget(self.total_weight_label)
|
||||||
|
self.summary_layout.addWidget(self.total_weight_value)
|
||||||
|
self.summary_layout.addSpacing(20)
|
||||||
|
self.summary_layout.addWidget(self.record_count_label)
|
||||||
|
self.summary_layout.addWidget(self.record_count_value)
|
||||||
|
|
||||||
|
# 添加到主布局
|
||||||
|
self.main_layout.addWidget(self.summary_frame)
|
||||||
|
|
||||||
def create_button_section(self):
|
def create_button_section(self):
|
||||||
"""创建按钮区域"""
|
"""创建按钮区域"""
|
||||||
|
|||||||
@ -248,6 +248,8 @@ class MainWindow(MainWindowUI):
|
|||||||
# 加载库房和线材类型数据
|
# 加载库房和线材类型数据
|
||||||
self.load_warehouse_data()
|
self.load_warehouse_data()
|
||||||
self.load_wire_type_data()
|
self.load_wire_type_data()
|
||||||
|
|
||||||
|
self.gc_dycz = {}
|
||||||
|
|
||||||
logging.info("主窗口初始化时已启动Modbus监控系统")
|
logging.info("主窗口初始化时已启动Modbus监控系统")
|
||||||
|
|
||||||
@ -981,6 +983,7 @@ class MainWindow(MainWindowUI):
|
|||||||
# 保存工程号对应的强度数据
|
# 保存工程号对应的强度数据
|
||||||
self._order_strength_data[gc_note] = self._current_gc_qd
|
self._order_strength_data[gc_note] = self._current_gc_qd
|
||||||
self._current_gc_sc_gch = gc_info.get("sc_gch", "") # 保存sc_gch字段
|
self._current_gc_sc_gch = gc_info.get("sc_gch", "") # 保存sc_gch字段
|
||||||
|
self.gc_dycz[gc_note] = gc_info.get("dycz","")
|
||||||
# 先获取当前 info_table 已有的数据
|
# 先获取当前 info_table 已有的数据
|
||||||
order_info = {}
|
order_info = {}
|
||||||
for field_name, label in self.info_values.items():
|
for field_name, label in self.info_values.items():
|
||||||
@ -1010,6 +1013,8 @@ class MainWindow(MainWindowUI):
|
|||||||
order_info[order_info_key] = ""
|
order_info[order_info_key] = ""
|
||||||
else:
|
else:
|
||||||
order_info[order_info_key] = ""
|
order_info[order_info_key] = ""
|
||||||
|
elif field_name == "打印材质":
|
||||||
|
order_info[order_info_key] = self.gc_dycz.pop(gc_note,"") or label.text()
|
||||||
elif hasattr(label, 'text'):
|
elif hasattr(label, 'text'):
|
||||||
# 其他有text方法的控件
|
# 其他有text方法的控件
|
||||||
order_info[order_info_key] = label.text()
|
order_info[order_info_key] = label.text()
|
||||||
@ -1026,6 +1031,7 @@ class MainWindow(MainWindowUI):
|
|||||||
continue
|
continue
|
||||||
# 更新/补充 qd 字段
|
# 更新/补充 qd 字段
|
||||||
order_info["qd"] = self._current_gc_qd
|
order_info["qd"] = self._current_gc_qd
|
||||||
|
|
||||||
# 再调用 update_info_table
|
# 再调用 update_info_table
|
||||||
self.update_info_table(order_info)
|
self.update_info_table(order_info)
|
||||||
self.add_new_inspection_row(gc_note, self._current_order_code)
|
self.add_new_inspection_row(gc_note, self._current_order_code)
|
||||||
@ -1076,7 +1082,7 @@ class MainWindow(MainWindowUI):
|
|||||||
logging.info(f"已生成虚拟工程号并直接添加: {virtual_gc_note}")
|
logging.info(f"已生成虚拟工程号并直接添加: {virtual_gc_note}")
|
||||||
|
|
||||||
# 确保完整加载所有检验数据,包括线径数据
|
# 确保完整加载所有检验数据,包括线径数据
|
||||||
self._safe_load_data()
|
# self._safe_load_data()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"生成虚拟工程号失败: {str(e)}")
|
logging.error(f"生成虚拟工程号失败: {str(e)}")
|
||||||
@ -1101,10 +1107,10 @@ class MainWindow(MainWindowUI):
|
|||||||
enabled_configs = self.inspection_manager.get_enabled_configs()
|
enabled_configs = self.inspection_manager.get_enabled_configs()
|
||||||
|
|
||||||
# 断开单元格变更信号,避免加载过程中触发保存
|
# 断开单元格变更信号,避免加载过程中触发保存
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
# 计算新行的行索引(添加到末尾)
|
# 计算新行的行索引(添加到末尾)
|
||||||
data_start_row = self.process_table.rowCount()
|
data_start_row = self.process_table.rowCount()
|
||||||
@ -1167,10 +1173,10 @@ class MainWindow(MainWindowUI):
|
|||||||
self.process_table.setItem(data_start_row, col_index, item)
|
self.process_table.setItem(data_start_row, col_index, item)
|
||||||
|
|
||||||
# 设置表格为可编辑状态
|
# 设置表格为可编辑状态
|
||||||
self.process_table.setEditTriggers(QTableWidget.DoubleClicked | QTableWidget.EditKeyPressed)
|
# self.process_table.setEditTriggers(QTableWidget.DoubleClicked | QTableWidget.EditKeyPressed)
|
||||||
|
|
||||||
# 重新连接单元格内容变更信号
|
# # 重新连接单元格内容变更信号
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
|
|
||||||
# 选中新添加的行
|
# 选中新添加的行
|
||||||
self.process_table.selectRow(data_start_row)
|
self.process_table.selectRow(data_start_row)
|
||||||
@ -1590,14 +1596,14 @@ class MainWindow(MainWindowUI):
|
|||||||
unfinished_data = inspection_dao.get_inspection_data_unfinished(tray_id, package_id)
|
unfinished_data = inspection_dao.get_inspection_data_unfinished(tray_id, package_id)
|
||||||
|
|
||||||
# 检查信号是否已连接,并断开单元格变更信号
|
# 检查信号是否已连接,并断开单元格变更信号
|
||||||
try:
|
# try:
|
||||||
signal_was_connected = self.process_table.receivers(self.process_table.cellChanged) > 0
|
# signal_was_connected = self.process_table.receivers(self.process_table.cellChanged) > 0
|
||||||
if signal_was_connected:
|
# if signal_was_connected:
|
||||||
self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
||||||
logging.debug("已断开单元格变更信号")
|
# logging.debug("已断开单元格变更信号")
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
logging.debug(f"断开单元格变更信号失败: {str(e)}")
|
# logging.debug(f"断开单元格变更信号失败: {str(e)}")
|
||||||
signal_was_connected = False
|
# signal_was_connected = False
|
||||||
|
|
||||||
# 清空表格现有数据行,只保留表头
|
# 清空表格现有数据行,只保留表头
|
||||||
while self.process_table.rowCount() > 2:
|
while self.process_table.rowCount() > 2:
|
||||||
@ -1608,13 +1614,13 @@ class MainWindow(MainWindowUI):
|
|||||||
# 确保表格完全清空,只保留表头行
|
# 确保表格完全清空,只保留表头行
|
||||||
self.process_table.setRowCount(2) # 只保留表头的两行
|
self.process_table.setRowCount(2) # 只保留表头的两行
|
||||||
|
|
||||||
# 只有在之前信号已连接的情况下才重新连接
|
# # 只有在之前信号已连接的情况下才重新连接
|
||||||
if signal_was_connected:
|
# if signal_was_connected:
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
logging.debug("已重新连接单元格变更信号")
|
# logging.debug("已重新连接单元格变更信号")
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
logging.warning(f"重新连接单元格变更信号失败: {str(e)}")
|
# logging.warning(f"重新连接单元格变更信号失败: {str(e)}")
|
||||||
|
|
||||||
# 加载包装记录
|
# 加载包装记录
|
||||||
return
|
return
|
||||||
@ -1770,13 +1776,13 @@ class MainWindow(MainWindowUI):
|
|||||||
# 设置表格为可编辑状态
|
# 设置表格为可编辑状态
|
||||||
self.process_table.setEditTriggers(QTableWidget.DoubleClicked | QTableWidget.EditKeyPressed)
|
self.process_table.setEditTriggers(QTableWidget.DoubleClicked | QTableWidget.EditKeyPressed)
|
||||||
|
|
||||||
# 只有在之前信号已连接的情况下才重新连接
|
# # 只有在之前信号已连接的情况下才重新连接
|
||||||
if signal_was_connected:
|
# if signal_was_connected:
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
logging.debug("已重新连接单元格变更信号")
|
# logging.debug("已重新连接单元格变更信号")
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
logging.warning(f"重新连接单元格变更信号失败: {str(e)}")
|
# logging.warning(f"重新连接单元格变更信号失败: {str(e)}")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"加载未完成的检验数据失败: {str(e)}")
|
logging.error(f"加载未完成的检验数据失败: {str(e)}")
|
||||||
@ -2440,10 +2446,10 @@ class MainWindow(MainWindowUI):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"处理称重数据时发生错误: {str(e)}")
|
logging.error(f"处理称重数据时发生错误: {str(e)}")
|
||||||
# 确保重新连接信号
|
# 确保重新连接信号
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# # self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
def _check_weight_stability(self, original_weight_kg):
|
def _check_weight_stability(self, original_weight_kg):
|
||||||
"""
|
"""
|
||||||
@ -2682,11 +2688,11 @@ class MainWindow(MainWindowUI):
|
|||||||
modbus.close_client(client)
|
modbus.close_client(client)
|
||||||
logging.info("无轴重要求,已写入D10=1,通知PLC称重合格")
|
logging.info("无轴重要求,已写入D10=1,通知PLC称重合格")
|
||||||
|
|
||||||
# 暂时断开信号连接,避免触发cellChanged信号
|
# # 暂时断开信号连接,避免触发cellChanged信号
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
# 设置称重值单元格(显示千克)
|
# 设置称重值单元格(显示千克)
|
||||||
weight_item = QTableWidgetItem(str(weight_kg))
|
weight_item = QTableWidgetItem(str(weight_kg))
|
||||||
@ -2809,7 +2815,7 @@ class MainWindow(MainWindowUI):
|
|||||||
info['mzl'] = weight_kg
|
info['mzl'] = weight_kg
|
||||||
info['printsl'] = 1
|
info['printsl'] = 1
|
||||||
info['pono'] = info.get("pono") or order_info.get('ddmo')
|
info['pono'] = info.get("pono") or order_info.get('ddmo')
|
||||||
info["dycz"] = info.get("cz")
|
info["dycz"] = self.gc_dycz.pop(gc_note,"") or info.get("cz")
|
||||||
# info['qd'] = self._current_gc_qd
|
# info['qd'] = self._current_gc_qd
|
||||||
# 找到对应工程的强度,并从字典中移除
|
# 找到对应工程的强度,并从字典中移除
|
||||||
# info['qd'] = self._order_strength_data.pop(gc_note)
|
# info['qd'] = self._order_strength_data.pop(gc_note)
|
||||||
@ -2853,8 +2859,8 @@ class MainWindow(MainWindowUI):
|
|||||||
|
|
||||||
# 保存贴标数据到数据库
|
# 保存贴标数据到数据库
|
||||||
self.save_inspection_data(self._current_order_code, gc_note, tray_id, 11, 11, str(axios_num), "pass")
|
self.save_inspection_data(self._current_order_code, gc_note, tray_id, 11, 11, str(axios_num), "pass")
|
||||||
# 重新连接信号
|
# # 重新连接信号
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
|
|
||||||
# 清除当前处理行的跟踪,因为称重完成后需要等待贴标
|
# 清除当前处理行的跟踪,因为称重完成后需要等待贴标
|
||||||
self._current_processing_row = None
|
self._current_processing_row = None
|
||||||
@ -2862,10 +2868,10 @@ class MainWindow(MainWindowUI):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"处理称重数据时发生错误: {str(e)}")
|
logging.error(f"处理称重数据时发生错误: {str(e)}")
|
||||||
# 确保重新连接信号
|
# 确保重新连接信号
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
finally:
|
finally:
|
||||||
# 释放处理锁
|
# 释放处理锁
|
||||||
self._processing_weight_lock = False
|
self._processing_weight_lock = False
|
||||||
@ -2944,11 +2950,11 @@ class MainWindow(MainWindowUI):
|
|||||||
# 生成贴标号(托盘号+轴号),优先使用当前行的轴号
|
# 生成贴标号(托盘号+轴号),优先使用当前行的轴号
|
||||||
axios_num = self.get_current_row_axios_num(data_row)
|
axios_num = self.get_current_row_axios_num(data_row)
|
||||||
|
|
||||||
# 断开单元格变更信号,避免程序自动写入时触发
|
# # 断开单元格变更信号,避免程序自动写入时触发
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
# 创建并设置贴标单元格
|
# 创建并设置贴标单元格
|
||||||
label_item = QTableWidgetItem(str(axios_num))
|
label_item = QTableWidgetItem(str(axios_num))
|
||||||
@ -3003,16 +3009,16 @@ class MainWindow(MainWindowUI):
|
|||||||
# 更新包装记录统计数据
|
# 更新包装记录统计数据
|
||||||
self.update_package_statistics()
|
self.update_package_statistics()
|
||||||
|
|
||||||
# 重新连接单元格变更信号
|
# # 重新连接单元格变更信号
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"处理贴标完成信号失败: {str(e)}")
|
logging.error(f"处理贴标完成信号失败: {str(e)}")
|
||||||
# 确保信号重新连接
|
# 确保信号重新连接
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
@Slot(bool, str)
|
@Slot(bool, str)
|
||||||
def handle_modbus_status_change(self, is_connected, message):
|
def handle_modbus_status_change(self, is_connected, message):
|
||||||
@ -4017,11 +4023,11 @@ class MainWindow(MainWindowUI):
|
|||||||
self._last_processed_gc_note = order_id
|
self._last_processed_gc_note = order_id
|
||||||
logging.info(f"记录最近处理线径数据的工程号: {order_id}")
|
logging.info(f"记录最近处理线径数据的工程号: {order_id}")
|
||||||
|
|
||||||
# 暂时断开信号连接,避免触发cellChanged信号
|
# # 暂时断开信号连接,避免触发cellChanged信号
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.disconnect(self.handle_inspection_cell_changed)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
# 格式化值并设置单元格
|
# 格式化值并设置单元格
|
||||||
formatted_value = str(value)
|
formatted_value = str(value)
|
||||||
@ -4056,10 +4062,10 @@ class MainWindow(MainWindowUI):
|
|||||||
# 不需要在这里主动触发数据重新加载,因为handle_inspection_cell_changed会处理
|
# 不需要在这里主动触发数据重新加载,因为handle_inspection_cell_changed会处理
|
||||||
|
|
||||||
# 重新连接信号
|
# 重新连接信号
|
||||||
try:
|
# try:
|
||||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
# self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
logging.warning(f"重新连接cellChanged信号失败: {str(e)}")
|
# logging.warning(f"重新连接cellChanged信号失败: {str(e)}")
|
||||||
|
|
||||||
logging.info(f"成功设置{data_type}值 {formatted_value} 到工程号 {order_id} 的行 {data_row}")
|
logging.info(f"成功设置{data_type}值 {formatted_value} 到工程号 {order_id} 的行 {data_row}")
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,10 @@ class ReportDialog(ReportDialogUI):
|
|||||||
self.material_edit.clear()
|
self.material_edit.clear()
|
||||||
self.spec_edit.clear()
|
self.spec_edit.clear()
|
||||||
|
|
||||||
|
# 清空表格和汇总信息
|
||||||
|
self.report_table.setRowCount(0)
|
||||||
|
self.update_summary([])
|
||||||
|
|
||||||
def on_query(self):
|
def on_query(self):
|
||||||
"""查询按钮点击处理"""
|
"""查询按钮点击处理"""
|
||||||
try:
|
try:
|
||||||
@ -87,6 +91,8 @@ class ReportDialog(ReportDialogUI):
|
|||||||
self.report_table.setRowCount(0)
|
self.report_table.setRowCount(0)
|
||||||
|
|
||||||
if not data:
|
if not data:
|
||||||
|
# 如果没有数据,清空汇总信息
|
||||||
|
self.update_summary([])
|
||||||
return
|
return
|
||||||
|
|
||||||
# 添加数据行
|
# 添加数据行
|
||||||
@ -100,6 +106,36 @@ class ReportDialog(ReportDialogUI):
|
|||||||
item = QTableWidgetItem(str(value))
|
item = QTableWidgetItem(str(value))
|
||||||
item.setTextAlignment(Qt.AlignCenter)
|
item.setTextAlignment(Qt.AlignCenter)
|
||||||
self.report_table.setItem(row_idx, col_idx, item)
|
self.report_table.setItem(row_idx, col_idx, item)
|
||||||
|
|
||||||
|
# 更新汇总信息
|
||||||
|
self.update_summary(data)
|
||||||
|
|
||||||
|
def update_summary(self, data):
|
||||||
|
"""更新汇总信息
|
||||||
|
|
||||||
|
Args:
|
||||||
|
data: 包含报表数据的列表
|
||||||
|
"""
|
||||||
|
if not data:
|
||||||
|
# 重置汇总信息
|
||||||
|
self.total_axes_value.setText("0")
|
||||||
|
self.total_weight_value.setText("0.00 kg")
|
||||||
|
self.record_count_value.setText("0")
|
||||||
|
return
|
||||||
|
|
||||||
|
# 计算总轴数
|
||||||
|
total_axes = sum(row.get("轴数", 0) for row in data)
|
||||||
|
|
||||||
|
# 计算总净重
|
||||||
|
total_weight = sum(float(row.get("净重", 0)) for row in data)
|
||||||
|
|
||||||
|
# 计算记录数
|
||||||
|
record_count = len(data)
|
||||||
|
|
||||||
|
# 更新显示
|
||||||
|
self.total_axes_value.setText(str(total_axes))
|
||||||
|
self.total_weight_value.setText(f"{total_weight:.2f} kg")
|
||||||
|
self.record_count_value.setText(str(record_count))
|
||||||
|
|
||||||
def on_export(self):
|
def on_export(self):
|
||||||
"""导出按钮点击处理"""
|
"""导出按钮点击处理"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user