Activiti7减签

作者: 木子苇苇 | 来源:发表于2023-09-10 13:37 被阅读0次

    对应之前的加签命令,减就是将有审批能力的审批员删除掉。这个也是activiti7没有的指令。需要我们自己来实现。

    演示地址

    前端流程编辑器

    一、实现思路

    1. 判断节点是否可以减签,该步骤比较机动,按照我们的业务需求实现即可。
    2. 删除任务执行实例
    3. 修改节点变量

    二、实现代码片段

    下面是基于activiti7的代码片段
    注意 实现代码都是需要写到activiti命令的实现类中的

    ExecutionEntityManager executionEntityManager = commandContext.getExecutionEntityManager();
    String executionId = task.getExecutionId();
    ExecutionEntity currentExecutionEntity = executionEntityManager.findById(executionId);
    ExecutionEntity miExecution = currentExecutionEntity.getParent();
    
    // 判断节点是否满足减签
    ...
    
    // 删除子执行实例(如果有就删除)
    executionEntityManager.deleteChildExecutions(currentExecutionEntity, "减签", false);
    // 删除当前执行实例和关联数据
    executionEntityManager.deleteExecutionAndRelatedData(currentExecutionEntity, "减签", false);
    // 删除加签残留的identitylink
    if (task instanceof TaskEntity taskEntity) {
        String userId = taskEntity.getAssignee();
        ExecutionEntity executionEntity = taskEntity.getProcessInstance();
        for (IdentityLinkEntity identityLink : executionEntity.getIdentityLinks()) {
            if (identityLink.isUser() && identityLink.getType().equals(IdentityLinkType.PARTICIPANT) && identityLink.getUserId().equals(userId)) {
                String identityLinkTaskId = identityLink.getTaskId();
                if (identityLinkTaskId == null || identityLinkTaskId.equals(taskEntity.getId())) {
                    commandContext.getIdentityLinkEntityManager().delete(identityLink, false);
                }
            }
        }
    }
    
    // 设置流程变量
    Integer nrOfInstances = (Integer) miExecution.getVariableLocal("nrOfInstances");
    Integer nrOfActiveInstances = (Integer) miExecution.getVariableLocal("nrOfActiveInstances");
    miExecution.setVariableLocal("nrOfInstances", nrOfInstances - 1);
    miExecution.setVariableLocal("nrOfActiveInstances", nrOfActiveInstances - 1);
    

    减签比较简单,删除加签的数据即可。
    如果摸不准也可以不删除执行实例,设置任务的执行人为空也行。但是节点的完成变量是必须要设置的

    相关文章

      网友评论

        本文标题:Activiti7减签

        本文链接:https://www.haomeiwen.com/subject/nafcvdtx.html