SbloodyS commented on code in PR #14801:
URL: 
https://github.com/apache/dolphinscheduler/pull/14801#discussion_r1360656769


##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java:
##########
@@ -781,21 +786,53 @@ private TaskDefinitionLog updateTask(User loginUser, long 
projectCode, long task
                     projectCode, taskCode, 
taskDefinitionToUpdate.getVersion());
         // update process task relation
         List<ProcessTaskRelation> processTaskRelations = 
processTaskRelationMapper
-                .queryByTaskCode(taskDefinitionToUpdate.getCode());
+                
.queryProcessTaskRelationByTaskCode(taskDefinitionToUpdate.getCode());
         if (CollectionUtils.isNotEmpty(processTaskRelations)) {
+            ProcessTaskRelation taskRelation = processTaskRelations.get(0);
+            int processDefinitionVersion =
+                    
processDefinitionLogMapper.queryMaxVersionForDefinition(taskRelation.getProcessDefinitionCode())
+                            + 1;
+            long processDefinitionCode = 
taskRelation.getProcessDefinitionCode();
             for (ProcessTaskRelation processTaskRelation : 
processTaskRelations) {
                 if (taskCode == processTaskRelation.getPreTaskCode()) {
                     processTaskRelation.setPreTaskVersion(version);
                 } else if (taskCode == processTaskRelation.getPostTaskCode()) {
                     processTaskRelation.setPostTaskVersion(version);
                 }
-                int count = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
-                if (count != 1) {
+                
processTaskRelation.setProcessDefinitionVersion(processDefinitionVersion);
+                int update_2 = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);

Review Comment:
   ```suggestion
                   int updateProcessDefinitionVersionCount = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
   ```



##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java:
##########
@@ -781,21 +786,53 @@ private TaskDefinitionLog updateTask(User loginUser, long 
projectCode, long task
                     projectCode, taskCode, 
taskDefinitionToUpdate.getVersion());
         // update process task relation
         List<ProcessTaskRelation> processTaskRelations = 
processTaskRelationMapper
-                .queryByTaskCode(taskDefinitionToUpdate.getCode());
+                
.queryProcessTaskRelationByTaskCode(taskDefinitionToUpdate.getCode());
         if (CollectionUtils.isNotEmpty(processTaskRelations)) {
+            ProcessTaskRelation taskRelation = processTaskRelations.get(0);
+            int processDefinitionVersion =
+                    
processDefinitionLogMapper.queryMaxVersionForDefinition(taskRelation.getProcessDefinitionCode())
+                            + 1;
+            long processDefinitionCode = 
taskRelation.getProcessDefinitionCode();
             for (ProcessTaskRelation processTaskRelation : 
processTaskRelations) {
                 if (taskCode == processTaskRelation.getPreTaskCode()) {
                     processTaskRelation.setPreTaskVersion(version);
                 } else if (taskCode == processTaskRelation.getPostTaskCode()) {
                     processTaskRelation.setPostTaskVersion(version);
                 }
-                int count = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
-                if (count != 1) {
+                
processTaskRelation.setProcessDefinitionVersion(processDefinitionVersion);
+                int update_2 = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
+                if (update_2 != 1) {
                     log.error("batch update process task relation error, 
projectCode:{}, taskDefinitionCode:{}.",
                             projectCode, taskCode);
                     putMsg(result, 
Status.PROCESS_TASK_RELATION_BATCH_UPDATE_ERROR);
                     throw new 
ServiceException(Status.PROCESS_TASK_RELATION_BATCH_UPDATE_ERROR);
                 }
+                ProcessTaskRelationLog processTaskRelationLog = new 
ProcessTaskRelationLog(processTaskRelation);
+                processTaskRelationLog.setOperator(loginUser.getId());
+                processTaskRelationLog.setId(null);
+                processTaskRelationLog.setOperateTime(now);
+                int insert_2 = 
processTaskRelationLogDao.insert(processTaskRelationLog);
+                if (insert_2 != 1) {
+                    log.error("batch update process task relation error, 
projectCode:{}, taskDefinitionCode:{}.",
+                            projectCode, taskCode);
+                    putMsg(result, 
Status.CREATE_PROCESS_TASK_RELATION_LOG_ERROR);
+                    throw new 
ServiceException(Status.CREATE_PROCESS_TASK_RELATION_LOG_ERROR);
+                }
+            }
+            ProcessDefinition processDefinition = 
processDefinitionMapper.queryByCode(processDefinitionCode);
+            processDefinition.setVersion(processDefinitionVersion);
+            processDefinition.setUpdateTime(now);
+            processDefinition.setUserId(loginUser.getId());
+            // update process definition
+            int update_3 = 
processDefinitionMapper.updateById(processDefinition);
+            ProcessDefinitionLog processDefinitionLog = new 
ProcessDefinitionLog(processDefinition);
+            processDefinitionLog.setOperateTime(now);
+            processDefinitionLog.setId(null);
+            processDefinitionLog.setOperator(loginUser.getId());
+            int insert_3 = 
processDefinitionLogMapper.insert(processDefinitionLog);

Review Comment:
   ```suggestion
               int insertProcessDefinitionLogCount = 
processDefinitionLogMapper.insert(processDefinitionLog);
   ```



##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java:
##########
@@ -781,21 +786,53 @@ private TaskDefinitionLog updateTask(User loginUser, long 
projectCode, long task
                     projectCode, taskCode, 
taskDefinitionToUpdate.getVersion());
         // update process task relation
         List<ProcessTaskRelation> processTaskRelations = 
processTaskRelationMapper
-                .queryByTaskCode(taskDefinitionToUpdate.getCode());
+                
.queryProcessTaskRelationByTaskCode(taskDefinitionToUpdate.getCode());
         if (CollectionUtils.isNotEmpty(processTaskRelations)) {
+            ProcessTaskRelation taskRelation = processTaskRelations.get(0);
+            int processDefinitionVersion =
+                    
processDefinitionLogMapper.queryMaxVersionForDefinition(taskRelation.getProcessDefinitionCode())
+                            + 1;
+            long processDefinitionCode = 
taskRelation.getProcessDefinitionCode();
             for (ProcessTaskRelation processTaskRelation : 
processTaskRelations) {
                 if (taskCode == processTaskRelation.getPreTaskCode()) {
                     processTaskRelation.setPreTaskVersion(version);
                 } else if (taskCode == processTaskRelation.getPostTaskCode()) {
                     processTaskRelation.setPostTaskVersion(version);
                 }
-                int count = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
-                if (count != 1) {
+                
processTaskRelation.setProcessDefinitionVersion(processDefinitionVersion);
+                int update_2 = 
processTaskRelationMapper.updateProcessTaskRelationTaskVersion(processTaskRelation);
+                if (update_2 != 1) {
                     log.error("batch update process task relation error, 
projectCode:{}, taskDefinitionCode:{}.",
                             projectCode, taskCode);
                     putMsg(result, 
Status.PROCESS_TASK_RELATION_BATCH_UPDATE_ERROR);
                     throw new 
ServiceException(Status.PROCESS_TASK_RELATION_BATCH_UPDATE_ERROR);
                 }
+                ProcessTaskRelationLog processTaskRelationLog = new 
ProcessTaskRelationLog(processTaskRelation);
+                processTaskRelationLog.setOperator(loginUser.getId());
+                processTaskRelationLog.setId(null);
+                processTaskRelationLog.setOperateTime(now);
+                int insert_2 = 
processTaskRelationLogDao.insert(processTaskRelationLog);
+                if (insert_2 != 1) {
+                    log.error("batch update process task relation error, 
projectCode:{}, taskDefinitionCode:{}.",
+                            projectCode, taskCode);
+                    putMsg(result, 
Status.CREATE_PROCESS_TASK_RELATION_LOG_ERROR);
+                    throw new 
ServiceException(Status.CREATE_PROCESS_TASK_RELATION_LOG_ERROR);
+                }
+            }
+            ProcessDefinition processDefinition = 
processDefinitionMapper.queryByCode(processDefinitionCode);
+            processDefinition.setVersion(processDefinitionVersion);
+            processDefinition.setUpdateTime(now);
+            processDefinition.setUserId(loginUser.getId());
+            // update process definition
+            int update_3 = 
processDefinitionMapper.updateById(processDefinition);

Review Comment:
   ```suggestion
               int updateProcessDefinitionCount = 
processDefinitionMapper.updateById(processDefinition);
   ```



##########
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessTaskRelationMapper.xml:
##########
@@ -240,4 +241,18 @@
         from t_ds_process_task_relation
         where process_definition_code = #{workflowDefinitionCode} and 
process_definition_version = #{workflowDefinitionVersion}
     </delete>
+
+    <select id="queryProcessTaskRelationByTaskCode" 
resultType="org.apache.dolphinscheduler.dao.entity.ProcessTaskRelation">
+        select
+        <include refid="baseSql"/>
+        from t_ds_process_task_relation
+        WHERE process_definition_code in (
+                                            SELECT
+                                            process_definition_code
+                                            FROM
+                                            t_ds_process_task_relation
+                                            WHERE
+                                            post_task_code = #{taskCode}

Review Comment:
   The relationship between task and process can be one-to-many.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to