feat: 添加托盘档案保存功能,支持包装号和层数的记录与更新,优化加载对话框的交互逻辑
This commit is contained in:
parent
f5c813e7a4
commit
5f127c6c4f
@ -444,4 +444,58 @@ class PalletTypeDAO:
|
|||||||
return pallet_types
|
return pallet_types
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"获取托盘类型失败: {str(e)}")
|
logging.error(f"获取托盘类型失败: {str(e)}")
|
||||||
return {}
|
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
|
import logging
|
||||||
from dao.pallet_type_dao import PalletTypeDAO
|
from dao.pallet_type_dao import PalletTypeDAO
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
class PalletTypeManager:
|
class PalletTypeManager:
|
||||||
"""托盘类型管理器,用于管理托盘类型配置"""
|
"""托盘类型管理器,用于管理托盘类型配置"""
|
||||||
@ -15,11 +16,12 @@ class PalletTypeManager:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""初始化托盘类型管理器"""
|
"""初始化托盘类型管理器"""
|
||||||
|
if PalletTypeManager._instance:
|
||||||
|
raise Exception("PalletTypeManager is a singleton class.")
|
||||||
|
PalletTypeManager._instance = self
|
||||||
self.dao = PalletTypeDAO()
|
self.dao = PalletTypeDAO()
|
||||||
self.pallet_types = []
|
self.pallet_types = []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_pallet_types_by_operation(self, operation_type, include_disabled=False):
|
def get_pallet_types_by_operation(self, operation_type, include_disabled=False):
|
||||||
"""根据操作类型获取托盘类型
|
"""根据操作类型获取托盘类型
|
||||||
|
|
||||||
@ -232,4 +234,18 @@ class PalletTypeManager:
|
|||||||
if result:
|
if result:
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
return None
|
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)
|
||||||
@ -154,6 +154,33 @@ class LoadingDialog(LoadingDialogUI):
|
|||||||
if not tier_value:
|
if not tier_value:
|
||||||
QMessageBox.warning(self, "提示", "请输入托盘层数")
|
QMessageBox.warning(self, "提示", "请输入托盘层数")
|
||||||
return
|
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
|
from widgets.main_window import MainWindow
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user