feat: 更新InspectionDAO以支持更多字段,重构主窗口UI以使用统一字段映射,优化信息表格更新逻辑

This commit is contained in:
zhu-mengmeng 2025-07-15 16:40:31 +08:00
parent f1540ec0c3
commit 94f8ae054c
5 changed files with 38 additions and 60 deletions

View File

@ -116,6 +116,7 @@
}
},
"electricity": {
"auto_start": true
"auto_start": true,
"interval_minutes": 30
}
}

View File

@ -763,8 +763,8 @@ class InspectionDAO:
"""
try:
sql = """
SELECT distinct data_corp,user_id,user_name,gzl_zl,mzl,ddmo,qd,spack_type,mxzs,jt,ddnote,code,
type,lable,lib,gzl,maxsl,cz,size,cd,luno,qfqd,pono,xj,ysl,dycz,edit_id,remarks,zx_name
SELECT DISTINCT data_corp, user_id, user_name, gzl_zl, mzl, ddmo, xpack, qd, spack_type, mxzs, jt, ddnote, code, type, lable, lib, gzl, maxsl, cz, size, cd, luno,
qfqd, pono, xj, ysl, dycz, zx_code, edit_id, remarks, zx_name, bccd, tccd, zzyq, customer, customerexp, bz_bqd as bqd, bz_tqd as tqd, type_name, remarks_hb
FROM wsbz_order_info WHERE ddmo = ?
"""
params = (order_id,)

Binary file not shown.

View File

@ -7,6 +7,27 @@ from PySide6.QtGui import QFont, QAction, QBrush, QColor
from PySide6.QtCore import Qt, QDateTime, QTimer
class MainWindowUI(QMainWindow):
# 定义字段映射为类属性,方便外部引用
FIELD_MAPPING = {
"客户": "customerexp",
"规格": "size",
"材质": "cz",
"种类": "type_name",
"钢厂": "cd",
"炉号": "luno",
"轴型": "zx_name",
"标签": "template_name",
"打印材质": "cz",
"底托类型": "spack_type",
"强度范围": "qx",
"强度": "qd",
"延伸要求": "ysl",
"线材类型": "jz",
"轴重要求": "zzyq",
"线径公差": "xj",
"备注": "remarks_hb"
}
def __init__(self,username):
super().__init__()
self.username = username
@ -282,25 +303,7 @@ class MainWindowUI(QMainWindow):
""")
# 定义字段和对应的数据键
field_mapping = {
"客户": "customerexp",
"规格": "size",
"材质": "cz",
"种类": "type_name",
"钢厂": "cd",
"炉号": "luno",
"轴型": "zx_name",
"标签": "lable",
"打印材质": "cz",
"底托类型": "spack_type",
"强度范围": "qx",
"强度": "qd",
"延伸要求": "ysl",
"线材类型": "jz",
"轴重要求": "zq",
"线径公差": "xj",
"备注": "remarks_hb"
}
field_mapping = self.FIELD_MAPPING
# 创建标签和值的字典,用于后续更新
self.info_labels = {}

View File

@ -3317,31 +3317,17 @@ class MainWindow(MainWindowUI):
logging.info(f"更新上料区域信息表格: {order_info}")
# 获取表格中的映射关系
field_mapping = {
"客户": "customerexp",
"规格": "size",
"材质": "cz",
"种类": "type_name",
"钢厂": "cd",
"炉号": "luno",
"轴型": "zx_name",
"标签": "template_name",
"打印材质": "cz",
"底托类型": "spack_type",
"强度范围": "qx",
"强度": "qd",
"延伸要求": "ysl",
"检验员": "jz",
"轴重要求": "zzyq",
"线径公差": "xj",
"备注": "remarks_hb"
}
# 使用UI类中定义的字段映射关系
field_mapping = self.FIELD_MAPPING
# 记录 order_info 中的所有键,用于调试
logging.debug(f"订单信息键: {list(order_info.keys())}")
# 更新表格内容
for field_name, field_key in field_mapping.items():
if field_name in self.info_values:
value = ""
# 对可能存在的键进行安全检查
if field_key and field_key in order_info:
value = str(order_info[field_key])
# 特殊处理线径公差
@ -3356,25 +3342,13 @@ class MainWindow(MainWindowUI):
if bqd is not None and tqd is not None:
value = f"{bqd} - {tqd}"
self.info_values[field_name].setText(value)
else:
logging.warning(f"字段名 '{field_name}' 在info_values中不存在")
logging.info("上料区域信息表格更新完成")
# 为了演示如果没有真实数据填充一些mock数据
if not any(order_info.values()):
mock_data = {
"customerexp": "示例客户",
"size": "1.2mm",
"cz": "不锈钢",
"type_name": "A型",
"cd": "上海钢厂",
"luno": "LN20230501",
"zx_name": "标准轴",
"lable": "标签A",
"spack_type": "标准底托",
"bccd": "0.7",
"tccd": "0.9"
}
self.update_info_table(mock_data)
except Exception as e:
logging.error(f"更新上料区域信息表格失败: {str(e)}")
logging.error(f"更新上料区域信息表格失败: {str(e)}")
# 记录异常堆栈,便于调试
import traceback
logging.error(traceback.format_exc())