基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

简介: 基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

因为之前不支持在流程设计器进行自定义业务表单的关联选择,所以这部分实现这个。

1、前端

对不同应用类型做不同的处理

/** 查询表单列表 */
    getFormList() {
      if(this.appType[0].id === 'OA' ) {
        listForm().then(response => {
          this.formOptions = response.rows;
          console.log("listForm this.formOptions=",this.formOptions);
        });
      }
      else if(this.appType[0].id === 'ZDYYW') {
        listCustomForm().then(response => {
          this.formOptions = response.rows;
          console.log("listCustomForm this.formOptions=",this.formOptions);
        });
      }
    },

同时自定义业务表单类型,只能在开始节点进行选择,用户节点不能选择

2、后端

发布的时候增加一个自定义业务表单的关联处理

if(StrUtil.equalsAnyIgnoreCase(appType, "OA")) {
          return deployFormService.saveInternalDeployForm(deployment.getId(), bpmnModel);
        } else if(StrUtil.equalsAnyIgnoreCase(appType, "ZDYYW")) {
          return customFormService.saveCustomDeployForm(deployment.getId(), deployment.getName(), bpmnModel);
        }

具体处理实现如下:

@Override
  @Transactional(rollbackFor = Exception.class)
  public boolean saveCustomDeployForm(String deployId, String deployName, BpmnModel bpmnModel) {
        // 获取开始节点
        StartEvent startEvent = ModelUtils.getStartEvent(bpmnModel);
        if (ObjectUtil.isNull(startEvent)) {
            throw new RuntimeException("开始节点不存在,请检查流程设计是否有误!");
        }
        // 更新开始节点表单信息与流程信息到自定义业务关联表
        WfCustomFormBo customFormBo = buildCustomForm(deployId, deployName, startEvent);
        if (ObjectUtil.isNotNull(customFormBo)) {
          updateByBo(customFormBo);
          return true;
        }
    return false;
  }
  /**
     * 构建部署表单关联信息对象
     * @param deployId 部署ID
     * @param node 节点信息
     * @return 部署表单关联对象。若无表单信息(formKey),则返回null
     */
    private WfCustomFormBo buildCustomForm(String deployId, String deployName, FlowNode node) {
        String formKey = ModelUtils.getFormKey(node);
        if (StringUtils.isEmpty(formKey)) {
            return null;
        }
        Long formId = Convert.toLong(StringUtils.substringAfter(formKey, "key_"));
        WfCustomFormVo customFormVo = queryById(formId);
        if (ObjectUtil.isNull(customFormVo)) {
            throw new ServiceException("表单信息查询错误");
        }
        WfCustomFormBo customFormBo = new WfCustomFormBo();
        customFormBo.setId(formId);
        customFormBo.setBusinessName(customFormVo.getBusinessName());
        customFormBo.setBusinessService(customFormVo.getBusinessService());
        customFormBo.setCreateBy(customFormBo.getCreateBy());
        customFormBo.setRouteName(customFormVo.getRouteName());
        customFormBo.setDeployId(deployId);
        customFormBo.setFlowName(deployName);
        return customFormBo;
    }

3、效果图如下:


相关文章
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
63 3
|
6月前
|
JSON API 数据格式
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
71 1
|
6月前
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(二)
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(二)
49 1
|
6月前
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(三)
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(三)
47 0
|
6月前
|
JSON 移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
94 2
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
73 2
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
72 2
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
47 1
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
89 1
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)
78 1