未验证 提交 37b149da 编写于 作者: S Simon 提交者: GitHub

fix circular dependence bug (#5330)

上级 d60f31bc
......@@ -1396,7 +1396,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
Project targetProject) throws JsonProcessingException {
Map<String, Object> result = new HashMap<>();
String currentTimeStamp = DateUtils.getCurrentTimeStamp();
ProcessDefinition processDefinition = processDefinitionMapper.selectById(processId);
if (processDefinition == null) {
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processId);
......@@ -1407,21 +1407,27 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
String locations = processDefinition.getLocations();
ObjectNode locationsJN = JSONUtils.parseObject(locations);
taskNodeList.forEach(taskNode -> {
String suffix = "_copy_" + DateUtils.getCurrentTimeStamp();
for (TaskNode taskNode : taskNodeList) {
String suffix = "_copy_" + currentTimeStamp;
String id = taskNode.getId();
String newName = locationsJN.path(id).path("name").asText() + suffix;
((ObjectNode) locationsJN.get(id)).put("name", newName);
List<String> depList = taskNode.getDepList();
List<String> newDepList = depList.stream()
.map(s -> s + suffix)
.collect(Collectors.toList());
taskNode.setDepList(newDepList);
taskNode.setName(taskNode.getName() + suffix);
taskNode.setCode(0L);
});
}
processData.setTasks(taskNodeList);
String processDefinitionJson = JSONUtils.toJsonString(processData);
return createProcessDefinition(
loginUser,
targetProject.getName(),
processDefinition.getName() + "_copy_" + DateUtils.getCurrentTimeStamp(),
processDefinition.getName() + "_copy_" + currentTimeStamp,
processDefinitionJson,
processDefinition.getDescription(),
locationsJN.toString(),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册