From 3b453bdf758692e02bce3ffddd40174d45b60606 Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 16 Dec 2021 11:04:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=B5=81=E7=A8=8B=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../define/ActivitDefineController.java | 52 +++++++++++++++++++ .../dto/ProcessRollBackEO.java | 17 ++++++ 2 files changed, 69 insertions(+) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java index 0ed8123c..7a367451 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/define/ActivitDefineController.java @@ -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 activiti_define_start_user_rollBack(@RequestBody ProcessRollBackEO processRollBackEO) { + // 创建查询对象 + ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery(); + // 使用流程定义的名称模糊查询 + processDefinitionQuery.processDefinitionCategory("e05707228fa5ed7b549198208ab19d97"); + long total = processDefinitionQuery.count(); + List list = processDefinitionQuery.orderByProcessDefinitionKey().asc().list(); + List> definitions = ActivitiTools.turnProcessDefinitions(list); + String pid = ""; + for(Map 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 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 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 diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java new file mode 100644 index 00000000..970a20b2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/dto/ProcessRollBackEO.java @@ -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; +}