feat: 添加托盘档案保存功能,支持包装号和层数的记录与更新,优化加载对话框的交互逻辑
This commit is contained in:
parent
f5c813e7a4
commit
5f127c6c4f
@ -445,3 +445,57 @@ class PalletTypeDAO:
|
||||
except Exception as e:
|
||||
logging.error(f"获取托盘类型失败: {str(e)}")
|
||||
return {}
|
||||
|
||||
def save_pallet_archives(self, pallet_code, tier, user_id, user_name):
|
||||
"""保存托盘档案
|
||||
|
||||
Args:
|
||||
pallet_code: 包装号
|
||||
tier: 托盘料层数
|
||||
user_id: 用户ID
|
||||
user_name: 用户名(已废弃,保留参数兼容性)
|
||||
|
||||
Returns:
|
||||
bool: 是否保存成功
|
||||
"""
|
||||
try:
|
||||
current_time = datetime.now()
|
||||
|
||||
# 检查是否已存在相同的包装号记录
|
||||
sql = """
|
||||
SELECT id FROM wsbz_pallet_archives
|
||||
WHERE pallet_code = ? AND is_deleted = FALSE
|
||||
"""
|
||||
self.db.cursor.execute(sql, (pallet_code,))
|
||||
existing_record = self.db.cursor.fetchone()
|
||||
|
||||
if existing_record:
|
||||
# 更新现有记录
|
||||
update_sql = """
|
||||
UPDATE wsbz_pallet_archives
|
||||
SET tier = ?,
|
||||
update_time = ?,
|
||||
update_by = ?
|
||||
WHERE id = ?
|
||||
"""
|
||||
params = (tier, current_time, user_id, existing_record[0])
|
||||
self.db.execute_update(update_sql, params)
|
||||
logging.info(f"更新托盘档案记录:包装号={pallet_code}, 层数={tier}")
|
||||
else:
|
||||
# 插入新记录
|
||||
insert_sql = """
|
||||
INSERT INTO wsbz_pallet_archives (
|
||||
pallet_code, tier, create_time, create_by,
|
||||
update_time, update_by, enabled, is_deleted
|
||||
) VALUES (?, ?, ?, ?, ?, ?, TRUE, FALSE)
|
||||
"""
|
||||
params = (pallet_code, tier, current_time, user_id,
|
||||
current_time, user_id)
|
||||
self.db.execute_update(insert_sql, params)
|
||||
logging.info(f"创建新托盘档案记录:包装号={pallet_code}, 层数={tier}")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"保存托盘档案失败: {str(e)}")
|
||||
return False
|
||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -1,5 +1,6 @@
|
||||
import logging
|
||||
from dao.pallet_type_dao import PalletTypeDAO
|
||||
from datetime import datetime
|
||||
|
||||
class PalletTypeManager:
|
||||
"""托盘类型管理器,用于管理托盘类型配置"""
|
||||
@ -15,11 +16,12 @@ class PalletTypeManager:
|
||||
|
||||
def __init__(self):
|
||||
"""初始化托盘类型管理器"""
|
||||
if PalletTypeManager._instance:
|
||||
raise Exception("PalletTypeManager is a singleton class.")
|
||||
PalletTypeManager._instance = self
|
||||
self.dao = PalletTypeDAO()
|
||||
self.pallet_types = []
|
||||
|
||||
|
||||
|
||||
def get_pallet_types_by_operation(self, operation_type, include_disabled=False):
|
||||
"""根据操作类型获取托盘类型
|
||||
|
||||
@ -233,3 +235,17 @@ class PalletTypeManager:
|
||||
return result
|
||||
else:
|
||||
return None
|
||||
|
||||
def save_pallet_archives(self, pallet_code, tier, user_id, user_name):
|
||||
"""保存托盘档案
|
||||
|
||||
Args:
|
||||
pallet_code: 包装号
|
||||
tier: 托盘料层数
|
||||
user_id: 用户ID
|
||||
user_name: 用户名
|
||||
|
||||
Returns:
|
||||
bool: 是否保存成功
|
||||
"""
|
||||
return self.dao.save_pallet_archives(pallet_code, tier, user_id, user_name)
|
||||
@ -155,6 +155,33 @@ class LoadingDialog(LoadingDialogUI):
|
||||
QMessageBox.warning(self, "提示", "请输入托盘层数")
|
||||
return
|
||||
|
||||
# 获取包装号
|
||||
pallet_code = self.tray_input.text().strip()
|
||||
if not pallet_code:
|
||||
QMessageBox.warning(self, "提示", "请输入包装号")
|
||||
return
|
||||
|
||||
try:
|
||||
# 保存托盘档案信息
|
||||
from utils.pallet_type_manager import PalletTypeManager
|
||||
pallet_manager = PalletTypeManager.get_instance()
|
||||
success = pallet_manager.save_pallet_archives(
|
||||
pallet_code=pallet_code,
|
||||
tier=int(tier_value),
|
||||
user_id=self.user_id,
|
||||
user_name=self.user_name
|
||||
)
|
||||
|
||||
if not success:
|
||||
QMessageBox.warning(self, "提示", "保存托盘档案失败")
|
||||
return
|
||||
|
||||
logging.info(f"已保存托盘档案:包装号={pallet_code}, 层数={tier_value}")
|
||||
except Exception as e:
|
||||
logging.error(f"保存托盘档案时发生错误: {str(e)}")
|
||||
QMessageBox.warning(self, "错误", f"保存托盘档案失败: {str(e)}")
|
||||
return
|
||||
|
||||
# 确保主窗口启动了监听
|
||||
from widgets.main_window import MainWindow
|
||||
main_window = self.parent
|
||||
|
||||
Loading…
Reference in New Issue
Block a user