Compare commits
12 Commits
16f549bf80
...
7a9d76ad2f
| Author | SHA1 | Date |
|---|---|---|
|
|
7a9d76ad2f | |
|
|
84eefa68e5 | |
|
|
4c2411e9e0 | |
|
|
01f26913bd | |
|
|
7c19f1b5ea | |
|
|
8d2a1d1533 | |
|
|
7843ff013b | |
|
|
5dc0b3489b | |
|
|
357e49700f | |
|
|
f97b66d8c5 | |
|
|
6e19cc6383 | |
|
|
30de6e25c6 |
|
|
@ -739,7 +739,6 @@ def calc_inroad_imbalance_index(inroad_delay_pb_list):
|
||||||
return tmp_list
|
return tmp_list
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _classify_angles_to_turn_types(angles, is_merge=False):
|
def _classify_angles_to_turn_types(angles, is_merge=False):
|
||||||
if not angles:
|
if not angles:
|
||||||
return set()
|
return set()
|
||||||
|
|
@ -805,11 +804,7 @@ def gen_flow_turn_rate_index(avg_cross_delay_info, roads_dir_dict):
|
||||||
continue
|
continue
|
||||||
angle = g_roadnet.calc_road_turn_angle_without_abs_split(inroad_info, outroad)
|
angle = g_roadnet.calc_road_turn_angle_without_abs_split(inroad_info, outroad)
|
||||||
angles.append(angle)
|
angles.append(angle)
|
||||||
turn_types = _classify_angles_to_turn_types(angles, is_merge=False)
|
split_turns_precomputed[roadid] = _classify_angles_to_turn_types(angles, is_merge=False)
|
||||||
if 0 not in turn_types:
|
|
||||||
logging.warning(f'[DEBUG] crossid={avg_cross_delay_info.crossid} inroad={roadid} dir={dir_key} '
|
|
||||||
f'angles={[round(a, 1) for a in angles]} -> turn_types={turn_types} (NO STRAIGHT!)')
|
|
||||||
split_turns_precomputed[roadid] = turn_types
|
|
||||||
|
|
||||||
# ---- 预处理:为所有出口道预计算 merge_turns_set ----
|
# ---- 预处理:为所有出口道预计算 merge_turns_set ----
|
||||||
merge_turns_precomputed = {}
|
merge_turns_precomputed = {}
|
||||||
|
|
@ -1854,7 +1849,7 @@ def gen_cross_imbalance_problems(road_delay_infos, roads_dir_dict, cross_phase):
|
||||||
max_src = road_src_dict[max_roadid] if max_roadid in road_src_dict else None
|
max_src = road_src_dict[max_roadid] if max_roadid in road_src_dict else None
|
||||||
min_src = road_src_dict[min_roadid] if min_roadid in road_src_dict else None
|
min_src = road_src_dict[min_roadid] if min_roadid in road_src_dict else None
|
||||||
if max_src is None or min_src is None:
|
if max_src is None or min_src is None:
|
||||||
return detail, suggestion, total_num
|
return detail, suggestion, total_num, problem_info_detail
|
||||||
rate = int(round(max_stop_times_road.delay_info.stop_times, 2) / round(min_stop_times_road.delay_info.stop_times, 2) * 100) if min_stop_times_road.delay_info.stop_times > 0 else 0
|
rate = int(round(max_stop_times_road.delay_info.stop_times, 2) / round(min_stop_times_road.delay_info.stop_times, 2) * 100) if min_stop_times_road.delay_info.stop_times > 0 else 0
|
||||||
total_num = 1
|
total_num = 1
|
||||||
detail = [
|
detail = [
|
||||||
|
|
|
||||||
|
|
@ -340,6 +340,7 @@ def gen_cross_delay_info_list(userid, area_id, nodeid, date_type, cross_report_p
|
||||||
all_cross_index_dict[crossid]['cross_model'] = cross_model_str
|
all_cross_index_dict[crossid]['cross_model'] = cross_model_str
|
||||||
all_cross_index_dict[crossid]['internet'] = internet_name
|
all_cross_index_dict[crossid]['internet'] = internet_name
|
||||||
all_cross_index_dict[crossid]['slc_company'] = slc_company_name
|
all_cross_index_dict[crossid]['slc_company'] = slc_company_name
|
||||||
|
all_cross_index_dict[crossid]['division'] = routing_crosses_dict[crossid]['division']
|
||||||
all_cross_index_dict[crossid]['worst_service_level'] = 'A'
|
all_cross_index_dict[crossid]['worst_service_level'] = 'A'
|
||||||
|
|
||||||
delay_infos = all_cross_index_dict[crossid]['delay_infos']
|
delay_infos = all_cross_index_dict[crossid]['delay_infos']
|
||||||
|
|
@ -1693,6 +1694,7 @@ def gen_cross_problem_detail(routing_crosses, high_park_problems, too_many_stop_
|
||||||
cross_name = routing_crosses[crossid]['name']
|
cross_name = routing_crosses[crossid]['name']
|
||||||
company = routing_crosses[crossid]['company']
|
company = routing_crosses[crossid]['company']
|
||||||
location = routing_crosses[crossid]['location']
|
location = routing_crosses[crossid]['location']
|
||||||
|
division = routing_crosses[crossid]['division']
|
||||||
high_park, stop_times_problem, inroad_problem, turn_problem, tide, phase, phase_desc, phase_color, phase_final_state = [], [], [], [], [], [], [], 9, 9
|
high_park, stop_times_problem, inroad_problem, turn_problem, tide, phase, phase_desc, phase_color, phase_final_state = [], [], [], [], [], [], [], 9, 9
|
||||||
inroad_turnlane, unmatched_lane_num, sample_sch, sample_tp, short_tp, insufficient_yellow, unreasonable_red, big_cycle, small_cycle, insufficient_ped_time = [], [], [], [], [], [], [], [], [], []
|
inroad_turnlane, unmatched_lane_num, sample_sch, sample_tp, short_tp, insufficient_yellow, unreasonable_red, big_cycle, small_cycle, insufficient_ped_time = [], [], [], [], [], [], [], [], [], []
|
||||||
if crossid in high_park_problems['problems'].keys():
|
if crossid in high_park_problems['problems'].keys():
|
||||||
|
|
@ -1845,6 +1847,7 @@ def gen_cross_problem_detail(routing_crosses, high_park_problems, too_many_stop_
|
||||||
'cross_name': cross_name,
|
'cross_name': cross_name,
|
||||||
'location': location,
|
'location': location,
|
||||||
'company': company,
|
'company': company,
|
||||||
|
'division': division,
|
||||||
'high_park_problem': high_park,
|
'high_park_problem': high_park,
|
||||||
'too_many_stop_times': stop_times_problem,
|
'too_many_stop_times': stop_times_problem,
|
||||||
'imbalance_inroad': inroad_problem,
|
'imbalance_inroad': inroad_problem,
|
||||||
|
|
|
||||||
|
|
@ -2088,7 +2088,7 @@ def upload_greenwave_task_stage_file(params):
|
||||||
file_info = request.files[key]
|
file_info = request.files[key]
|
||||||
name = file_info.filename
|
name = file_info.filename
|
||||||
file_stream = file_info.stream
|
file_stream = file_info.stream
|
||||||
cos_path = f'user/ledger/{nodeid}/{area_id}/{task_no}'
|
cos_path = f'user/cross_doctor/task_file/{nodeid}/{area_id}/{task_no}'
|
||||||
folder_manager.ensure_folder(cos_path)
|
folder_manager.ensure_folder(cos_path)
|
||||||
cos_key = f'{cos_path}/{name}'
|
cos_key = f'{cos_path}/{name}'
|
||||||
cos_client.put_object(Bucket=g_cos_bucket, Key=cos_key, Body=file_stream)
|
cos_client.put_object(Bucket=g_cos_bucket, Key=cos_key, Body=file_stream)
|
||||||
|
|
|
||||||
|
|
@ -508,18 +508,19 @@ class TmnetDbHelper(TableDbHelperBase):
|
||||||
if(t2.location is not null, t2.location, t1.location) as location,
|
if(t2.location is not null, t2.location, t1.location) as location,
|
||||||
if(t2.internet is not null, t2.internet, t1.internet) as internet,
|
if(t2.internet is not null, t2.internet, t1.internet) as internet,
|
||||||
if(t2.slc_company is not null, t2.slc_company, t1.slc_company) as slc_company,
|
if(t2.slc_company is not null, t2.slc_company, t1.slc_company) as slc_company,
|
||||||
|
if(t2.division is not null, t2.division, t1.division) as division,
|
||||||
if(t2.cross_model is not null and t1.cross_model is not null and t2.cross_model != t1.cross_model, t2.cross_model, t1.cross_model) as cross_model,
|
if(t2.cross_model is not null and t1.cross_model is not null and t2.cross_model != t1.cross_model, t2.cross_model, t1.cross_model) as cross_model,
|
||||||
t1.nodeid,
|
t1.nodeid,
|
||||||
t1.area_id
|
t1.area_id
|
||||||
from
|
from
|
||||||
(select crossid, name, location, nodeid, area_id, cross_no, company,internet, slc_company, cross_model from `cross` where nodeid = %s and area_id = %s) t1
|
(select crossid, name, location, nodeid, area_id, cross_no, company,internet, slc_company, division, cross_model from `cross` where nodeid = %s and area_id = %s) t1
|
||||||
left join
|
left join
|
||||||
(select crossid, name, location, nodeid, area_id, cross_no, company,internet, slc_company, cross_model from `cross_ledger_update_info` where nodeid = %s and area_id = %s ) t2 on t1.crossid = t2.crossid
|
(select crossid, name, location, nodeid, area_id, cross_no, company,internet, slc_company, division, cross_model from `cross_ledger_update_info` where nodeid = %s and area_id = %s ) t2 on t1.crossid = t2.crossid
|
||||||
where t1.area_id = %s
|
where t1.area_id = %s
|
||||||
and t1.nodeid = %s
|
and t1.nodeid = %s
|
||||||
and t1.crossid in (select crossid from bound_crosses where area_id = %s and nodeid = %s and is_routing_inspection = 1)
|
and t1.crossid in (select crossid from bound_crosses where area_id = %s and nodeid = %s and is_routing_inspection = 1)
|
||||||
union all
|
union all
|
||||||
select crossid, name, location, nodeid, area_id, cross_no, company, internet, slc_company, cross_model from user_defined_cross where area_id = %s and nodeid = %s and crossid in (select crossid from bound_crosses where area_id = %s and nodeid = %s and is_routing_inspection = 1)
|
select crossid, name, location, nodeid, area_id, cross_no, company, internet, slc_company, division, cross_model from user_defined_cross where area_id = %s and nodeid = %s and crossid in (select crossid from bound_crosses where area_id = %s and nodeid = %s and is_routing_inspection = 1)
|
||||||
""" % (nodeid, area_id, nodeid, area_id, area_id, nodeid, area_id, nodeid, area_id, nodeid, area_id, nodeid)
|
""" % (nodeid, area_id, nodeid, area_id, area_id, nodeid, area_id, nodeid, area_id, nodeid, area_id, nodeid)
|
||||||
return self.do_select(sql)
|
return self.do_select(sql)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import json
|
||||||
import gzip
|
import gzip
|
||||||
from flask import Flask, request, jsonify, redirect, Response
|
from flask import Flask, request, jsonify, redirect, Response
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
|
|
||||||
|
from app.cross_eva_views import app
|
||||||
from app.models import *
|
from app.models import *
|
||||||
from app.task_worker import *
|
from app.task_worker import *
|
||||||
from app.cross_eva_views import *
|
from app.cross_eva_views import *
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue