add 工作中心代码(未完成)

This commit is contained in:
lijiarao
2023-10-16 18:02:13 +08:00
parent b5064a13a8
commit fe858b0333
17 changed files with 553 additions and 9 deletions
@@ -7,13 +7,12 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessModelNode;
import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.service.ProcessModelNodeService;
import com.jero.modules.activiti.service.ProcessService;
import com.jero.modules.activiti.service.*;
import com.jero.modules.laws.common.constant.ResultCommon;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
@@ -28,6 +27,7 @@ import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@@ -61,11 +61,16 @@ public class ActivitiController {
private ProcessModelNodeService modelNodeService;
@Resource
private ProcessNodeLinkService processNodeLinkService;
@Resource
private ProcessAllService processAllService;
@ApiOperation(value="启动流程")
@PostMapping("/start")
public Result<Map<String, String>> start(@RequestBody Map<String,Object> map) {
String key = map.get("key").toString();
String prcName = map.get("prcName").toString();
String prcNum = map.get("prcNum").toString();
Date dueTime = (Date) map.get("dueTime");
// 1、创建ProcessEngine
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 2、获取RunTimeService
@@ -74,12 +79,23 @@ public class ActivitiController {
// 3、根据流程key启动流程
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(key, map);
String processInstanceId = processInstance.getId();
//更新流程总表
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
process.setCreateUserId(loginUser.getId());
process.setPrcName(prcName);
process.setPrcNum(prcNum);
process.setDueTime(dueTime);
process.setProjectId("业务id");
processAllService.updateById(process);
String processDefinitionId = processInstance.getProcessDefinitionId();
// 输出内容
Map<String, String> map1 = new HashMap<>();
map1.put("流程Id", processInstance.getDeploymentId());
map1.put("流程定义id", processDefinitionId);
map1.put("流程实例id", processInstance.getId());
map1.put("流程实例id", processInstanceId);
map1.put("当前活动Id", processInstance.getActivityId());
String mainDrafter = map.get("mainDrafter").toString();
@@ -10,6 +10,8 @@ import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessModelNode;
import com.jero.modules.activiti.listener.CompleteListener;
import com.jero.modules.activiti.listener.CreateListener;
import com.jero.modules.activiti.listener.EndListener;
import com.jero.modules.activiti.listener.StartListener;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.service.ProcessModelNodeService;
import com.jero.modules.activiti.util.CreatedTools;
@@ -26,6 +28,7 @@ import org.activiti.bpmn.model.Process;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.BaseExecutionListener;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.*;
import org.apache.commons.lang3.StringUtils;
@@ -90,7 +93,19 @@ public class ModelerController {
repositoryService.saveModel(model);
String modelId = model.getId();
Process mainProcess = bpmnModel.getMainProcess();
//向所有userTask节点增加创建和完成时任务监听器
List<ActivitiListener> executionListeners = mainProcess.getExecutionListeners();
ActivitiListener startListener = new ActivitiListener();
startListener.setEvent(BaseExecutionListener.EVENTNAME_START);
startListener.setImplementationType("class");
startListener.setImplementation(StartListener.class.getName());
executionListeners.add(startListener);
ActivitiListener endListener = new ActivitiListener();
endListener.setEvent(BaseExecutionListener.EVENTNAME_END);
endListener.setImplementationType("class");
endListener.setImplementation(EndListener.class.getName());
executionListeners.add(endListener);
mainProcess.setExecutionListeners(executionListeners);
//向所有userTask节点增加创建和完成时任务监听器工作
Collection<FlowElement> flowElements = mainProcess.getFlowElements();
for (FlowElement flowElement : flowElements) {
if (flowElement instanceof UserTask) {
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.controller;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author liJiaRao
* @date 2023-10-16 15:50
*/
@Slf4j
@RestController
@Api(tags = "工作中心")
@RequestMapping("/workCenter")
public class WorkCenterController {
}