新流程发起接口

This commit is contained in:
yuezhihang
2021-12-16 11:04:02 +08:00
parent fa01b36d34
commit 3b453bdf75
2 changed files with 69 additions and 0 deletions
@@ -9,6 +9,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.dto.ProcessRollBackEO;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage;
@@ -25,6 +26,8 @@ import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.tmsps.fk.common.base.action.BaseAction;
@@ -195,6 +198,55 @@ public class ActivitDefineController extends BaseAction {
return WrapMapper.ok(task.getId());
}
@ApiOperation(value = "启动流程-以流程定义id")
@ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "流程定义Id"),
@ApiImplicitParam(name = "userId", value = "流程发起人Id") })
@PostMapping("/activiti_define_start_user_rollBack")
public Wrapper<String> activiti_define_start_user_rollBack(@RequestBody ProcessRollBackEO processRollBackEO) {
// 创建查询对象
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
// 使用流程定义的名称模糊查询
processDefinitionQuery.processDefinitionCategory("e05707228fa5ed7b549198208ab19d97");
long total = processDefinitionQuery.count();
List<ProcessDefinition> list = processDefinitionQuery.orderByProcessDefinitionKey().asc().list();
List<Map<String, Object>> definitions = ActivitiTools.turnProcessDefinitions(list);
String pid = "";
for(Map<String, Object> map:definitions){
if(map.get("key").toString().equals(processRollBackEO.getId())){
pid = map.get("id").toString();
}
}
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().processDefinitionId(pid).singleResult();
ProcessInstance pi = runtimeService.startProcessInstanceById(pid);
Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult();
task.setAssignee(processRollBackEO.getUserId());
taskService.saveTask(task);
if(processRollBackEO.getBpnId() == null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
BusProcessName busProcessName = new BusProcessName();
busProcessName.setPrcId(pi.getId());
busProcessName.setCreatTime(sdf.format(new Date()));
busProcessName.setCreatUser(processRollBackEO.getUserId());
ResponseMessage<UserVO> byId = lawsUserInfoService.getById(processRollBackEO.getUserId());
busProcessName.setCreatUserName(byId.getData().getUname());
busProcessName.setPrcNum(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
busProcessName.setMes(processRollBackEO.getJson());
ibusprocessnameService.save(busProcessName);
}else {
QueryWrapper<BusProcessName> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ID", processRollBackEO.getBpnId());
BusProcessName one = ibusprocessnameService.getOne(queryWrapper);
one.setPrcNum(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
one.setPrcId(pi.getId());
ibusprocessnameService.saveOrUpdate(one);
}
logger.info("启动流程实例,获取id-->{},实例名称-->{}", pi.getId(), pd.getName());
return WrapMapper.ok(task.getId());
}
/**
* 企标复审流程专用
* @param id
@@ -0,0 +1,17 @@
package com.ydw.bat.wkflow.business_activiti.dto;
import lombok.Data;
@Data
public class ProcessRollBackEO {
private String json;
private String type;
private String id;
private String userId;
private String bpnId;
}