• 基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(一)支持同一个业务多个关联流程的选择支持


    因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

    这部分先讲讲支持自定义业务表单一个业务服务表单多个流程的支持处理

    1、后端mapper部分

    如下,修改selectSysCustomFormByServiceName为list对象,以便支持多个

    1. "1.0" encoding="UTF-8"?>
    2. "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. "org.jeecg.modules.flowable.mapper.SysCustomFormMapper">
    4. "org.jeecg.modules.flowable.entity.SysCustomForm" id="sysCustomFormResult">
    5. "id" column="id"/>
    6. "businessName" column="business_name"/>
    7. "businessService" column="business_service"/>
    8. "flowName" column="flow_name"/>
    9. "deployId" column="deploy_id"/>
    10. "routeName" column="route_name"/>
    11. "component" column="component"/>
    12. "createBy" column="create_by"/>
    13. "createTime" column="create_time"/>
    14. "updateBy" column="update_by"/>
    15. "updateTime" column="update_time"/>
    16. "sysOrgCode" column="sys_org_code"/>
    17. "updateCustom" parameterType="Object">
    18. update sys_custom_form set deploy_id= #{customFormVo.deployId}, flow_name=#{customFormVo.flowName} where id = #{customFormVo.id}

    2、对流程启动也要修改,因为根据用户选择出来的id进行处理

    1. public Result startProcessInstanceByDataId(String dataId, String selectFlowId, String serviceName, Map variables) {
    2. //提交审批的时候进行流程实例关联初始化
    3. if (StringUtils.isEmpty(selectFlowId)){
    4. return Result.error("未找到关联流程selectFlowId:"+selectFlowId);
    5. }
    6. /*
    7. if (serviceName==null){
    8. return Result.error("未找到serviceName:"+serviceName);
    9. }*/
    10. SysCustomForm sysCustomForm = sysCustomFormService.getById(selectFlowId);
    11. if(sysCustomForm ==null){
    12. return Result.error("未找到sysCustomForm:"+serviceName);
    13. }
    14. //优先考虑自定义业务表是否关联流程,再看通用的表单流程关联表
    15. ProcessDefinition processDefinition;
    16. String deployId = sysCustomForm.getDeployId();
    17. if(StringUtils.isEmpty(deployId)) {
    18. SysDeployForm sysDeployForm = sysDeployFormService.selectSysDeployFormByFormId(sysCustomForm.getId());
    19. if(sysDeployForm ==null){
    20. return Result.error("自定义表单也没关联流程定义表,流程没定义关联自定义表单"+sysCustomForm.getId());
    21. }
    22. processDefinition = repositoryService.createProcessDefinitionQuery()
    23. .parentDeploymentId(sysDeployForm.getDeployId()).latestVersion().singleResult();
    24. }
    25. else {
    26. processDefinition = repositoryService.createProcessDefinitionQuery()
    27. .parentDeploymentId(deployId).latestVersion().singleResult();
    28. }
    29. LambdaQueryWrapper flowMyBusinessLambdaQueryWrapper = new LambdaQueryWrapper<>();
    30. flowMyBusinessLambdaQueryWrapper.eq(FlowMyBusiness::getDataId, dataId);
    31. FlowMyBusiness business = flowMyBusinessService.getOne(flowMyBusinessLambdaQueryWrapper);
    32. if (business==null){
    33. if(processDefinition==null) {
    34. return Result.error("自定义表单也没关联流程定义表,流程没定义关联自定义表单"+sysCustomForm.getId());
    35. }
    36. boolean binit = flowCommonService.initActBusiness(sysCustomForm.getBusinessName(), dataId, serviceName,
    37. processDefinition.getKey(), processDefinition.getId(), sysCustomForm.getRouteName());
    38. if(!binit) {
    39. return Result.error("自定义表单也没关联流程定义表,流程没定义关联自定义表单"+sysCustomForm.getId());
    40. }
    41. FlowMyBusiness businessnew = flowMyBusinessService.getOne(flowMyBusinessLambdaQueryWrapper);
    42. //流程实例关联初始化结束
    43. if (StrUtil.isNotBlank(businessnew.getProcessDefinitionId())){
    44. return this.startProcessInstanceById(businessnew.getProcessDefinitionId(),variables);
    45. }
    46. return this.startProcessInstanceByKey(businessnew.getProcessDefinitionKey(),variables);
    47. }
    48. else {
    49. return Result.error("已经存在这个dataid实例,不要重复申请:"+dataId);
    50. }
    51. }

    3、前端代码如下:

    4、效果图如下:

  • 相关阅读:
    3. JVM-运行时数据区概述及线程
    使用WebDriver采样器将JMeter与Selenium集成
    Jenkins配置及插件安装
    使用 PyTorch 搭建网络 - train_py篇
    神经网络算法 知乎,图神经网络 知乎
    vue--8.组件传值(provide--inject)、动态组件、缓存组件keep-alive、异步组件
    3ds max文件打包?max插件CG Magic一键打包整起!
    纳睿雷达冲刺上市:产能利用率不足仍要扩产,毛利率持续下滑
    IAR全面支持小华全系芯片,强化工控及汽车MCU生态圈
    2022年全球一次能源消费量:石油消耗量持续增加达190.69百亿亿焦耳,亚太地区消费量居首位[图]
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/139870572