国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于若依的ruoyi-nbcio流程管理系統(tǒng)自定義業(yè)務(wù)撤回功能的修復(fù)

這篇具有很好參考價值的文章主要介紹了基于若依的ruoyi-nbcio流程管理系統(tǒng)自定義業(yè)務(wù)撤回功能的修復(fù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

更多ruoyi-nbcio功能請看演示系統(tǒng)

gitee源代碼地址

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

演示地址:RuoYi-Nbcio后臺管理系統(tǒng)

更多nbcio-boot功能請看演示系統(tǒng)

gitee源代碼地址

后端代碼: https://gitee.com/nbacheng/nbcio-boot

前端代碼:https://gitee.com/nbacheng/nbcio-vue.git

在線演示(包括H5) : http://122.227.135.243:9888
?

? ? ? ?撤回功能主要是針對我審批完后的一種操作方式,只能我自己審批完到下一節(jié)點的時候才能做撤回操作,比如我審批通過了,我可以進行撤回,但一旦下一個節(jié)點也被人審批了,那我就不能撤回了。

? ? ?具體的代碼如下,主要是修復(fù)對自定義業(yè)務(wù)關(guān)聯(lián)表的數(shù)據(jù)更新:

@Override
    @Transactional(rollbackFor = Exception.class)
    public void revokeProcess(WfTaskBo taskBo) {
        String procInsId = taskBo.getProcInsId();
        String taskId = taskBo.getTaskId();
        // 校驗流程是否結(jié)束
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
            .processInstanceId(procInsId)
            .active()
            .singleResult();
        if(ObjectUtil.isNull(processInstance)) {
            throw new RuntimeException("流程已結(jié)束或已掛起,無法執(zhí)行撤回操作");
        }
        // 獲取待撤回任務(wù)實例
        HistoricTaskInstance currTaskIns = historyService.createHistoricTaskInstanceQuery()
            .taskId(taskId)
            .taskAssignee(TaskUtils.getUserName())
            .singleResult();
        if (ObjectUtil.isNull(currTaskIns)) {
            throw new RuntimeException("當(dāng)前任務(wù)不存在,無法執(zhí)行撤回操作");
        }
        // 獲取 bpmn 模型
        BpmnModel bpmnModel = repositoryService.getBpmnModel(currTaskIns.getProcessDefinitionId());
        UserTask currUserTask = ModelUtils.getUserTaskByKey(bpmnModel, currTaskIns.getTaskDefinitionKey());
        // 查找下一級用戶任務(wù)列表
        List<UserTask> nextUserTaskList = ModelUtils.findNextUserTasks(currUserTask);
        List<String> nextUserTaskKeys = nextUserTaskList.stream().map(UserTask::getId).collect(Collectors.toList());

        // 獲取當(dāng)前節(jié)點之后已完成的流程歷史節(jié)點
        List<HistoricTaskInstance> finishedTaskInsList = historyService.createHistoricTaskInstanceQuery()
            .processInstanceId(procInsId)
            .taskCreatedAfter(currTaskIns.getEndTime())
            .finished()
            .list();
        for (HistoricTaskInstance finishedTaskInstance : finishedTaskInsList) {
            // 檢查已完成流程歷史節(jié)點是否存在下一級中
            if (CollUtil.contains(nextUserTaskKeys, finishedTaskInstance.getTaskDefinitionKey())) {
                throw new RuntimeException("下一流程已處理,無法執(zhí)行撤回操作");
            }
        }
        // 獲取所有激活的任務(wù)節(jié)點,找到需要撤回的任務(wù)
        List<Task> activateTaskList = taskService.createTaskQuery().processInstanceId(procInsId).list();
        List<String> revokeExecutionIds = new ArrayList<>();
        for (Task task : activateTaskList) {
            // 檢查激活的任務(wù)節(jié)點是否存在下一級中,如果存在,則加入到需要撤回的節(jié)點
            if (CollUtil.contains(nextUserTaskKeys, task.getTaskDefinitionKey())) {
                // 添加撤回審批信息
                taskService.setAssignee(task.getId(), TaskUtils.getUserName());
                taskService.addComment(task.getId(), task.getProcessInstanceId(), FlowComment.REVOKE.getType(), LoginHelper.getNickName() + "撤回流程審批");
                revokeExecutionIds.add(task.getExecutionId());
            }
        }
        try {
            runtimeService.createChangeActivityStateBuilder()
                .processInstanceId(procInsId)
                .moveExecutionsToSingleActivityId(revokeExecutionIds, currTaskIns.getTaskDefinitionKey()).changeState();
            String dataId = taskBo.getDataId();
            if(StringUtils.isNotEmpty(dataId)) {
            	//當(dāng)前任務(wù)信息
                List<Task> listtask = taskService.createTaskQuery().processInstanceId(procInsId).taskAssignee(TaskUtils.getUserName()).list();
            	WfMyBusiness business = wfMyBusinessService.getByDataId(dataId);
            	//更新自定義業(yè)務(wù)任務(wù)關(guān)聯(lián)表與流程歷史表,以便可以重新發(fā)起流程。
            	if (business != null) {
            		if (listtask != null && listtask.size()>0) {
            			business.setActStatus(ActStatus.revoke);
                		business.setTodoUsers(listtask.get(0).getAssignee());
            		}
            		else {
            			business.setActStatus(ActStatus.revoke);
	            		business.setTodoUsers("");
	            		business.setDoneUsers("");
	            		business.setProposer("");
	            		business.setTaskName("");
	            		business.setTaskId("");
	            		business.setTaskNameId("");
            		}
            		
                	wfMyBusinessService.updateById(business);
                }	
            }
        } catch (FlowableObjectNotFoundException e) {
            throw new RuntimeException("未找到流程實例,流程可能已發(fā)生變化");
        } catch (FlowableException e) {
            throw new RuntimeException("執(zhí)行撤回操作失敗");
        }
    }

? ? ?文章來源地址http://www.zghlxwxcb.cn/news/detail-802553.html

到了這里,關(guān)于基于若依的ruoyi-nbcio流程管理系統(tǒng)自定義業(yè)務(wù)撤回功能的修復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(二)

    基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(二)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 更多nbcio-boot功能請看演示系統(tǒng) gitee源代碼地址 后端代碼: https://gitee.com/nbacheng/nbcio-boot 前端代碼:https://gitee.com/nbacheng/nbcio-vue.git 在線演示(包括H

    2024年01月25日
    瀏覽(23)
  • 基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(四)

    基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(四)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 更多nbcio-boot功能請看演示系統(tǒng) gitee源代碼地址 后端代碼: https://gitee.com/nbacheng/nbcio-boot 前端代碼:https://gitee.com/nbacheng/nbcio-vue.git 在線演示(包括H

    2024年01月23日
    瀏覽(23)
  • 基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(一)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 更多nbcio-boot功能請看演示系統(tǒng) gitee源代碼地址 后端代碼: https://gitee.com/nbacheng/nbcio-boot 前端代碼:https://gitee.com/nbacheng/nbcio-vue.git 在線演示(包括H

    2024年01月20日
    瀏覽(17)
  • 基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(三)

    基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(三)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 更多nbcio-boot功能請看演示系統(tǒng) gitee源代碼地址 后端代碼: https://gitee.com/nbacheng/nbcio-boot 前端代碼:https://gitee.com/nbacheng/nbcio-vue.git 在線演示(包括H

    2024年01月24日
    瀏覽(27)
  • 基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(五)

    基于若依的ruoyi-nbcio流程管理系統(tǒng)一種簡單的動態(tài)表單模擬測試實現(xiàn)(五)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 更多nbcio-boot功能請看演示系統(tǒng) gitee源代碼地址 后端代碼: https://gitee.com/nbacheng/nbcio-boot 前端代碼:https://gitee.com/nbacheng/nbcio-vue.git 在線演示(包括H

    2024年01月24日
    瀏覽(19)
  • 基于若依的ruoyi-nbcio的flowable流程管理系統(tǒng)增加服務(wù)任務(wù)和我的抄送功能

    基于若依的ruoyi-nbcio的flowable流程管理系統(tǒng)增加服務(wù)任務(wù)和我的抄送功能

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼:?https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 1、增加一個狀態(tài)字段 wf_copy增加下面兩個字段 就用未讀已讀來區(qū)分 2、前端 api接口增加如下: 上面是我的抄送,主要是接口不一樣。 抄送點擊詳情

    2024年02月04日
    瀏覽(18)
  • 基于若依ruoyi-nbcio支持flowable流程增加自定義業(yè)務(wù)表單(二)

    基于若依ruoyi-nbcio支持flowable流程增加自定義業(yè)務(wù)表單(二)

    ?更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼:?https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) 之前講了自定義業(yè)務(wù)表單,現(xiàn)在講如何與流程進行關(guān)聯(lián) 1、后端部分 WfCustomFormMapper.xml WfCustomFormMapper.java control接口 CustomFormVo.java 2、前端部分 custo

    2024年02月07日
    瀏覽(18)
  • 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定義業(yè)務(wù)表單流程(二)

    基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定義業(yè)務(wù)表單流程(二)

    更多ruoyi-nbcio功能請看演示系統(tǒng) gitee源代碼地址 前后端代碼:?https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后臺管理系統(tǒng) ? ? ?之前講到了流程保存的時候還要看是否是自定義業(yè)務(wù)流程應(yīng)用類型,若是保存的時候不再檢查是否有關(guān)聯(lián)表單。?? ? ? 那接下來就需要一個自

    2024年02月07日
    瀏覽(24)
  • nbcio-boot移植到若依ruoyi-nbcio平臺里一formdesigner部分(一)

    nbcio-boot移植到若依ruoyi-nbcio平臺里一formdesigner部分(一)

    nbcio-boot項目移植到ruoyi-nbcio項目中, 今天主要講formdesigner的移植 1、把formdesigner的源代碼拷貝到component里,并修改成formdesigner,如下: 2、form下的index.vue修改如下: 主要是修改新增,修改按鈕的路由到新的formdesigner,還有詳情的修改,同時引入preview組件。 3、界面如下:

    2024年02月09日
    瀏覽(25)
  • RuoYi若依管理系統(tǒng)最新版 基于SpringBoot的權(quán)限管理系統(tǒng)

    RuoYi是一個后臺管理系統(tǒng),基于經(jīng)典技術(shù)組合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的讓開發(fā)者注重專注業(yè)務(wù),降低技術(shù)難度,從而節(jié)省人力成本,縮短項目周期,提高軟件安全質(zhì)量。 本地版本為截止2023-9-10最新版本V4.7.7 完全響應(yīng)式布局(支持電腦、平板、手機等所

    2024年02月09日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包