feat(流程): 流程校验
This commit is contained in:
+88
@@ -0,0 +1,88 @@
|
|||||||
|
package com.jero.modules.activiti.process.aspect;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.jero.common.constant.enums.LanguageEnum;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.common.util.MessageUtils;
|
||||||
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.activiti.engine.TaskService;
|
||||||
|
import org.activiti.engine.task.Task;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Before;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: 流程aop
|
||||||
|
* @Description:
|
||||||
|
* @Author: yjz
|
||||||
|
* @Date: 2023-12-07 15:45
|
||||||
|
* @Version: 1.0
|
||||||
|
**/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class ProcessAspect {
|
||||||
|
@Resource
|
||||||
|
private TaskService taskService;
|
||||||
|
|
||||||
|
// 流程审批
|
||||||
|
@Pointcut("execution(public * com.jero.modules.activiti.process..*Controller.flowApproval(..))")
|
||||||
|
public void processServiceFlowApproval() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// 流程转办
|
||||||
|
@Pointcut("execution(public * com.jero.modules.activiti.process..*Controller.flowTransfer(..))")
|
||||||
|
public void processServiceFlowTransfer() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// 流程驳回
|
||||||
|
@Pointcut("execution(public * com.jero.modules.activiti.process..*Controller.flowReject(..))")
|
||||||
|
public void processServiceFlowReject() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before("processServiceFlowApproval() || processServiceFlowTransfer() || processServiceFlowReject()")
|
||||||
|
public void doBefore(JoinPoint jp) {
|
||||||
|
log.info("==========流程前置方法开始==========");
|
||||||
|
if (!Objects.isNull(jp.getArgs())) {
|
||||||
|
Map<String, Objects> map = JSON.parseObject(JSON.toJSONString(jp.getArgs()[0]), Map.class);
|
||||||
|
Object object = map.get("processAll");
|
||||||
|
ProcessAll processAll = JSON.parseObject(JSON.toJSONString(object), ProcessAll.class);
|
||||||
|
if (checkTaskExistence(processAll.getTaskId())){
|
||||||
|
if (LanguageEnum.CN.getValue().equals(MessageUtils.getLanguage().getValue())){
|
||||||
|
throw new JeroBootException("任务不存在!");
|
||||||
|
}else {
|
||||||
|
throw new JeroBootException("The task does not exist!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
if (!getTaskAssignee(processAll.getTaskId()).equals(loginUser.getId())){
|
||||||
|
if (LanguageEnum.CN.getValue().equals(MessageUtils.getLanguage().getValue())){
|
||||||
|
throw new JeroBootException("非当前节点处理人!");
|
||||||
|
}else {
|
||||||
|
throw new JeroBootException("Not the current node processor!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.info("==========流程前置方法结束==========");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkTaskExistence(String taskId) {
|
||||||
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
|
return Objects.isNull(task);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaskAssignee(String taskId) {
|
||||||
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
|
return task.getAssignee();
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-7
@@ -5,7 +5,6 @@ import com.jero.common.api.vo.Result;
|
|||||||
import com.jero.common.aspect.annotation.AutoLog;
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
import com.jero.common.aspect.annotation.Translation;
|
import com.jero.common.aspect.annotation.Translation;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
import com.jero.common.util.SnowflakeUtils;
|
|
||||||
import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect;
|
import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect;
|
||||||
import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService;
|
import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService;
|
||||||
import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO;
|
import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO;
|
||||||
@@ -84,12 +83,7 @@ public class ProcessEsInspectController extends JeroController<ProcessEsInspect,
|
|||||||
@ApiOperation(value="企标稽查流程业务表-添加", notes="企标稽查流程业务表-添加")
|
@ApiOperation(value="企标稽查流程业务表-添加", notes="企标稽查流程业务表-添加")
|
||||||
@PostMapping(value = "/add")
|
@PostMapping(value = "/add")
|
||||||
public Result<T> add(@Validated @RequestBody ProcessEsInspect processEsInspect) {
|
public Result<T> add(@Validated @RequestBody ProcessEsInspect processEsInspect) {
|
||||||
String ids = processEsInspect.getIds();
|
processEsInspectService.add(processEsInspect);
|
||||||
for (String s : ids.split(",")) {
|
|
||||||
processEsInspect.setInspectId(s);
|
|
||||||
processEsInspect.setId(String.valueOf(SnowflakeUtils.snowflake()));
|
|
||||||
processEsInspectService.add(processEsInspect);
|
|
||||||
}
|
|
||||||
return Result.OK("操作成功!");
|
return Result.OK("操作成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user