Browse Source

多作业任务bug修复

liweiquan 2 years ago
parent
commit
29624c47ab
1 changed files with 4 additions and 2 deletions
  1. 4 2
      app/services/jm_job.py

+ 4 - 2
app/services/jm_job.py

@@ -63,10 +63,11 @@ def jm_job_update_task(jm_homework: models.JmHomework, relation_list, db: Sessio
 
 def jm_job_create_job(jm_job_info: models.JmJobInfo, nodes, edges, db: Session):
     homework_ids = [node['homework_id'] for node in nodes]
+    node_uuid_to_h_id = {node['id']:node['homework_id'] for node in nodes}
     relations = crud.get_af_ids(db,homework_ids, 'task')
     se_id_to_af_id_dict = { relation.se_id:relation.af_id for relation in relations}
     tasks = [ send_get("/af/af_task/getOnce",id)['data'] for id in se_id_to_af_id_dict.values()]
-    dependence = [[se_id_to_af_id_dict[edge['source']],se_id_to_af_id_dict[str(edge['target'])]] for edge in edges]
+    dependence = [[se_id_to_af_id_dict[node_uuid_to_h_id[str(edge['source'])]],se_id_to_af_id_dict[node_uuid_to_h_id[str(edge['target'])]]] for edge in edges]
     cron = jm_job_info.cron_expression if jm_job_info.cron_type == 2 else '@once'
     cron.replace('?','*')
     af_job = {
@@ -92,10 +93,11 @@ def jm_job_create_job(jm_job_info: models.JmJobInfo, nodes, edges, db: Session):
 
 def jm_job_update_job(jm_job_info: models.JmJobInfo, nodes, edges, db: Session):
     homework_ids = [node['homework_id'] for node in nodes]
+    node_uuid_to_h_id = {node['id']:node['homework_id'] for node in nodes}
     relations = crud.get_af_ids(db,homework_ids, 'task')
     se_id_to_af_id_dict = { relation.se_id:relation.af_id for relation in relations}
     tasks = [ send_get("/af/af_task/getOnce",id)['data'] for id in se_id_to_af_id_dict.values()]
-    dependence = [[se_id_to_af_id_dict[edge['source']],se_id_to_af_id_dict[str(edge['target'])]] for edge in edges]
+    dependence = [[se_id_to_af_id_dict[node_uuid_to_h_id[str(edge['source'])]],se_id_to_af_id_dict[node_uuid_to_h_id[str(edge['target'])]]] for edge in edges]
     cron = jm_job_info.cron_expression if jm_job_info.cron_type == 2 else '@once'
     cron.replace('?','*')
     af_job = {