基于jeecgboot的flowable驳回修改以及发起人设置

简介: 基于jeecgboot的flowable驳回修改以及发起人设置

 昨晚升级代码生成器,支持生成权限注解和菜单的SQL,修改驳回bug,以后保存流程强制要求第一个用户任务节点必须是发起人节点。

     1、前端增加发起人设置

<el-radio label="INITIATOR">发起人</el-radio>

相应代码

if (this.containsKey(this.bpmnElement.businessObject, 'assignee') &&
               this.bpmnElement.businessObject.assignee === '${INITIATOR}') {
            this.defaultTaskForm.dataType = "INITIATOR";
          }
changeDataType(val) {
      if (val === 'INITIATOR') {
        this.userTaskForm.assignee = "${INITIATOR}";
        this.userTaskForm.text = "流程发起人";
        const taskAttr = Object.create(null);
        taskAttr['assignee'] = this.userTaskForm['assignee'] || null;
        window.bpmnInstances.modeling.updateProperties(this.bpmnElement, taskAttr);
      }

  2、后端流程保存修改

//传节点定义key获取当前节点
        List<org.flowable.bpmn.model.Process> processes =  bpmnModel.getProcesses();
        //查看第一个用户任务节点是否是发起人节点
        List<FlowNode> flowNodes = processes.get(0).findFlowElementsOfType(FlowNode.class);
        List<SequenceFlow> outgoingFlows = flowNodes.get(0).getOutgoingFlows();
      //遍历返回下一个节点信息
        for (SequenceFlow outgoingFlow : outgoingFlows) {
            //类型自己判断(获取下个节点是任务节点)
            FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
            //下个是节点
           if(targetFlowElement instanceof UserTask){// 下个出口是用户任务,而且是要发起人节点才让保存
               
               if(StringUtils.equals(((UserTask) targetFlowElement).getAssignee(), "${INITIATOR}"))
               {
                   break;
                }
               else {
                   return Result.error("导入失败,流程第一个用户任务节点必须是发起人节点");
               }
            }
        }

 3、后端发起流程修改

SysUser sysUser = iFlowThirdService.getLoginUser();
        identityService.setAuthenticatedUserId(sysUser.getUsername());
        variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUsername());

 4、后端驳回修改

if (StrUtil.equals(targetUserTask.getAssignee().toString(),"${INITIATOR}")) {//是否为发起人节点
                    //开始节点 设置处理人为申请人
                    taskService.setAssignee(targetTask.getId(), startUserId);
          }

5、效果图


相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
7193 1
|
10月前
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
1327 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
前端开发
基于jeecg-boot的flowable流程自定义业务驳回到发起人的一种处理方式
基于jeecg-boot的flowable流程自定义业务驳回到发起人的一种处理方式
694 0
|
前端开发
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
1191 0
|
移动开发 前端开发
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
845 0
基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(三)
基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(三)
356 0
|
移动开发 前端开发
基于Jeecg-boot的flowable流程支持拒绝同意流程操作(二)
基于Jeecg-boot的flowable流程支持拒绝同意流程操作(二)
350 0
|
移动开发 前端开发 Java
基于jeecg-boot的flowable流程提供一种动态设置发起人部门负责人的方式
基于jeecg-boot的flowable流程提供一种动态设置发起人部门负责人的方式
413 0
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
3044 0
|
前端开发 数据库 JavaScript
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
53478 11