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

工作流flowable實現(xiàn)撤回

這篇具有很好參考價值的文章主要介紹了工作流flowable實現(xiàn)撤回。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Flowable是一個開源的工作流引擎,可以實現(xiàn)工作流程的自動化管理,包括任務(wù)分配、流轉(zhuǎn)、審批等。如果需要實現(xiàn)撤回功能,可以考慮以下方案:

在流程定義中添加一個撤回節(jié)點,允許任務(wù)的發(fā)起人在任務(wù)未被處理前撤回任務(wù)。當(dāng)發(fā)起人選擇撤回任務(wù)時,任務(wù)將被撤回至撤回節(jié)點,由發(fā)起人修改后再次提交任務(wù)。

在任務(wù)表中添加一個狀態(tài)字段,記錄任務(wù)的狀態(tài),例如待處理、已處理、已撤回等。當(dāng)任務(wù)被撤回時,將任務(wù)狀態(tài)改為已撤回,同時在任務(wù)歷史表中記錄撤回記錄,方便后續(xù)查詢。

在任務(wù)節(jié)點中添加一個監(jiān)聽器,監(jiān)聽任務(wù)狀態(tài)的變化,當(dāng)任務(wù)狀態(tài)變?yōu)橐殉坊貢r,將任務(wù)撤回至上一個處理節(jié)點或撤回節(jié)點,由處理人重新處理任務(wù)。

需要注意的是,在實現(xiàn)撤回功能時需要考慮到安全性和合理性,例如撤回的時間限制、撤回次數(shù)限制等。

以下是一個簡單的Java代碼示例,演示如何實現(xiàn)流程任務(wù)的撤回功能:
1.添加撤回節(jié)點

<userTask id="cancelTask" name="撤回任務(wù)" flowable:assignee="${initiator}">
  <extensionElements>
    <flowable:formProperty id="reason" name="撤回原因" type="string" required="true" />
  </extensionElements>
</userTask>

其中 i n i t i a t o r 表示任務(wù)的發(fā)起人, {initiator}表示任務(wù)的發(fā)起人, initiator表示任務(wù)的發(fā)起人,{reason}表示撤回原因,可以根據(jù)需要修改。
2.更新任務(wù)狀態(tài)
在任務(wù)表中添加一個狀態(tài)字段,例如:

@Entity
@Table(name = "flowable_task")
public class FlowableTask {
    // 其他字段省略
    @Column(name = "status")
    private String status = "pending"; // 任務(wù)狀態(tài),默認(rèn)為待處理

    // getter 和 setter 方法省略
}

3.監(jiān)聽任務(wù)狀態(tài)變化
在任務(wù)節(jié)點中添加一個監(jiān)聽器,例如:

<userTask id="task1" name="任務(wù)1" flowable:assignee="${assignee}">
  <extensionElements>
    <flowable:executionListener event="end" class="com.example.TaskStatusListener" />
  </extensionElements>
</userTask>

其中com.example.TaskStatusListener是一個實現(xiàn)org.flowable.engine.delegate.ExecutionListener接口的監(jiān)聽器,例如:

@Component
public class TaskStatusListener implements ExecutionListener {
    @Autowired
    private TaskService taskService;

    @Override
    public void notify(DelegateExecution execution) {
        String taskId = execution.getVariable("taskId");
        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
        if (task != null) {
            String status = (String) execution.getVariable("status");
            if (status != null) {
                task.setStatus(status); // 更新任務(wù)狀態(tài)
                taskService.saveTask(task); // 保存任務(wù)
            }
        }
    }
}

4.實現(xiàn)撤回操作
在業(yè)務(wù)代碼中實現(xiàn)撤回操作,例如:

@Service
public class TaskService {
    @Autowired
    private RuntimeService runtimeService;
    @Autowired
    private TaskRepository taskRepository;

    public void cancelTask(String taskId, String reason) {
        // 獲取當(dāng)前任務(wù)
        FlowableTask task = taskRepository.findById(taskId).orElseThrow(() -> new RuntimeException("任務(wù)不存在"));
        if (!task.getStatus().equals("pending")) {
            throw new RuntimeException("任務(wù)已被處理,不能撤回");
        }
        // 創(chuàng)建撤回任務(wù)
        Map<String, Object> variables = new HashMap<>();
        variables.put("initiator", task.getAssignee());
        variables.put("reason", reason);
        runtimeService.createProcessInstanceModification(task.getProcessInstanceId())
                .cancelActivityInstanceId(task.getExecutionId())
                .startBeforeActivity("cancelTask")
                .setVariables(variables)
                .execute();
        // 更新任務(wù)狀態(tài)
        task.setStatus("cancelled");
        taskRepository.save(task);
    }
}

其中taskId為需要撤回的任務(wù)ID,reason為撤回原因,具體實現(xiàn)可根據(jù)業(yè)務(wù)場景和需求進(jìn)行調(diào)整。文章來源地址http://www.zghlxwxcb.cn/news/detail-491508.html

到了這里,關(guān)于工作流flowable實現(xiàn)撤回的文章就介紹完了。如果您還想了解更多內(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ìn)行投訴反饋,一經(jīng)查實,立即刪除!

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

相關(guān)文章

  • SpringBoot集成Flowable工作流

    SpringBoot集成Flowable工作流

    官方文檔: https://tkjohn.github.io/flowable-userguide/#_introduction Flowable是一個使用Java編寫的輕量級業(yè)務(wù)流程引擎。Flowable流程引擎可用于部署B(yǎng)PMN 2.0流程定義(用于定義流程的行業(yè)XML標(biāo)準(zhǔn)), 創(chuàng)建這些流程定義的流程實例,進(jìn)行查詢,訪問運行中或歷史的流程實例與相關(guān)數(shù)據(jù),等等

    2024年02月15日
    瀏覽(27)
  • 【學(xué)習(xí)筆記】Flowable - 01 - 工作流 快速上手

    【學(xué)習(xí)筆記】Flowable - 01 - 工作流 快速上手

    JDK8 Flowable6 (6.3 or 6.7.2) Postgresql (MySQL同樣支持) 波哥:2023年Flowable詳細(xì)講解 波哥:2022年Flowable教程-基礎(chǔ)篇 Flowable BPMN 用戶手冊 中文 官方網(wǎng)站 官方github源碼 IDEA低版本提供一個BPMN解析插件: 但是并沒有很好的支持流程的繪制。 存在幾個工具: 古老的Eclipse(太老的不推薦 官

    2024年01月19日
    瀏覽(29)
  • Flowable工作流入門&完整SpringBoot案例

    Flowable工作流入門&完整SpringBoot案例

    工作流(Workflow),是指對于一項業(yè)務(wù),按照規(guī)定的流程,逐級傳遞、申請、執(zhí)行等,并且受到了嚴(yán)格控制的一種業(yè)務(wù)過程。 BPM(Business Process Management)是指對于某項業(yè)務(wù)的整個生命周期進(jìn)行全面管理的一種模式,最核心的內(nèi)容包括了工作流、決策、交互等。在這些管理過程

    2024年02月12日
    瀏覽(19)
  • Spring Boot 中動態(tài)創(chuàng)建 Flowable 工作流

    在 Spring Boot 中動態(tài)創(chuàng)建 Flowable 工作流可以通過以下步驟實現(xiàn): 1.?創(chuàng)建 Flowable 配置:首先,您需要在 Spring Boot 應(yīng)用程序中配置 Flowable。您可以使用 Spring Boot 的配置文件或注解來配置 Flowable。 2.?創(chuàng)建工作流定義:接下來,您需要創(chuàng)建工作流定義。您可以使用 Flowable 的 API 來

    2024年02月10日
    瀏覽(18)
  • 若依(RuoYi-Vue)+Flowable工作流前后端整合教程

    若依(RuoYi-Vue)+Flowable工作流前后端整合教程

    此教程適合若依前后端分離項目,其他項目可以在擴(kuò)展列表中進(jìn)行查找。 近期公司里需要對很久以前的RuoYi-Vue前后端分離項目擴(kuò)展出flowable的功能,當(dāng)然這個重任也是落在了我的身上(不然也不會有這篇文章),然后我在官網(wǎng)看到了RuoYi-Vue-Flowable這個項目,按照文檔提供的遷

    2023年04月21日
    瀏覽(24)
  • 工作流Flowable入門教程:flowableUI的安裝使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

    工作流Flowable入門教程:flowableUI的安裝使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

    Flowable是一個使用Java編寫的輕量級業(yè)務(wù)流程引擎。Flowable流程引擎可用于部署B(yǎng)PMN 2.0流程定義(用于定義流程的行業(yè)XML標(biāo)準(zhǔn)), 創(chuàng)建這些流程定義的流程實例,進(jìn)行查詢,訪問運行中或歷史的流程實例與相關(guān)數(shù)據(jù),等等。這個章節(jié)將用一個可以在你自己的開發(fā)環(huán)境中使用的例

    2024年01月18日
    瀏覽(28)
  • 一個開源的汽修r(nóng)bac后臺管理系統(tǒng)項目,基于若依框架,實現(xiàn)了activiti工作流,附源碼

    一個開源的汽修r(nóng)bac后臺管理系統(tǒng)項目,基于若依框架,實現(xiàn)了activiti工作流,附源碼

    為了更加熟悉activiti工作流的使用和實戰(zhàn)而改造的項目,歡迎大家參考和提出問題建議一起學(xué)習(xí)~ 源碼gitee倉庫地址:Yuzaki-NASA / Activiti7_test_car_rbac master分支是穩(wěn)定版,dev分支是后來加了個新的并行審核流程和客戶管理,個人測了多遍沒啥問題,建議拉dev的代碼。 sql文件在car

    2024年03月23日
    瀏覽(20)
  • Camunda 7工作流引擎 API 以及與Springboot集成實現(xiàn)工作流配置全紀(jì)錄

    Camunda 7工作流引擎 API 以及與Springboot集成實現(xiàn)工作流配置全紀(jì)錄

    項目中需要用到工作流引擎來設(shè)計部分業(yè)務(wù)流程,框架選型最終選擇了 Camunda7,關(guān)于 Camunda以及 Activity 等其他工作流 引擎的介紹及對比不再介紹,這里只介紹與現(xiàn)有Springboot項目的集成以及具體使用及配置 流程(PROCESS): 通過工具建模最終生成的BPMN文件,里面有整個流程的定

    2024年02月10日
    瀏覽(46)
  • Spring Boot + Activiti 結(jié)合,實現(xiàn)工作流

    Spring Boot + Activiti 結(jié)合,實現(xiàn)工作流

    Activiti是一個工作流引擎,Activiti可以將業(yè)務(wù)系統(tǒng)中復(fù)雜的業(yè)務(wù)流程抽取出來,使用專門的建模語言BPMN2.0進(jìn)行定義,業(yè)務(wù)流程按照預(yù)先定義的流程進(jìn)行執(zhí)行,實現(xiàn)了系統(tǒng)的流程由Activiti進(jìn)行管理,減少業(yè)務(wù)系統(tǒng)由于流程變更進(jìn)行系統(tǒng)升級改造的工作量,Activiti流程就是數(shù)據(jù)庫表

    2023年04月13日
    瀏覽(27)
  • Spring Boot 整合 Camunda 實現(xiàn)工作流

    Spring Boot 整合 Camunda 實現(xiàn)工作流

    工作流是我們開發(fā)企業(yè)應(yīng)用幾乎必備的一項功能,工作流引擎發(fā)展至今已經(jīng)有非常多的產(chǎn)品。最近正好在接觸 Camunda ,所以來做個簡單的入門整合介紹。如果您也剛好在調(diào)研或者剛開始計劃接入,希望本文對您有所幫助。如果您是一名Java開發(fā)或Spring框架愛好者,歡迎關(guān)注我程

    2024年01月18日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包