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