自动匹配时段增加相位名称
Signed-off-by: yinzijian <yinzijian@haomozhixing.onaliyun.com>
This commit is contained in:
parent
972668f816
commit
800cb9fcee
|
|
@ -12,7 +12,8 @@ def gen_compare_overview_res(eva_overview, comp_eva_overview):
|
||||||
main_flows_num = len(eva_overview['main_flow_src_desc'].split('、'))
|
main_flows_num = len(eva_overview['main_flow_src_desc'].split('、'))
|
||||||
comp_main_flows_num = len(comp_eva_overview['main_flow_src_desc'].split('、'))
|
comp_main_flows_num = len(comp_eva_overview['main_flow_src_desc'].split('、'))
|
||||||
high_stop_turns_num = sum([len(item.split('/')) for item in eva_overview['high_stop_turn_ratio_desc'].split('、')])
|
high_stop_turns_num = sum([len(item.split('/')) for item in eva_overview['high_stop_turn_ratio_desc'].split('、')])
|
||||||
comp_high_stop_turns_num = sum([len(item.split('/')) for item in comp_eva_overview['high_stop_turn_ratio_desc'].split('、')])
|
comp_high_stop_turns_num = sum(
|
||||||
|
[len(item.split('/')) for item in comp_eva_overview['high_stop_turn_ratio_desc'].split('、')])
|
||||||
overview = {
|
overview = {
|
||||||
'stop_times': eva_overview['stop_times'],
|
'stop_times': eva_overview['stop_times'],
|
||||||
'comp_stop_times': comp_eva_overview['stop_times'],
|
'comp_stop_times': comp_eva_overview['stop_times'],
|
||||||
|
|
@ -22,10 +23,13 @@ def gen_compare_overview_res(eva_overview, comp_eva_overview):
|
||||||
'jam_index_color': calc_index_color(eva_overview['jam_index'], comp_eva_overview['jam_index'], 'jam_index'),
|
'jam_index_color': calc_index_color(eva_overview['jam_index'], comp_eva_overview['jam_index'], 'jam_index'),
|
||||||
'high_park_percent': eva_overview['high_park_percent'].replace('%', ''),
|
'high_park_percent': eva_overview['high_park_percent'].replace('%', ''),
|
||||||
'comp_high_park_percent': comp_eva_overview['high_park_percent'].replace('%', ''),
|
'comp_high_park_percent': comp_eva_overview['high_park_percent'].replace('%', ''),
|
||||||
'high_park_percent_color': calc_index_color(float(eva_overview['high_park_percent'].replace('%', '')), float(comp_eva_overview['high_park_percent'].replace('%', '')), 'high_park_percent'),
|
'high_park_percent_color': calc_index_color(float(eva_overview['high_park_percent'].replace('%', '')),
|
||||||
|
float(comp_eva_overview['high_park_percent'].replace('%', '')),
|
||||||
|
'high_park_percent'),
|
||||||
'imbalance_index': eva_overview['imbalance_index'],
|
'imbalance_index': eva_overview['imbalance_index'],
|
||||||
'comp_imbalance_index': comp_eva_overview['imbalance_index'],
|
'comp_imbalance_index': comp_eva_overview['imbalance_index'],
|
||||||
'imbalance_index_color': calc_index_color(eva_overview['imbalance_index'], comp_eva_overview['imbalance_index'], 'imbalance_index'),
|
'imbalance_index_color': calc_index_color(eva_overview['imbalance_index'], comp_eva_overview['imbalance_index'],
|
||||||
|
'imbalance_index'),
|
||||||
'speed': eva_overview['speed'],
|
'speed': eva_overview['speed'],
|
||||||
'comp_speed': comp_eva_overview['speed'],
|
'comp_speed': comp_eva_overview['speed'],
|
||||||
'speed_color': calc_index_color(eva_overview['speed'], comp_eva_overview['speed'], 'speed'),
|
'speed_color': calc_index_color(eva_overview['speed'], comp_eva_overview['speed'], 'speed'),
|
||||||
|
|
@ -75,7 +79,8 @@ 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'] 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 '-',
|
'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 '-',
|
||||||
|
|
@ -95,21 +100,47 @@ 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'] == '-' else compare_level(item_data['service_level'], comp_data['service_level']),
|
'service_level': '-' if item_data['service_level'] == '-' or comp_data[
|
||||||
'stop_times': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else round(item_data['stop_times'] - comp_data['stop_times'], 2),
|
'service_level'] == '-' else compare_level(item_data['service_level'], comp_data['service_level']),
|
||||||
'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),
|
'stop_times': '-' if item_data['stop_times'] == '-' or comp_data['stop_times'] == '-' else round(
|
||||||
'imbalance_index': '-' if item_data['imbalance_index'] == '-' or comp_data['imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 2),
|
item_data['stop_times'] - comp_data['stop_times'], 2),
|
||||||
'park_time': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data['park_time'] - comp_data['park_time'],
|
'high_park_percent': '-' if item_data['high_park_percent'] == '-' or comp_data[
|
||||||
'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data['delay_time'] - comp_data['delay_time'],
|
'high_park_percent'] == '-' else round(float(item_data['high_park_percent'].replace('%', '')) - float(
|
||||||
'speed': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else round(item_data['speed'] - comp_data['speed'], 2),
|
comp_data['high_park_percent'].replace('%', '')), 2),
|
||||||
'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': '-' if item_data['imbalance_index'] == '-' or comp_data[
|
||||||
'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'),
|
'imbalance_index'] == '-' else round(item_data['imbalance_index'] - comp_data['imbalance_index'], 2),
|
||||||
'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': '-' if item_data['park_time'] == '-' or comp_data['park_time'] == '-' else item_data[
|
||||||
'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'] -
|
||||||
'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'),
|
comp_data[
|
||||||
'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'),
|
'park_time'],
|
||||||
'speed_color': '-' if item_data['speed'] == '-' or comp_data['speed'] == '-' else calc_index_color(item_data['speed'], comp_data['speed'], 'speed'),
|
'delay_time': '-' if item_data['delay_time'] == '-' or comp_data['delay_time'] == '-' else item_data[
|
||||||
'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')
|
'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()
|
turn_type = inroad_delay_infos[key]['flow_delays'].keys()
|
||||||
comp_turn_type = comp_inroad_delay_infos[key]['flow_delays'].keys()
|
comp_turn_type = comp_inroad_delay_infos[key]['flow_delays'].keys()
|
||||||
|
|
@ -118,39 +149,74 @@ def parse_comp_inroad_delay_infos(inroad_delay_infos, comp_inroad_delay_infos):
|
||||||
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'] if item_turn in comp_turn_type else '-',
|
'service_level': comp_inroad_delay_infos[key]['flow_delays'][item_turn][
|
||||||
'stop_times': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['stop_times'] if item_turn in comp_turn_type else '-',
|
'service_level'] 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 '-',
|
'stop_times': comp_inroad_delay_infos[key]['flow_delays'][item_turn][
|
||||||
'park_time': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['park_time'] if item_turn in comp_turn_type else '-',
|
'stop_times'] 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 '-',
|
'high_park_percent': comp_inroad_delay_infos[key]['flow_delays'][item_turn][
|
||||||
'speed': comp_inroad_delay_infos[key]['flow_delays'][item_turn]['speed'] if item_turn in comp_turn_type else '-',
|
'high_park_percent'] 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 '-'
|
'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 '-'
|
||||||
}
|
}
|
||||||
flow_item_data = {
|
flow_item_data = {
|
||||||
'item': '优化后',
|
'item': '优化后',
|
||||||
'service_level': inroad_delay_infos[key]['flow_delays'][item_turn]['service_level'] if item_turn in turn_type else '-',
|
'service_level': inroad_delay_infos[key]['flow_delays'][item_turn][
|
||||||
'stop_times': inroad_delay_infos[key]['flow_delays'][item_turn]['stop_times'] if item_turn in turn_type else '-',
|
'service_level'] 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 '-',
|
'stop_times': inroad_delay_infos[key]['flow_delays'][item_turn][
|
||||||
'park_time': inroad_delay_infos[key]['flow_delays'][item_turn]['park_time'] if item_turn in turn_type else '-',
|
'stop_times'] 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 '-',
|
'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 '-',
|
'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 '-'
|
'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'] == '-' else compare_level(flow_comp_data['service_level'], flow_item_data['service_level']),
|
'service_level': '-' if flow_comp_data['service_level'] == '-' or flow_item_data[
|
||||||
'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),
|
'service_level'] == '-' else compare_level(flow_comp_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),
|
flow_item_data['service_level']),
|
||||||
'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': '-' if flow_comp_data['stop_times'] == '-' or flow_item_data[
|
||||||
'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),
|
'stop_times'] == '-' else round(flow_comp_data['stop_times'] - flow_item_data['stop_times'], 2),
|
||||||
'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': '-' if flow_comp_data['high_park_percent'] == '-' or flow_item_data[
|
||||||
'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),
|
'high_park_percent'] == '-' else round(
|
||||||
'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'),
|
float(flow_comp_data['high_park_percent'].replace('%', '')) - float(
|
||||||
'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'),
|
flow_item_data['high_park_percent'].replace('%', '')), 2),
|
||||||
'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'),
|
'park_time': '-' if flow_comp_data['park_time'] == '-' or flow_item_data['park_time'] == '-' else round(
|
||||||
'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'),
|
flow_comp_data['park_time'] - flow_item_data['park_time'], 2),
|
||||||
'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': '-' if flow_comp_data['delay_time'] == '-' or flow_item_data[
|
||||||
'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')
|
'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] = {
|
flow_delay_datas[item_turn] = {
|
||||||
'item_data': flow_item_data,
|
'item_data': flow_item_data,
|
||||||
|
|
@ -158,7 +224,8 @@ 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 comp_inroad_delay_infos[key]['src_dir'],
|
'src_dir': inroad_delay_infos[key]['src_dir'] if 'src_dir' in inroad_delay_infos[key] else
|
||||||
|
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,
|
||||||
|
|
@ -199,4 +266,133 @@ def find_job_info(key, value_list):
|
||||||
# # 检查是否包含关键字
|
# # 检查是否包含关键字
|
||||||
# elif key in value['wave_name']:
|
# elif key in value['wave_name']:
|
||||||
# result.append(value)
|
# result.append(value)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def query_compare_data_export_excel(road_flow_delay_infos):
|
||||||
|
wb = Workbook()
|
||||||
|
sheet1 = wb.active
|
||||||
|
sheet1.title = "调度计划表" # 给第一个 sheet 命名
|
||||||
|
table_head = [
|
||||||
|
{"range": "A1:A2", "value": "路口名称"},
|
||||||
|
{"range": "B1:B2", "value": "进口道"},
|
||||||
|
{"range": "C1:C2", "value": "对比"},
|
||||||
|
{"range": "D1:D2", "value": "服务水平"},
|
||||||
|
{"range": "E1:F1", "value": "转向服务水平"},
|
||||||
|
{"range": "E2", "value": "左转", "width": 10},
|
||||||
|
{"range": "F2", "value": "直行", "width": 10},
|
||||||
|
{"range": "G1:G2", "value": "停车次数"},
|
||||||
|
{"range": "H1:I1", "value": "转向停车次数"},
|
||||||
|
{"range": "H2", "value": "左转"},
|
||||||
|
{"range": "I2", "value": "直行"},
|
||||||
|
{"range": "J1", "value": "多次停车率"},
|
||||||
|
# {"range": "K1:L1", "value": "转向多次停车率", "width": 20},
|
||||||
|
# {"range": "M1", "value": "行程时间(s)"},
|
||||||
|
# {"range": "N1:O1", "value": "延误时间(s)", "width": 20},
|
||||||
|
# {"range": "P1:Q1", "value": "转向延误时间(s)"},
|
||||||
|
# {"range": "L2", "value": "左转"},
|
||||||
|
# {"range": "M2", "value": "直行"},
|
||||||
|
# {"range": "N1:N2", "value": "平均速度(km/h)", "width": 20},
|
||||||
|
# {"range": "O1:P1", "value": "转向平均速度(km/h)"},
|
||||||
|
# {"range": "O2", "value": "左转"},
|
||||||
|
# {"range": "P2", "value": "直行"},
|
||||||
|
# {"range": "Q1:Q2", "value": "不停车速度(km/h)", "width": 20},
|
||||||
|
# {"range": "R1:S1", "value": "转向不停车速度"},
|
||||||
|
# {"range": "R2", "value": "左转"},
|
||||||
|
# {"range": "S2", "value": "直行"},
|
||||||
|
# {"range": "T1:T2", "value": "进口道流量占比","width": 20},
|
||||||
|
# {"range": "U1:W1", "value": "分流转向占比"},
|
||||||
|
# {"range": "U2", "value": "左转"},
|
||||||
|
# {"range": "V2", "value": "直行"},
|
||||||
|
# {"range": "W2", "value": "右转"},
|
||||||
|
# {"range": "X1:X2", "value": "出口道流量占比","width": 20},
|
||||||
|
# {"range": "Y1:AA1", "value": "汇入转向占比"},
|
||||||
|
# {"range": "Y2", "value": "左转"},
|
||||||
|
# {"range": "Z2", "value": "直行"},
|
||||||
|
# {"range": "AA2", "value": "右转"},
|
||||||
|
# {"range": "AB1:AB2", "value": "转向失衡系数","width": 20},
|
||||||
|
]
|
||||||
|
|
||||||
|
for item_head in table_head:
|
||||||
|
sheet1.merge_cells(item_head['range'])
|
||||||
|
cell = item_head['range'].split(":")[0]
|
||||||
|
sheet1[cell] = item_head['value']
|
||||||
|
sheet1[cell].alignment = Alignment(horizontal='center', vertical='center')
|
||||||
|
if item_head.get('width'):
|
||||||
|
sheet1.column_dimensions[cell[:-1]].width = item_head['width']
|
||||||
|
|
||||||
|
wb.save("test.xlsx")
|
||||||
|
exit(0)
|
||||||
|
src_dir_map = {}
|
||||||
|
for road, item_delay_infos in road_flow_delay_infos.items():
|
||||||
|
src_dir = item_delay_infos['src_dir']
|
||||||
|
if src_dir not in src_dir_map:
|
||||||
|
src_dir_map[src_dir] = []
|
||||||
|
src_dir_map[src_dir].append(srcDir_toStr(item_delay_infos['src_dir']))
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['service_level'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['service_level'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['service_level'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['stop_times'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['stop_times'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['stop_times'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['high_park_percent'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['high_park_percent'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['high_park_percent'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['delay_time'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['delay_time'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['delay_time'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['speed'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['speed'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['speed'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['move_speed'])
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][1]['move_speed'] if 1 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
item_delay_infos['flow_delays'][0]['move_speed'] if 0 in item_delay_infos['flow_delays'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['in_flow_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'in_flow_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['l_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'l_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['s_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
's_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['r_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'r_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['out_flow_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'out_flow_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['out_l_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'out_l_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['out_s_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'out_s_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(
|
||||||
|
road_flow_turn_rate[road]['out_r_rate'] if road in road_flow_turn_rate and road_flow_turn_rate[road][
|
||||||
|
'out_r_rate'] else '-')
|
||||||
|
src_dir_map[src_dir].append(item_delay_infos['imbalance_index'])
|
||||||
|
src_dir_data = list(src_dir_map.values())
|
||||||
|
for item_src_dir_data in src_dir_data:
|
||||||
|
sheet1.append(item_src_dir_data)
|
||||||
|
|
||||||
|
file_stream = io.BytesIO()
|
||||||
|
wb.save(file_stream)
|
||||||
|
file_stream.seek(0) # 将指针移到文件开头
|
||||||
|
return send_file(
|
||||||
|
file_stream,
|
||||||
|
mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||||
|
as_attachment=True,
|
||||||
|
download_name=f"路口诊断指标.xlsx")
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ def query_compare_data(params):
|
||||||
time_range = check_param(params, 'time_range')
|
time_range = check_param(params, 'time_range')
|
||||||
if not time_range:
|
if not time_range:
|
||||||
return json.dumps(make_common_res(8, '缺少时段范围,请选择时段范围'))
|
return json.dumps(make_common_res(8, '缺少时段范围,请选择时段范围'))
|
||||||
|
export = 1 if check_param(params, 'export') and params['export'] == 1 else 0
|
||||||
tp_start = int(str(time_range.split('-')[0]).split(':')[0]) * 100 + int(str(time_range.split('-')[0]).split(':')[1])
|
tp_start = int(str(time_range.split('-')[0]).split(':')[0]) * 100 + int(str(time_range.split('-')[0]).split(':')[1])
|
||||||
# tp_end = int(str(time_range.split('-')[1]).split(':')[0]) * 100 + int(str(time_range.split('-')[1]).split(':')[1])
|
# tp_end = int(str(time_range.split('-')[1]).split(':')[0]) * 100 + int(str(time_range.split('-')[1]).split(':')[1])
|
||||||
# if tp_end == 0:
|
# if tp_end == 0:
|
||||||
|
|
@ -86,6 +87,10 @@ def query_compare_data(params):
|
||||||
'next_cross_info': prev_cross_info,
|
'next_cross_info': prev_cross_info,
|
||||||
'road_flow_delay_infos': compared_inroad_delay_infos
|
'road_flow_delay_infos': compared_inroad_delay_infos
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# if export == 1:
|
||||||
|
# return query_compare_data_export_excel(compared_inroad_delay_infos)
|
||||||
|
|
||||||
return json.dumps(res, ensure_ascii=False)
|
return json.dumps(res, ensure_ascii=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -498,6 +498,7 @@ def auto_match_phase(params):
|
||||||
'max_green': item_cross_phase_info['max_green'],
|
'max_green': item_cross_phase_info['max_green'],
|
||||||
'min_green': item_cross_phase_info['min_green'],
|
'min_green': item_cross_phase_info['min_green'],
|
||||||
'phaseids': item_cross_phase_info['phases'],
|
'phaseids': item_cross_phase_info['phases'],
|
||||||
|
'phases_names': item_cross_phase_info['phase_name'],
|
||||||
'redyellow': item_cross_phase_info['redyellow'],
|
'redyellow': item_cross_phase_info['redyellow'],
|
||||||
'stage_duration': item_cross_phase_info['stage_duration'],
|
'stage_duration': item_cross_phase_info['stage_duration'],
|
||||||
'yellow': item_cross_phase_info['yellow'],
|
'yellow': item_cross_phase_info['yellow'],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue