Commit 9b7f3048 by 王厚康

bpm分支出路优化

parent ba83c0e8
......@@ -11,6 +11,7 @@ import com.bbd.bpm.dto.response.BpmResponse;
import com.bbd.bpm.dto.response.PendingTaskListBean;
import com.bbd.bpm.dto.response.QueryPiByUserIdBean;
import com.bbd.bpm.service.ActivitiService;
import com.bbd.bpm.util.BpmUtil;
import com.bbd.bpm.util.validate.ValidateUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -27,6 +28,7 @@ import org.activiti.engine.impl.ProcessInstanceQueryImpl;
import org.activiti.engine.impl.RepositoryServiceImpl;
import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
import org.activiti.engine.impl.util.ProcessDefinitionUtil;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
......@@ -377,8 +379,8 @@ public class TaskOperateController {
out.forEach(sequenceFlow1 -> {
if (StringUtils.isNotBlank(sequenceFlow1.getName())) {
BtnBean btn = new BtnBean();
btn.setBtnKey(sequenceFlow1.getName());
btn.setBtnValue(sequenceFlow1.getId());
btn.setBtnName(sequenceFlow1.getName());
btn.setBtnId(sequenceFlow1.getId());
buttons.add(btn);
}
});
......@@ -388,20 +390,20 @@ public class TaskOperateController {
if (targetFlowElement instanceof UserTask) {
if (StringUtils.isNotBlank(targetFlowElement.getName())) {
BtnBean btn = new BtnBean();
btn.setBtnValue(targetFlowElement.getName());
btn.setBtnKey(targetFlowElement.getName());
btn.setBtnName(targetFlowElement.getName());
btn.setBtnId(targetFlowElement.getName());
buttons.add(btn);
} else {
BtnBean btn = new BtnBean();
btn.setBtnValue("提交");
btn.setBtnKey("提交");
btn.setBtnName("提交");
btn.setBtnId("提交");
buttons.add(btn);
}
}
if (targetFlowElement instanceof EndEvent) {
BtnBean btn = new BtnBean();
btn.setBtnValue("结束");
btn.setBtnKey("结束");
btn.setBtnName("结束");
btn.setBtnId("结束");
buttons.add(btn);
}
......@@ -416,4 +418,39 @@ public class TaskOperateController {
return resp;
}
@ApiOperation(value = "根据流程部署ID获取开启流程时 需要的参数")
@GetMapping("/outGoing_start")
@ResponseBody
public BpmResponse outGoing_start(String actDefId) {
BpmResponse resp = new BpmResponse();
try {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(actDefId).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
if(bpmnModel != null) {
Collection<FlowElement> flowElements = bpmnModel.getMainProcess().getFlowElements();
for(FlowElement e : flowElements) {
if(e.getClass().toString().indexOf("StartEvent")>-1){
StartEvent start = (StartEvent)bpmnModel.getFlowElement(e.getId());
List<SequenceFlow> outgoingFlows = start.getOutgoingFlows();
List<BtnBean> buttons = new ArrayList<>();
outgoingFlows.forEach(sequenceFlow -> {
buttons.addAll(BpmUtil.forTargetFlowElement(sequenceFlow));
});
resp.setData(buttons);
break;
}
}
}
resp.setSuccess(true);
resp.setMessage("根据流程部署ID获取开启流程时 需要的参数成功");
} catch (Exception e) {
Log.error("根据流程部署ID获取开启流程时 需要的参数失败", e);
resp.setSuccess(false);
}
return resp;
}
}
......@@ -4,16 +4,11 @@ import com.bbd.bpm.base.PageBean;
import com.bbd.bpm.domain.User;
import com.bbd.bpm.dto.SysCode;
import com.bbd.bpm.dto.response.BpmResponse;
import com.bbd.bpm.result.RespCode;
import com.bbd.bpm.result.Result;
import com.bbd.bpm.result.ResultUtil;
import com.bbd.bpm.service.UserInfoService;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
......@@ -22,13 +17,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import java.io.*;
/**
......
......@@ -7,7 +7,9 @@ import java.io.Serializable;
@Data
public class BtnBean implements Serializable {
String btnValue;
String btnName;
String btnKey;
String btnId;
String condition;
}
package com.bbd.bpm.util;
import com.bbd.bpm.dto.BtnBean;
import org.activiti.bpmn.model.*;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
public class BpmUtil {
public static List<BtnBean> forTargetFlowElement(SequenceFlow sequenceFlow){
List<BtnBean> buttons = new ArrayList<>();
if(sequenceFlow==null){
return buttons;
}
FlowElement targetFlowElement = sequenceFlow.getTargetFlowElement();
if(targetFlowElement!=null && targetFlowElement instanceof ExclusiveGateway){
List<SequenceFlow> out = ((ExclusiveGateway) targetFlowElement).getOutgoingFlows();
out.forEach(sequenceFlow1 -> {
if (StringUtils.isNotBlank(sequenceFlow1.getConditionExpression())) {
BtnBean btn = new BtnBean();
btn.setBtnName(sequenceFlow1.getName());
btn.setBtnId(sequenceFlow1.getId());
btn.setCondition(sequenceFlow1.getConditionExpression());
buttons.add(btn);
if(sequenceFlow1.getTargetFlowElement()instanceof ExclusiveGateway){
buttons.addAll(forTargetFlowElement(sequenceFlow1));
}
}
});
}else{
if (StringUtils.isNotBlank(sequenceFlow.getConditionExpression())) {
BtnBean btn = new BtnBean();
btn.setBtnName(sequenceFlow.getName());
btn.setBtnId(sequenceFlow.getId());
btn.setCondition(sequenceFlow.getConditionExpression());
buttons.add(btn);
}
}
return buttons;
}
}
......@@ -36,6 +36,9 @@ public class ValidateUtil {
if(StringUtils.isBlank(req.getTaskStatus()) ){
return "查询类型"+SysCode.NOT_ALLOW_NULL;
}
if(req.getPage()==null || req.getPage().getPageSize()==0 ){
return "分页信息"+SysCode.NOT_ALLOW_NULL;
}
/*if(req.getPage().get == null ){
return "分页信息"+SysCode.NOT_ALLOW_NULL;
}*/
......@@ -50,9 +53,9 @@ public class ValidateUtil {
if(StringUtils.isBlank(req.getAssignee()) ){
return "任务处理人id"+SysCode.NOT_ALLOW_NULL;
}
/*if(req.getPage() == null ){
if(req.getPage()==null || req.getPage().getPageSize()==0 ){
return "分页信息"+SysCode.NOT_ALLOW_NULL;
}*/
}
return null;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment