Activiti目录(五)驳回、重新发起、取消流程

把Activiti打入你的脑袋,再次通过驳回、取消流程快速打入

目录

Activiti(一)入门了解

Activiti(二)整合

Activiti(三)部署、发布流程

Activiti(四)查询代办/已办、审核

Activiti零零碎碎的坑

一、审核人驳回流程

思路
根据流程实例ID和当前用户ID查询流程任务是否存在
1.根据当前人员设置驳回节点状态
存在2.驳回节点状态退回审核任务到发起人
不存在返回不成功状态码
/**
     * 驳回申请
     * @param userId 用户ID
     * @param processInstanceId 流程实例ID
     * @return
     */
    public Task rejectTest(String userId,String processInstanceId) {
        // 查询当前审批节点
        Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskInvolvedUser(userId).singleResult();
        if(null != task){
            // 设置流程参数
            Map<String, Object> args = new HashMap<>();
            String assignee = task.getName();
            args.put("applyState", Constants.EPIDEMIC_APPLY_STATE_BH);// 驳回状态
            args.put("applyExamine", assignee);// 驳回任务节点
            // 完成审批任务
            taskService.complete(task.getId(), args);
        }
        // 返回修改后业务信息
        return task;
    }

二、重新发起流程

思路
根据流程实例ID和当前用户ID查询流程任务是否存在
1.根据当前人员设置重新申请节点状态
存在2.获取驳回人员信息
3.通过节点状态、驳回人员信息重新申请回到审核人员继续审核
1.返回审核节点状态
不存在2.用原有业务逻辑进行重新申请
 /**
     *
     *  重新申请
     * @param userId 用户Id
     * @param processInstanceId 流程实例Id
     * @return 状态值
     */
    public String backProcessTest(String userId,String processInstanceId){
        //设置流程参数:审批ID
        Map<String, Object> args = new HashMap<>();
        String applyExamine = runtimeService.getVariable(processInstanceId, "applyExamine")+""; //查看variable常量表
        args.put("applyState", "6");
        args.put("applyExamine", applyExamine);
        //查询当前审批节点
        Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee(userId).singleResult();
        //完成审批任务
        if(null != task) {
            taskService.complete(task.getId(), args);
            return applyExamine;
        }
        return "";
    }

三、取消流程

思路
根据流程实例ID获取流程实例是否还在执行
1.获取审核节点状态(是否审核中还是审核通过)
存在2.根据审核节点状态判断中途取消、审核通过取消
3.结束流程实例
1.返回审核节点状态
不存在2.业务代码处理流程业务表
 /**
     * 取消申请
     * @param userId 用户ID
     * @param processInstanceId 流程实例Id
     * @return 状态值
     */
    public Integer withdrawTest(String userId,String processInstanceId){
        // 流程实例是否在执行
        Execution execution = runtimeService.createExecutionQuery().parentId(processInstanceId).singleResult();
        //查看variable常量表
        int applyState = Integer.parseInt(runtimeService.getVariable(processInstanceId, "applyState")+"");
        // 判断中途、审核通过撤销
        applyState = applyState < 3 ? Constants.EPIDEMIC_APPLY_STATE_ZTCX : Constants.EPIDEMIC_APPLY_STATE_CX;
        if(!Objects.isNull(execution)){
            //学生取消,结束流程
            runtimeService.deleteProcessInstance(execution.getProcessInstanceId(), "学生"+userId+"取消申请");
        }
        return applyState;
    }

三、实例代码

  • 审核人员查询代办任务:
    在这里插入图片描述
    在这里插入图片描述

  • 审核人员驳回流程:
    在这里插入图片描述
    在这里插入图片描述

  • 流程退回到发起人
    在这里插入图片描述
    在这里插入图片描述

  • 重新发起申请
    在这里插入图片描述

  • 驳回人员查看代办
    在这里插入图片描述
    在这里插入图片描述

  • 取消流程申请

查询代办任务:
在这里插入图片描述
取消流程:

在这里插入图片描述取消人员查询任务时没有流程信息了
在这里插入图片描述

工作流程画图、部署、启动流程、查询代办/已办/已通过、审核、驳回、重新发起、取消申请讲解工作流的重要性

彩蛋:

1.整合Bpmnjs画图工具。
2.任务到达节点标红并显示图片。
即将期待

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值