From d0f5aca7071209e5986dffc2b6a34e49c92caf78 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Thu, 10 Oct 2024 11:36:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B424h=E5=BC=80=E6=9C=BA?= =?UTF-8?q?=E6=97=B6=E9=95=BF=E4=B8=BA0=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9B=E5=8E=BB=E6=8E=89x=E5=81=8F=E5=B7=AE=E8=A7=92?= =?UTF-8?q?=E5=BA=A6=E7=9A=84=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_machine_connect/controllers/controllers.py | 2 + sf_maintenance/models/sf_maintenance_oee.py | 49 ++++++++++++------- sf_manufacturing/models/mrp_workorder.py | 4 +- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/sf_machine_connect/controllers/controllers.py b/sf_machine_connect/controllers/controllers.py index 86340ca5..a65e97ef 100644 --- a/sf_machine_connect/controllers/controllers.py +++ b/sf_machine_connect/controllers/controllers.py @@ -24,6 +24,8 @@ def convert_to_seconds(time_str): if time_str is None: return 0 + if time_str == 0: + return 0 pattern = r"(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?" diff --git a/sf_maintenance/models/sf_maintenance_oee.py b/sf_maintenance/models/sf_maintenance_oee.py index 0c75ba53..a88bc27e 100644 --- a/sf_maintenance/models/sf_maintenance_oee.py +++ b/sf_maintenance/models/sf_maintenance_oee.py @@ -12,6 +12,8 @@ def convert_to_seconds(time_str): if time_str is None: return 0 + if time_str == 0: + return 0 pattern = r"(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?" @@ -122,24 +124,37 @@ class SfMaintenanceEquipmentOEE(models.Model): real_dict = result_time['data'][self.equipment_code] print('=', result_time) if result_time['status'] == 1: - self.online_time = round((convert_to_seconds(real_dict['power_on_time']) - convert_to_seconds( - real_dict['power_on_24_time'])) / 3600, 2) - self.work_time = round( - (convert_to_seconds(real_dict['cut_time']) - convert_to_seconds(real_dict['cut_24_time'])) / 3600, - 2) + if real_dict['power_on_24_time'] == 0: + self.online_time = 0 + self.idle_time = 0 + self.idle_rate = 0 + self.work_rate = 0 + self.fault_time = 0 + self.fault_rate = 0 + self.fault_nums = 0 + self.idle_nums = 0 + self.work_time = 0 + else: + self.online_time = round((convert_to_seconds(real_dict['power_on_time']) - convert_to_seconds( + real_dict['power_on_24_time'])) / 3600, 2) + self.idle_time = float(self.online_time) - float( + self.work_time) if self.online_time and self.work_time else 0 + self.idle_rate = round( + float(self.idle_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) + self.work_rate = round( + float(self.work_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) + self.fault_time = (float(real_dict['alarm_last_24_time']) if real_dict[ + 'alarm_last_24_time'] else 0) / 3600 + self.fault_rate = round( + float(self.fault_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) + self.fault_nums = real_dict['alarm_last_24_nums'] + self.idle_nums = real_dict['idle_count'] + self.work_time = round( + (convert_to_seconds(real_dict['cut_time']) - convert_to_seconds(real_dict['cut_24_time'])) / 3600, + 2) self.offline_time = 24 - (float(self.online_time) if self.online_time else 0) - self.idle_time = float(self.online_time) - float( - self.work_time) if self.online_time and self.work_time else 0 - self.idle_rate = round( - float(self.idle_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) - self.work_rate = round( - float(self.work_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) - self.fault_time = (float(real_dict['alarm_last_24_time']) if real_dict[ - 'alarm_last_24_time'] else 0) / 3600 - self.fault_rate = round( - float(self.fault_time) / (float(self.online_time) if self.online_time else 1) * 100, 2) - self.fault_nums = real_dict['alarm_last_24_nums'] - self.idle_nums = real_dict['idle_count'] + + if response.status_code == 200: result = response.json() diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 7c3ec50f..b342e3d3 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1197,8 +1197,8 @@ class ResMrpWorkOrder(models.Model): if record.is_rework is False: if not record.material_center_point: raise UserError("坯料中心点为空,请检查") - if record.X_deviation_angle <= 0: - raise UserError("X偏差角度小于等于0,请检查!本次计算的X偏差角度为:%s" % record.X_deviation_angle) + # if record.X_deviation_angle <= 0: + # raise UserError("X偏差角度小于等于0,请检查!本次计算的X偏差角度为:%s" % record.X_deviation_angle) record.process_state = '待加工' # record.write({'process_state': '待加工'}) record.production_id.process_state = '待加工'