完成净重计算
This commit is contained in:
parent
935fd44f78
commit
7b0d0a28f2
@ -403,6 +403,7 @@ class InspectionDAO:
|
||||
tray_id,
|
||||
COALESCE(axis_package_id, '') as axis_package_id,
|
||||
COALESCE(weight, 0) as weight,
|
||||
COALESCE(net_weight, 0) as net_weight,
|
||||
STRFTIME('%Y-%m-%d %H:%M:%S', pack_time) as pack_time
|
||||
FROM inspection_pack_data
|
||||
WHERE tray_id = ?
|
||||
@ -416,7 +417,7 @@ class InspectionDAO:
|
||||
except Exception as e:
|
||||
logging.error(f"获取包装记录失败: {str(e)}")
|
||||
return []
|
||||
def save_package_record(self, order_id, tray_id, label_value, weight_value, finish_time):
|
||||
def save_package_record(self, order_id, tray_id, label_value, weight_value,net_weight_value, finish_time):
|
||||
"""保存包装记录
|
||||
|
||||
Args:
|
||||
@ -429,10 +430,10 @@ class InspectionDAO:
|
||||
# TODO:调用接口,获取到工程号对应的其他信息,比如材质,规格,后续完成
|
||||
try:
|
||||
sql = """
|
||||
INSERT INTO inspection_pack_data (order_id, tray_id, axis_package_id, weight, pack_time, create_time, create_by, update_time, update_by, is_deleted)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
INSERT INTO inspection_pack_data (order_id, tray_id, axis_package_id, weight, net_weight, pack_time, create_time, create_by, update_time, update_by, is_deleted)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
"""
|
||||
params = (order_id, tray_id, label_value, weight_value, finish_time, datetime.now(), 'system', datetime.now(), 'system', False)
|
||||
params = (order_id, tray_id, label_value, weight_value, net_weight_value, finish_time, datetime.now(), 'system', datetime.now(), 'system', False)
|
||||
self.db.cursor.execute(sql, params)
|
||||
self.db.conn.commit()
|
||||
except Exception as e:
|
||||
|
||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -2,12 +2,12 @@ from pymodbus.client import ModbusTcpClient
|
||||
|
||||
client = ModbusTcpClient('localhost', port=5020)
|
||||
client.connect()
|
||||
client.write_registers(address=11, values=[112])
|
||||
# client.write_registers(address=11, values=[110])
|
||||
# client.write_registers(address=6, values=[1])
|
||||
# client.write_registers(address=5, values=[16])
|
||||
# client.write_registers(address=13, values=[1])
|
||||
client.write_registers(address=13, values=[1])
|
||||
|
||||
|
||||
result = client.read_holding_registers(address=4, count=1)
|
||||
result = client.read_holding_registers(address=13, count=1)
|
||||
print(result.registers[0],"123===")
|
||||
client.close()
|
||||
@ -501,13 +501,13 @@ class MainWindowUI(QMainWindow):
|
||||
self.record_layout.addWidget(self.record_title)
|
||||
|
||||
# 创建表格
|
||||
self.record_table = QTableWidget(14, 8) # 14行7列:序号、订单、品名、规格、托号、轴包装号、重量
|
||||
self.record_table = QTableWidget(14, 9) # 14行9列:序号、订单、品名、规格、托号、轴包装号、重量、净重、完成时间
|
||||
|
||||
# 应用通用表格设置
|
||||
self.setup_table_common(self.record_table)
|
||||
|
||||
# 设置列标题
|
||||
record_headers = ["序号", "订单", "品名", "规格", "托号", "轴包装号", "重量", "完成时间"]
|
||||
record_headers = ["序号", "订单", "品名", "规格", "托号", "轴包装号", "毛重", "净重", "完成时间"]
|
||||
for col, header in enumerate(record_headers):
|
||||
self.record_table.setItem(0, col, self.create_header_item(header))
|
||||
|
||||
@ -520,7 +520,7 @@ class MainWindowUI(QMainWindow):
|
||||
self.record_table.setRowHeight(row, 35)
|
||||
|
||||
# 设置列宽
|
||||
column_widths = [70, 220, 160, 160, 160, 160, 160, 190] # 各列的默认宽度
|
||||
column_widths = [70, 200, 130, 130, 160, 120, 120, 120, 160] # 各列的默认宽度
|
||||
for col, width in enumerate(column_widths):
|
||||
self.record_table.setColumnWidth(col, width)
|
||||
|
||||
@ -593,7 +593,7 @@ class MainWindowUI(QMainWindow):
|
||||
self.inspection_headers = self.inspection_headers[:columns]
|
||||
|
||||
# 计算总列数
|
||||
total_columns = 2 + self.inspection_columns + 2 # 上料2列 + 检验N列 + 包装2列
|
||||
total_columns = 2 + self.inspection_columns + 3 # 上料2列 + 检验N列 + 包装3列
|
||||
self.process_table.setColumnCount(total_columns)
|
||||
|
||||
# 重新设置列宽
|
||||
@ -614,9 +614,9 @@ class MainWindowUI(QMainWindow):
|
||||
self.process_table.setSpan(0, 2, 1, self.inspection_columns)
|
||||
self.process_table.setItem(0, 2, self.create_header_item("检验"))
|
||||
|
||||
# 包装区域(2列)
|
||||
# 包装区域(3列)
|
||||
packaging_start_col = 2 + self.inspection_columns
|
||||
self.process_table.setSpan(0, packaging_start_col, 1, 2)
|
||||
self.process_table.setSpan(0, packaging_start_col, 1, 3)
|
||||
self.process_table.setItem(0, packaging_start_col, self.create_header_item("包装"))
|
||||
|
||||
# 第二行:列标题
|
||||
@ -636,7 +636,7 @@ class MainWindowUI(QMainWindow):
|
||||
self.process_table.setItem(1, 2 + i, self.create_header_item(header_text))
|
||||
|
||||
# 包装区域列标题
|
||||
packaging_headers = ["贴标", "称重"]
|
||||
packaging_headers = ["贴标", "毛重", "净重"]
|
||||
for i, header in enumerate(packaging_headers):
|
||||
self.process_table.setItem(1, packaging_start_col + i, self.create_header_item(header))
|
||||
|
||||
@ -653,4 +653,5 @@ class MainWindowUI(QMainWindow):
|
||||
# 包装区域列宽
|
||||
packaging_start_col = 2 + self.inspection_columns
|
||||
self.process_table.setColumnWidth(packaging_start_col, 140) # 贴标
|
||||
self.process_table.setColumnWidth(packaging_start_col + 1, 140) # 称重
|
||||
self.process_table.setColumnWidth(packaging_start_col + 1, 140) # 毛重
|
||||
self.process_table.setColumnWidth(packaging_start_col + 2, 140) # 净重
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -753,7 +753,7 @@ class MainWindow(MainWindowUI):
|
||||
inspection_dao.save_inspection_data(order_id, data)
|
||||
|
||||
# 为贴标和称重也创建空记录
|
||||
for position in [11, 12]: # 11是贴标,12是称重
|
||||
for position in [11, 12, 13]: # 11是贴标,12是毛重,13是净重
|
||||
data = [{
|
||||
'position': position,
|
||||
'config_id': position,
|
||||
@ -878,13 +878,21 @@ class MainWindow(MainWindowUI):
|
||||
self.save_inspection_data(order_id, tray_id, 11, 11, value, status)
|
||||
|
||||
elif column == packaging_start_col + 1:
|
||||
# 称重列
|
||||
data_type = "称重"
|
||||
# 毛重列
|
||||
data_type = "毛重"
|
||||
self.statusBar().showMessage(f"正在保存称重数据: {value}", 1000)
|
||||
# 设置单元格颜色为通过
|
||||
cell_item.setBackground(QBrush(QColor("#c8e6c9"))) # 浅绿色
|
||||
# 保存称重数据,position和config_id都是12
|
||||
# 保存毛重数据,position和config_id都是12
|
||||
self.save_inspection_data(order_id, tray_id, 12, 12, value, status)
|
||||
elif column == packaging_start_col + 2:
|
||||
# 净重列
|
||||
data_type = "净重"
|
||||
self.statusBar().showMessage(f"正在保存净重数据: {value}", 1000)
|
||||
# 设置单元格颜色为通过
|
||||
cell_item.setBackground(QBrush(QColor("#c8e6c9"))) # 浅绿色
|
||||
# 保存净重数据,position和config_id都是13
|
||||
self.save_inspection_data(order_id, tray_id, 13, 13, value, status)
|
||||
|
||||
# 记录详细日志
|
||||
logging.info(f"处理单元格变更: 行={row}, 列={column}, 类型={data_type}, 工程号={order_id}, 值={value}, 状态={status}")
|
||||
@ -1090,6 +1098,10 @@ class MainWindow(MainWindowUI):
|
||||
# 称重列索引 = 2(序号和工程号) + 检验列数 + 1(贴标)
|
||||
weight_col = 2 + len(enabled_configs) + 1
|
||||
self.process_table.setItem(row_idx, weight_col, QTableWidgetItem(str(value)))
|
||||
elif position == 13: # 净重
|
||||
# 净重列索引 = 2(序号和工程号) + 检验列数 + 2(贴标和称重)
|
||||
net_weight_col = 2 + len(enabled_configs) + 2
|
||||
self.process_table.setItem(row_idx, net_weight_col, QTableWidgetItem(str(value)))
|
||||
row_idx += 1
|
||||
|
||||
# 设置表格为可编辑状态
|
||||
@ -1129,12 +1141,14 @@ class MainWindow(MainWindowUI):
|
||||
# 从检验数据中获取贴标和称重数据
|
||||
label_value = ""
|
||||
weight_value = ""
|
||||
|
||||
net_weight_value = ""
|
||||
for item in inspection_data:
|
||||
if item['position'] == 11: # 贴标
|
||||
label_value = item['value']
|
||||
elif item['position'] == 12: # 称重
|
||||
weight_value = item['value']
|
||||
elif item['position'] == 13: # 净重
|
||||
net_weight_value = item['value']
|
||||
|
||||
# 只要贴标字段有值,就可以写入包装记录
|
||||
if not label_value:
|
||||
@ -1152,7 +1166,7 @@ class MainWindow(MainWindowUI):
|
||||
finish_time = datetime.now()
|
||||
|
||||
# 将数据写入到数据库表 inspection_pack_data
|
||||
inspection_dao.save_package_record(order_id, tray_id, label_value, weight_value, finish_time)
|
||||
inspection_dao.save_package_record(order_id, tray_id, label_value, weight_value,net_weight_value, finish_time)
|
||||
|
||||
# 回显数据
|
||||
self.show_pack_item()
|
||||
@ -1223,10 +1237,15 @@ class MainWindow(MainWindowUI):
|
||||
weight_item.setTextAlignment(Qt.AlignCenter)
|
||||
self.record_table.setItem(row_index, 6, weight_item)
|
||||
|
||||
# 净重 - 第8列
|
||||
net_weight_item = QTableWidgetItem(str(item[6]))
|
||||
net_weight_item.setTextAlignment(Qt.AlignCenter)
|
||||
self.record_table.setItem(row_index, 7, net_weight_item)
|
||||
|
||||
# 包装时间
|
||||
pack_time = QTableWidgetItem(str(item[6]))
|
||||
weight_item.setTextAlignment(Qt.AlignCenter)
|
||||
self.record_table.setItem(row_index, 7, pack_time)
|
||||
pack_time = QTableWidgetItem(str(item[7]))
|
||||
pack_time.setTextAlignment(Qt.AlignCenter)
|
||||
self.record_table.setItem(row_index, 8, pack_time)
|
||||
# 更新包装记录统计数据
|
||||
self.update_package_statistics()
|
||||
def update_package_statistics(self):
|
||||
@ -1495,6 +1514,8 @@ class MainWindow(MainWindowUI):
|
||||
|
||||
# 计算称重列索引 - 称重位置在检验列之后的第二列(贴标后面)
|
||||
weight_col = 2 + len(enabled_configs) + 1
|
||||
# 计算净重列索引 - 净重位置在检验列之后的第三列(称重后面)
|
||||
net_weight_col = 2 + len(enabled_configs) + 2
|
||||
|
||||
# 获取当前选中的行或第一个数据行
|
||||
current_row = self.process_table.currentRow()
|
||||
@ -1531,6 +1552,15 @@ class MainWindow(MainWindowUI):
|
||||
tray_id = self.tray_edit.currentText()
|
||||
self.save_inspection_data(order_id, tray_id, 12, 12, str(weight), "pass")
|
||||
|
||||
# 保存净重到数据库(毛重-工字轮重量,TODO :先默认工字轮重量为10g后续从接口获取)
|
||||
net_weight = weight - 10
|
||||
self.save_inspection_data(order_id, tray_id, 13, 13, str(net_weight), "pass")
|
||||
|
||||
# 设置净重单元格
|
||||
net_weight_item = QTableWidgetItem(str(net_weight))
|
||||
net_weight_item.setTextAlignment(Qt.AlignCenter)
|
||||
self.process_table.setItem(data_row, net_weight_col, net_weight_item)
|
||||
|
||||
# 重新连接信号
|
||||
self.process_table.cellChanged.connect(self.handle_inspection_cell_changed)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user