feat: 新增获取订单包装统计数据接口,优化主窗口统计数据更新逻辑及字段名称
This commit is contained in:
parent
2e5a31e904
commit
d40083b096
@ -355,4 +355,51 @@ class GcApi:
|
|||||||
return response
|
return response
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"通过托盘号获取订单信息失败: {str(e)}")
|
logging.error(f"通过托盘号获取订单信息失败: {str(e)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_package_statistics(self, order_id, corp_id):
|
||||||
|
"""
|
||||||
|
获取订单包装统计数据
|
||||||
|
|
||||||
|
Args:
|
||||||
|
order_id: 订单号
|
||||||
|
corp_id: 公司ID
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: 包含总包装轴数和已包装数量的字典
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# API 配置中的键名
|
||||||
|
api_key = "get_package_statistics"
|
||||||
|
|
||||||
|
# 构建GET请求参数
|
||||||
|
params = {
|
||||||
|
"orderId": order_id,
|
||||||
|
"data_corp": corp_id
|
||||||
|
}
|
||||||
|
|
||||||
|
# 发送GET请求
|
||||||
|
response = self.api_utils.get(api_key, params=params)
|
||||||
|
|
||||||
|
# 检查响应状态
|
||||||
|
if response.get("status", False):
|
||||||
|
return {
|
||||||
|
"status": True,
|
||||||
|
"data": response.get("data", {}),
|
||||||
|
"message": "获取包装统计数据成功"
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
logging.warning(f"获取包装统计数据失败: {response.get('message', '未知错误')}")
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"data": {},
|
||||||
|
"message": response.get("message", "获取包装统计数据失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"获取包装统计数据失败: {str(e)}")
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"data": {},
|
||||||
|
"message": f"获取包装统计数据失败: {str(e)}"
|
||||||
|
}
|
||||||
@ -20,7 +20,8 @@
|
|||||||
"ismt_option": "/jsjt/xcsc/tprk/ismtOptioTonWsbz.do",
|
"ismt_option": "/jsjt/xcsc/tprk/ismtOptioTonWsbz.do",
|
||||||
"get_params": "/select/getcombcodeWsbz.do",
|
"get_params": "/select/getcombcodeWsbz.do",
|
||||||
"get_luno": "/common/luno/getLunoListWsbz.do",
|
"get_luno": "/common/luno/getLunoListWsbz.do",
|
||||||
"get_order_info_by_xpack": "/jsjt/xcsc/tprk/getXsddBzrkGridListByXpackToWsbz.do"
|
"get_order_info_by_xpack": "/jsjt/xcsc/tprk/getXsddBzrkGridListByXpackToWsbz.do",
|
||||||
|
"get_package_statistics": "/jsjt/xcsc/tprk/getBzNumWszb.do"
|
||||||
},
|
},
|
||||||
"database": {
|
"database": {
|
||||||
"default": "sqlite",
|
"default": "sqlite",
|
||||||
@ -120,7 +121,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electricity": {
|
"electricity": {
|
||||||
"auto_start": false,
|
"auto_start": true,
|
||||||
"interval_minutes": 30
|
"interval_minutes": 30
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -229,22 +229,22 @@ class MainWindowUI(QMainWindow):
|
|||||||
# 设置列宽均等
|
# 设置列宽均等
|
||||||
self.task_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
self.task_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||||
|
|
||||||
# 第一行:订单量和完成量 (一级标题)
|
# 第一行:总完成和已完成 (一级标题)
|
||||||
self.task_table.setSpan(0, 0, 1, 2) # 订单量跨2列
|
self.task_table.setSpan(0, 0, 1, 2) # 总完成跨2列
|
||||||
self.task_table.setSpan(0, 2, 1, 2) # 完成量跨2列
|
self.task_table.setSpan(0, 2, 1, 2) # 已完成跨2列
|
||||||
|
|
||||||
order_item = QTableWidgetItem("订单量")
|
order_item = QTableWidgetItem("订单完成")
|
||||||
order_item.setTextAlignment(Qt.AlignCenter)
|
order_item.setTextAlignment(Qt.AlignCenter)
|
||||||
order_item.setFont(self.normal_font)
|
order_item.setFont(self.normal_font)
|
||||||
self.task_table.setItem(0, 0, order_item)
|
self.task_table.setItem(0, 0, order_item)
|
||||||
|
|
||||||
completed_item = QTableWidgetItem("完成量")
|
completed_item = QTableWidgetItem("托盘完成")
|
||||||
completed_item.setTextAlignment(Qt.AlignCenter)
|
completed_item.setTextAlignment(Qt.AlignCenter)
|
||||||
completed_item.setFont(self.normal_font)
|
completed_item.setFont(self.normal_font)
|
||||||
self.task_table.setItem(0, 2, completed_item)
|
self.task_table.setItem(0, 2, completed_item)
|
||||||
|
|
||||||
# 第二行:二级标题
|
# 第二行:二级标题
|
||||||
headers = ["总生产数量", "总生产公斤", "已完成数量", "已完成公斤"]
|
headers = ["订单完成轴数", "订单完成数量", "托盘完成轴数", "托盘完成数量"]
|
||||||
for col, header in enumerate(headers):
|
for col, header in enumerate(headers):
|
||||||
item = QTableWidgetItem(header)
|
item = QTableWidgetItem(header)
|
||||||
item.setTextAlignment(Qt.AlignCenter)
|
item.setTextAlignment(Qt.AlignCenter)
|
||||||
|
|||||||
@ -1803,32 +1803,72 @@ class MainWindow(MainWindowUI):
|
|||||||
def update_package_statistics(self):
|
def update_package_statistics(self):
|
||||||
"""更新包装记录统计数据"""
|
"""更新包装记录统计数据"""
|
||||||
try:
|
try:
|
||||||
# 使用DAO获取包装记录统计数据
|
# 获取本地数据库统计数据(用于已完成数量和已完成公斤)
|
||||||
from dao.inspection_dao import InspectionDAO
|
from dao.inspection_dao import InspectionDAO
|
||||||
inspection_dao = InspectionDAO()
|
inspection_dao = InspectionDAO()
|
||||||
stats = inspection_dao.get_package_statistics(self._current_order_code)
|
local_stats = inspection_dao.get_package_statistics(self._current_order_code)
|
||||||
|
|
||||||
# 更新任务表格中的总生产数量(总数量)
|
# 初始化API统计数据(用于总完成轴数和总完成数量)
|
||||||
total_count_item = QTableWidgetItem(str(stats['count_all']))
|
api_stats = {
|
||||||
|
'count_all': 0, # 总轴数默认值
|
||||||
|
'weight_all': 0 # 总包装数量默认值
|
||||||
|
}
|
||||||
|
|
||||||
|
# 检查是否开启API模式,获取总完成轴数和总完成数量
|
||||||
|
if AppMode.is_api() and self._current_order_code:
|
||||||
|
# 使用API获取包装统计数据
|
||||||
|
from apis.gc_api import GcApi
|
||||||
|
gc_api = GcApi()
|
||||||
|
response = gc_api.get_package_statistics(self._current_order_code, self.corp_id)
|
||||||
|
|
||||||
|
if response.get("status", True):
|
||||||
|
stats_data = response.get("data", {})
|
||||||
|
api_stats = {
|
||||||
|
'count_all': stats_data.get("zzs", 0), # 总轴数
|
||||||
|
'weight_all': float(stats_data.get("ybzsl", 0)) # 总包装数量
|
||||||
|
}
|
||||||
|
logging.info(f"从API获取总完成统计数据成功: {api_stats}")
|
||||||
|
else:
|
||||||
|
# API调用失败,仍使用本地数据库的count_all和weight_all
|
||||||
|
logging.warning(f"从API获取总完成统计数据失败: {response.get('message', '未知错误')}")
|
||||||
|
api_stats = {
|
||||||
|
'count_all': 0,
|
||||||
|
'weight_all': 0
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
# 非API模式,使用本地数据库的count_all和weight_all
|
||||||
|
api_stats = {
|
||||||
|
'count_all': local_stats['count_all'],
|
||||||
|
'weight_all': local_stats['weight_all']
|
||||||
|
}
|
||||||
|
|
||||||
|
# 更新任务表格中的总完成轴数(第一列)
|
||||||
|
total_count_item = QTableWidgetItem(str(api_stats['count_all']))
|
||||||
total_count_item.setTextAlignment(Qt.AlignCenter)
|
total_count_item.setTextAlignment(Qt.AlignCenter)
|
||||||
self.task_table.setItem(2, 0, total_count_item)
|
self.task_table.setItem(2, 0, total_count_item)
|
||||||
|
|
||||||
# 更新任务表格中的总生产公斤(总重量)
|
# 更新任务表格中的总完成数量(第二列)
|
||||||
total_kg_item = QTableWidgetItem(f"{stats['weight_all']:.2f}")
|
total_kg_item = QTableWidgetItem(f"{api_stats['weight_all']:.2f}")
|
||||||
total_kg_item.setTextAlignment(Qt.AlignCenter)
|
total_kg_item.setTextAlignment(Qt.AlignCenter)
|
||||||
self.task_table.setItem(2, 1, total_kg_item)
|
self.task_table.setItem(2, 1, total_kg_item)
|
||||||
|
|
||||||
# 更新任务表格中的已完成数量(当前订单数量)
|
# 更新任务表格中的已完成数量(第三列)- 使用本地统计
|
||||||
completed_item = QTableWidgetItem(str(stats['count']))
|
completed_item = QTableWidgetItem(str(local_stats['count']))
|
||||||
completed_item.setTextAlignment(Qt.AlignCenter)
|
completed_item.setTextAlignment(Qt.AlignCenter)
|
||||||
self.task_table.setItem(2, 2, completed_item)
|
self.task_table.setItem(2, 2, completed_item)
|
||||||
|
|
||||||
# 更新任务表格中的已完成公斤(当前订单重量)
|
# 更新任务表格中的已完成公斤(第四列)- 使用本地统计
|
||||||
completed_kg_item = QTableWidgetItem(f"{stats['weight']:.2f}")
|
completed_kg_item = QTableWidgetItem(f"{local_stats['weight']:.2f}")
|
||||||
completed_kg_item.setTextAlignment(Qt.AlignCenter)
|
completed_kg_item.setTextAlignment(Qt.AlignCenter)
|
||||||
self.task_table.setItem(2, 3, completed_kg_item)
|
self.task_table.setItem(2, 3, completed_kg_item)
|
||||||
|
|
||||||
logging.info(f"已更新包装记录统计数据: 总生产数量={stats['count_all']}, 总生产公斤={stats['weight_all']:.2f}, 已完成数量={stats['count']}, 已完成公斤={stats['weight']:.2f}")
|
# 更新表头显示(确保表头显示正确)
|
||||||
|
self.task_table.horizontalHeaderItem(0).setText("订单完成轴数")
|
||||||
|
self.task_table.horizontalHeaderItem(1).setText("订单完成数量")
|
||||||
|
self.task_table.horizontalHeaderItem(2).setText("托盘完成轴数")
|
||||||
|
self.task_table.horizontalHeaderItem(3).setText("托盘完成数量")
|
||||||
|
|
||||||
|
logging.info(f"已更新包装记录统计数据: 总完成轴数={api_stats['count_all']}, 总完成数量={api_stats['weight_all']:.2f}, 已完成数量={local_stats['count']}, 已完成公斤={local_stats['weight']:.2f}")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"更新包装记录统计数据失败: {str(e)}")
|
logging.error(f"更新包装记录统计数据失败: {str(e)}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user