diff --git a/apis/gc_api.py b/apis/gc_api.py index 10dfac2..266ad33 100644 --- a/apis/gc_api.py +++ b/apis/gc_api.py @@ -331,4 +331,28 @@ class GcApi: except Exception as e: logging.error(f"获取炉号列表失败: {str(e)}") - return {"status": False, "message": f"获取炉号列表失败: {str(e)}"} \ No newline at end of file + return {"status": False, "message": f"获取炉号列表失败: {str(e)}"} + + def get_order_info_by_xpack(self, xpack, corp_id): + """ + 通过托盘号获取订单信息 + """ + try: + # API 配置中的键名 + api_key = "get_order_info_by_xpack" + order_dict = { + "xpack": xpack, + "data_corp": corp_id + } + data = { + "parms": json.dumps(order_dict), + "pageIndex": 0, + "pageSize": 10, + "sortField": "", + "sortOrder": "" + } + response = self.api_utils.post(api_key, data=data) + return response + except Exception as e: + logging.error(f"通过托盘号获取订单信息失败: {str(e)}") + return None \ No newline at end of file diff --git a/config/app_config.json b/config/app_config.json index 963bb67..66d41c5 100644 --- a/config/app_config.json +++ b/config/app_config.json @@ -19,7 +19,8 @@ "get_xpack": "/jsjt/xcsc/tprk/getXpackToWsbz.do", "ismt_option": "/jsjt/xcsc/tprk/ismtOptioTonWsbz.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" }, "database": { "default": "sqlite", diff --git a/db/jtDB.db b/db/jtDB.db index 9691259..21aa07e 100644 Binary files a/db/jtDB.db and b/db/jtDB.db differ diff --git a/widgets/loading_dialog_widget.py b/widgets/loading_dialog_widget.py index 867416d..f6f0840 100644 --- a/widgets/loading_dialog_widget.py +++ b/widgets/loading_dialog_widget.py @@ -234,14 +234,35 @@ class LoadingDialog(LoadingDialogUI): logging.error(f"查询订单信息失败: {e}") QMessageBox.critical(self, "错误", f"查询订单信息失败: {str(e)}") + def on_xpack_query(self, tray_id): + """通过托盘号查询订单信息,并回显到页面(完全仿照on_order_query)""" + try: + query_params = { + "xpack": tray_id, + "corp_id": self.corp_id + } + dialog = OrderQueryDialog(self) + results = dialog.query_orders_xpack(query_params) + if results: + if len(results) == 1: + self.on_order_selected(results[0]) + return + else: + dialog.update_result_table(results) + dialog.order_selected.connect(self.on_order_selected) + dialog.exec() + return + QMessageBox.warning(self, "提示", "未找到该托盘号对应的订单信息") + except Exception as e: + logging.error(f"托盘号查订单接口异常: {e}") + QMessageBox.warning(self, "错误", f"托盘号查订单接口异常: {str(e)}") + def on_tray_entered(self): - """处理托盘号输入框回车事件""" tray_id = self.tray_input.text().strip() if not tray_id: QMessageBox.warning(self, "提示", "请输入托盘号") return - - # 设置焦点到托盘料输入框 + self.on_xpack_query(tray_id) self.pallet_tier_value.setFocus() def keyPressEvent(self, event): diff --git a/widgets/order_query_dialog.py b/widgets/order_query_dialog.py index fa7af56..3448127 100644 --- a/widgets/order_query_dialog.py +++ b/widgets/order_query_dialog.py @@ -321,6 +321,24 @@ class OrderQueryDialog(OrderQueryDialogUI): return results + def query_orders_xpack(self, params): + """通过托盘号查订单数据,返回列表""" + try: + gc_api = GcApi() + response = gc_api.get_order_info_by_xpack(params.get("xpack"), params.get("corp_id")) + if response and response.get("status", False): + orders_data = response.get("data", []) + results = [] + for order_data in orders_data: + results.append(order_data) + self.query_results = results + return results + else: + return [] + except Exception as e: + logging.error(f"通过托盘号查订单数据失败: {e}") + return [] + def update_result_table(self, results): """更新结果表格