From fe60d656b17b15e40a8dcb406c7dfd91fd5b82de Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Sat, 16 Aug 2025 11:50:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=BC=BA=E5=BA=A6?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/app_config.json | 2 +- dao/inspection_dao.py | 2 +- db/jtDB.db | Bin 1433600 -> 1458176 bytes from pymodbus.py | 4 +- widgets/main_window.py | 349 ++++++++++++++++++----------------------- 5 files changed, 157 insertions(+), 200 deletions(-) diff --git a/config/app_config.json b/config/app_config.json index f1b5f6c..f49e74a 100644 --- a/config/app_config.json +++ b/config/app_config.json @@ -7,7 +7,7 @@ "enable_keyboard_listener": false, "enable_camera": false }, - "base_url": "http://localhost:8085", + "base_url": "https://jsjtnew.tengzhicn.com", "mode": "api" }, "apis": { diff --git a/dao/inspection_dao.py b/dao/inspection_dao.py index 03d9e9b..89d27c2 100644 --- a/dao/inspection_dao.py +++ b/dao/inspection_dao.py @@ -180,7 +180,7 @@ class InspectionDAO: # 构建SQL sql = f""" - UPDATE inspection_config + UPDATE wsbz_inspection_config SET {', '.join(update_fields)} WHERE id = ? """ diff --git a/db/jtDB.db b/db/jtDB.db index ea75ffd59cabefc82d1410ea30472c692fd987e9..fcdd03a60b8c0005060fde5aa474606caf40b34f 100644 GIT binary patch delta 23089 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 DEo@X& delta 3178 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 q`@+#0@MbFlG= 2 and column < packaging_start_col: - # 是检验列 - config_index = column - 2 - if config_index < len(enabled_configs): - config = enabled_configs[config_index] - data_type = config['display_name'] - - # 显示临时状态消息 - self.statusBar().showMessage(f"正在保存检验数据: {data_type}={value}", 1000) - - # 验证数据有效性 - # 设置单元格颜色为浅绿色,表示已填写 - cell_item.setBackground(QBrush(QColor("#c8e6c9"))) - - # 保持当前状态不变,由状态管理逻辑处理 - from dao.inspection_dao import InspectionDAO - inspection_dao = InspectionDAO() - status = inspection_dao.get_product_status(self._current_order_code, gc_note, tray_id) - self.save_inspection_data(self._current_order_code, gc_note, tray_id, config['position'], config['id'], value, status) - - # 判断是否是包装列 - elif column == packaging_start_col: - # 贴标列 - data_type = "贴标" - self.statusBar().showMessage(f"正在保存贴标数据: {value}", 1000) - # 设置单元格颜色为通过 - cell_item.setBackground(QBrush(QColor("#c8e6c9"))) # 浅绿色 - # 保存贴标数据,position和config_id都是11 - self.save_inspection_data(self._current_order_code, gc_note, tray_id, 11, 11, value, status) - - elif column == packaging_start_col + 1: - # 毛重列 - data_type = "毛重" - self.statusBar().showMessage(f"正在保存称重数据: {value}", 1000) - # 设置单元格颜色为通过 - cell_item.setBackground(QBrush(QColor("#c8e6c9"))) # 浅绿色 - # 保存毛重数据,position和config_id都是12 - self.save_inspection_data(self._current_order_code, gc_note, tray_id, 12, 12, value, status) - elif column == packaging_start_col + 2: - # 净重列 - data_type = "净重" - self.statusBar().showMessage(f"正在保存净重数据: {value}", 1000) - # 设置单元格颜色为通过 - cell_item.setBackground(QBrush(QColor("#c8e6c9"))) # 浅绿色 - # 保存净重数据,position和config_id都是13 - self.save_inspection_data(self._current_order_code, gc_note, tray_id, 13, 13, value, status) - - # 记录详细日志 - logging.info(f"处理单元格变更: 行={row}, 列={column}, 类型={data_type}, 工程号={gc_note}, 值={value}, 状态={status}") - - # 检查是否完成检验并更新状态 - self.check_inspection_completed(row) - - except Exception as e: - logging.error(f"处理检验单元格变更失败: {str(e)}") - self.statusBar().showMessage(f"处理检验数据失败: {str(e)[:50]}...", 3000) - finally: - # 延迟一段时间后再触发查询,避免频繁刷新UI - # 但要避免在加载过程中触发新的加载 - if not self._loading_data_in_progress: - # 使用类变量保存定时器,避免创建多个定时器 - if hasattr(self, '_load_data_timer') and self._load_data_timer is not None: - self._load_data_timer.stop() - - self._load_data_timer = QTimer() - self._load_data_timer.setSingleShot(True) - self._load_data_timer.timeout.connect(self._safe_load_data) - self._load_data_timer.start(1000) - - - def check_inspection_completed(self, row): """检查行是否有至少一个检验项已完成,如果是则更新状态为inspected