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.Translation;
|
||||
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.service.IProcessEsInspectService;
|
||||
import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO;
|
||||
@@ -84,12 +83,7 @@ public class ProcessEsInspectController extends JeroController<ProcessEsInspect,
|
||||
@ApiOperation(value="企标稽查流程业务表-添加", notes="企标稽查流程业务表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<T> add(@Validated @RequestBody ProcessEsInspect processEsInspect) {
|
||||
String ids = processEsInspect.getIds();
|
||||
for (String s : ids.split(",")) {
|
||||
processEsInspect.setInspectId(s);
|
||||
processEsInspect.setId(String.valueOf(SnowflakeUtils.snowflake()));
|
||||
processEsInspectService.add(processEsInspect);
|
||||
}
|
||||
processEsInspectService.add(processEsInspect);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user