修复创建任务时当任务类型为组内完成时任务信息保存异常

This commit is contained in:
wangxu 2026-04-07 15:54:14 +08:00
parent 8de4bd865c
commit 2c0e813881
2 changed files with 25 additions and 3 deletions

View File

@ -531,9 +531,29 @@ class TaskDbHelper(TableDbHelperBase):
logging.error(e) logging.error(e)
return False return False
def init_additional_info(self, task_no, nodeid, area_id): def init_additional_info(self, task_no, nodeid, area_id, cross_infos):
cross_values = []
for cross_info in cross_infos:
cross_values.append((task_no, cross_info['crossid'], cross_info['name'], cross_info['location']))
insert_additional_sql = "insert into task.greenwave_task_additional_detail (task_no, nodeid, area_id) values (%s, %s, %s)" % (task_no, nodeid, area_id) insert_additional_sql = "insert into task.greenwave_task_additional_detail (task_no, nodeid, area_id) values (%s, %s, %s)" % (task_no, nodeid, area_id)
return self.do_execute(insert_additional_sql) insert_cross_sql = """
insert into task.greenwave_task_cross_detail(task_no, crossid, cross_name, location) values (%s, %s, %s, %s)
"""
conn, cursor = self.connect()
try:
insert_additional_ret = cursor.execute(insert_additional_sql)
insert_cross_ret = cursor.executemany(insert_cross_sql, cross_values)
if insert_additional_ret == 1 and insert_cross_ret == len(cross_infos):
conn.commit()
return True
else:
conn.rollback()
return False
except Exception as e:
conn.rollback()
print(e)
logging.error(e)
return False
def async_wave_tp_id(self, wave_tp_info, task_tp_info, task_no, nodeid, area_id): def async_wave_tp_id(self, wave_tp_info, task_tp_info, task_no, nodeid, area_id):
# 补充同步绿波时段id到任务时段信息表中的逻辑 # 补充同步绿波时段id到任务时段信息表中的逻辑

View File

@ -589,7 +589,9 @@ def do_add_task(params):
res = make_common_res(-1, '绿波优化任务创建成功,但需求确认单信息保存失败,请反馈该信息至管理员') res = make_common_res(-1, '绿波优化任务创建成功,但需求确认单信息保存失败,请反馈该信息至管理员')
return json.dumps(res) return json.dumps(res)
else: else:
init_ret = db_task.init_additional_info(taskno, nodeid, area_id) cross_list = crossids.split(',')
cross_infos = db_tmnet.query_cross_infos(cross_list)
init_ret = db_task.init_additional_info(taskno, nodeid, area_id, cross_infos)
if not init_ret: if not init_ret:
logging.error(str(params) + ' do_add_task初始化任务信息失败!') logging.error(str(params) + ' do_add_task初始化任务信息失败!')
res = make_common_res(-1, '绿波优化任务创建成功,但初始化任务信息失败,请反馈该信息至管理员') res = make_common_res(-1, '绿波优化任务创建成功,但初始化任务信息失败,请反馈该信息至管理员')