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]