• 基于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、效果如下:

     

     

     

  • 相关阅读:
    深度学习:多模态与跨模态
    互联网医院系统开发中的移动端应用设计
    JAVA学习笔记- - - day 2
    罗勇军 →《算法竞赛·快冲300题》每日一题:“游泳” ← DFS+剪枝
    数据结构 树(第10-14天)
    MySQL性能优化-范式设计和反范式设计
    (附源码)ssm学生考勤管理系统 毕业设计 260952
    手把手教你CSP系列之font-src
    RestCloud ETL解决shell脚本参数化
    【类模板】
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/127405740