update 删除节点(未完成)
This commit is contained in:
+4
-8
@@ -1,8 +1,6 @@
|
||||
package com.jero.modules.activiti.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.stream.StreamUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -10,7 +8,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessModelNode;
|
||||
import com.jero.modules.activiti.entity.ProcessNodeOrigin;
|
||||
import com.jero.modules.activiti.service.LawsProcessNodeOriginService;
|
||||
import com.jero.modules.activiti.service.ProcessModelNodeService;
|
||||
import com.jero.modules.activiti.util.CreatedTools;
|
||||
@@ -47,7 +44,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
@@ -436,15 +432,15 @@ public class ModelerController {
|
||||
|
||||
@PostMapping("/addTask")
|
||||
@ApiOperation("新增节点")
|
||||
public Object addTask(@RequestBody AddTaskVO addTaskVO, HttpServletResponse response) {
|
||||
processModelNodeService.addTask(addTaskVO,response);
|
||||
public Object addTask(@RequestBody AddTaskVO addTaskVO) {
|
||||
processModelNodeService.addTask(addTaskVO);
|
||||
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||
}
|
||||
|
||||
@PostMapping("/deleteTask")
|
||||
@ApiOperation("删除节点")
|
||||
public Object deleteTask(@RequestBody AddTaskVO addTaskVO, HttpServletResponse response) {
|
||||
processModelNodeService.deleteTask(addTaskVO,response);
|
||||
public Object deleteTask(@RequestBody AddTaskVO addTaskVO) {
|
||||
processModelNodeService.deleteTask(addTaskVO);
|
||||
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||
}
|
||||
|
||||
|
||||
+89
-3
@@ -9,6 +9,7 @@ import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessModelNode;
|
||||
import com.jero.modules.activiti.vo.AddTaskVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.bpmn.BpmnAutoLayout;
|
||||
import org.activiti.bpmn.converter.BpmnXMLConverter;
|
||||
import org.activiti.bpmn.model.*;
|
||||
@@ -35,6 +36,7 @@ import com.jero.modules.activiti.mapper.ProcessModelNodeMapper;
|
||||
*@author liJiaRao
|
||||
*@date 2023-10-08 14:08
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper, ProcessModelNode> {
|
||||
@Resource
|
||||
@@ -72,7 +74,7 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
||||
this.saveBatch(processModelNodeList);
|
||||
}
|
||||
|
||||
public Object addTask(AddTaskVO addTaskVO, HttpServletResponse response) {
|
||||
public Object addTask(AddTaskVO addTaskVO) {
|
||||
try {
|
||||
String modelId = addTaskVO.getModelId();
|
||||
String xmlNodeId = addTaskVO.getXmlNodeId();
|
||||
@@ -158,9 +160,93 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object deleteTask(AddTaskVO addTaskVO, HttpServletResponse response) {
|
||||
public void deleteTask(AddTaskVO addTaskVO) {
|
||||
try {
|
||||
String modelId = addTaskVO.getModelId();
|
||||
String xmlNodeId = addTaskVO.getXmlNodeId();
|
||||
String nodeName = addTaskVO.getNodeName();
|
||||
|
||||
return null;
|
||||
//查找当前节点
|
||||
LambdaQueryWrapper<ProcessModelNode> processModelNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
processModelNodeLambdaQueryWrapper.eq(ProcessModelNode::getXmlNodeId, xmlNodeId)
|
||||
.eq(ProcessModelNode::getModelId, modelId);
|
||||
|
||||
ProcessModelNode processModelNode = processModelNodeMapper.selectOne(processModelNodeLambdaQueryWrapper);
|
||||
if (processModelNode == null || !YesOrNoEnum.YES.getInteger().equals(processModelNode.getIsCanDeleted())) {
|
||||
throw new JeroBootException("只能删除自定义新增的审批节点");
|
||||
}
|
||||
processModelNodeLambdaQueryWrapper.clear();
|
||||
//查找指向当前节点的线
|
||||
processModelNodeLambdaQueryWrapper.eq(ProcessModelNode::getXmlTargetRef, xmlNodeId)
|
||||
.isNull(ProcessModelNode::getNodeName)
|
||||
.eq(ProcessModelNode::getModelId, modelId);
|
||||
ProcessModelNode flowTarget = processModelNodeMapper.selectOne(processModelNodeLambdaQueryWrapper);
|
||||
processModelNodeLambdaQueryWrapper.clear();
|
||||
//查找节点的流出线
|
||||
processModelNodeLambdaQueryWrapper.eq(ProcessModelNode::getXmlSourceRef, xmlNodeId)
|
||||
.eq(ProcessModelNode::getModelId, modelId);
|
||||
ProcessModelNode flowOrigin1 = processModelNodeMapper.selectOne(processModelNodeLambdaQueryWrapper);
|
||||
|
||||
processModelNodeLambdaQueryWrapper.clear();
|
||||
//查找流出线指向的网关
|
||||
processModelNodeLambdaQueryWrapper.eq(ProcessModelNode::getXmlNodeId, flowOrigin1.getXmlTargetRef())
|
||||
.eq(ProcessModelNode::getModelId, modelId);
|
||||
ProcessModelNode gatewayOrigin = processModelNodeMapper.selectOne(processModelNodeLambdaQueryWrapper);
|
||||
|
||||
processModelNodeLambdaQueryWrapper.clear();
|
||||
//查找网关指向的线
|
||||
processModelNodeLambdaQueryWrapper.eq(ProcessModelNode::getXmlSourceRef, gatewayOrigin.getXmlNodeId())
|
||||
.eq(ProcessModelNode::getNodeName, "通过")
|
||||
.eq(ProcessModelNode::getModelId, modelId);
|
||||
|
||||
ProcessModelNode flowOrigin2 = processModelNodeMapper.selectOne(processModelNodeLambdaQueryWrapper);
|
||||
byte[] modelEditorSource = repositoryService.getModelEditorSource(modelId);
|
||||
ObjectNode objectNode = (ObjectNode) new ObjectMapper().readTree(modelEditorSource);
|
||||
BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(objectNode);
|
||||
Process process = bpmnModel.getMainProcess();
|
||||
Gateway gateway = (Gateway) process.getFlowElement(gatewayOrigin.getXmlNodeId());
|
||||
List<SequenceFlow> outgoingFlows = gateway.getOutgoingFlows();
|
||||
for (SequenceFlow outgoingFlow : outgoingFlows) {
|
||||
String name = outgoingFlow.getName();
|
||||
if ("通过".equals(name)){
|
||||
|
||||
}
|
||||
}
|
||||
List<SequenceFlow> incomingFlows = gateway.getIncomingFlows();
|
||||
|
||||
//SequenceFlow flowElement = (SequenceFlow) process.getFlowElement(flowTarget.getXmlNodeId());
|
||||
UserTask userTask = (UserTask) process.getFlowElement(xmlNodeId);
|
||||
List<SequenceFlow> outgoingFlows1 = userTask.getOutgoingFlows();
|
||||
List<SequenceFlow> incomingFlows1 = userTask.getIncomingFlows();
|
||||
log.info("outgoingFlows1:"+outgoingFlows1.size());
|
||||
|
||||
//重新绘画图形
|
||||
//BpmnAutoLayout bpmnAutoLayout = new BpmnAutoLayout(bpmnModel);
|
||||
//bpmnAutoLayout.execute();
|
||||
//更新model
|
||||
//ObjectNode objectNode1 = new BpmnJsonConverter().convertToJson(bpmnModel);
|
||||
//String json = objectNode1.toString();
|
||||
//byte[] bytes1 = json.getBytes(StandardCharsets.UTF_8);
|
||||
//repositoryService.addModelEditorSource(modelId, bytes1);
|
||||
|
||||
//把新增的节点同步到数据库
|
||||
//LambdaUpdateWrapper<ProcessModelNode> updateFlow = new LambdaUpdateWrapper<>();
|
||||
//updateFlow.eq(ProcessModelNode::getXmlNodeId,flowOrigin2.getXmlNodeId());
|
||||
//updateFlow.set(ProcessModelNode::getXmlTargetRef,userTaskId);
|
||||
//processModelNodeMapper.update(null,updateFlow);
|
||||
//insertUserTask(modelId, userTask);
|
||||
//List<SequenceFlow> incomingFlows = gateway.getIncomingFlows();
|
||||
//for (SequenceFlow incomingFlow : incomingFlows) {
|
||||
// insertFlow(modelId, incomingFlow);
|
||||
//}
|
||||
//insertGateway(modelId, gateway);
|
||||
//List<SequenceFlow> outgoingFlows = gateway.getOutgoingFlows();
|
||||
//for (SequenceFlow outgoingFlow : outgoingFlows) {
|
||||
// insertFlow(modelId, outgoingFlow);
|
||||
//}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertGateway(String modelId, ExclusiveGateway gateway) {
|
||||
|
||||
Reference in New Issue
Block a user