1.pom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<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配置類
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
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.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è)計器、導入導出xml、復制流程、部署流程
2.流程管理:導入導出流程資源文件、查看流程圖、根據(jù)流程實例反射出流程模型、激活掛起
3.運行中流程:查看流程信息、當前任務節(jié)點、當前流程圖、作廢暫停流程、指派待辦人、自由跳轉(zhuǎn)
4.歷史的流程:查看流程信息、流程用時、流程狀態(tài)、查看任務發(fā)起人信息
5.待辦任務:查看本人個人任務以及本角色下的任務、辦理、駁回、作廢、指派一下代理人
6.已辦任務:查看自己辦理過的任務以及流程信息、流程圖、流程狀態(tài)(作廢 駁回 正常完成)
辦理任務時候可以選擇用戶進行抄送,就是給被抄送人發(fā)送站內(nèi)信通知當前審批意見以及備注信息
注:當辦理完當前任務時,下一任務待辦人會即時通訊收到新任務消息提醒,當作廢和完結(jié)任務時,任務發(fā)起人會收到站內(nèi)信消息通知
到此這篇關(guān)于springboot2.5.2與 flowable6.6.0整合流程引擎應用分析的文章就介紹到這了,更多相關(guān)springboot整合 flowable內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/teacher11/archive/2021/07/27/15064909.html