From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期二, 31 三月 2020 13:25:47 +0800 Subject: [PATCH] fix 数据权限 --- src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java index 41c3c45..900f844 100644 --- a/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.highdatas.mdm.pojo.Result; +import com.highdatas.mdm.process.canvas.ProcessDiagramGenerator; import com.highdatas.mdm.util.WorkflowUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.bpmn.converter.BpmnXMLConverter; @@ -14,6 +15,7 @@ import org.activiti.editor.constants.ModelDataJsonConstants; import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.engine.ActivitiException; +import org.activiti.engine.HistoryService; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.repository.Model; @@ -30,8 +32,8 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.util.ClassUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -51,8 +53,12 @@ @Autowired RepositoryService service; @Autowired - ObjectMapper objectMapper; + HistoryService historyService; + @Autowired + ObjectMapper objectMapper; + @Value("${img.url}") + String basePath; //download public void getModelXml(HttpServletResponse response, String modelId) throws IOException { Model model = service.getModel(modelId); @@ -69,7 +75,34 @@ response.flushBuffer(); } - public boolean updateProcessDefStatus(String type, String modelId) { + @Override + public InputStream getModelImg(String modelId) { + InputStream resource = null; + try{ + Model model = service.createModelQuery().modelId(modelId).singleResult(); + JsonNode editorNode = new ObjectMapper().readTree(service.getModelEditorSource(model.getId())); + BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); + BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); + ProcessDiagramGenerator diagramGenerator = new ProcessDiagramGenerator(); + resource = diagramGenerator.generateDiagram(bpmnModel, "png",null,null, "瀹嬩綋","瀹嬩綋" ,null, null,0); + return resource; + } + catch (Exception e) { + e.printStackTrace(); + return null; + } + finally { + if (resource != null) { + try { + resource.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + public boolean updateProcessDefStatus(String type, String modelId) { Model model = service.createModelQuery().modelId(modelId).singleResult(); ProcessDefinition processDefinition = service.createProcessDefinitionQuery().deploymentId(model.getDeploymentId()).singleResult(); String processDefinitionId = processDefinition.getId(); @@ -443,12 +476,15 @@ //1.3 ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(hashMap.get("json_xml").getBytes("utf-8")); BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(modelNode); + if (bpmnModel.getProcesses().size() == 0) { + return false; + } byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(bpmnModel); String processName = newModel.getName()+ ".bpmn20.xml"; Deployment deployment = service.createDeployment().name(newModel.getName()).addString(processName,new String(bpmnBytes,"UTF-8")).deploy(); newModel.setDeploymentId(deployment.getId()); newModel.setCategory(deployment.getId()); - + service.saveModel(newModel); //1.4 @@ -464,8 +500,7 @@ service.addModelEditorSourceExtra(newModel.getId(), result); String newModelId = newModel.getId(); //TODO dir 2. - String basePath = ClassUtils.getDefaultClassLoader().getResource("").getPath(); - String path = basePath + "static/processes/" + newModelId; + String path = basePath + newModelId; File dir = new File(path); if (!dir.exists()) { dir.mkdirs(); @@ -476,6 +511,7 @@ if (file.exists()) { file.delete(); } + log.info(file.getAbsolutePath()); file.createNewFile(); fileOutputStream2 = new FileOutputStream(file); fileOutputStream2.write(bpmnBytes); -- Gitblit v1.8.0