基于若依ruoyi-nbcio增加flowable流程是否结束的接口

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

gitee源代码地址

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

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

因为原先继承的项目没有flowable流程是否结束的接口,主要用在消息提醒里的流程办理。

1、control层

/**
     * 查询流程是否结束
     *
     * @param procInsId
     * @param 
     */
    @GetMapping("/iscompleted")
    public R processIscompleted(String procInsId) {
        return R.ok(processService.processIscompleted(procInsId));
    }

2、Iservice层

/**
     * 查询流程是否结束
     * @param procInsId 流程实例ID
     * 
     */
	boolean processIscompleted(String procInsId);

3、实现层

@Override
	public boolean processIscompleted(String procInsId) {
		
		// 获取流程状态
        HistoricVariableInstance processStatusVariable = historyService.createHistoricVariableInstanceQuery()
            .processInstanceId(procInsId)
            .variableName(ProcessConstants.PROCESS_STATUS_KEY)
            .singleResult();
        if (ObjectUtil.isNotNull(processStatusVariable)) {
        	String processStatus = null;
            if (ObjectUtil.isNotNull(processStatusVariable)) {
                processStatus = Convert.toStr(processStatusVariable.getValue());
                if(StringUtils.equalsIgnoreCase(processStatus, "completed")) {
                	return true;
                }
            }
        }    
		return false;
	}

4、前端调用

initData() {
      this.taskForm.procInsId = this.$route.params && this.$route.params.procInsId;
      this.taskForm.taskId  = this.$route.query && this.$route.query.taskId;
      this.processed = this.$route.query && eval(this.$route.query.processed || false);

      //判断流程是否结束
      processIscompleted({procInsId: this.taskForm.procInsId}).then(res => {
        console.log("processIscompleted res=",res);
        if(res.data) {
         this.processed = false;
        }
        // 流程任务重获取变量表单
        this.getProcessDetails(this.taskForm.procInsId, this.taskForm.taskId);
        this.loadIndex = this.taskForm.procInsId;
        if(this.processed) {
          this.activeName = "approval";
        }
        else {
          this.activeName = "form";
          // 回填数据,这里主要是处理文件列表显示,临时解决,以后应该在formdesigner里完成
          this.processFormList.forEach((item, i) => {
            if (item.hasOwnProperty('list')) {
              this.fillFormData(item.list, item)
              // 更新表单
              this.key = +new Date().getTime()
            }
          });
        }
      });

你可能感兴趣的:(ruoyi-nbcio,若依,flowable,ruoyi-nbcio,flowable,若依)