springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析
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;/** * 說(shuō)明:Flowable配置 * 作者:FH Admin * from:fhadmin.cn */@Controller@Configurationpublic class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {@Override public void configure(SpringProcessEngineConfiguration engineConfiguration) {engineConfiguration.setActivityFontName('宋體');engineConfiguration.setLabelFontName('宋體');engineConfiguration.setAnnotationFontName('宋體'); } }3.重寫(xiě) 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;/** * 說(shuō)明:重構(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è)計(jì)器、導(dǎo)入導(dǎo)出xml、復(fù)制流程、部署流程
2.流程管理:導(dǎo)入導(dǎo)出流程資源文件、查看流程圖、根據(jù)流程實(shí)例反射出流程模型、激活掛起
3.運(yùn)行中流程:查看流程信息、當(dāng)前任務(wù)節(jié)點(diǎn)、當(dāng)前流程圖、作廢暫停流程、指派待辦人、自由跳轉(zhuǎn)
4.歷史的流程:查看流程信息、流程用時(shí)、流程狀態(tài)、查看任務(wù)發(fā)起人信息
5.待辦任務(wù):查看本人個(gè)人任務(wù)以及本角色下的任務(wù)、辦理、駁回、作廢、指派一下代理人
6.已辦任務(wù):查看自己辦理過(guò)的任務(wù)以及流程信息、流程圖、流程狀態(tài)(作廢 駁回 正常完成)
辦理任務(wù)時(shí)候可以選擇用戶進(jìn)行抄送,就是給被抄送人發(fā)送站內(nèi)信通知當(dāng)前審批意見(jiàn)以及備注信息
注:當(dāng)辦理完當(dāng)前任務(wù)時(shí),下一任務(wù)待辦人會(huì)即時(shí)通訊收到新任務(wù)消息提醒,當(dāng)作廢和完結(jié)任務(wù)時(shí),任務(wù)發(fā)起人會(huì)收到站內(nèi)信消息通知
到此這篇關(guān)于springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析的文章就介紹到這了,更多相關(guān)springboot整合 flowable內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. vue實(shí)現(xiàn)web在線聊天功能2. 完美解決vue 中多個(gè)echarts圖表自適應(yīng)的問(wèn)題3. JavaScript實(shí)現(xiàn)頁(yè)面動(dòng)態(tài)驗(yàn)證碼的實(shí)現(xiàn)示例4. 解決Android Studio 格式化 Format代碼快捷鍵問(wèn)題5. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis6. Java使用Tesseract-Ocr識(shí)別數(shù)字7. Python使用urlretrieve實(shí)現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼8. 在Chrome DevTools中調(diào)試JavaScript的實(shí)現(xiàn)9. Springboot 全局日期格式化處理的實(shí)現(xiàn)10. SpringBoot+TestNG單元測(cè)試的實(shí)現(xiàn)
