mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-02 04:08:31 +08:00
fix 9584 (#9585)
This commit is contained in:
parent
e2ec489042
commit
2aa191014d
@ -291,6 +291,18 @@ public class ProcessTaskRelationServiceImpl extends BaseServiceImpl implements P
|
||||
putMsg(result, Status.DATA_IS_NULL, "preTaskCodes");
|
||||
return result;
|
||||
}
|
||||
List<Long> currentUpstreamList = upstreamList.stream().map(ProcessTaskRelation::getPreTaskCode).collect(Collectors.toList());
|
||||
if (currentUpstreamList.contains(0L)) {
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, "currentUpstreamList");
|
||||
return result;
|
||||
}
|
||||
List<Long> tmpCurrent = Lists.newArrayList(currentUpstreamList);
|
||||
tmpCurrent.removeAll(preTaskCodeList);
|
||||
preTaskCodeList.removeAll(currentUpstreamList);
|
||||
if (!preTaskCodeList.isEmpty()) {
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, StringUtils.join(preTaskCodeList, Constants.COMMA));
|
||||
return result;
|
||||
}
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(upstreamList.get(0).getProcessDefinitionCode());
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, upstreamList.get(0).getProcessDefinitionCode());
|
||||
@ -300,20 +312,17 @@ public class ProcessTaskRelationServiceImpl extends BaseServiceImpl implements P
|
||||
List<ProcessTaskRelation> processTaskRelationList = Lists.newArrayList(processTaskRelations);
|
||||
List<ProcessTaskRelation> processTaskRelationWaitRemove = Lists.newArrayList();
|
||||
for (ProcessTaskRelation processTaskRelation : processTaskRelationList) {
|
||||
if (preTaskCodeList.size() > 1) {
|
||||
if (preTaskCodeList.contains(processTaskRelation.getPreTaskCode())) {
|
||||
preTaskCodeList.remove(processTaskRelation.getPreTaskCode());
|
||||
if (currentUpstreamList.size() > 1) {
|
||||
if (currentUpstreamList.contains(processTaskRelation.getPreTaskCode())) {
|
||||
currentUpstreamList.remove(processTaskRelation.getPreTaskCode());
|
||||
processTaskRelationWaitRemove.add(processTaskRelation);
|
||||
}
|
||||
} else {
|
||||
if (processTaskRelation.getPostTaskCode() == taskCode) {
|
||||
if (processTaskRelation.getPostTaskCode() == taskCode && (currentUpstreamList.isEmpty() || tmpCurrent.isEmpty())) {
|
||||
processTaskRelation.setPreTaskVersion(0);
|
||||
processTaskRelation.setPreTaskCode(0L);
|
||||
}
|
||||
}
|
||||
if (preTaskCodeList.contains(processTaskRelation.getPostTaskCode())) {
|
||||
processTaskRelationWaitRemove.add(processTaskRelation);
|
||||
}
|
||||
}
|
||||
processTaskRelationList.removeAll(processTaskRelationWaitRemove);
|
||||
updateProcessDefiniteVersion(loginUser, result, processDefinition);
|
||||
|
Loading…
Reference in New Issue
Block a user