• 基于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 queryWrapper = QueryGenerator.initQueryWrapper(flowCc, req.getParameterMap());
            
            queryWrapper.eq("username", iFlowThirdService.getLoginUser().getUsername());
            Page page = new Page(pageNo, pageSize);
            IPage 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 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 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
            }})
          },

    选择抄送人增加一下


             
           

    3、效果如下:

     

     

     

  • 相关阅读:
    2225. 找出输掉零场或一场比赛的玩家
    利用小批量训练的方法在子图中进行消息传递
    智能语音外呼系统 OKCC没有电脑的坐席能不能开展工作
    观测云如何计费?有哪些计费项
    bpftrace:简便输出调试信息
    Linux-多路转接-epoll
    2023-简单点-树莓派安装ncnn框架
    nginx和apache哪个支持的并发高,为什么
    Linux介绍以及常用命令
    vue插件瀑布流vue-masonry(带源码)
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/127405740