From 4b5087dfd983fb1df2b922dc8518fc48cf53d9e9 Mon Sep 17 00:00:00 2001 From: wangxu <1318272526@qq.com> Date: Wed, 10 Dec 2025 18:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=B9=E6=AF=94=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/cross_compare_common.py | 155 +++++++++++------------------------- 1 file changed, 46 insertions(+), 109 deletions(-) diff --git a/app/cross_compare_common.py b/app/cross_compare_common.py index d34d568..dde3492 100644 --- a/app/cross_compare_common.py +++ b/app/cross_compare_common.py @@ -79,8 +79,7 @@ def parse_comp_inroad_delay_infos(inroad_delay_infos, comp_inroad_delay_infos): 'item': '优化前', 'service_level': comp_inroad_delay_infos[key]['service_level'] if key in comp_inroad_data_keys else '-', 'stop_times': comp_inroad_delay_infos[key]['stop_times'] if key in comp_inroad_data_keys else '-', - 'high_park_percent': comp_inroad_delay_infos[key][ - 'high_park_percent'] if key in comp_inroad_data_keys else '-', + 'high_park_percent': comp_inroad_delay_infos[key]['high_park_percent'] if key in comp_inroad_data_keys else '-', 'imbalance_index': comp_inroad_delay_infos[key]['imbalance_index'] if key in comp_inroad_data_keys else '-', 'park_time': comp_inroad_delay_infos[key]['park_time'] if key in comp_inroad_data_keys else '-', 'delay_time': comp_inroad_delay_infos[key]['delay_time'] if key in comp_inroad_data_keys else '-', @@ -100,123 +99,62 @@ def parse_comp_inroad_delay_infos(inroad_delay_infos, comp_inroad_delay_infos): } diff_data = { 'item': '变化量', - 'service_level': '-' if item_data['service_level'] == '-' or comp_data[ - 'service_level'] == '-' else compare_level(comp_data['service_level'], item_data['service_level']), - 'stop_times': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else round( - item_data['stop_times'] - comp_data['stop_times'], 2), - 'high_park_percent': '-' if item_data['high_park_percent'] == '-' or comp_data[ - 'high_park_percent'] == '-' else round(float(item_data['high_park_percent'].replace('%', '')) - float( - comp_data['high_park_percent'].replace('%', '')), 2), - 'imbalance_index': '-' if item_data['imbalance_index'] == '-' or comp_data[ - 'imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 2), - 'park_time': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data[ - 'park_time'] - - comp_data[ - 'park_time'], - 'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data[ - 'delay_time'] - - comp_data[ - 'delay_time'], - 'speed': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else round( - item_data['speed'] - comp_data['speed'], 2), - 'move_speed': '-' if item_data['move_speed'] == '-' or comp_data['move_speed'] == '-' else round( - item_data['move_speed'] - comp_data['move_speed'], 2), - 'stop_times_color': '-' if item_data['stop_times'] == '-' or comp_data[ - 'stop_times'] == '-' else calc_index_color(item_data['stop_times'], comp_data['stop_times'], - 'stop_times'), - 'high_park_percent_color': '-' if item_data['high_park_percent'] == '-' or comp_data[ - 'high_park_percent'] == '-' else calc_index_color( - float(item_data['high_park_percent'].replace('%', '')), - float(comp_data['high_park_percent'].replace('%', '')), 'high_park_percent'), - 'imbalance_index_color': '-' if item_data['imbalance_index'] == '-' or comp_data[ - 'imbalance_index'] == '-' else calc_index_color(item_data['imbalance_index'], - comp_data['imbalance_index'], 'imbalance_index'), - 'park_time_color': '-' if item_data['park_time'] == '-' or comp_data[ - 'park_time'] == '-' else calc_index_color(item_data['park_time'], comp_data['park_time'], 'park_time'), - 'delay_time_color': '-' if item_data['delay_time'] == '-' or comp_data[ - 'delay_time'] == '-' else calc_index_color(item_data['delay_time'], comp_data['delay_time'], - 'delay_time'), - 'speed_color': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else calc_index_color( - item_data['speed'], comp_data['speed'], 'speed'), - 'move_speed_color': '-' if item_data['move_speed'] == '-' or comp_data[ - 'move_speed'] == '-' else calc_index_color(item_data['move_speed'], comp_data['move_speed'], - 'move_speed') + 'service_level': '-' if item_data['service_level'] == '-' or comp_data['service_level'] == '-' else compare_level(comp_data['service_level'], item_data['service_level']), + 'stop_times': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else round(item_data['stop_times'] - comp_data['stop_times'], 2), + 'high_park_percent': '-' if item_data['high_park_percent'] == '-' or comp_data['high_park_percent'] == '-' else round(float(item_data['high_park_percent'].replace('%', '')) - float(comp_data['high_park_percent'].replace('%', '')), 2), + 'imbalance_index': '-' if item_data['imbalance_index'] == '-' or comp_data['imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 2), + 'park_time': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data['park_time'] - comp_data['park_time'], + 'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data['delay_time'] - comp_data['delay_time'], + 'speed': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else round(item_data['speed'] - comp_data['speed'], 2), + 'move_speed': '-' if item_data['move_speed'] == '-' or comp_data['move_speed'] == '-' else round(item_data['move_speed'] - comp_data['move_speed'], 2), + 'stop_times_color': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else calc_index_color(item_data['stop_times'], comp_data['stop_times'], 'stop_times'), + 'high_park_percent_color': '-' if item_data['high_park_percent'] == '-' or comp_data['high_park_percent'] == '-' else calc_index_color(float(item_data['high_park_percent'].replace('%', '')), float(comp_data['high_park_percent'].replace('%', '')), 'high_park_percent'), + 'imbalance_index_color': '-' if item_data['imbalance_index'] == '-' or comp_data['imbalance_index'] == '-' else calc_index_color(item_data['imbalance_index'], comp_data['imbalance_index'], 'imbalance_index'), + 'park_time_color': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else calc_index_color(item_data['park_time'], comp_data['park_time'], 'park_time'), + 'delay_time_color': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else calc_index_color(item_data['delay_time'], comp_data['delay_time'], 'delay_time'), + 'speed_color': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else calc_index_color(item_data['speed'], comp_data['speed'], 'speed'), + 'move_speed_color': '-' if item_data['move_speed'] == '-' or comp_data['move_speed'] == '-' else calc_index_color(item_data['move_speed'], comp_data['move_speed'], 'move_speed') } - turn_type = inroad_delay_infos[key]['flow_delays'].keys() - comp_turn_type = comp_inroad_delay_infos[key]['flow_delays'].keys() + turn_type = inroad_delay_infos[key]['flow_delays'].keys() if key in inroad_delay_infos.keys() else set() + comp_turn_type = comp_inroad_delay_infos[key]['flow_delays'].keys() if key in comp_inroad_delay_infos.keys() else set() all_turn_type = turn_type | comp_turn_type flow_delay_datas = {} for item_turn in all_turn_type: flow_comp_data = { 'item': '优化前', - 'service_level': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'service_level'] if item_turn in comp_turn_type else '-', - 'stop_times': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'stop_times'] if item_turn in comp_turn_type else '-', - 'high_park_percent': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'high_park_percent'] if item_turn in comp_turn_type else '-', - 'park_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'park_time'] if item_turn in comp_turn_type else '-', - 'delay_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'delay_time'] if item_turn in comp_turn_type else '-', - 'speed': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'speed'] if item_turn in comp_turn_type else '-', - 'move_speed': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ - 'move_speed'] if item_turn in comp_turn_type else '-' + 'service_level': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['service_level'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'stop_times': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['stop_times'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'high_park_percent': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['high_park_percent'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'park_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['park_time'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'delay_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['delay_time'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'speed': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['speed'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-', + 'move_speed': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['move_speed'] if key in comp_inroad_delay_infos.keys() and item_turn in comp_turn_type else '-' } flow_item_data = { 'item': '优化后', - 'service_level': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'service_level'] if item_turn in turn_type else '-', - 'stop_times': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'stop_times'] if item_turn in turn_type else '-', - 'high_park_percent': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'high_park_percent'] if item_turn in turn_type else '-', - 'park_time': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'park_time'] if item_turn in turn_type else '-', - 'delay_time': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'delay_time'] if item_turn in turn_type else '-', - 'speed': inroad_delay_infos[key]['flow_delays'][item_turn]['speed'] if item_turn in turn_type else '-', - 'move_speed': inroad_delay_infos[key]['flow_delays'][item_turn][ - 'move_speed'] if item_turn in turn_type else '-' + 'service_level': inroad_delay_infos[key]['flow_delays'][item_turn]['service_level'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'stop_times': inroad_delay_infos[key]['flow_delays'][item_turn]['stop_times'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'high_park_percent': inroad_delay_infos[key]['flow_delays'][item_turn]['high_park_percent'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'park_time': inroad_delay_infos[key]['flow_delays'][item_turn]['park_time'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'delay_time': inroad_delay_infos[key]['flow_delays'][item_turn]['delay_time'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'speed': inroad_delay_infos[key]['flow_delays'][item_turn]['speed'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-', + 'move_speed': inroad_delay_infos[key]['flow_delays'][item_turn]['move_speed'] if key in inroad_delay_infos.keys() and item_turn in turn_type else '-' } flow_diff_data = { 'item': '变化量', - 'service_level': '-' if flow_comp_data['service_level'] == '-' or flow_item_data[ - 'service_level'] == '-' else compare_level(flow_comp_data['service_level'], - flow_item_data['service_level']), - 'stop_times': '-' if flow_comp_data['stop_times'] == '-' or flow_item_data[ - 'stop_times'] == '-' else round(flow_comp_data['stop_times'] - flow_item_data['stop_times'], 2), - 'high_park_percent': '-' if flow_comp_data['high_park_percent'] == '-' or flow_item_data[ - 'high_park_percent'] == '-' else round( - float(flow_comp_data['high_park_percent'].replace('%', '')) - float( - flow_item_data['high_park_percent'].replace('%', '')), 2), - 'park_time': '-' if flow_comp_data['park_time'] == '-' or flow_item_data['park_time'] == '-' else round( - flow_comp_data['park_time'] - flow_item_data['park_time'], 2), - 'delay_time': '-' if flow_comp_data['delay_time'] == '-' or flow_item_data[ - 'delay_time'] == '-' else round(flow_comp_data['delay_time'] - flow_item_data['delay_time'], 2), - 'speed': '-' if flow_comp_data['speed'] == '-' or flow_item_data['speed'] == '-' else round( - flow_comp_data['speed'] - flow_item_data['speed'], 2), - 'move_speed': '-' if flow_comp_data['move_speed'] == '-' or flow_item_data[ - 'move_speed'] == '-' else round(flow_comp_data['move_speed'] - flow_item_data['move_speed'], 2), - 'stop_times_color': '-' if flow_item_data['stop_times'] == '-' or flow_comp_data[ - 'stop_times'] == '-' else calc_index_color(flow_item_data['stop_times'], - flow_comp_data['stop_times'], 'stop_times'), - 'high_park_percent_color': '-' if flow_item_data['high_park_percent'] == '-' or flow_comp_data[ - 'high_park_percent'] == '-' else calc_index_color( - float(flow_item_data['high_park_percent'].replace('%', '')), - float(comp_data['high_park_percent'].replace('%', '')), 'high_park_percent'), - 'park_time_color': '-' if flow_item_data['park_time'] == '-' or flow_comp_data[ - 'park_time'] == '-' else calc_index_color(flow_item_data['park_time'], flow_comp_data['park_time'], - 'park_time'), - 'delay_time_color': '-' if flow_item_data['delay_time'] == '-' or flow_comp_data[ - 'delay_time'] == '-' else calc_index_color(flow_item_data['delay_time'], - flow_comp_data['delay_time'], 'delay_time'), - 'speed_color': '-' if flow_item_data['speed'] == '-' or flow_comp_data[ - 'speed'] == '-' else calc_index_color(flow_item_data['speed'], flow_comp_data['speed'], 'speed'), - 'move_speed_color': '-' if flow_item_data['move_speed'] == '-' or flow_comp_data[ - 'move_speed'] == '-' else calc_index_color(flow_item_data['move_speed'], - flow_comp_data['move_speed'], 'move_speed') + 'service_level': '-' if flow_comp_data['service_level'] == '-' or flow_item_data['service_level'] == '-' else compare_level(flow_comp_data['service_level'], flow_item_data['service_level']), + 'stop_times': '-' if flow_comp_data['stop_times'] == '-' or flow_item_data['stop_times'] == '-' else round(flow_comp_data['stop_times'] - flow_item_data['stop_times'], 2), + 'high_park_percent': '-' if flow_comp_data['high_park_percent'] == '-' or flow_item_data['high_park_percent'] == '-' else round(float(flow_comp_data['high_park_percent'].replace('%', '')) - float(flow_item_data['high_park_percent'].replace('%', '')), 2), + 'park_time': '-' if flow_comp_data['park_time'] == '-' or flow_item_data['park_time'] == '-' else round(flow_comp_data['park_time'] - flow_item_data['park_time'], 2), + 'delay_time': '-' if flow_comp_data['delay_time'] == '-' or flow_item_data['delay_time'] == '-' else round(flow_comp_data['delay_time'] - flow_item_data['delay_time'], 2), + 'speed': '-' if flow_comp_data['speed'] == '-' or flow_item_data['speed'] == '-' else round(flow_comp_data['speed'] - flow_item_data['speed'], 2), + 'move_speed': '-' if flow_comp_data['move_speed'] == '-' or flow_item_data['move_speed'] == '-' else round(flow_comp_data['move_speed'] - flow_item_data['move_speed'], 2), + 'stop_times_color': '-' if flow_item_data['stop_times'] == '-' or flow_comp_data['stop_times'] == '-' else calc_index_color(flow_item_data['stop_times'], flow_comp_data['stop_times'], 'stop_times'), + 'high_park_percent_color': '-' if flow_item_data['high_park_percent'] == '-' or flow_comp_data['high_park_percent'] == '-' else calc_index_color(float(flow_item_data['high_park_percent'].replace('%', '')), float(comp_data['high_park_percent'].replace('%', '')), 'high_park_percent'), + 'park_time_color': '-' if flow_item_data['park_time'] == '-' or flow_comp_data['park_time'] == '-' else calc_index_color(flow_item_data['park_time'], flow_comp_data['park_time'], 'park_time'), + 'delay_time_color': '-' if flow_item_data['delay_time'] == '-' or flow_comp_data['delay_time'] == '-' else calc_index_color(flow_item_data['delay_time'], flow_comp_data['delay_time'], 'delay_time'), + 'speed_color': '-' if flow_item_data['speed'] == '-' or flow_comp_data['speed'] == '-' else calc_index_color(flow_item_data['speed'], flow_comp_data['speed'], 'speed'), + 'move_speed_color': '-' if flow_item_data['move_speed'] == '-' or flow_comp_data['move_speed'] == '-' else calc_index_color(flow_item_data['move_speed'], flow_comp_data['move_speed'], 'move_speed') } flow_delay_datas[item_turn] = { 'item_data': flow_item_data, @@ -224,8 +162,7 @@ def parse_comp_inroad_delay_infos(inroad_delay_infos, comp_inroad_delay_infos): 'diff_data': flow_diff_data } res[key] = { - 'src_dir': inroad_delay_infos[key]['src_dir'] if 'src_dir' in inroad_delay_infos[key] else - comp_inroad_delay_infos[key]['src_dir'], + 'src_dir': inroad_delay_infos[key]['src_dir'] if key in inroad_delay_infos.keys() and 'src_dir' in inroad_delay_infos[key] else comp_inroad_delay_infos[key]['src_dir'], 'dir_data': { 'item_data': item_data, 'comp_data': comp_data,