update 导入时处理审批节点

This commit is contained in:
lijiarao
2023-10-09 17:12:22 +08:00
parent 2876556f05
commit 67dc95d30c
2 changed files with 22 additions and 13 deletions
@@ -435,7 +435,14 @@ public class ModelerController {
@PostMapping("/addTask")
@ApiOperation("新增节点")
public Object addTask(@RequestBody AddTaskVO addTaskVO, HttpServletResponse response) {
return processModelNodeService.addTask(addTaskVO,response);
processModelNodeService.addTask(addTaskVO,response);
return Result.OK();
}
@PostMapping("/deleteTask")
@ApiOperation("新增节点")
public Object deleteTask(@RequestBody AddTaskVO addTaskVO, HttpServletResponse response) {
return processModelNodeService.deleteTask(addTaskVO,response);
}
@@ -54,13 +54,15 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
Collection<FlowElement> flowElements = process.getFlowElements();
List<ProcessModelNode> processModelNodeList = new ArrayList<>();
int sort = 1;
//审批节点list
List<String> gatewayIdList = new ArrayList<>();
//处理节点为list
processModelNodeList = handlerLawsProcessModelNode(flowElements,sort,gatewayIdList,modelId, null);
List<String> approvalNodeIdList = processModelNodeList.stream()
.filter(item -> gatewayIdList.contains(item.getXmlTargetRef()))
.map(ProcessModelNode::getXmlSourceRef)
.collect(Collectors.toList());
//判断是否是审批节点
for (ProcessModelNode processModelNode : processModelNodeList) {
String xmlNodeId = processModelNode.getXmlNodeId();
if (approvalNodeIdList.contains(xmlNodeId) ){
@@ -150,22 +152,17 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
for (SequenceFlow outgoingFlow : outgoingFlows) {
insertFlow(modelId, outgoingFlow);
}
//把bpmnModel对象转换成字符
BpmnXMLConverter converter = new BpmnXMLConverter();
byte[] bytes = converter.convertToXML(bpmnModel);
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
String filename = bpmnModel.getMainProcess().getId() + ".bpmn";
response.setContentType("application/force-download");// 设置强制下载不打开
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
IOUtils.copy(in, response.getOutputStream());
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public Object deleteTask(AddTaskVO addTaskVO, HttpServletResponse response) {
return null;
}
private void insertGateway(String modelId, ExclusiveGateway gateway) {
ProcessModelNode gatewayNode = new ProcessModelNode();
gatewayNode.setModelId(modelId);
@@ -272,12 +269,15 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
xmlNodeId = sequenceFlow.getId();
xmlSourceRef = sequenceFlow.getSourceRef();
xmlTargetRef = sequenceFlow.getTargetRef();
if ("通过".equals(nodeName)){
gatewayIdList.add(xmlSourceRef);
}
} else if (flowElement instanceof ExclusiveGateway) {
ExclusiveGateway gateway = (ExclusiveGateway) flowElement;
nodeType = "gateway";
nodeName = gateway.getName();
xmlNodeId = gateway.getId();
gatewayIdList.add(xmlNodeId);
} else if (flowElement instanceof SubProcess) {
SubProcess subProcess = (SubProcess) flowElement;
Collection<FlowElement> flowElements1 = subProcess.getFlowElements();
@@ -313,4 +313,6 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
}
return processModelNodeList;
}
}