一。创建流程模型
name:模型名称,
key:模型标识,
category:分类,
description:流程描述
actModelService.create(name, key, description, category);
/**
* 创建模型
* @throws UnsupportedEncodingException
*/
@Transactional(readOnly = false)
public org.activiti.engine.repository.Model create(String name, String key, String description, String category) throws UnsupportedEncodingException {
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode editorNode = objectMapper.createObjectNode();
editorNode.put("id", "canvas");
editorNode.put("resourceId", "canvas");
ObjectNode stencilSetNode = objectMapper.createObjectNode();
stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
editorNode.put("stencilset", stencilSetNode);
org.activiti.engine.repository.Model modelData = repositoryService.newModel();
description = StringUtils.defaultString(description);
modelData.setKey(StringUtils.defaultString(key));
modelData.setName(name);
modelData.setCategory(category);
modelData.setVersion(Integer.parseInt(String.valueOf(repositoryService.createModelQuery().modelKey(modelData.getKey()).count()+1)));
ObjectNode modelObjectNode = objectMapper.createObjectNode();
modelObjectNode.put("name", name);
modelObjectNode.put("revision", modelData.getVersion());
modelObjectNode.put("description", description);
modelData.setMetaInfo(modelObjectNode.toString());
repositoryService.saveModel(modelData);
repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));
return modelData;
}
二。删除流程模型
modelId :模型ID
actModelService.delete(modelId);
/**
* 删除模型
* @param id
* @return
*/
@Transactional(readOnly = false)
public void delete(String id) {
repositoryService.deleteModel(id);
}
三。修改流程模型
modelId:模型ID
modelName:模型名称
org.activiti.engine.repository.Model modelData = repositoryService.getModel(modelId);
if(StringUtils.isNotBlank(modelName)){
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = gson.fromJson(modelData.getMetaInfo(), map.getClass());
map.put("name",modelName);
modelData.setName(modelName);
JSONObject json = new JSONObject(map);
modelData.setMetaInfo(json.toString());
repositoryService.saveModel(modelData);
}
四,查询模型列表
actModelService.modelList(modelPage, category, modelName);
/**
* 流程模型列表
*/
public Page<org.activiti.engine.repository.Model> modelList(Page<org.activiti.engine.repository.Model> page, String category,String modelName) {
ModelQuery modelQuery = repositoryService.createModelQuery().latestVersion().orderByLastUpdateTime().desc();
if (StringUtils.isNotEmpty(category)){
modelQuery.modelCategory(category);
}
if(StringUtils.isNotEmpty(modelName)){
modelQuery.modelNameLike("%"+modelName+"%");
}
page.setCount(modelQuery.count());
page.setList(modelQuery.listPage(page.getFirstResult(), page.getMaxResults()));
return page;
}
生活不易,望大家多支持支持。
有不懂的同学可以联系我,我会第一时间解答