diff --git a/sf_machine_connect/controllers/controllers.py b/sf_machine_connect/controllers/controllers.py index 13394ddb..077281c4 100644 --- a/sf_machine_connect/controllers/controllers.py +++ b/sf_machine_connect/controllers/controllers.py @@ -1441,6 +1441,8 @@ class Sf_Dashboard_Connect(http.Controller): month_power_on_time = 0 today_power_on_time = 0 today_power_on_dict = {} + today_alarm_dict = {} + single_machine_dict = {} today_data = [] month_data = [] @@ -1452,7 +1454,7 @@ class Sf_Dashboard_Connect(http.Controller): month_alarm_time = 0 for order in orders: - time = datetime.strptime(order.date_finished, "%Y-%m-%d %H:%M:%S") + time = order.date_finished if time >= today_start: today_data.append(order) if time >= month_start: @@ -1515,6 +1517,7 @@ class Sf_Dashboard_Connect(http.Controller): today_power_on_dict[item] = today_power_on_time else: today_power_on_time += 0 + today_power_on_dict[item] = 0 print(total_power_on_time, month_power_on_time, today_power_on_time) with conn.cursor() as cur: @@ -1540,13 +1543,18 @@ class Sf_Dashboard_Connect(http.Controller): today_data.append(record) if alarm_start >= month_start: month_data.append(record) - for today in today_data: - if today[0]: - if float(today[0]) >= 28800: - continue - today_alarm_time += float(today[0]) - else: - today_alarm_time += 0.0 + if today_data: + for today in today_data: + if today[0]: + if float(today[0]) >= 28800: + continue + today_alarm_time += float(today[0]) + today_alarm_dict[item] = today_alarm_time + else: + today_alarm_time += 0.0 + today_alarm_dict[item] = 0 + else: + today_alarm_dict[item] = 0 for month in month_data: if month[0]: if float(month[0]) >= 28800: @@ -1567,11 +1575,13 @@ class Sf_Dashboard_Connect(http.Controller): else: total_power_on_rate = 0 if month_power_on_time: - month_power_on_rate = (total_power_on_time - month_power_on_time - month_alarm_time) / month_power_on_time + month_power_on_rate = (total_power_on_time - month_power_on_time - month_alarm_time) / ( + total_power_on_time - month_power_on_time) else: month_power_on_rate = 0 if today_power_on_time: - today_power_on_rate = (total_power_on_time - today_power_on_time - today_alarm_time) / today_power_on_time + today_power_on_rate = (total_power_on_time - today_power_on_time - today_alarm_time) / ( + total_power_on_time - today_power_on_time) else: today_power_on_rate = 0 print("总开动率: %s" % total_power_on_rate) @@ -1579,11 +1589,13 @@ class Sf_Dashboard_Connect(http.Controller): print("日开动率: %s" % today_power_on_rate) # 计算性能开动率(累计、月、日) - print('===========',orders) + print('===========', orders) print(len(orders)) total_performance_rate = len(orders) * 30 * 60 / (total_power_on_time - total_alarm_time) - month_performance_rate = len(month_data) * 30 * 60 / (month_power_on_time - month_alarm_time) - today_performance_rate = len(today_data) * 30 * 60 / (today_power_on_time - today_alarm_time) if today_power_on_time != 0 else 0 + month_performance_rate = len(month_data) * 30 * 60 / ( + total_power_on_time - month_power_on_time - month_alarm_time) + today_performance_rate = len(today_data) * 30 * 60 / ( + total_power_on_time - today_power_on_time - today_alarm_time) if today_power_on_time != 0 else 0 print("总性能率: %s" % total_performance_rate) print("月性能率: %s" % month_performance_rate) print("日性能率: %s" % today_performance_rate) @@ -1602,15 +1614,20 @@ class Sf_Dashboard_Connect(http.Controller): # 'month_utilization_rate': month_power_on_rate * month_performance_rate * month_pass_rate, # 'today_utilization_rate': today_power_on_rate * today_performance_rate * today_pass_rate, # } + print(machine_list) + print('111',today_power_on_dict) + print('222', today_alarm_dict) + for i in machine_list: + print(i) + single_machine_utilization_rate = total_power_on_time - today_power_on_dict[i] - today_alarm_dict[i] / (total_power_on_time - today_power_on_dict[i]) + print('===========', single_machine_utilization_rate) + single_machine_dict[i] = single_machine_utilization_rate * today_performance_rate * today_pass_rate + res['data'] = { 'total_utilization_rate': total_power_on_rate * total_performance_rate * total_pass_rate, 'month_utilization_rate': month_power_on_rate * month_performance_rate * month_pass_rate, 'today_utilization_rate': today_power_on_rate * today_performance_rate * today_pass_rate, + 'single_machine_dict': single_machine_dict } return json.dumps(res) - - - - -