From d55ddecc67c390292f5a7832909b09fc9b768f2c Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 18 Jul 2024 09:47:54 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/listener/CompleteListener.java | 39 ------------- .../activiti/listener/CreateListener.java | 51 ----------------- .../activiti/listener/EndListener.java | 43 -------------- .../activiti/listener/SignListener.java | 56 ------------------- .../activiti/listener/StartListener.java | 44 --------------- 5 files changed, 233 deletions(-) delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java deleted file mode 100644 index 5c5bfce9..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.jero.common.constant.enums.YesOrNoEnum; -import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.enums.FinishFlagEnum; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; - -/** - * @author liJiaRao - * @date 2023-10-15 17:02 - */ -public class CompleteListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - //流程审批信息转办 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - - String taskId = delegateTask.getId(); - String assignee = delegateTask.getAssignee(); - //更新审批信息为完成 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); - wrapper.eq(ProcessApprovalRecord::getUserId,assignee); - ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper); - approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); - recordService.updateById(approvalRecord); - - System.out.println(taskId); - System.out.println(delegateTask.getName()); - System.out.println(delegateTask.getEventName()); - System.out.println(assignee); - - - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java deleted file mode 100644 index d9dd1e31..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.enums.FinishFlagEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.bpmn.model.ActivitiListener; - -import java.util.Date; - -import org.activiti.engine.delegate.DelegateExecution; - -import java.util.Set; - -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; -import org.activiti.engine.task.DelegationState; -import org.activiti.engine.task.IdentityLink; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class CreateListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - //流程审批信息 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - - String id = delegateTask.getId(); - String name = delegateTask.getName(); - String processInstanceId = delegateTask.getProcessInstanceId(); - Date createTime = delegateTask.getCreateTime(); - String assignee = delegateTask.getAssignee(); - String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); - //新增待审批记录 - ProcessApprovalRecord approvalRecord = new ProcessApprovalRecord(); - approvalRecord.setTaskId(id); - approvalRecord.setTaskName(name); - approvalRecord.setProcessInstanceId(processInstanceId); - approvalRecord.setUserId(assignee); - approvalRecord.setFinishFlag(FinishFlagEnum.INCOMPLETE.getValue()); - approvalRecord.setCreateTime(createTime); - approvalRecord.setNodeId(taskDefinitionKey); - recordService.save(approvalRecord); - - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java deleted file mode 100644 index f1035727..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.jero.modules.activiti.listener; - -import cn.hutool.core.date.DateBetween; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.jero.modules.activiti.entity.ProcessAll; -import com.jero.modules.activiti.enums.ProcessStatusEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.ExecutionListener; -import org.activiti.engine.delegate.TaskListener; - -import java.util.Date; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class EndListener implements ExecutionListener { - @Override - public void notify(DelegateExecution execution) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - - String processInstanceId = execution.getProcessInstanceId(); - ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); - Date createTime = processAll.getCreateTime(); - DateTime date = DateUtil.date(); - DateBetween between = date.between(createTime); - - //更新流程总表信息为已完成 - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId); - wrapper.set(ProcessAll::getPrcStatus, ProcessStatusEnum.COMPLETED.getValue()); - wrapper.set(ProcessAll::getEndTime,date); - wrapper.set(ProcessAll::getOverTime,between.toString()); - processAllService.update(wrapper); - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java deleted file mode 100644 index 6c152e52..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.jero.modules.activiti.listener; - -import lombok.extern.slf4j.Slf4j; -import org.activiti.engine.ProcessEngine; -import org.activiti.engine.ProcessEngines; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; - -/** - * @author liJiaRao - * @date 2023-08-04 10:53 - */ -@Slf4j -public class SignListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - /** - * - */ - //获取流程id - String taskId = delegateTask.getExecutionId(); - //获取流程参数pass,会签人员完成自己的审批任务时会添加流程参数pass,false为拒绝,true为同意 - // 1、创建ProcessEngine - ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); -// 2、获取RunTimeService - RuntimeService runtimeService = processEngine.getRuntimeService(); - boolean pass = (Boolean) runtimeService.getVariable(taskId, "pass"); - - /* ${nrOfCompletedInstances/nrOfInstances==1} - * false:有一个人拒绝,整个流程就结束了, - * 因为Complete condition的值为pass == false,即,当流程参数为pass时会签就结束开始下一个任务 - * 所以,当pass == false时,直接设置下一个流程跳转需要的参数 - * true:审批人同意,同时要判断是不是所有的人都已经完成了,而不是由一个人同意该会签就结束 - * 值得注意的是如果一个审批人完成了审批进入到该监听时nrOfCompletedInstances的值还没有更新,因此需要+1 - */ - Integer complete = (Integer) runtimeService.getVariable(taskId, "nrOfCompletedInstances"); - Integer all = (Integer) runtimeService.getVariable(taskId, "nrOfInstances"); - // 这里的test对应的是第一个节点中的对应的参数 - String username= (String) runtimeService.getVariable(delegateTask.getExecutionId(), "test"); - if(!pass){ - //会签结束,返回发起人节点 - runtimeService.setVariable(taskId, "countersignState", 0); - runtimeService.setVariable(taskId, "test", username); - }else{ - - //说明都完成了并且没有人拒绝 - if((complete + 1) / all == 1){ - // 流程流向下个节点 test2为下个节点人的参数 - runtimeService.setVariable(taskId, "countersignState", 1); - runtimeService.setVariable(taskId, "test2", "xiaowang"); - - } - } - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java deleted file mode 100644 index 10b2f9bd..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.jero.modules.activiti.entity.ProcessAll; -import com.jero.modules.activiti.enums.ProcessStatusEnum; -import com.jero.modules.activiti.enums.ProcessTypeEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; - -import org.activiti.engine.*; -import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.ExecutionListener; -import org.activiti.engine.repository.ProcessDefinition; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class StartListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - //流程审批信息 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - String id = execution.getId(); - String processInstanceId = execution.getProcessInstanceId(); - String processDefinitionId = execution.getProcessDefinitionId(); - - ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); - RepositoryService repositoryService = processEngine.getRepositoryService(); - ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processDefinitionId); - - String name = processDefinition.getName(); - String key = processDefinition.getKey(); - //新增流程总表信息(剩余的内容在启动流程时填充) - ProcessAll processAll = new ProcessAll(); - processAll.setProcessInstanceId(processInstanceId); - processAll.setPrcType(ProcessTypeEnum.getValueByName(name, processDefinitionId)); - processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); - processAllService.save(processAll); - } -}