修复对比页面数据查询bug

This commit is contained in:
wangxu 2025-12-10 18:20:44 +08:00
parent d4a9e69373
commit 4b5087dfd9
1 changed files with 46 additions and 109 deletions

View File

@ -79,8 +79,7 @@ def parse_comp_inroad_delay_infos(inroad_delay_infos, comp_inroad_delay_infos):
'item': '优化前', 'item': '优化前',
'service_level': comp_inroad_delay_infos[key]['service_level'] if key in comp_inroad_data_keys else '-', '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 '-', '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': comp_inroad_delay_infos[key]['high_park_percent'] if key in comp_inroad_data_keys else '-',
'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 '-', '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 '-', '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 '-', '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 = { diff_data = {
'item': '变化量', 'item': '变化量',
'service_level': '-' if item_data['service_level'] == '-' or comp_data[ 'service_level': '-' if item_data['service_level'] == '-' or comp_data['service_level'] == '-' else compare_level(comp_data['service_level'], item_data['service_level']),
'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),
'stop_times': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else round( '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),
item_data['stop_times'] - comp_data['stop_times'], 2), 'imbalance_index': '-' if item_data['imbalance_index'] == '-' or comp_data['imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 2),
'high_park_percent': '-' if item_data['high_park_percent'] == '-' or comp_data[ 'park_time': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data['park_time'] - comp_data['park_time'],
'high_park_percent'] == '-' else round(float(item_data['high_park_percent'].replace('%', '')) - float( 'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data['delay_time'] - comp_data['delay_time'],
comp_data['high_park_percent'].replace('%', '')), 2), 'speed': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else round(item_data['speed'] - comp_data['speed'], 2),
'imbalance_index': '-' if item_data['imbalance_index'] == '-' or comp_data[ 'move_speed': '-' if item_data['move_speed'] == '-' or comp_data['move_speed'] == '-' else round(item_data['move_speed'] - comp_data['move_speed'], 2),
'imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 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'),
'park_time': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data[ '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'),
'park_time'] - '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'),
comp_data[ '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'),
'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'),
'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data[ 'speed_color': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else calc_index_color(item_data['speed'], comp_data['speed'], 'speed'),
'delay_time'] - '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')
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() 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() 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 all_turn_type = turn_type | comp_turn_type
flow_delay_datas = {} flow_delay_datas = {}
for item_turn in all_turn_type: for item_turn in all_turn_type:
flow_comp_data = { flow_comp_data = {
'item': '优化前', 'item': '优化前',
'service_level': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'service_level'] if 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 '-',
'stop_times': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'stop_times'] if 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 '-',
'high_park_percent': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'high_park_percent'] if 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 '-',
'park_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-'
'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 '-'
} }
flow_item_data = { flow_item_data = {
'item': '优化后', 'item': '优化后',
'service_level': inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'service_level'] if 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 '-',
'stop_times': inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'stop_times'] if 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 '-',
'high_park_percent': inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-',
'high_park_percent'] if 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 '-',
'park_time': inroad_delay_infos[key]['flow_delays'][item_turn][ '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 '-'
'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 '-'
} }
flow_diff_data = { flow_diff_data = {
'item': '变化量', 'item': '变化量',
'service_level': '-' if flow_comp_data['service_level'] == '-' or flow_item_data[ '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']),
'service_level'] == '-' else compare_level(flow_comp_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),
flow_item_data['service_level']), '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),
'stop_times': '-' if flow_comp_data['stop_times'] == '-' or flow_item_data[ '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),
'stop_times'] == '-' else round(flow_comp_data['stop_times'] - flow_item_data['stop_times'], 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),
'high_park_percent': '-' if flow_comp_data['high_park_percent'] == '-' or flow_item_data[ 'speed': '-' if flow_comp_data['speed'] == '-' or flow_item_data['speed'] == '-' else round(flow_comp_data['speed'] - flow_item_data['speed'], 2),
'high_park_percent'] == '-' else round( '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),
float(flow_comp_data['high_park_percent'].replace('%', '')) - float( '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'),
flow_item_data['high_park_percent'].replace('%', '')), 2), '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': '-' if flow_comp_data['park_time'] == '-' or flow_item_data['park_time'] == '-' else round( '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'),
flow_comp_data['park_time'] - flow_item_data['park_time'], 2), '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'),
'delay_time': '-' if flow_comp_data['delay_time'] == '-' or flow_item_data[ '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'),
'delay_time'] == '-' else round(flow_comp_data['delay_time'] - flow_item_data['delay_time'], 2), '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')
'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] = { flow_delay_datas[item_turn] = {
'item_data': flow_item_data, '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 'diff_data': flow_diff_data
} }
res[key] = { res[key] = {
'src_dir': inroad_delay_infos[key]['src_dir'] if 'src_dir' in inroad_delay_infos[key] else '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'],
comp_inroad_delay_infos[key]['src_dir'],
'dir_data': { 'dir_data': {
'item_data': item_data, 'item_data': item_data,
'comp_data': comp_data, 'comp_data': comp_data,