如下请假流程中“发起请假”节点需要普通员工填写相关数据如何处理【急盼回复】

来源:10-9 手工任务、服务任务等

网络时空

2023-02-25

汪老师好!

如下请假流程的第一个节点“发起请假”,就是说普通员工,比如说 我是 张三,我要发起请假流程,我希望发起流程时,弹出页面,然后我在上面 填写 请假天数,请假的事由,上传请假附件的凭证 等。根据我们前端学到的知识,需要用到动态表单,这个我知道。

我现在的问题是:我们目前象的任何任务节点 都是 执行人 或 候选人 才能 操作 处理任务节点,并且任务节点上要 配置好 执行人 或 候选人。 比如说我是当前请假人 bajie, 我现在需要请假,经理审核任务节点的执行人是 shaseng, 部门经理审核的执行人是 tangseng,人事审核的执行人是salaboy。

我现在希望的是 当前请假人 bajie 发起请假流程后,弹出动态表单,bajie在上面填写相关的信息,然后 就直接到 经理审核的任务节点 shaseng了,但是我们现在 @GetMapping(value = “/completeTask”) 完成待办任务的方法,发起请假 的节点 只能 这个节点填写的 执行人 才能发起动态表单 来填写 请假天数,请假的事由,上传请假附件的凭证 等,不能是 非执行人 或 非候选人 来弹出 请假流程的? 比如说 请假人的天数,显然也是要发起人 在 申请页面上 要进行填写的,不然,后面变量判断时也不知道 当时 申请人 填写的原始数据,对吧,汪老师。

具体如下所示

图片描述
图片描述

完成待办任务

@GetMapping(value = “/completeTask”)
public AjaxResponse completeTask(@RequestParam(“taskID”) String taskID) {

    try {

        Task task = taskRuntime.task(taskID);

        //如果当前登录人不是执行人,则当前登录人一定是候选人,先拾取任务后,再执行就好
        if (task.getAssignee() == null) {
            //当前登录人作为候选人 先拾取任务
            taskRuntime.claim(TaskPayloadBuilder.claim().withTaskId(task.getId()).build());
        }

        //if...else... 判断 有任务参数 和 没有任务参数 两种情况
        //这里写死处理演示功能,实际情况是要取 发起人填写请假页面的天数

// Map<String,Object> variablesMap = new HashMap<String,Object>();
// variablesMap.put(“variable”,2);

        //有参数

// taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(task.getId())
// .withVariables(variablesMap)//执行环节设置变量
// .build());

        //无参数
        taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(task.getId())
                     .build());

        return AjaxResponse.AjaxData(GlobalConfig.ResponseCode.SUCCESS.getCode(),
                GlobalConfig.ResponseCode.SUCCESS.getDesc(), null);
    } catch (Exception e) {
        return AjaxResponse.AjaxData(GlobalConfig.ResponseCode.ERROR.getCode(),
                "完成失败", e.toString());
    }
}
写回答

1回答

汪汪对

2023-02-27

问题大概看懂了,第一步候选人用变量,启动的时候,谁启动,当前用户变成实际候选人,行不行呢?

有问题可以继续追问。

0
1
网络时空
汪老师好,我其实想的问题是。 对于 申请流程发起人填写的那些 信息页面,是要在 启动 工作流 之前的业务页面 填写,还是在 启动 工作流 之后 在任务 节点 填写那些 申请信息呢? 比如说 请假天数,请假事由,请时间范围,上传附件 等内容,我是感觉要在 启动 工作流之前,需要在 静态表单页面 上填写完成后保存到数据库中,然后再启动 工作流,然后 再在 工作流任务节点中 使用 我们通过 静态表单页面 保存到 数据库中的信息。 汪老师,你的理解呢?
2023-02-27
共1条回复

Activiti7工作流开发 打造通用型可视化UML工作流系统

从0打造黑马潜力项目作品,掌握新版Activiti7核心+工程化思维。

956 学习 · 367 问题

查看课程