feat:新增自定义轴号操作

This commit is contained in:
zhu-mengmeng 2025-07-20 14:17:56 +08:00
parent dc92fb6eab
commit f4b11085aa
3 changed files with 45 additions and 4 deletions

Binary file not shown.

View File

@ -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])

View File

@ -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: