feat: 完成下料托盘api 接口功能
This commit is contained in:
parent
370bf03d13
commit
c0ebb288c3
@ -340,7 +340,8 @@ class PalletTypeDAO:
|
||||
try:
|
||||
# 先查询是否存在该托盘号
|
||||
check_sql = "SELECT pallet_code FROM wsbz_pallet_archives WHERE pallet_code = ? AND is_deleted = ?"
|
||||
result = self.db.execute_query(check_sql, (pallet_code, False))
|
||||
self.db.execute_query(check_sql, (pallet_code, False))
|
||||
result = self.db.cursor.fetchone() # 使用 cursor.fetchone() 获取结果
|
||||
|
||||
current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
@ -354,8 +355,8 @@ class PalletTypeDAO:
|
||||
WHERE pallet_code = ? AND is_deleted = ?
|
||||
"""
|
||||
params = (
|
||||
pallet_info.get("cs", ""),
|
||||
pallet_info.get("cc", ""),
|
||||
pallet_info.get("tier", ""),
|
||||
pallet_info.get("size", ""),
|
||||
current_time,
|
||||
user_id,
|
||||
pallet_code,
|
||||
@ -371,8 +372,8 @@ class PalletTypeDAO:
|
||||
"""
|
||||
params = (
|
||||
pallet_code,
|
||||
pallet_info.get("cs", ""),
|
||||
pallet_info.get("cc", ""),
|
||||
pallet_info.get("tier", ""),
|
||||
pallet_info.get("size", ""),
|
||||
current_time,
|
||||
user_id,
|
||||
False
|
||||
@ -414,8 +415,10 @@ class PalletTypeDAO:
|
||||
for key in result:
|
||||
if result[key] is None:
|
||||
result[key] = ""
|
||||
logging.info(f"获取到托盘信息: {result}") # 添加日志
|
||||
return result
|
||||
else:
|
||||
logging.warning(f"未找到托盘信息: {pallet_code}") # 添加日志
|
||||
return None
|
||||
except Exception as e:
|
||||
logging.error(f"获取托盘信息失败: {str(e)}")
|
||||
|
||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -117,10 +117,13 @@ class UnloadingDialogUI(QDialog):
|
||||
split_layout.addWidget(right_split, 1)
|
||||
container_layout.addLayout(split_layout)
|
||||
|
||||
# 第二行:托盘类型
|
||||
# 第二行:托盘类型和托盘层数
|
||||
row2 = QHBoxLayout()
|
||||
row2.setSpacing(0)
|
||||
|
||||
# 托盘类型部分
|
||||
pallet_type_layout = QHBoxLayout()
|
||||
pallet_type_layout.setSpacing(0)
|
||||
self.pallet_type_label = QLabel("托盘类型")
|
||||
self.pallet_type_label.setFont(self.normal_font)
|
||||
self.pallet_type_label.setStyleSheet(label_style)
|
||||
@ -137,9 +140,43 @@ class UnloadingDialogUI(QDialog):
|
||||
self.pallet_type_input.completer().setCaseSensitivity(Qt.CaseInsensitive) # 设置补全不区分大小写
|
||||
self.pallet_type_input.completer().setFilterMode(Qt.MatchContains) # 设置模糊匹配模式
|
||||
|
||||
row2.addWidget(self.pallet_type_label)
|
||||
row2.addWidget(self.pallet_type_input, 1)
|
||||
pallet_type_layout.addWidget(self.pallet_type_label)
|
||||
pallet_type_layout.addWidget(self.pallet_type_input, 1)
|
||||
|
||||
# 托盘层数部分
|
||||
tier_layout = QHBoxLayout()
|
||||
tier_layout.setSpacing(0)
|
||||
self.tier_label = QLabel("托盘层数")
|
||||
self.tier_label.setFont(self.normal_font)
|
||||
self.tier_label.setStyleSheet(label_style)
|
||||
self.tier_label.setFixedWidth(100)
|
||||
self.tier_label.setFixedHeight(45)
|
||||
|
||||
self.tier_input = QLineEdit()
|
||||
self.tier_input.setFont(self.normal_font)
|
||||
self.tier_input.setStyleSheet("""
|
||||
QLineEdit {
|
||||
border: none;
|
||||
border-right: 1px solid #e0e0e0;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
background-color: white;
|
||||
selection-background-color: #0078d4;
|
||||
padding: 0 8px;
|
||||
}
|
||||
QLineEdit:focus {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
""")
|
||||
self.tier_input.setFixedHeight(45)
|
||||
self.tier_input.setPlaceholderText("请输入层数")
|
||||
|
||||
tier_layout.addWidget(self.tier_label)
|
||||
tier_layout.addWidget(self.tier_input, 1)
|
||||
|
||||
row2.addLayout(pallet_type_layout, 1)
|
||||
row2.addLayout(tier_layout, 1)
|
||||
container_layout.addLayout(row2)
|
||||
|
||||
# 添加水平分隔布局
|
||||
split_layout2 = QHBoxLayout()
|
||||
split_layout2.setSpacing(0)
|
||||
|
||||
@ -60,7 +60,10 @@ class UnloadingDialog(UnloadingDialogUI):
|
||||
|
||||
def get_current_tier(self):
|
||||
"""获取当前托盘的层数"""
|
||||
return self.current_tier if self.current_tier else None
|
||||
tier = self.tier_input.text().strip()
|
||||
if not tier:
|
||||
return self.current_tier if self.current_tier else "3"
|
||||
return tier
|
||||
|
||||
def setup_connections(self):
|
||||
"""设置事件连接"""
|
||||
@ -88,46 +91,71 @@ class UnloadingDialog(UnloadingDialogUI):
|
||||
"""查询托盘信息"""
|
||||
try:
|
||||
tray_code = self.tray_input.text().strip()
|
||||
tier = self.tier_input.text().strip() # 获取用户输入的层数
|
||||
pallet_type = self.pallet_type_input.currentText().strip()
|
||||
if not tray_code:
|
||||
return
|
||||
|
||||
logging.info(f"查询托盘号: {tray_code}")
|
||||
pallet_info = {}
|
||||
# 初始化托盘类型管理器
|
||||
pallet_type_manager = PalletTypeManager.get_instance()
|
||||
|
||||
if AppMode.is_api():
|
||||
self.tary_api = TaryApi()
|
||||
# 调用API获取托盘信息,并保存到本地
|
||||
# 调用API获取托盘信息
|
||||
response = self.tary_api.get_tary_info(tray_code)
|
||||
if response.get("success", False) and response.get("data"):
|
||||
tray_data = response.get("data", {})
|
||||
logging.info(f"托盘数据: {tray_data}")
|
||||
pallet_type_manager = PalletTypeManager.get_instance()
|
||||
pallet_type_manager.save_pallet_info(tray_code, tray_data,self.user_id)
|
||||
logging.info(f"API返回托盘数据: {tray_data}")
|
||||
# 如果用户输入了层数,使用用户输入的层数
|
||||
if tier:
|
||||
tray_data["tier"] = tier
|
||||
pallet_type_manager.save_pallet_info(tray_code, tray_data, self.user_id)
|
||||
else:
|
||||
# 不是接口,就查询数据库,如果查到了托盘号就回显,查不到就新增
|
||||
pallet_type_manager = PalletTypeManager.get_instance()
|
||||
pallet_info = pallet_type_manager.get_pallet_info_by_pallet_id(tray_code)
|
||||
if not pallet_info:
|
||||
# 获取页面上的数据,保存到数据库中
|
||||
# API查询失败,保存基本信息到数据库
|
||||
logging.info(f"API查询失败,保存基本信息到数据库")
|
||||
if not pallet_type or not tier:
|
||||
QMessageBox.warning(self, "提示", "请选择托盘类型和层数")
|
||||
return
|
||||
pallet_info = {
|
||||
"cc": pallet_type,
|
||||
"cs": "",
|
||||
"cs": tier # 使用用户输入的层数
|
||||
}
|
||||
pallet_type_manager.save_pallet_info(tray_code, pallet_info,self.user_id)
|
||||
pallet_type_manager.save_pallet_info(tray_code, pallet_info, self.user_id)
|
||||
else:
|
||||
# 查询数据库中的托盘信息
|
||||
pallet_info = pallet_type_manager.get_pallet_info_by_pallet_id(tray_code)
|
||||
if not pallet_info:
|
||||
# 数据库中没有记录,保存基本信息
|
||||
logging.info(f"数据库中未找到记录,保存基本信息")
|
||||
if not pallet_type or not tier:
|
||||
QMessageBox.warning(self, "提示", "请选择托盘类型和层数")
|
||||
return
|
||||
pallet_info = {
|
||||
"cc": pallet_type,
|
||||
"cs": tier # 使用用户输入的层数
|
||||
}
|
||||
pallet_type_manager.save_pallet_info(tray_code, pallet_info, self.user_id)
|
||||
|
||||
#回显数据到页面
|
||||
# 重新获取完整的托盘信息
|
||||
pallet_info = pallet_type_manager.get_pallet_detail(tray_code)
|
||||
|
||||
if pallet_info:
|
||||
logging.info(f"托盘数据: {pallet_info}")
|
||||
if not pallet_info:
|
||||
logging.warning(f"无法获取托盘详细信息: {tray_code}")
|
||||
pallet_info = {
|
||||
"zx_name": "--",
|
||||
"cz": "--",
|
||||
"weight": "0",
|
||||
"amount": "0",
|
||||
"tier": tier if tier else "4", # 使用用户输入的层数,如果没有则默认3层
|
||||
"pallet_name": pallet_type
|
||||
}
|
||||
|
||||
# 显示托盘相关信息
|
||||
axis_type = str(pallet_info.get("zx_name", "--"))
|
||||
material = str(pallet_info.get("cz", "--"))
|
||||
weight = str(pallet_info.get("weight", "--"))
|
||||
amount = str(pallet_info.get("amount", "--"))
|
||||
self.current_tier = pallet_info.get("tier") # 保存层数
|
||||
self.current_tier = pallet_info.get("cs", tier if tier else "4") # 优先使用数据库中的层数,其次是用户输入的层数,最后是默认值
|
||||
|
||||
logging.info(f"显示托盘信息: 轴型={axis_type}, 材质={material}, 重量={weight}, 层数={self.current_tier}")
|
||||
|
||||
@ -137,6 +165,7 @@ class UnloadingDialog(UnloadingDialogUI):
|
||||
self.material_tier_value.setText("") # 清空文本,让用户输入
|
||||
self.quantity_value.setText(amount)
|
||||
self.weight_value.setText(f"{weight} kg")
|
||||
self.tier_input.setText(str(self.current_tier)) # 设置层数输入框的值
|
||||
self.pallet_type_input.setCurrentText(pallet_info.get("pallet_name", "--"))
|
||||
|
||||
# 发送托盘号到主窗口
|
||||
@ -158,11 +187,7 @@ class UnloadingDialog(UnloadingDialogUI):
|
||||
# 设置当前选中的托盘号
|
||||
main_window.tray_edit.setCurrentText(tray_code)
|
||||
logging.info(f"设置主窗口当前托盘号: {tray_code}")
|
||||
else:
|
||||
# 获取托盘信息失败
|
||||
error_msg = response.get("message", "未找到托盘信息")
|
||||
logging.warning(f"查询失败: {error_msg}")
|
||||
QMessageBox.warning(self, "查询失败", error_msg)
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"查询托盘信息异常: {str(e)}")
|
||||
QMessageBox.critical(self, "查询异常", f"查询托盘信息时发生异常: {str(e)}")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user