activity--2 流程的部署、启动、任务运行

简单的调用说明以及一些参数设置,或不多说直接干饭。

目录

1.流程图

 2.部署

 3.开始流程

4.提交或者重新提交

5.个人待办任务

6.处理任务

7.流程下  所有启动实例的  所有待办任务


1.流程图

名称:JiCaiBaoZhang.bpmn:下载地址

 2.部署

    // @RequestMapping(value = "/deploy", method = RequestMethod.POST)
    public R<String> deploy() {
        Deployment deploy = repositoryService.createDeployment()
                .addClasspathResource("processes/JiCaiBaoZhang.bpmn")
                .name("物资部审核")
                .category("wuzi")
                .deploy();
        System.out.println("deploy ---> " + deploy);
        return R.success(deploy.getId());
    }

 3.开始流程

    public ProcessInstance start(String userId, List<String> xmList, List<String> jgList) {
        HashMap<String, Object> map = new HashMap<>(3);
        map.put("user", userId);
        map.put("xmList", xmList);
        map.put("jgList", jgList);

        // 启动流程, 运行至第一步, 设置提交申请人, 审核人员列表
        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("JiCaiBaoZhang", map);

        return processInstance;
    }

4.提交或者重新提交

    /**
     * 开始或重新开始 提交申请 步骤
     *
     * @param proInsId
     */
    @Override
    public void applyOrRestart(String proInsId) {
        Task task = taskService.createTaskQuery().processInstanceId(proInsId).singleResult();
        taskService.complete(task.getId());
    }

5.个人待办任务

    public ArrayList<Map> list(String userId) {
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey("JiCaiBaoZhang")
                .taskAssignee(userId)
                .orderByTaskCreateTime().asc().list();

        ArrayList<Map> resList = getArrayListR(list);
        resList.forEach(v -> {
            String processInstanceId = String.valueOf(v.get("ProcessInstanceId"));
            SljmHzMaterialReview review = reviewService.detailByProInsId(processInstanceId);
            v.put("review", review);
        });
        return resList;
    }


    @Override
    public ArrayList<Map> getArrayListR(List<Task> list) {
        ArrayList<Map> resList = new ArrayList<>();

        list.forEach(v -> {
            LinkedHashMap<String, Object> map = new LinkedHashMap<>(5);
            map.put("ProcessInstanceId", v.getProcessInstanceId());
            map.put("TaskId", v.getId());
            map.put("Assignee", v.getAssignee());
            map.put("Name", v.getName());
            map.put("CreateTime", new DateBuilder().with(v.getCreateTime()).toDateTime().toStr().build());
            resList.add(map);
        });

        return resList;
    }

6.处理任务

  @Override
    public void complete(String taskId, String comment, boolean flag) {
        String pre = flag ? "通过. " : "驳回. ";
        if (StringUtils.isNotBlank(comment)) {
            pre += comment;
        }
        // 添加审批意见
        taskService.addComment(taskId, null, pre);

        // 设置流程变量
        taskService.setVariable(taskId, "pass", flag ? 1 : 0);
        // 完成审批
        taskService.complete(taskId);
    }

7.流程下  所有启动实例的  所有待办任务

    /**
     * 所有待办
     *
     * @return
     */
    @RequestMapping(value = "/status/admin", method = RequestMethod.GET)
    public R<ArrayList<Map>> status() {
        List<ProcessInstance> piList = runtimeService.createProcessInstanceQuery().processDefinitionKey("JiCaiBaoZhang").list();
        if (piList.isEmpty()) {
            return R.success(null);
        }
        List<String> piIdList = piList.stream().map(ProcessInstance::getId).collect(Collectors.toList());

        List<Task> list = taskService.createTaskQuery().processInstanceIdIn(piIdList).list();

        ArrayList<Map> arrayListR = wuziService.getArrayListR(list);
        return R.success(arrayListR);
    }



    @Override
    public ArrayList<Map> getArrayListR(List<Task> list) {
        ArrayList<Map> resList = new ArrayList<>();

        list.forEach(v -> {
            LinkedHashMap<String, Object> map = new LinkedHashMap<>(5);
            map.put("ProcessInstanceId", v.getProcessInstanceId());
            map.put("TaskId", v.getId());
            map.put("Assignee", v.getAssignee());
            map.put("Name", v.getName());
            map.put("CreateTime", new DateBuilder().with(v.getCreateTime()).toDateTime().toStr().build());
            resList.add(map);
        });

        return resList;
    }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十&年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值