亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Activiti進階之組任務(wù)實現(xiàn)示例詳解

 更新時間:2022年08月17日 14:52:03   作者:請叫我黃同學  
這篇文章主要為大家介紹了Activiti進階之組任務(wù)實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1.組任務(wù)

1.1、需求

在流程定義中在任務(wù)結(jié)點的 assignee 固定設(shè)置任務(wù)負責人,在流程定義時將參與者固定設(shè)置在.bpmn 文件中,如果臨時任務(wù)負責人變更則需要修改流程定義,系統(tǒng)可擴展性差。

針對這種情況可以給任務(wù)設(shè)置多個候選人,可以從候選人中選擇參與者來完成任務(wù)。

1.2、設(shè)置任務(wù)候選人

在流程圖中任務(wù)節(jié)點的配置中設(shè)置 candidate-users(候選人),多個候選人之間用逗號分開。

查看bpmn文件

<userTask activiti:candidateUsers="lisi,wangwu" activiti:exclusive="true" id="_3" name="經(jīng)理審批"/>

我們可以看到部門經(jīng)理的審核人已經(jīng)設(shè)置為 lisi,wangwu 這樣的一組候選人,可以使用

activiti:candiateUsers=”用戶 1,用戶 2,用戶 3”的這種方式來實現(xiàn)設(shè)置一組候選人

1.3、組任務(wù)

1.3.1、組任務(wù)辦理流程

  • a、查詢組任務(wù)

指定候選人,查詢該候選人當前的待辦任務(wù)。

候選人不能立即辦理任務(wù)。

  • b、拾取(claim)任務(wù)

該組任務(wù)的所有候選人都能拾取。

將候選人的組任務(wù),變成個人任務(wù)。原來候選人就變成了該任務(wù)的負責人。

如果拾取后不想辦理該任務(wù)?

需要將已經(jīng)拾取的個人任務(wù)歸還到組里邊,將個人任務(wù)變成了組任務(wù)。

  • c、查詢個人任務(wù)

查詢方式同個人任務(wù)部分,根據(jù)assignee查詢用戶負責的個人任務(wù)。

  • d、辦理個人任務(wù)

1.3.2、 查詢組任務(wù)

根據(jù)候選人查詢組任務(wù)

    /**
     * 查詢組任務(wù)
     */
    @Test
    public void test03(){
        String key = "evection1";
        String candidateUser = "lisi";
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey(key)
                .taskCandidateUser(candidateUser)
                .list();
        for (Task task : list) {
            System.out.println("流程實例Id:" + task.getProcessInstanceId());
            System.out.println("任務(wù)ID:" + task.getId());
            System.out.println("負責人:" + task.getAssignee());
            System.out.println("任務(wù)名稱:" + task.getName());
        }
    }

1.3.3 、 拾取組任務(wù)

候選人員拾取組任務(wù)后該任務(wù)變?yōu)樽约旱膫€人任務(wù)。

    /**
     * 候選人 拾取任務(wù)
     */
    @Test
    public void test04(){
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        String taskId = "72505";
        // 候選人
        String userId = "lisi";
        // 拾取任務(wù)
        Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .taskCandidateUser(userId) // 根據(jù)候選人查詢
                .singleResult();
        if(task != null){
            // 可以拾取任務(wù)
            taskService.claim(taskId,userId);
            System.out.println("拾取成功");
        }
    }

1.3.4、 查詢個人待辦任務(wù)

查詢方式同個人任務(wù)查詢

    @Test
    public void test03(){
        String key = "evection1";
        String candidateUser = "lisi";
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey(key)
                //.taskCandidateUser(candidateUser)
                //.taskCandidateOrAssigned(candidateUser)
                .taskAssignee(candidateUser)
                .list();
        for (Task task : list) {
            System.out.println("流程實例Id:" + task.getProcessInstanceId());
            System.out.println("任務(wù)ID:" + task.getId());
            System.out.println("負責人:" + task.getAssignee());
            System.out.println("任務(wù)名稱:" + task.getName());
        }
    }

1.3.5、 辦理個人任務(wù)

同個人任務(wù)辦理

    /**
     * 完成個人任務(wù)
     */
    @Test
    public void test05(){
        String  taskId = "72505";
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        taskService.complete(taskId);
        System.out.println("完成任務(wù):" + taskId);
    }

1.3.6、 歸還組任務(wù)

如果個人不想辦理該組任務(wù),可以歸還組任務(wù),歸還后該用戶不再是該任務(wù)的負責人

   /**
     * 歸還任務(wù)
     */
    @Test
    public void test06(){
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        String taskId = "75002";
        String userId= "zhangsan";
        Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .taskAssignee(userId)
                .singleResult();
        if(task != null){
            // 如果設(shè)置為null,歸還組任務(wù),任務(wù)沒有負責人
            taskService.setAssignee(taskId,null);
        }
    }

1.3.7、 任務(wù)交接

任務(wù)負責人將任務(wù)交給其他負責人來處理

    /**
     * 任務(wù)交接
     */
    @Test
    public void test07(){
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = engine.getTaskService();
        String taskId = "75002";
        String userId= "zhangsan";
        Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .taskAssignee(userId)
                .singleResult();
        if(task != null){
            // 設(shè)置該任務(wù)的新的負責人
            taskService.setAssignee(taskId,"趙六");
        }
    }

1.3.8、 數(shù)據(jù)庫表操作

查詢當前任務(wù)執(zhí)行表

SELECT * FROM act_ru_task 

任務(wù)執(zhí)行表,記錄當前執(zhí)行的任務(wù),由于該任務(wù)當前是組任務(wù),所有assignee為空,當拾取任務(wù)后該字段就是拾取用戶的id

查詢?nèi)蝿?wù)參與者

SELECT * FROM act_ru_identitylink

任務(wù)參與者,記錄當前參考任務(wù)用戶或組,當前任務(wù)如果設(shè)置了候選人,會向該表插入候選人記錄,有幾個候選就插入幾個

與act_ru_identitylink對應的還有一張歷史表act_hi_identitylink,向act_ru_identitylink插入記錄的同時也會向歷史表插入記錄。任務(wù)完成

以上就是Activiti進階之組任務(wù)實現(xiàn)示例詳解的詳細內(nèi)容,更多關(guān)于Activiti進階組任務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot配置log4j輸出日志的案例講解

    SpringBoot配置log4j輸出日志的案例講解

    這篇文章主要介紹了SpringBoot配置log4j輸出日志的案例講解,springboot框架中默認使用logback進行日志輸出,當然它也可以配置其它的日志框架,需要的朋友可以參考下
    2022-11-11
  • Mybatis設(shè)置sql打印日志的多種方法

    Mybatis設(shè)置sql打印日志的多種方法

    這篇文章主要介紹了Mybatis設(shè)置sql打印日志,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 基于socket和javaFX簡單文件傳輸工具

    基于socket和javaFX簡單文件傳輸工具

    這篇文章主要介紹了基于socket和javaFX簡單文件傳輸工具的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • javaweb上傳下載實例完整版解析(下)

    javaweb上傳下載實例完整版解析(下)

    這篇文章主要為大家詳細解析了javaweb上傳下載實例,本文重點在于文件下載功能的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • java使用BeanUtils.copyProperties踩坑經(jīng)歷

    java使用BeanUtils.copyProperties踩坑經(jīng)歷

    最近在做個項目,踩了個坑特此記錄一下,本文主要介紹了使用BeanUtils.copyProperties踩坑經(jīng)歷,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java8新特性之空指針異常的克星Optional類的實現(xiàn)

    Java8新特性之空指針異常的克星Optional類的實現(xiàn)

    這篇文章主要介紹了Java8新特性之空指針異常的克星Optional類的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • java設(shè)計模式之單例模式

    java設(shè)計模式之單例模式

    這篇文章主要為大家詳細介紹了java設(shè)計模式之單例模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java基礎(chǔ)詳細筆記之異常處理

    java基礎(chǔ)詳細筆記之異常處理

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,下面這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)詳細筆記之異常處理的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • IntelliJ Idea 2017注冊碼免費激活方法

    IntelliJ Idea 2017注冊碼免費激活方法

    IDEA 全稱 IntelliJ IDEA,是Java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認為最好的java開發(fā)工具之一。下面給大家介紹IntelliJ Idea 2017注冊碼免費激活方法,需要的朋友參考下
    2018-01-01
  • Java小程序計算圓周率代碼

    Java小程序計算圓周率代碼

    這篇文章主要介紹了Java小程序計算圓周率代碼,有兩種實現(xiàn)方法,喜歡的朋友可以參考下。
    2017-09-09

最新評論