增加巡检页面配时方案信息

Signed-off-by: yinzijian <yinzijian@haomozhixing.onaliyun.com>
This commit is contained in:
yinzijian 2025-11-21 12:04:09 +08:00
parent bdbcf274f9
commit 8be38e2a91
5 changed files with 108 additions and 7 deletions

View File

@ -269,7 +269,7 @@ class TmnetDbHelper(TableDbHelperBase):
nodeid, area_id, nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id),
nodeid, area_id, nodeid, area_id, nodeid, int(nodeid), int(area_id),
nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id),
nodeid, nodeid, nodeid, int(nodeid), int(area_id)))
nodeid, area_id, nodeid, int(nodeid), int(area_id)))
result = cursor.fetchall()
self.close(conn, cursor)
return result, None

View File

@ -7,6 +7,7 @@ import grpc
from app.global_source import g_config
from google.protobuf.json_format import MessageToDict
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../proto')))
from proto import phase_server_pb2_grpc, phase_server_pb2
@ -146,11 +147,11 @@ def QueryCrossPhaseDiagnosis(citycode: int, crossid: str, date_list: List, tp: s
stub, channel = channel_stub()
try:
request_params = phase_server_pb2.CrossPhaseDiagnosisRequest(citycode=citycode, crossid=crossid,
date_list=date_list, tp=tp, area_id=area_id)
date_list=date_list, tp=tp, area_id=area_id)
response = stub.CrossPhaseDiagnosis(request_params, timeout=30)
if response.code != 0:
raise Exception(response.msg)
data = MessageToDict(response.data, preserving_proto_field_name=True)
if len(data) > 0:
data['total_num'] = len(data['values'])
@ -159,7 +160,8 @@ def QueryCrossPhaseDiagnosis(citycode: int, crossid: str, date_list: List, tp: s
return None, e
finally:
channel.close()
def QueryCrossPhaseByCity(citycode: int):
"""
根据城市ID查询有配时方案路口ID
@ -175,3 +177,23 @@ def QueryCrossPhaseByCity(citycode: int):
return [], e
finally:
channel.close()
def QueryCrossPhaseTpStatistics(citycode: int, area_id: int, schedule_week: str, date_list: List[str]):
"""
统计城市配时时段
"""
stub, channel = channel_stub()
try:
request_params = phase_server_pb2.CrossPhaseStatisticsRequest(citycode=citycode,
area_id=area_id,
schedule_week=schedule_week,
date_list=date_list,)
response = stub.CrossPhaseStatistics(request_params, timeout=30)
if response.code != 0:
raise Exception(response.msg)
return response, None
except Exception as e:
return None, e
finally:
channel.close()

View File

@ -26,6 +26,8 @@ service PhaseService {
rpc CrossPhaseDiagnosis (CrossPhaseDiagnosisRequest) returns (CrossPhaseDiagnosisResponse);
//ID查询路口配时方案相关信息
rpc CrossPhaseByCity (CrossPhaseByCityRequest) returns (CrossPhaseByCityResponse);
//
rpc CrossPhaseStatistics (CrossPhaseStatisticsRequest) returns (CrossPhaseStatisticsResponse);
}
message EmptyRequest {}
@ -335,4 +337,29 @@ message CrossPhaseByCityResponse {
int32 code = 1;
string msg = 2;
repeated string data = 3;
}
message CrossPhaseStatisticsRequest {
int32 citycode = 1;
int32 area_id = 2;
string schedule_week = 3;
repeated string date_list = 4;
}
message CrossPhaseStatisticsResponse {
int32 code = 1;
string msg = 2;
List data = 3;
message List {
int32 cross_phase_num = 1; //
int32 cross_update_num = 2; //
float avg_tp_num = 3; //
repeated item_tps_list tp_num_detail = 4; //
}
message item_tps_list {
string range = 1; //
int32 value = 2; //
}
}

File diff suppressed because one or more lines are too long

View File

@ -94,6 +94,11 @@ class PhaseServiceStub(object):
request_serializer=phase__server__pb2.CrossPhaseByCityRequest.SerializeToString,
response_deserializer=phase__server__pb2.CrossPhaseByCityResponse.FromString,
_registered_method=True)
self.CrossPhaseStatistics = channel.unary_unary(
'/phase_server.PhaseService/CrossPhaseStatistics',
request_serializer=phase__server__pb2.CrossPhaseStatisticsRequest.SerializeToString,
response_deserializer=phase__server__pb2.CrossPhaseStatisticsResponse.FromString,
_registered_method=True)
class PhaseServiceServicer(object):
@ -183,6 +188,13 @@ class PhaseServiceServicer(object):
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def CrossPhaseStatistics(self, request, context):
"""路口巡检城市配时方案统计
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def add_PhaseServiceServicer_to_server(servicer, server):
rpc_method_handlers = {
@ -246,6 +258,11 @@ def add_PhaseServiceServicer_to_server(servicer, server):
request_deserializer=phase__server__pb2.CrossPhaseByCityRequest.FromString,
response_serializer=phase__server__pb2.CrossPhaseByCityResponse.SerializeToString,
),
'CrossPhaseStatistics': grpc.unary_unary_rpc_method_handler(
servicer.CrossPhaseStatistics,
request_deserializer=phase__server__pb2.CrossPhaseStatisticsRequest.FromString,
response_serializer=phase__server__pb2.CrossPhaseStatisticsResponse.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'phase_server.PhaseService', rpc_method_handlers)
@ -580,3 +597,30 @@ class PhaseService(object):
timeout,
metadata,
_registered_method=True)
@staticmethod
def CrossPhaseStatistics(request,
target,
options=(),
channel_credentials=None,
call_credentials=None,
insecure=False,
compression=None,
wait_for_ready=None,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(
request,
target,
'/phase_server.PhaseService/CrossPhaseStatistics',
phase__server__pb2.CrossPhaseStatisticsRequest.SerializeToString,
phase__server__pb2.CrossPhaseStatisticsResponse.FromString,
options,
channel_credentials,
insecure,
call_credentials,
compression,
wait_for_ready,
timeout,
metadata,
_registered_method=True)