审批节点分配审批人时事件注解

This commit is contained in:
wangliwen 2022-05-30 11:11:02 +08:00
parent 9eeab30dcf
commit 4e0e39da8d
8 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,21 @@
package io.renren.common.annotation;
import java.lang.annotation.*;
/**
* 流程流转消息通知
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ActivitiNoticeOperation {
/**
* 流程名称
*
* @return
*/
String value() default "";
}

View File

@ -0,0 +1,59 @@
package io.renren.common.aspect;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.notice.service.SysNoticeService;
import io.renren.modules.sys.service.SysUserService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import java.util.Arrays;
/**
* 流程流转消息通知切面
*/
@Aspect
@Component
public class ActivitiNoticeAspect {
private static Logger logger = LoggerFactory.getLogger(ActivitiNoticeAspect.class);
@Autowired
private SysNoticeService sysNoticeService;
@Autowired
private SysUserService sysUserService;
@Pointcut("@annotation(io.renren.common.annotation.ActivitiNoticeOperation)")
public void activitiNoticePointCut() {
}
@After(value = "activitiNoticePointCut()")
public void notice(JoinPoint joinPoint) throws NoSuchMethodException {
logger.error("-------------------------------进入流程流转消息切面---------------------------------");
long beginTime = System.currentTimeMillis();
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = joinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), signature.getParameterTypes());
final ActivitiNoticeOperation activitiNoticeOperation = method.getAnnotation(ActivitiNoticeOperation.class);
Arrays.asList(joinPoint.getArgs()).stream().findFirst().ifPresent(arg -> {
final DelegateTask delegateTask = (DelegateTask) arg;
final String eventName = delegateTask.getEventName();
switch (eventName) {
case TaskListener.EVENTNAME_ASSIGNMENT: // 节点被委派给某人
{
logger.error(delegateTask.getOwner() == null ? "" : delegateTask.getOwner() + "的节点被委派给某人-->" + delegateTask.getAssignee());
}
break;
default:
}
});
}
}

View File

@ -44,8 +44,10 @@ public class InitiatorDataEntryListener implements TaskListener {
logger.error("录入表单:" + kv.toString());
if (kv.containsKey("creator")) { // 表单存在创建者
taskService.setAssignee(delegateTask.getId(), kv.get("creator").toString());
taskService.setOwner(delegateTask.getId(), kv.get("creator").toString()); // 指定流程所有人
} else if (kv.containsKey("userId")) {
taskService.setAssignee(delegateTask.getId(), kv.get("userId").toString());
taskService.setOwner(delegateTask.getId(), kv.get("userId").toString()); // 指定流程所有人
}
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json, typeOfT, context) -> new Date(json.getAsJsonPrimitive().getAsLong()));

View File

@ -5,6 +5,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.activiti.service.ActTaskService;
import io.renren.modules.demanData.dto.TDemandDataDTO;
import io.renren.modules.demanData.entity.TDemandDataEntityFlag;
@ -59,6 +60,7 @@ public class DemandDataListener implements TaskListener, ExecutionListener, Acti
private TDemandDataService tDemandDataService;
@Override
@ActivitiNoticeOperation("需求部门审批")
public void notify(DelegateExecution execution) throws Exception {
logger.error("----------------------进入能力需求受理者结束节点---------------------------");
execution.getProcessBusinessKey();

View File

@ -4,6 +4,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.activiti.service.ActTaskService;
import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
import io.renren.modules.processForm.service.ApiGatewayService;
@ -66,6 +67,7 @@ public class CorrectionListener implements TaskListener, ExecutionListener, Acti
private TAbilityApplicationService tAbilityApplicationService;
@Override
@ActivitiNoticeOperation("资源部门负责人审批")
public void notify(DelegateTask delegateTask) {
logger.error("-------------------------进入部门动态审批人流程-------------------------------");
final String eventName = delegateTask.getEventName();

View File

@ -4,6 +4,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.service.ResourceService;
@ -65,6 +66,7 @@ public class DataCenterListener implements TaskListener, ExecutionListener, Acti
}
@Override
@ActivitiNoticeOperation("大数据局负责人审批")
public void notify(DelegateTask delegateTask) {
logger.error("事件类型:" + delegateTask.getEventName());
final String eventName = delegateTask.getEventName();

View File

@ -5,6 +5,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.entity.ResourceEntityDelFlag;
import io.renren.modules.resource.service.ResourceService;
@ -54,6 +55,7 @@ public class ResourceUndercarriageListener implements TaskListener, ExecutionLis
private ResourceService resourceService;
@Override
@ActivitiNoticeOperation("资源下线前资源所属部门审批人审批")
public void notify(DelegateTask delegateTask) {
logger.error("----------------------进入资源所有者节点---------------------------");
logger.error("事件类型:" + delegateTask.getEventName());

View File

@ -5,6 +5,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.processForm.service.ApiGatewayService;
import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.entity.ResourceEntityDelFlag;
@ -55,6 +56,7 @@ public class ResourceOwnerListener implements TaskListener, ExecutionListener, A
private ResourceService resourceService;
@Override
@ActivitiNoticeOperation("资源所属部门审批人审批")
public void notify(DelegateExecution execution) throws Exception {
logger.error("----------------------进入审批通过节点---------------------------");
logger.error("事件类型:" + execution.getEventName());