From 8a14ae4bd224e76467610cbae8e936716b5bb3c8 Mon Sep 17 00:00:00 2001 From: wangxu <1318272526@qq.com> Date: Tue, 28 Apr 2026 18:38:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=BF=E6=B3=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=BB=E5=8A=A1=E6=B5=81=E7=A8=8B=E4=B8=AD=E5=AF=B9?= =?UTF-8?q?=E6=97=B6=E6=AE=B5=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91=E4=B8=8D?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=97=B6=E7=9A=84=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/task_worker.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/task_worker.py b/app/task_worker.py index 394f86f..bc4ceec 100644 --- a/app/task_worker.py +++ b/app/task_worker.py @@ -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):