diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 903a69f5..eef68d32 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -298,7 +298,7 @@ public class ProcessAllService extends ServiceImpl } @Transactional(rollbackFor = JeroBootException.class) - public void delegateTask(DelegateTaskParam param) { + public synchronized void delegateTask(DelegateTaskParam param) { String taskId = param.getTaskId(); String userId = param.getUserId(); Integer prcType = param.getPrcType(); @@ -326,6 +326,17 @@ public class ProcessAllService extends ServiceImpl if(Objects.isNull(processNode)){ throw new JeroBootException("数据不存在"); } + // 不可重复加签 + LambdaQueryWrapper queryProcessNodeLink = new LambdaQueryWrapper<>(); + queryProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId,processDefinitionId); + queryProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId,processNode.getId()); + queryProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processDefinitionId); + queryProcessNodeLink.eq(ProcessNodeLink::getUserId,userId); + long l = processNodeLinkService.count(queryProcessNodeLink); + if(l > 0){ + throw new JeroBootException("加签人员重复"); + } + processNodeLink.setProcessNodeId(processNode.getId()); processNodeLink.setUserId(userId); processNodeLinkService.save(processNodeLink);