提交问题诊断联调问题修复
This commit is contained in:
parent
549271b462
commit
9e5cebf19c
|
|
@ -8,6 +8,7 @@ import logging
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from google.protobuf.json_format import MessageToJson
|
from google.protobuf.json_format import MessageToJson
|
||||||
|
import random
|
||||||
|
|
||||||
import proto.xlcomm_pb2 as pb
|
import proto.xlcomm_pb2 as pb
|
||||||
from app.common_worker import *
|
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
|
l_num = road_delay_dict[roadid].delay_info.turn_ratio_1
|
||||||
s_num = road_delay_dict[roadid].delay_info.turn_ratio_0
|
s_num = road_delay_dict[roadid].delay_info.turn_ratio_0
|
||||||
r_num = road_delay_dict[roadid].delay_info.turn_ratio_2
|
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']
|
out_road_id = roads_dir_dict[dir]['out']
|
||||||
if out_road_id != '-' and out_road_id in outroad_info_dict.keys():
|
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
|
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_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_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
|
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] = {
|
road_flow_turn_rate[roadid] = {
|
||||||
'src_dir': dir,
|
'src_dir': dir,
|
||||||
'in_flow_rate': in_flow_rate,
|
'in_flow_rate': in_flow_rate,
|
||||||
|
|
@ -1634,7 +1639,10 @@ def get_flow_phase_detail(src_dir, turn_type_list, cross_phase):
|
||||||
schedule_suggestion = []
|
schedule_suggestion = []
|
||||||
need_src_flow = {dir_str_dict[src_dir] + int_turn_type2str[item]: 0 for item in turn_type_list}
|
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_name = item.schedule_name
|
||||||
|
schedule_week = item.schedule_week
|
||||||
|
scheduleid = item.scheduleid
|
||||||
tp_info = item.tps[0]
|
tp_info = item.tps[0]
|
||||||
|
tp_start = tp_info.tp_start
|
||||||
planid = tp_info.planid
|
planid = tp_info.planid
|
||||||
plan_name = tp_info.plan_name
|
plan_name = tp_info.plan_name
|
||||||
stage_list = tp_info.stage_list
|
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(
|
schedule_suggestion.append(
|
||||||
{
|
{
|
||||||
'phase': f"【{schedule_name}】{str(planid)}-{plan_name}",
|
'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())
|
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[max_src_dir]: 0,
|
||||||
dir_str_dict[min_src_dir]: 0
|
dir_str_dict[min_src_dir]: 0
|
||||||
}
|
}
|
||||||
|
schedule_week = item.schedule_week
|
||||||
|
scheduleid = item.scheduleid
|
||||||
tp_info = item.tps[0]
|
tp_info = item.tps[0]
|
||||||
|
tp_start = tp_info.tp_start
|
||||||
planid = tp_info.planid
|
planid = tp_info.planid
|
||||||
plan_name = tp_info.plan_name
|
plan_name = tp_info.plan_name
|
||||||
stage_list = tp_info.stage_list
|
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 = [
|
schedule_suggestion = [
|
||||||
{
|
{
|
||||||
'phase': f"【{schedule_name}】{str(planid)}-{plan_name}",
|
'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] + '进口',
|
'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]
|
src_cross[src_dir] = cross_info[0]
|
||||||
return src_cross
|
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