Compare commits

..

2 Commits

@ -20,6 +20,7 @@ import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.task.api.Task;
@ -38,7 +39,18 @@ public interface IFlowTaskService {
Category viewForm(String processId, HttpServletRequest request);
Integer complete(FlowApprove approve, UserToken userToken, List<String> formIds);
/**
*
* @param processInstanceId
* @return
*/
public UserTask getNextTasks(String processInstanceId );
/**
*
* @param task
* @return
*/
public UserTask getNextTasks(Task task);
/**
* 退

@ -17,6 +17,8 @@ import cn.jyjz.xiaoyao.common.base.util.StringUtils;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.oa.from.service.UserViewapproeService;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.MultiInstanceLoopCharacteristics;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
@ -29,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Service
@ -84,6 +87,19 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
try {
variables.put("businessKey", businessKey);
//获取下一个节点
UserTask userTask = this.flowTaskService.getNextTasks(procDefId);
if(null != userTask){
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
// 会签节点
if (Objects.nonNull(multiInstance)) {
if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
variables.put("persons",userTask.getCandidateUsers());
}
}
}
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) {
@ -156,6 +172,19 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
try {
variables.put("businessKey", businessKey);
//获取下一个节点
UserTask userTask = this.flowTaskService.getNextTasks(procDefId);
if(null != userTask){
MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
// 会签节点
if (Objects.nonNull(multiInstance)) {
if(null != userTask.getCandidateUsers() && userTask.getCandidateUsers().size() > 1){
variables.put("persons",userTask.getCandidateUsers());
}
}
}
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) {

@ -431,7 +431,35 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
return result;
}
public UserTask getNextTasks(String processDefinitionId ){
//流程实例id
//String processInstanceId = "5b945750-81db-11e9-a576-1a73f8e23adc";
// 获取流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId)
.singleResult();
// 获取BpmnModel
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
// 获取所有的FlowElement包括开始事件、结束事件、用户任务等
List<FlowElement> flowElements = (List<FlowElement>) bpmnModel.getMainProcess().getFlowElements();
// 遍历FlowElement
for (FlowElement targetFlowElement : flowElements) {
//用户任务
if (targetFlowElement instanceof UserTask) {
UserTask userTask = (UserTask) targetFlowElement;
return userTask;
} else if (targetFlowElement instanceof ExclusiveGateway) {
setExclusiveGateway(targetFlowElement);
}
}
return null;
}
public UserTask getNextTasks(Task task){

Loading…
Cancel
Save