最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析

 更新時間:2021年07月27日 15:02:21   作者:m17193095294  
這篇文章主要介紹了springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.pom

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.2</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <flowable.version>6.6.0</flowable.version>
    </properties>

         <!--flowable工作流依賴-->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-spring-boot-starter</artifactId>
            <version>${flowable.version}</version>
        </dependency>
         <!-- https://mvnrepository.com/artifact/org.flowable/flowable-json-converter -->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-json-converter</artifactId>
            <version>${flowable.version}</version>
        </dependency>
        <!-- app 依賴 包含 rest,logic,conf -->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-ui-modeler-rest</artifactId>
            <version>${flowable.version}</version>
        </dependency>
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-ui-modeler-logic</artifactId>
            <version>${flowable.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j-impl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-ui-modeler-conf</artifactId>
            <version>${flowable.version}</version>
        </dependency>

2.FlowableConfig配置類

package org.fh.config;

import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;

/**
 * 說明:Flowable配置
 * 作者:FH Admin
 * from:fhadmin.cn
 */
@Controller
@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
    
    @Override
    public void configure(SpringProcessEngineConfiguration engineConfiguration) {
        engineConfiguration.setActivityFontName("宋體");
        engineConfiguration.setLabelFontName("宋體");
        engineConfiguration.setAnnotationFontName("宋體");
    }
    
}
3.重寫 SecurityUtils 重構(gòu)流程編輯器獲取用戶信息

package org.flowable.ui.common.security;

import org.fh.util.Jurisdiction;
import org.flowable.common.engine.api.FlowableIllegalStateException;
import org.flowable.idm.api.User;
import org.flowable.ui.common.model.RemoteUser;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;

import java.util.ArrayList;
import java.util.List;

/**
 * 說明:重構(gòu)流程編輯器獲取用戶信息
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class SecurityUtils {

    private static User assumeUser;
    
    private static SecurityScopeProvider securityScopeProvider = new FlowableSecurityScopeProvider();

    private SecurityUtils() {
    }

    /**
     * Get the login of the current user.
     */
    public static String getCurrentUserId() {
        User user = getCurrentUserObject();
        if (user != null) {
            return user.getId();
        }
        return null;
    }

    /**
     * @return the {@link User} object associated with the current logged in user.
     */
    public static User getCurrentUserObject() {
        if (assumeUser != null) {
            return assumeUser;
        }

        RemoteUser user = new RemoteUser();
        user.setId(Jurisdiction.getUsername());
        user.setDisplayName(Jurisdiction.getName());
        user.setFirstName(Jurisdiction.getName());
        user.setLastName(Jurisdiction.getName());
        user.setEmail("admin@flowable.com");
        user.setPassword("123456");
        List<String> pris = new ArrayList<>();
        pris.add(DefaultPrivileges.ACCESS_MODELER);
        pris.add(DefaultPrivileges.ACCESS_IDM);
        pris.add(DefaultPrivileges.ACCESS_ADMIN);
        pris.add(DefaultPrivileges.ACCESS_TASK);
        pris.add(DefaultPrivileges.ACCESS_REST_API);
        user.setPrivileges(pris);
        return user;
    }
    
    public static void setSecurityScopeProvider(SecurityScopeProvider securityScopeProvider) {
        SecurityUtils.securityScopeProvider = securityScopeProvider;
    }

    public static SecurityScope getCurrentSecurityScope() {
        SecurityContext securityContext = SecurityContextHolder.getContext();
        if (securityContext != null && securityContext.getAuthentication() != null) {
            return getSecurityScope(securityContext.getAuthentication());
        }
        return null;
    }

    public static SecurityScope getSecurityScope(Authentication authentication) {
        return securityScopeProvider.getSecurityScope(authentication);
    }

    public static SecurityScope getAuthenticatedSecurityScope() {
        SecurityScope currentSecurityScope = getCurrentSecurityScope();
        if (currentSecurityScope != null) {
            return currentSecurityScope;
        }
        throw new FlowableIllegalStateException("User is not authenticated");
    }

    public static void assumeUser(User user) {
        assumeUser = user;
    }

    public static void clearAssumeUser() {
        assumeUser = null;
    }
}

工作流模塊----------------www.fhadmin.cn---------------

1.模型管理:web在線流程設(shè)計器、導(dǎo)入導(dǎo)出xml、復(fù)制流程、部署流程

2.流程管理:導(dǎo)入導(dǎo)出流程資源文件、查看流程圖、根據(jù)流程實例反射出流程模型、激活掛起

3.運行中流程:查看流程信息、當(dāng)前任務(wù)節(jié)點、當(dāng)前流程圖、作廢暫停流程、指派待辦人、自由跳轉(zhuǎn)

4.歷史的流程:查看流程信息、流程用時、流程狀態(tài)、查看任務(wù)發(fā)起人信息

5.待辦任務(wù):查看本人個人任務(wù)以及本角色下的任務(wù)、辦理、駁回、作廢、指派一下代理人

6.已辦任務(wù):查看自己辦理過的任務(wù)以及流程信息、流程圖、流程狀態(tài)(作廢 駁回 正常完成)

辦理任務(wù)時候可以選擇用戶進行抄送,就是給被抄送人發(fā)送站內(nèi)信通知當(dāng)前審批意見以及備注信息

注:當(dāng)辦理完當(dāng)前任務(wù)時,下一任務(wù)待辦人會即時通訊收到新任務(wù)消息提醒,當(dāng)作廢和完結(jié)任務(wù)時,任務(wù)發(fā)起人會收到站內(nèi)信消息通知

到此這篇關(guān)于springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析的文章就介紹到這了,更多相關(guān)springboot整合 flowable內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java設(shè)計模式之適配器模式

    Java設(shè)計模式之適配器模式

    這篇文章介紹了Java設(shè)計模式之適配器模式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Springboot2 配置AOP日志的方法步驟

    Springboot2 配置AOP日志的方法步驟

    這篇文章主要介紹了Springboot2 配置AOP日志的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java全面細致講解Cookie與Session及kaptcha驗證碼的使用

    Java全面細致講解Cookie與Session及kaptcha驗證碼的使用

    web開發(fā)階段我們主要是瀏覽器和服務(wù)器之間來進行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進行交流一樣,但是對于機器來說,在一次請求之間只是會攜帶著本次請求的數(shù)據(jù)的,但是可能多次請求之間是會有聯(lián)系的,所以提供了會話機制
    2022-06-06
  • jsp、struts、spring、mybatis實現(xiàn)前端頁面功能模塊化拆分的方案

    jsp、struts、spring、mybatis實現(xiàn)前端頁面功能模塊化拆分的方案

    這篇文章主要介紹了 jsp、struts、spring、mybatis實現(xiàn)前端頁面功能模塊化拆分的方案,非常不錯,需要的朋友參考下
    2017-01-01
  • 基于Scala和Java方法的相互調(diào)用

    基于Scala和Java方法的相互調(diào)用

    這篇文章主要介紹了Scala和Java方法的相互調(diào)用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • IDEA在一個工作空間中管理多個項目的詳細步驟

    IDEA在一個工作空間中管理多個項目的詳細步驟

    這篇文章主要介紹了IDEA在一個工作空間中管理多個項目的詳細步驟,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java中保證多線程間的數(shù)據(jù)共享的方法詳解

    Java中保證多線程間的數(shù)據(jù)共享的方法詳解

    這篇文章詳解的發(fā)給大家介紹了Java中是如何保證多線程間的數(shù)據(jù)共享的,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • Java正則表達式驗證固定電話號碼符合性

    Java正則表達式驗證固定電話號碼符合性

    這篇文章主要介紹了Java正則表達式驗證固定電話號碼符合性的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • java內(nèi)存分布實現(xiàn)代碼

    java內(nèi)存分布實現(xiàn)代碼

    這篇文章主要介紹了淺談Java內(nèi)存區(qū)域劃分和內(nèi)存分配策略,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Java多態(tài)的全面系統(tǒng)解析

    Java多態(tài)的全面系統(tǒng)解析

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實現(xiàn)的方法,必須在由程序運行期間才能決定
    2022-03-03

最新評論

昌吉市| 吉安县| 桦川县| 连山| 嫩江县| 盐池县| 抚顺市| 紫金县| 习水县| 千阳县| 朝阳县| 宁城县| 娄烦县| 吴忠市| 云浮市| 施甸县| 八宿县| 祁阳县| 驻马店市| 增城市| 桑植县| 大邑县| 汉寿县| 台湾省| 绥化市| 常德市| 汪清县| 普兰店市| 绵竹市| 皮山县| 鲁山县| 北京市| 陆川县| 五原县| 临沂市| 科技| 南雄市| 册亨县| 平利县| 惠东县| 大同县|