activiti 流程模型複製源碼
今天使用框架開發流程時,感覺從頭畫一個activiti 流程圖太麻煩了,隨即想到加個流程模型複製功能可以節省大量的開發時間。lets go 。
代碼如下:
//activiti 流程模型複製
@Transactional(readOnly = false)
public Model copy(String id) throws Exception {
Model sourceModel = this.get(id);
ObjectNode sourceObjectNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(id));
Model model = repositoryService.newModel();
model.setKey(sourceModel.getKey() + "_" + IdGenerator.get());
model.setName(sourceModel.getName()+"_copy");
model.setCategory(sourceModel.getCategory());
model.setVersion(1);
repositoryService.saveModel(model);
ObjectNode editorNode = sourceObjectNode.deepCopy();
ObjectNode properties = objectMapper.createObjectNode();
properties.put("process_id", model.getKey());
properties.put("process_author", "lms");
properties.put("name", model.getName());
editorNode.set("properties", properties);
repositoryService.addModelEditorSource(model.getId(), editorNode.toString().getBytes("utf-8"));
return model;
}
效果圖: