From d84758232e79ed858deb90d37d1123732189df01 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Fri, 27 Sep 2024 09:20:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=80=BC=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_machine_connect/controllers/controllers.py | 22 +++++++++++++++---- .../views/maintenance_equipment_oee_views.xml | 6 ++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/sf_machine_connect/controllers/controllers.py b/sf_machine_connect/controllers/controllers.py index b427aa5c..f38f473b 100644 --- a/sf_machine_connect/controllers/controllers.py +++ b/sf_machine_connect/controllers/controllers.py @@ -873,7 +873,10 @@ class Sf_Dashboard_Connect(http.Controller): alarm_count = [] for row in result2: alarm_count.append(row[1]) - total_alarm_time += abs(float(row[0])) + if row[0]: + total_alarm_time += abs(float(row[0])) + else: + total_alarm_time += 0.0 if len(list(set(alarm_count))) == 1: if list(set(alarm_count))[0] is None: alarm_count_num = 0 @@ -1245,7 +1248,12 @@ class Sf_Dashboard_Connect(http.Controller): columns = [desc[0] for desc in cursor.description] return dict(zip(columns, cursor.fetchone())) if cursor.rowcount != 0 else None + # 获取当前时间的时间戳 + current_timestamp = datetime.now().timestamp() for item in machine_list: + euipment_obj = request.env['maintenance.equipment'].sudo().search([('code', '=', item)]) + # 机床上线时间段 + first_online_duration = current_timestamp - euipment_obj.first_online_time.timestamp() with conn.cursor() as cur: cur.execute(""" SELECT * FROM device_data @@ -1259,7 +1267,7 @@ class Sf_Dashboard_Connect(http.Controller): cur.execute(""" SELECT * FROM device_data WHERE device_name = %s - AND device_state != '离线' AND time >= %s + AND device_state != '离线' AND time >= %s AND process_time IS NOT NULL ORDER BY time ASC LIMIT 1; """, (item, time_threshold)) @@ -1274,7 +1282,12 @@ class Sf_Dashboard_Connect(http.Controller): """, (item, time_threshold)) results = cur.fetchall() for result in results: - alarm_last_24_time += float(result[0]) + if result[0]: + if float(result[0]) >= 1000: + continue + alarm_last_24_time += float(result[0]) + else: + alarm_last_24_time += 0.0 # 返回数据 res['data'][item] = { 'wait_time': last_all_time['run_time'] if last_all_time['run_time'] is not None else 0, @@ -1282,7 +1295,8 @@ class Sf_Dashboard_Connect(http.Controller): 'cut_24_time': last_24_time['process_time'] if last_24_time['process_time'] is not None else 0, 'power_on_time': last_all_time['power_on_time'] if last_all_time['power_on_time'] is not None else 0, 'power_on_24_time': last_24_time['power_on_time'] if last_24_time['power_on_time'] is not None else 0, - 'alarm_last_24_time': alarm_last_24_time + 'alarm_last_24_time': alarm_last_24_time, + 'first_online_time': first_online_duration, } conn.close() diff --git a/sf_maintenance/views/maintenance_equipment_oee_views.xml b/sf_maintenance/views/maintenance_equipment_oee_views.xml index b798b0ab..22423be7 100644 --- a/sf_maintenance/views/maintenance_equipment_oee_views.xml +++ b/sf_maintenance/views/maintenance_equipment_oee_views.xml @@ -95,9 +95,9 @@