优化绿波优化任务流程中对时段校验逻辑不通过时的返回值

This commit is contained in:
wangxu 2026-04-28 18:38:11 +08:00
parent 4ab9a054c8
commit 8a14ae4bd2
1 changed files with 12 additions and 5 deletions

View File

@ -1819,8 +1819,15 @@ def update_greenwave_task_stage_info(params):
task_additional_info = db_task.query_wave_task_additional_info_sql(task_no, nodeid, area_id)
task_tp_info = db_task.query_wave_task_tp_info(task_no, nodeid, area_id)
wave_info = db_wave.query_wave_info(waveid)
if modify_stage != 1 and not verify_task_wave_tp(task_tp_info, waveid, wave_info['srcDir']):
return json.dumps(make_common_res(13, '时段校验失败,绿波时段必须包含需求确认单上的所有时段'))
wave_tp_info = db_wave.query_wave_tp_infos(waveid, wave_info['srcDir'])
conflict_tp_list = verify_task_wave_tp(task_tp_info, waveid, wave_info['srcDir'])
if modify_stage != 1 and len(conflict_tp_list) > 0:
res = make_common_res(13, '时段校验失败,绿波时段必须包含需求确认单上的所有时段')
res['data'] = {
'wave_tp_info': wave_tp_info,
'conflict_tp_info': conflict_tp_list
}
return json.dumps(res)
progress = check_param(params, 'progress')
if not progress:
return json.dumps(make_common_res(11, '缺少任务进度信息,请刷新后重试'))
@ -1833,7 +1840,6 @@ def update_greenwave_task_stage_info(params):
wave_crosses = db_wave.query_wave_crosses(waveid)
# 补充同步绿波时段表id信息的逻辑
wave_tp_info = db_wave.query_wave_tp_infos(waveid, wave_info['srcDir'])
async_tp_info_res = db_task.async_wave_tp_id(wave_tp_info, task_tp_info, task_no, nodeid, area_id)
if not async_tp_info_res:
return json.dumps(make_common_res(15, '当前绿波设置的运行时段与需求确认单中要求的协调时段不一致,请按需求确认单中要求调整'))
@ -1942,10 +1948,11 @@ def verify_task_wave_tp(task_tp_info, waveid, srcDir):
wave_tp_info = db_wave.query_wave_tp_infos(waveid, srcDir)
wave_info_dict = {row['tp_start'] + '-' + row['tp_end'] + '-' + row['weekday']: row for row in wave_tp_info}
task_tp_dict = {row['tp_start'] + '-' + row['tp_end'] + '-' + row['weekday']: row for row in task_tp_info}
conflict_tp_list = []
for tp_key in task_tp_dict:
if tp_key not in wave_info_dict:
return False
return True
conflict_tp_list.append(task_tp_dict[tp_key])
return conflict_tp_list
def query_usable_monitor_job_info(params):