style: 删除无用监听器
This commit is contained in:
@@ -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<ProcessApprovalRecord> 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);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<ProcessAll> 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);
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user