优化模型清理父节点逻辑

This commit is contained in:
hubin 2024-12-06 20:43:45 +08:00
parent 8490cc470f
commit 76950b705e
4 changed files with 14 additions and 13 deletions

View File

@ -288,7 +288,7 @@ public class RuntimeServiceImpl implements RuntimeService {
// 更新流程实例模型
FlwExtInstance extInstance = new FlwExtInstance();
extInstance.setId(instanceId);
extInstance.setModelContent(FlowLongContext.toJson(processModel));
extInstance.setModelContent(FlowLongContext.toJson(processModel.cleanParentNode()));
return extInstanceDao.updateById(extInstance);
}
@ -360,13 +360,10 @@ public class RuntimeServiceImpl implements RuntimeService {
selectNode.setChildNode(nodeModel);
}
// 清理父节点关系
processModel.cleanParentNode(processModel.getNodeConfig());
// 更新最新模型
FlwExtInstance temp = new FlwExtInstance();
temp.setId(flwExtInstance.getId());
temp.setModelContent(FlowLongContext.toJson(processModel));
temp.setModelContent(FlowLongContext.toJson(processModel.cleanParentNode()));
Assert.isFalse(extInstanceDao.updateById(temp), "Update FlwExtInstance Failed");
// 使缓存失效

View File

@ -361,11 +361,8 @@ public class ModelHelper {
}
});
// 清理父节点
processModel.cleanParentNode(processModel.getNodeConfig());
// 更新模型
consumer.accept(processModel);
// 清理父节点更新模型
consumer.accept(processModel.cleanParentNode());
// 删除动态分配处理人员参数
FlowDataTransfer.removeByKey(FlowConstants.processDynamicAssignee);

View File

@ -97,12 +97,19 @@ public class ProcessModel implements Serializable {
}
}
/**
* 清理父节点关系
*/
public ProcessModel cleanParentNode() {
return this.cleanParentNode(this.nodeConfig);
}
/**
* 清理父节点关系
*
* @param rootNode 根节点
*/
public void cleanParentNode(NodeModel rootNode) {
public ProcessModel cleanParentNode(NodeModel rootNode) {
rootNode.setParentNode(null);
// 清理条件节点
@ -124,6 +131,7 @@ public class ProcessModel implements Serializable {
if (null != childNode) {
this.cleanParentNode(childNode);
}
return this;
}
/**

View File

@ -66,8 +66,7 @@ public class TestModel extends MysqlTest {
String jsonContent = StreamUtils.readBytes(StreamUtils.getResourceAsStream(jsonFile));
ProcessModel processModel = FlowLongContext.fromJson(jsonContent, ProcessModel.class);
Assertions.assertEquals(processModel.getName(), modelName);
processModel.cleanParentNode(processModel.getNodeConfig());
System.err.println(FlowLongContext.toJson(processModel));
System.err.println(FlowLongContext.toJson(processModel.cleanParentNode()));
}
/**