基于jeecgboot的flowable流程并行审批的bug修复

简介: 基于jeecgboot的flowable流程并行审批的bug修复

  对于下面的并行流程,会出现流程错误,特别是下面角色的处理与一个任务节点多个用户处理问题,所以需要进行修复bug。

     1、后端处理

    设置下一个审批人员的时候需要对一个任务节点多个数据进行容错处理,对于要是用户最好选择不通的用户处理,以最后审批选择的人员为准。

/**
     * 设置下一个审批人的操作
     *
     * @param taskVo
     */
    private void taskSetAssignee(FlowTaskVo taskVo, FlowNextDto nextFlowNode) {
      if(taskVo.getValues().containsKey("approval")) {//有approval
        if(taskService.createTaskQuery().processInstanceId(taskVo.getInstanceId()).taskDefinitionKey(nextFlowNode.getUserTask().getId()).active().count() == 1) {//一个目标用户任务节点只能设置一次
          Task nexttask = taskService.createTaskQuery().processInstanceId(taskVo.getInstanceId()).taskDefinitionKey(nextFlowNode.getUserTask().getId()).active().singleResult();
        if(Objects.nonNull(nexttask)) {
          String assignee = taskVo.getValues().get("approval").toString();  
          taskService.setAssignee(nexttask.getId(), assignee);
        }
        }
        else {
          TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(taskVo.getInstanceId()).taskDefinitionKey(nextFlowNode.getUserTask().getId()).active();
          for(Task task : taskQuery.list()) {
            String assignee = taskVo.getValues().get("approval").toString();  
            taskService.setAssignee(task.getId(), assignee);  
          }
        }
      }
    }

对于myProcessNew和allProcess的任务ID统一做下面处理

// 当前所处流程
            List<Task> taskList = taskService.createTaskQuery().processInstanceId(hisIns.getId()).list();
            if (CollUtil.isNotEmpty(taskList)) {
              flowTask.setTaskId(taskList.get(0).getId());
            } else {
                List<HistoricTaskInstance> historicTaskInstance = historyService.createHistoricTaskInstanceQuery().processInstanceId(hisIns.getId()).orderByHistoricTaskInstanceEndTime().desc().list();
                flowTask.setTaskId(historicTaskInstance.get(0).getId());
            }

2、前端处理

对于角色的处理,无论是多人还是单人都进行选择处理

else if (data.type === 'candidateUsers') { // 指定人员(多个)
              this.userDataList = res.result.userList;
              //console.log("candidateUsers nodeType,bmutiInstanceFinish=",this.taskForm.nodeType,this.taskForm.bmutiInstanceFinish) 
              if(this.userDataList.length===1) {
                this.checkSendUser = true;
              }

同时对下面的函数做出错提示

getProcessVariables(taskId).then(res => {
            console.log("getProcessVariables res=",res);
            // this.variables = res.result.variables;
            if(res.success) {
              if(res.result.hasOwnProperty('variables')) {
                this.variablesData = res.result.variables;
                console.log("this.variablesData=",this.variablesData)
                this.variableOpen = true;
                this.formViewData = JSON.stringify(this.variablesData);
                this.formVal = JSON.stringify(this.variablesData.formValue);
                this.taskForm.values = JSON.parse(this.formVal);
                console.log("this.taskForm.values=",this.taskForm.values);
              }
            }
            else {
              this.$message.error(res.message);
            }

3、具体的流程图如下:


相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
9080 1
|
移动开发 前端开发
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
1491 0
|
移动开发 前端开发
flowable流程跳转或退回到网关上的用户节点后流程走不下去了
flowable流程跳转或退回到网关上的用户节点后流程走不下去了
1263 2
|
前端开发
基于jeecg-boot的flowable流程增加部门经理审批功能
基于jeecg-boot的flowable流程增加部门经理审批功能
613 0
|
前端开发
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
1375 0
|
移动开发 前端开发
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
1114 0
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
2369 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
网络协议 Java 网络安全
基于Spring Boot的LDAP开发全教程
基于Spring Boot的LDAP开发全教程
2820 0
|
前端开发
基于jeecgboot的支持online表单审批的功能正式发布
基于jeecgboot的支持online表单审批的功能正式发布
379 0
基于jeecgboot的flowable流程设计器的几个bug修复
基于jeecgboot的flowable流程设计器的几个bug修复
266 0

热门文章

最新文章