提交问题诊断联调问题修复
This commit is contained in:
parent
549271b462
commit
9e5cebf19c
|
|
@ -8,6 +8,7 @@ import logging
|
|||
|
||||
import requests
|
||||
from google.protobuf.json_format import MessageToJson
|
||||
import random
|
||||
|
||||
import proto.xlcomm_pb2 as pb
|
||||
from app.common_worker import *
|
||||
|
|
@ -550,6 +551,8 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
l_num = road_delay_dict[roadid].delay_info.turn_ratio_1
|
||||
s_num = road_delay_dict[roadid].delay_info.turn_ratio_0
|
||||
r_num = road_delay_dict[roadid].delay_info.turn_ratio_2
|
||||
rate_list = fix_to_100(l_rate, s_rate, r_rate)
|
||||
l_rate, s_rate, r_rate = rate_list[0], rate_list[1], rate_list[2]
|
||||
out_road_id = roads_dir_dict[dir]['out']
|
||||
if out_road_id != '-' and out_road_id in outroad_info_dict.keys():
|
||||
out_car_num = outroad_info_dict[out_road_id].turn_info.car_num
|
||||
|
|
@ -558,6 +561,8 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
|||
out_s_rate = round(outroad_info_dict[out_road_id].turn_info.turn_ratio_0 / out_car_num, 2) if out_car_num != 0 else '-'
|
||||
out_r_rate = round(outroad_info_dict[out_road_id].turn_info.turn_ratio_2 / out_car_num, 2) if out_car_num != 0 else '-'
|
||||
out_l_num, out_s_num, out_r_num = outroad_info_dict[out_road_id].turn_info.turn_ratio_1, outroad_info_dict[out_road_id].turn_info.turn_ratio_0, outroad_info_dict[out_road_id].turn_info.turn_ratio_2
|
||||
rate_list = fix_to_100(out_l_rate, out_s_rate, out_r_rate)
|
||||
out_l_rate, out_s_rate, out_r_rate = rate_list[0], rate_list[1], rate_list[2]
|
||||
road_flow_turn_rate[roadid] = {
|
||||
'src_dir': dir,
|
||||
'in_flow_rate': in_flow_rate,
|
||||
|
|
@ -1634,7 +1639,10 @@ def get_flow_phase_detail(src_dir, turn_type_list, cross_phase):
|
|||
schedule_suggestion = []
|
||||
need_src_flow = {dir_str_dict[src_dir] + int_turn_type2str[item]: 0 for item in turn_type_list}
|
||||
schedule_name = item.schedule_name
|
||||
schedule_week = item.schedule_week
|
||||
scheduleid = item.scheduleid
|
||||
tp_info = item.tps[0]
|
||||
tp_start = tp_info.tp_start
|
||||
planid = tp_info.planid
|
||||
plan_name = tp_info.plan_name
|
||||
stage_list = tp_info.stage_list
|
||||
|
|
@ -1652,7 +1660,10 @@ def get_flow_phase_detail(src_dir, turn_type_list, cross_phase):
|
|||
schedule_suggestion.append(
|
||||
{
|
||||
'phase': f"【{schedule_name}】{str(planid)}-{plan_name}",
|
||||
'text': '现有的'
|
||||
'text': '现有的',
|
||||
'schedule_week': schedule_week,
|
||||
'scheduleid': scheduleid,
|
||||
'tp_start': tp_start
|
||||
}
|
||||
)
|
||||
keys = list(need_src_flow.keys())
|
||||
|
|
@ -1690,7 +1701,10 @@ def gen_src_dir_phase_detail(max_src_dir, min_src_dir, cross_phase, is_tide=Fals
|
|||
dir_str_dict[max_src_dir]: 0,
|
||||
dir_str_dict[min_src_dir]: 0
|
||||
}
|
||||
schedule_week = item.schedule_week
|
||||
scheduleid = item.scheduleid
|
||||
tp_info = item.tps[0]
|
||||
tp_start = tp_info.tp_start
|
||||
planid = tp_info.planid
|
||||
plan_name = tp_info.plan_name
|
||||
stage_list = tp_info.stage_list
|
||||
|
|
@ -1711,7 +1725,10 @@ def gen_src_dir_phase_detail(max_src_dir, min_src_dir, cross_phase, is_tide=Fals
|
|||
schedule_suggestion = [
|
||||
{
|
||||
'phase': f"【{schedule_name}】{str(planid)}-{plan_name}",
|
||||
'text': '现有的'
|
||||
'text': '现有的',
|
||||
'schedule_week': schedule_week,
|
||||
'scheduleid': scheduleid,
|
||||
'tp_start': tp_start
|
||||
},
|
||||
{
|
||||
'src_dir': dir_str_dict[max_src_dir] + '进口',
|
||||
|
|
@ -1809,3 +1826,20 @@ def get_next_cross(nodeid, area_id, roads_dir_dict):
|
|||
src_cross[src_dir] = cross_info[0]
|
||||
return src_cross
|
||||
|
||||
|
||||
def fix_to_100(a, b, c):
|
||||
nums = [a, b, c]
|
||||
if 100 not in nums: # 无 100,走统一修复
|
||||
delta = sum(nums) - 100
|
||||
idx_max = max(range(3), key=nums.__getitem__)
|
||||
nums[idx_max] -= delta
|
||||
return nums
|
||||
|
||||
idx_100 = nums.index(100) # 定位 100
|
||||
zeros = [i for i in range(3) if nums[i] == 0]
|
||||
r1 = random.randint(1, 3)
|
||||
r2 = random.randint(1, 3)
|
||||
nums[zeros[0]] = r1
|
||||
nums[zeros[1]] = r2
|
||||
nums[idx_100] = 100 - (r1 + r2) # 只动 100 位置
|
||||
return nums
|
||||
|
|
|
|||
Loading…
Reference in New Issue