调整路口指标变化趋势中小时级数据获取逻辑

This commit is contained in:
wangxu 2025-11-05 18:04:11 +08:00
parent 0fe130e6c9
commit 6fbee8b7d5
2 changed files with 17 additions and 8 deletions

View File

@ -246,9 +246,9 @@ def query_cross_index_trend_controller(params):
area_list = [int(row['area_id']) for row in area_list] area_list = [int(row['area_id']) for row in area_list]
if int(area_id) not in area_list: if int(area_id) not in area_list:
return json.dumps(make_common_res(6, '用户信息异常')) return json.dumps(make_common_res(6, '用户信息异常'))
query_date = check_param(params, 'query_date') date_list = check_param(params, 'date_list')
if not query_date: if not date_list or len(date_list) < 1:
return json.dumps(make_common_res(7, '缺少查询日期,请选择查询日期')) return json.dumps(make_common_res(7, '缺少日期参数,请最少选择一天作为查询日期'))
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, '缺少时段范围,请选择时段范围'))
@ -262,7 +262,6 @@ def query_cross_index_trend_controller(params):
elif query_type == 2: elif query_type == 2:
tp_start = 'h' + str(tp_start) tp_start = 'h' + str(tp_start)
prev_date = (datetime.strptime(query_date, '%Y%m%d') - timedelta(days=1)).strftime('%Y%m%d')
month_ago_date = (datetime.now().date() - timedelta(days=30)).strftime('%Y%m%d') month_ago_date = (datetime.now().date() - timedelta(days=30)).strftime('%Y%m%d')
now_prev_date = (datetime.now().date() - timedelta(days=1)).strftime('%Y%m%d') now_prev_date = (datetime.now().date() - timedelta(days=1)).strftime('%Y%m%d')
month_date_list = generate_date_range(month_ago_date, now_prev_date) month_date_list = generate_date_range(month_ago_date, now_prev_date)
@ -276,9 +275,19 @@ def query_cross_index_trend_controller(params):
roads_dir_dict = gen_road_dir_dict(cross_ledger_info) roads_dir_dict = gen_road_dir_dict(cross_ledger_info)
# 查询前一天的小时级别数据 # 查询前一天的小时级别数据
hours_data = db_cross.query_cross_delay_whole_day_hours(crossid, nodeid, query_date) hours_data_list = []
hour_pb_list = parse_data2pb(hours_data) for tp in ['h0', 'h100', 'h200', 'h300', 'h400', 'h500', 'h600', 'h700', 'h800', 'h900', 'h1000', 'h1100', 'h1200', 'h1300', 'h1400', 'h1500', 'h1600', 'h1700', 'h1800', 'h1900', 'h2000', 'h2100', 'h2200', 'h2300']:
hours_data_dict = parse_single_cross_delay_info(crossid, nodeid, hour_pb_list, 'hour', roads_dir_dict) hour_data = db_cross.query_cross_delay_info(crossid, nodeid, date_list, tp)
hour_cross_delay_info = gen_avg_cross_delay_pb(hour_data)
hours_data_list.append({
'day': date_list[0] + '-' + date_list[-1],
'tp_start': tp_start,
'tp_end': tp_end,
'data': hour_cross_delay_info
})
# hours_data = db_cross.query_cross_delay_whole_day_hours(crossid, nodeid, query_date)
# hour_pb_list = parse_data2pb(hours_data)
hours_data_dict = parse_single_cross_delay_info(crossid, nodeid, hours_data_list, 'hour', roads_dir_dict)
hours_data_with_change_rate = calc_single_day_delay_info_change_rate(hours_data_dict) hours_data_with_change_rate = calc_single_day_delay_info_change_rate(hours_data_dict)
# 查询近30天的数据 # 查询近30天的数据
days_data = db_cross.query_cross_delay_info(crossid, nodeid, month_date_list, tp_start) days_data = db_cross.query_cross_delay_info(crossid, nodeid, month_date_list, tp_start)

View File

@ -393,7 +393,7 @@ def gen_cross_static_info(crossid, nodeid, area_id, cross_ledger_info_dict):
'reversible_lanes_info': reversible_lanes_info, 'reversible_lanes_info': reversible_lanes_info,
'outside_left': outside_left 'outside_left': outside_left
} }
lane_nums_dict[dir] = [[dir_str_dict[dir] + '进口', roads[dir]['entry_lane_num'], dir_str_dict[src_reverse[dir]] + '出口', roads[src_reverse[dir]]['exit_lane_num']] if src_reverse[dir] in roads.keys() else '-'] lane_nums_dict[dir] = [[dir_str_dict[dir] + '进口', roads[dir]['entry_lane_num'], dir_str_dict[src_reverse[dir]] + '出口', roads[src_reverse[dir]]['exit_lane_num'] if src_reverse[dir] in roads.keys() else '-']]
if dir_length != '-': if dir_length != '-':
sum_length += dir_length sum_length += dir_length
length_info[dir] = dir_length length_info[dir] = dir_length