| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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); |
| | |
| | | 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(); |
| | |
| | | //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 |
| | |
| | | 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(); |
| | |
| | | if (file.exists()) { |
| | | file.delete(); |
| | | } |
| | | log.info(file.getAbsolutePath()); |
| | | file.createNewFile(); |
| | | fileOutputStream2 = new FileOutputStream(file); |
| | | fileOutputStream2.write(bpmnBytes); |