基于jeecgboot的flowable增加流程节点抄送功能

简介: 基于jeecgboot的flowable增加流程节点抄送功能

1、后端

主要增加flow_cc一个表

增加相应的这个表模块功能

@GetMapping(value = "/list")
    public Result<?> queryPageList(FlowCc flowCc,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<FlowCc> queryWrapper = QueryGenerator.initQueryWrapper(flowCc, req.getParameterMap());
        
        queryWrapper.eq("username", iFlowThirdService.getLoginUser().getUsername());
        Page<FlowCc> page = new Page<FlowCc>(pageNo, pageSize);
        IPage<FlowCc> pageList = flowCcService.page(page, queryWrapper);
        return Result.OK(pageList);
    }

这里主要修改了增加条件,只显示自己的数据

增加流程抄送类功能

@Override
    public Boolean flowCc(FlowTaskVo taskVo) {
        if (StringUtils.isEmpty(taskVo.getCcUsers())) {
            // 若抄送用户为空,则不需要处理,返回成功
            return true;
        }
        HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
            .processInstanceId(taskVo.getInstanceId()).singleResult();
        String[] usernames = taskVo.getCcUsers().split(",");
        List<FlowCc> flowCcList = new ArrayList<>();
        String initiatorUsername = iFlowThirdService.getLoginUser().getUsername();
        String initiatorRealname = iFlowThirdService.getLoginUser().getRealname();
        String title = historicProcessInstance.getProcessDefinitionName();
        for (String username : usernames) {
            FlowCc flowCc = new FlowCc();
            flowCc.setTitle(title);
            flowCc.setFlowId(historicProcessInstance.getProcessDefinitionId());
            flowCc.setFlowName(historicProcessInstance.getProcessDefinitionName());
            flowCc.setDeploymentId(historicProcessInstance.getDeploymentId());
            flowCc.setInstanceId(taskVo.getInstanceId());
            flowCc.setTaskId(taskVo.getTaskId());
            flowCc.setBusinessKey(taskVo.getBusinessKey());
            flowCc.setUsername(username);
            flowCc.setInitiatorUsername(initiatorUsername);
            flowCc.setInitiatorRealname(initiatorRealname);
            flowCcList.add(flowCc);
        }
        return insertBatch(flowCcList);
    }
    /**
     * 批量插入(包含限制条数,目前现在100条)
    */
    @Override
    public boolean insertBatch(List<FlowCc> flowCcList) {
        String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.INSERT_ONE);
        return SqlHelper.executeBatch(this.currentModelClass(), log, flowCcList, 100,
                (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity));
    }

2、前端

通过代码自动生成,拷贝进去,就是详情修改一下如下

/** 流程流转记录 */
      handleFlowRecord(row){
        console.log("handleFlowRecord row=",row);
        this.$router.push({ path: '/flowable/task/record/index',
          query: {
            procInsId: row.instanceId,
            deployId: row.deploymentId,
            taskId: row.taskId,
            businessKey: row.businessKey,
            finished: false
        }})
      },

选择抄送人增加一下

<el-form-item label="选择抄送人" prop="ccUsers">
          <j-select-user-by-dep v-model="taskForm.ccUsers" />
        </el-form-item>

3、效果如下:

 

相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
5510 0
|
XML 存储 JavaScript
Flowable学习笔记(二、BPMN 2.0-基础 )
Flowable学习笔记(二、BPMN 2.0-基础 )
3722 0
Flowable学习笔记(二、BPMN 2.0-基础 )
基于jeecgboot的flowable增加我的抄送及已读信息
基于jeecgboot的flowable增加我的抄送及已读信息
341 2
|
前端开发 API
基于若依的ruoyi-nbcio的flowable流程管理系统增加服务任务和我的抄送功能
基于若依的ruoyi-nbcio的flowable流程管理系统增加服务任务和我的抄送功能
400 0
|
9月前
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
956 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
9月前
|
存储 前端开发 Java
SpringBoot整合Flowable【05】- 使用流程变量传递业务数据
本文介绍了如何使用Flowable的流程变量来管理绩效流程中的自定义数据。首先回顾了之前的简单绩效流程,指出现有流程缺乏分数输入和保存步骤。接着详细解释了流程变量的定义、分类(运行时变量和历史变量)及类型。通过具体代码示例展示了如何在绩效流程中插入全局和局部流程变量,实现各节点打分并维护分数的功能。最后总结了流程变量的使用场景及其在实际业务中的灵活性,并承诺将持续更新Flowable系列文章,帮助读者更好地理解和应用Flowable。 简要来说,本文通过实例讲解了如何利用Flowable的流程变量功能优化绩效评估流程,确保每个环节都能记录和更新分数,同时提供了全局和局部变量的对比和使用方法。
745 0
SpringBoot整合Flowable【05】- 使用流程变量传递业务数据
|
移动开发 前端开发
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
697 0
|
前端开发
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
1065 0
|
移动开发 前端开发
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
基于jeecg-boot的flowable流程审批时增加下一个审批人设置
1107 0
|
前端开发 数据库 JavaScript
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
52812 11