新增城市配时方案更新和查询

Signed-off-by: yinzijian <yinzijian@haomozhixing.onaliyun.com>
This commit is contained in:
yinzijian 2025-11-25 10:50:31 +08:00
parent 8be38e2a91
commit e15bbd2ef1
4 changed files with 196 additions and 6 deletions

View File

@ -197,3 +197,43 @@ def QueryCrossPhaseTpStatistics(citycode: int, area_id: int, schedule_week: str,
return None, e
finally:
channel.close()
def ModifyCrossPhaseDiagnosis(crossid: str, citycode: int, area_id: int):
"""
更新路口配时方案诊断数据
"""
stub, channel = channel_stub()
try:
request_params = phase_server_pb2.UpdateCrossPhaseDiagnosisRequest(crossid=crossid,
citycode=citycode,
area_id=area_id)
response = stub.UpdateCrossPhaseDiagnosis(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()
def GetCrossPhaseDiagnosis(citycode: int, area_id: int, schedule_week: str, tp: str):
"""
根据城市ID查询配时方案诊断
schedule_week = '1,2,3,4,5'
tp = '07:00-07:20'
"""
stub, channel = channel_stub()
try:
request_params = phase_server_pb2.CrossPhaseDiagnosisByCityRequest(citycode=citycode,
area_id=area_id, schedule_week=schedule_week,
tp=tp)
response = stub.CrossPhaseDiagnosisByCity(request_params, timeout=30)
if response.code != 0:
raise Exception(response.msg)
return list(response.data), None
except Exception as e:
return None, e
finally:
channel.close()

View File

@ -28,6 +28,10 @@ service PhaseService {
rpc CrossPhaseByCity (CrossPhaseByCityRequest) returns (CrossPhaseByCityResponse);
//
rpc CrossPhaseStatistics (CrossPhaseStatisticsRequest) returns (CrossPhaseStatisticsResponse);
//
rpc UpdateCrossPhaseDiagnosis (UpdateCrossPhaseDiagnosisRequest) returns (UpdateCrossPhaseDiagnosisResponse);
//
rpc CrossPhaseDiagnosisByCity (CrossPhaseDiagnosisByCityRequest) returns (CrossPhaseDiagnosisByCityResponse);
}
message EmptyRequest {}
@ -344,7 +348,6 @@ message CrossPhaseStatisticsRequest {
int32 area_id = 2;
string schedule_week = 3;
repeated string date_list = 4;
}
message CrossPhaseStatisticsResponse {
@ -363,3 +366,50 @@ message CrossPhaseStatisticsResponse {
int32 value = 2; //
}
}
message UpdateCrossPhaseDiagnosisRequest {
string crossid = 1;
int32 citycode = 2;
int32 area_id = 3;
}
message UpdateCrossPhaseDiagnosisResponse {
int32 code = 1;
string msg = 2;
}
message CrossPhaseDiagnosisByCityRequest {
int32 citycode = 1;
int32 area_id = 2;
string schedule_week= 3;
string tp = 4;
}
message CrossPhaseDiagnosisByCityResponse {
int32 code = 1;
string msg = 2;
repeated List data = 3;
message List {
string name = 1; //
int32 total_num = 2; //
repeated item_problems problems = 3; //
}
message item_problems {
string crossid = 1; //ID
string cross_name = 2; //
string schedule_name = 3; //
string schedule_week = 4; //
int32 scheduleid = 5; //
string tp = 6; //
int32 tp_num = 7; //
int32 planid = 8; //
string plan_name = 9; //
int32 stage_num = 10; //
int32 cycle = 11; //
string shaped_mode = 12; //
string crosswalk_phase = 13; //
string crosswalk_green = 14; //绿
}
}

File diff suppressed because one or more lines are too long

View File

@ -99,6 +99,16 @@ class PhaseServiceStub(object):
request_serializer=phase__server__pb2.CrossPhaseStatisticsRequest.SerializeToString,
response_deserializer=phase__server__pb2.CrossPhaseStatisticsResponse.FromString,
_registered_method=True)
self.UpdateCrossPhaseDiagnosis = channel.unary_unary(
'/phase_server.PhaseService/UpdateCrossPhaseDiagnosis',
request_serializer=phase__server__pb2.UpdateCrossPhaseDiagnosisRequest.SerializeToString,
response_deserializer=phase__server__pb2.UpdateCrossPhaseDiagnosisResponse.FromString,
_registered_method=True)
self.CrossPhaseDiagnosisByCity = channel.unary_unary(
'/phase_server.PhaseService/CrossPhaseDiagnosisByCity',
request_serializer=phase__server__pb2.CrossPhaseDiagnosisByCityRequest.SerializeToString,
response_deserializer=phase__server__pb2.CrossPhaseDiagnosisByCityResponse.FromString,
_registered_method=True)
class PhaseServiceServicer(object):
@ -195,6 +205,20 @@ class PhaseServiceServicer(object):
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def UpdateCrossPhaseDiagnosis(self, request, context):
"""更新单路口配时方案诊断数据
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def CrossPhaseDiagnosisByCity(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 = {
@ -263,6 +287,16 @@ def add_PhaseServiceServicer_to_server(servicer, server):
request_deserializer=phase__server__pb2.CrossPhaseStatisticsRequest.FromString,
response_serializer=phase__server__pb2.CrossPhaseStatisticsResponse.SerializeToString,
),
'UpdateCrossPhaseDiagnosis': grpc.unary_unary_rpc_method_handler(
servicer.UpdateCrossPhaseDiagnosis,
request_deserializer=phase__server__pb2.UpdateCrossPhaseDiagnosisRequest.FromString,
response_serializer=phase__server__pb2.UpdateCrossPhaseDiagnosisResponse.SerializeToString,
),
'CrossPhaseDiagnosisByCity': grpc.unary_unary_rpc_method_handler(
servicer.CrossPhaseDiagnosisByCity,
request_deserializer=phase__server__pb2.CrossPhaseDiagnosisByCityRequest.FromString,
response_serializer=phase__server__pb2.CrossPhaseDiagnosisByCityResponse.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'phase_server.PhaseService', rpc_method_handlers)
@ -624,3 +658,57 @@ class PhaseService(object):
timeout,
metadata,
_registered_method=True)
@staticmethod
def UpdateCrossPhaseDiagnosis(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/UpdateCrossPhaseDiagnosis',
phase__server__pb2.UpdateCrossPhaseDiagnosisRequest.SerializeToString,
phase__server__pb2.UpdateCrossPhaseDiagnosisResponse.FromString,
options,
channel_credentials,
insecure,
call_credentials,
compression,
wait_for_ready,
timeout,
metadata,
_registered_method=True)
@staticmethod
def CrossPhaseDiagnosisByCity(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/CrossPhaseDiagnosisByCity',
phase__server__pb2.CrossPhaseDiagnosisByCityRequest.SerializeToString,
phase__server__pb2.CrossPhaseDiagnosisByCityResponse.FromString,
options,
channel_credentials,
insecure,
call_credentials,
compression,
wait_for_ready,
timeout,
metadata,
_registered_method=True)