Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzwf
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzwf
提交
4a189ed9
提交
4a189ed9
编写于
3月 29, 2021
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
zhouweidong 发布系统代码 [ibz-wf,统一工作流]
上级
17911095
变更
26
隐藏空白字符变更
内嵌
并排
正在显示
26 个修改的文件
包含
98 行增加
和
136 行删除
+98
-136
WFMemberSearchContext.java
...n/ibizlab/core/workflow/filter/WFMemberSearchContext.java
+14
-0
WFGroupServiceImpl.java
...bizlab/core/workflow/service/impl/WFGroupServiceImpl.java
+2
-3
WFMemberServiceImpl.java
...izlab/core/workflow/service/impl/WFMemberServiceImpl.java
+2
-3
WFProcessDefinitionServiceImpl.java
...workflow/service/impl/WFProcessDefinitionServiceImpl.java
+2
-3
WFSystemServiceImpl.java
...izlab/core/workflow/service/impl/WFSystemServiceImpl.java
+2
-3
WFUserServiceImpl.java
...ibizlab/core/workflow/service/impl/WFUserServiceImpl.java
+2
-3
h2_table.xml
ibzwf-core/src/main/resources/liquibase/h2_table.xml
+4
-4
WFGroupMapper.xml
.../main/resources/mapper/workflow/wfgroup/WFGroupMapper.xml
+0
-1
WFMemberMapper.xml
...ain/resources/mapper/workflow/wfmember/WFMemberMapper.xml
+0
-1
WFProcessDefinitionMapper.xml
...orkflow/wfprocessdefinition/WFProcessDefinitionMapper.xml
+0
-1
WFSystemMapper.xml
...ain/resources/mapper/workflow/wfsystem/WFSystemMapper.xml
+0
-1
WFUserMapper.xml
...rc/main/resources/mapper/workflow/wfuser/WFUserMapper.xml
+0
-1
WFGroupMapping.java
.../src/main/java/cn/ibizlab/api/mapping/WFGroupMapping.java
+0
-1
WFMemberMapping.java
...src/main/java/cn/ibizlab/api/mapping/WFMemberMapping.java
+0
-1
WFProcessDefinitionMapping.java
...va/cn/ibizlab/api/mapping/WFProcessDefinitionMapping.java
+0
-1
WFREModelMapping.java
...rc/main/java/cn/ibizlab/api/mapping/WFREModelMapping.java
+0
-1
WFSystemMapping.java
...src/main/java/cn/ibizlab/api/mapping/WFSystemMapping.java
+0
-1
WFTaskMapping.java
...i/src/main/java/cn/ibizlab/api/mapping/WFTaskMapping.java
+0
-1
WFUserMapping.java
...i/src/main/java/cn/ibizlab/api/mapping/WFUserMapping.java
+0
-1
WFMemberResource.java
...i/src/main/java/cn/ibizlab/api/rest/WFMemberResource.java
+0
-6
DELogicAspect.java
...l/src/main/java/cn/ibizlab/util/aspect/DELogicAspect.java
+64
-97
IBZWFFeignClient.java
...rc/main/java/cn/ibizlab/util/client/IBZWFFeignClient.java
+1
-0
DELogic.java
ibzwf-util/src/main/java/cn/ibizlab/util/domain/DELogic.java
+2
-1
SearchContextBase.java
...c/main/java/cn/ibizlab/util/filter/SearchContextBase.java
+1
-0
AuthenticationUser.java
...ain/java/cn/ibizlab/util/security/AuthenticationUser.java
+1
-0
AuthorizationTokenFilter.java
...va/cn/ibizlab/util/security/AuthorizationTokenFilter.java
+1
-1
未找到文件。
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/filter/WFMemberSearchContext.java
浏览文件 @
4a189ed9
...
...
@@ -76,6 +76,20 @@ public class WFMemberSearchContext extends QueryWrapperContext<WFMember> {
this
.
getSearchCond
().
like
(
"personname"
,
n_personname_like
);
}
}
private
String
n_orgid_eq
;
//[单位]
public
void
setN_orgid_eq
(
String
n_orgid_eq
)
{
this
.
n_orgid_eq
=
n_orgid_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_eq
)){
this
.
getSearchCond
().
eq
(
"orgid"
,
n_orgid_eq
);
}
}
private
String
n_mdeptid_eq
;
//[主部门]
public
void
setN_mdeptid_eq
(
String
n_mdeptid_eq
)
{
this
.
n_mdeptid_eq
=
n_mdeptid_eq
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_mdeptid_eq
)){
this
.
getSearchCond
().
eq
(
"mdeptid"
,
n_mdeptid_eq
);
}
}
/**
* 启用快速搜索
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFGroupServiceImpl.java
浏览文件 @
4a189ed9
...
...
@@ -106,9 +106,8 @@ public class WFGroupServiceImpl extends ServiceImpl<WFGroupMapper, WFGroup> impl
@Transactional
public
WFGroup
get
(
String
key
)
{
WFGroup
et
=
getById
(
key
);
if
(
et
==
null
){
et
=
new
WFGroup
();
et
.
setId
(
key
);
if
(
et
==
null
)
{
throw
new
BadRequestAlertException
(
"数据不存在"
,
this
.
getClass
().
getSimpleName
(),
key
);
}
else
{
et
.
setWfmember
(
wfmemberService
.
selectByGroupid
(
key
));
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFMemberServiceImpl.java
浏览文件 @
4a189ed9
...
...
@@ -110,9 +110,8 @@ public class WFMemberServiceImpl extends ServiceImpl<WFMemberMapper, WFMember> i
@Transactional
public
WFMember
get
(
String
key
)
{
WFMember
et
=
getById
(
key
);
if
(
et
==
null
){
et
=
new
WFMember
();
et
.
setMemberid
(
key
);
if
(
et
==
null
)
{
throw
new
BadRequestAlertException
(
"数据不存在"
,
this
.
getClass
().
getSimpleName
(),
key
);
}
else
{
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFProcessDefinitionServiceImpl.java
浏览文件 @
4a189ed9
...
...
@@ -100,9 +100,8 @@ public class WFProcessDefinitionServiceImpl extends ServiceImpl<WFProcessDefinit
@Transactional
public
WFProcessDefinition
get
(
String
key
)
{
WFProcessDefinition
et
=
getById
(
key
);
if
(
et
==
null
){
et
=
new
WFProcessDefinition
();
et
.
setDefinitionkey
(
key
);
if
(
et
==
null
)
{
throw
new
BadRequestAlertException
(
"数据不存在"
,
this
.
getClass
().
getSimpleName
(),
key
);
}
else
{
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFSystemServiceImpl.java
浏览文件 @
4a189ed9
...
...
@@ -100,9 +100,8 @@ public class WFSystemServiceImpl extends ServiceImpl<WFSystemMapper, WFSystem> i
@Transactional
public
WFSystem
get
(
String
key
)
{
WFSystem
et
=
getById
(
key
);
if
(
et
==
null
){
et
=
new
WFSystem
();
et
.
setPssystemid
(
key
);
if
(
et
==
null
)
{
throw
new
BadRequestAlertException
(
"数据不存在"
,
this
.
getClass
().
getSimpleName
(),
key
);
}
else
{
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFUserServiceImpl.java
浏览文件 @
4a189ed9
...
...
@@ -103,9 +103,8 @@ public class WFUserServiceImpl extends ServiceImpl<WFUserMapper, WFUser> impleme
@Transactional
public
WFUser
get
(
String
key
)
{
WFUser
et
=
getById
(
key
);
if
(
et
==
null
){
et
=
new
WFUser
();
et
.
setId
(
key
);
if
(
et
==
null
)
{
throw
new
BadRequestAlertException
(
"数据不存在"
,
this
.
getClass
().
getSimpleName
(),
key
);
}
else
{
}
...
...
ibzwf-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
4a189ed9
...
...
@@ -4,7 +4,7 @@
<!--输出实体[WF_GROUP]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"tab-wf_group-9-1"
>
<changeSet
author=
"
root
"
id=
"tab-wf_group-9-1"
>
<createTable
tableName=
"IBZWFGROUP"
>
<column
name=
"GROUPID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_GROUP_GROUPID"
/>
...
...
@@ -20,7 +20,7 @@
<!--输出实体[WF_GROUP_MEMBER]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509"
id=
"tab-wf_group_member-10
-2"
>
<changeSet
author=
"
root"
id=
"tab-wf_group_member-13
-2"
>
<createTable
tableName=
"IBZWFMEMBER"
>
<column
name=
"MEMBERID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_GROUP_MEMBER_MEMBERID"
/>
...
...
@@ -36,7 +36,7 @@
<!--输出实体[WF_DEFINITION]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"tab-wf_definition-1-3"
>
<changeSet
author=
"
root
"
id=
"tab-wf_definition-1-3"
>
<createTable
tableName=
"IBZWFDEFINITION"
>
<column
name=
"DEFINITIONKEY"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_DEFINITION_DEFINITIONKEY"
/>
...
...
@@ -79,7 +79,7 @@
<!--输出实体[WF_GROUP]外键关系 -->
<!--输出实体[WF_GROUP_MEMBER]外键关系 -->
<changeSet
author=
"
a_A_5d9d78509"
id=
"fk-wf_group_member-10
-5"
>
<changeSet
author=
"
root"
id=
"fk-wf_group_member-13
-5"
>
<addForeignKeyConstraint
baseColumnNames=
"GROUPID"
baseTableName=
"IBZWFMEMBER"
constraintName=
"DER1N_WF_GROUP_MEMBER_WF_GROUP"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"GROUPID"
referencedTableName=
"IBZWFGROUP"
validate=
"true"
/>
</changeSet>
<!--输出实体[WF_DEFINITION]外键关系 -->
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfgroup/WFGroupMapper.xml
浏览文件 @
4a189ed9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.ibizlab.core.workflow.mapper.WFGroupMapper"
>
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfmember/WFMemberMapper.xml
浏览文件 @
4a189ed9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.ibizlab.core.workflow.mapper.WFMemberMapper"
>
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfprocessdefinition/WFProcessDefinitionMapper.xml
浏览文件 @
4a189ed9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.ibizlab.core.workflow.mapper.WFProcessDefinitionMapper"
>
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfsystem/WFSystemMapper.xml
浏览文件 @
4a189ed9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.ibizlab.core.workflow.mapper.WFSystemMapper"
>
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfuser/WFUserMapper.xml
浏览文件 @
4a189ed9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.ibizlab.core.workflow.mapper.WFUserMapper"
>
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
...
...
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFGroupMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFGroupMapping extends MappingBase<WFGroupDTO, WFGroup> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFMemberMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFMemberMapping extends MappingBase<WFMemberDTO, WFMember> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFProcessDefinitionMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFProcessDefinitionMapping extends MappingBase<WFProcessDefinit
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFREModelMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFREModelMapping extends MappingBase<WFREModelDTO, WFREModel> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFSystemMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFSystemMapping extends MappingBase<WFSystemDTO, WFSystem> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFTaskMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFTaskMapping extends MappingBase<WFTaskDTO, WFTask> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFUserMapping.java
浏览文件 @
4a189ed9
...
...
@@ -12,4 +12,3 @@ public interface WFUserMapping extends MappingBase<WFUserDTO, WFUser> {
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/rest/WFMemberResource.java
浏览文件 @
4a189ed9
...
...
@@ -136,7 +136,6 @@ public class WFMemberResource {
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"获取DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"获取DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wfmembers/fetchdefault"
)
public
ResponseEntity
<
List
<
WFMemberDTO
>>
fetchDefault
(
WFMemberSearchContext
context
)
{
...
...
@@ -149,7 +148,6 @@ public class WFMemberResource {
.
body
(
list
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"查询DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"查询DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wfmembers/searchdefault"
)
public
ResponseEntity
<
Page
<
WFMemberDTO
>>
searchDefault
(
@RequestBody
WFMemberSearchContext
context
)
{
...
...
@@ -265,7 +263,6 @@ public class WFMemberResource {
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"根据角色/用户组获取DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"根据角色/用户组获取DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wfgroups/{wfgroup_id}/wfmembers/fetchdefault"
)
public
ResponseEntity
<
List
<
WFMemberDTO
>>
fetchWFMemberDefaultByWFGroup
(
@PathVariable
(
"wfgroup_id"
)
String
wfgroup_id
,
WFMemberSearchContext
context
)
{
...
...
@@ -279,7 +276,6 @@ public class WFMemberResource {
.
body
(
list
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"根据角色/用户组查询DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"根据角色/用户组查询DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wfgroups/{wfgroup_id}/wfmembers/searchdefault"
)
public
ResponseEntity
<
Page
<
WFMemberDTO
>>
searchWFMemberDefaultByWFGroup
(
@PathVariable
(
"wfgroup_id"
)
String
wfgroup_id
,
@RequestBody
WFMemberSearchContext
context
)
{
...
...
@@ -393,7 +389,6 @@ public class WFMemberResource {
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"根据用户获取DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"根据用户获取DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wfusers/{wfuser_id}/wfmembers/fetchdefault"
)
public
ResponseEntity
<
List
<
WFMemberDTO
>>
fetchWFMemberDefaultByWFUser
(
@PathVariable
(
"wfuser_id"
)
String
wfuser_id
,
WFMemberSearchContext
context
)
{
...
...
@@ -407,7 +402,6 @@ public class WFMemberResource {
.
body
(
list
);
}
@PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFMember-searchDefault-all') and hasPermission(#context,'ibzwf-WFMember-Get')"
)
@ApiOperation
(
value
=
"根据用户查询DEFAULT"
,
tags
=
{
"成员"
}
,
notes
=
"根据用户查询DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wfusers/{wfuser_id}/wfmembers/searchdefault"
)
public
ResponseEntity
<
Page
<
WFMemberDTO
>>
searchWFMemberDefaultByWFUser
(
@PathVariable
(
"wfuser_id"
)
String
wfuser_id
,
@RequestBody
WFMemberSearchContext
context
)
{
...
...
ibzwf-util/src/main/java/cn/ibizlab/util/aspect/DELogicAspect.java
浏览文件 @
4a189ed9
package
cn
.
ibizlab
.
util
.
aspect
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.ibizlab.util.domain.DELogic
;
import
cn.ibizlab.util.domain.EntityBase
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
...
...
@@ -22,6 +20,8 @@ import org.kie.api.builder.Results;
import
org.kie.api.runtime.KieContainer
;
import
org.kie.api.runtime.KieSession
;
import
org.kie.internal.io.ResourceFactory
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.expression.EvaluationContext
;
import
org.springframework.expression.Expression
;
import
org.springframework.expression.ExpressionParser
;
...
...
@@ -35,7 +35,6 @@ import org.springframework.util.StringUtils;
import
javax.xml.stream.XMLInputFactory
;
import
javax.xml.stream.XMLStreamReader
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.lang.reflect.Method
;
...
...
@@ -109,7 +108,7 @@ public class DELogicAspect {
* @param action
*/
private
void
executeBeforeLogic
(
EntityBase
entity
,
String
action
)
{
Fil
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
BEFORE
);
Resourc
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
BEFORE
);
if
(
bpmnFile
!=
null
&&
bpmnFile
.
exists
()
&&
isValid
(
bpmnFile
,
entity
,
action
))
{
executeLogic
(
bpmnFile
,
entity
,
action
);
}
...
...
@@ -122,7 +121,7 @@ public class DELogicAspect {
* @param action
*/
private
void
executeAfterLogic
(
EntityBase
entity
,
String
action
)
{
Fil
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
AFTER
);
Resourc
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
AFTER
);
if
(
bpmnFile
!=
null
&&
bpmnFile
.
exists
()
&&
isValid
(
bpmnFile
,
entity
,
action
))
{
executeLogic
(
bpmnFile
,
entity
,
action
);
}
...
...
@@ -135,7 +134,7 @@ public class DELogicAspect {
* @param action
*/
private
void
executeLogic
(
EntityBase
entity
,
String
action
)
{
Fil
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
EXEC
);
Resourc
e
bpmnFile
=
getLocalModel
(
entity
.
getClass
().
getSimpleName
(),
action
,
LogicExecMode
.
EXEC
);
if
(
bpmnFile
!=
null
&&
bpmnFile
.
exists
()
&&
isValid
(
bpmnFile
,
entity
,
action
))
{
executeLogic
(
bpmnFile
,
entity
,
action
);
}
...
...
@@ -147,32 +146,37 @@ public class DELogicAspect {
* @param bpmnFile
* @param entity
*/
private
void
executeLogic
(
File
bpmnFile
,
Object
entity
,
String
action
)
{
log
.
debug
(
"开始执行实体处理逻辑[{}:{}:{}:本地模式]"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmnFile
.
getName
());
String
bpmnId
=
DigestUtils
.
md5DigestAsHex
(
bpmnFile
.
getPath
().
getBytes
());
DELogic
logic
=
getDELogic
(
bpmnFile
);
if
(
logic
==
null
)
{
return
;
}
if
(
deLogicMap
.
containsKey
(
bpmnId
)
&&
logic
.
getMd5
().
equals
(
deLogicMap
.
get
(
bpmnId
).
getMd5
()))
{
logic
=
deLogicMap
.
get
(
bpmnId
);
}
else
{
reloadLogic
(
logic
);
deLogicMap
.
put
(
bpmnId
,
logic
);
}
KieContainer
container
=
logic
.
getContainer
();
KieSession
kieSession
=
container
.
getKieBase
().
newKieSession
();
Process
mainProcess
=
logic
.
getProcess
();
//主流程参数
fillGlobalParam
(
kieSession
,
mainProcess
,
entity
);
//子流程参数
if
(!
ObjectUtils
.
isEmpty
(
logic
.
getRefLogic
()))
{
for
(
DELogic
subLogic
:
logic
.
getRefLogic
())
{
fillGlobalParam
(
kieSession
,
subLogic
.
getProcess
(),
entity
);
private
void
executeLogic
(
Resource
bpmnFile
,
Object
entity
,
String
action
)
{
try
{
log
.
debug
(
"开始执行实体处理逻辑[{}:{}:{}:本地模式]"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmnFile
.
getFilename
());
String
bpmnId
=
DigestUtils
.
md5DigestAsHex
(
bpmnFile
.
getURL
().
getPath
().
getBytes
());
DELogic
logic
=
getDELogic
(
bpmnFile
);
if
(
logic
==
null
)
{
return
;
}
if
(
deLogicMap
.
containsKey
(
bpmnId
)
&&
logic
.
getMd5
().
equals
(
deLogicMap
.
get
(
bpmnId
).
getMd5
()))
{
logic
=
deLogicMap
.
get
(
bpmnId
);
}
else
{
reloadLogic
(
logic
);
deLogicMap
.
put
(
bpmnId
,
logic
);
}
KieContainer
container
=
logic
.
getContainer
();
KieSession
kieSession
=
container
.
getKieBase
().
newKieSession
();
Process
mainProcess
=
logic
.
getProcess
();
//主流程参数
fillGlobalParam
(
kieSession
,
mainProcess
,
entity
);
//子流程参数
if
(!
ObjectUtils
.
isEmpty
(
logic
.
getRefLogic
()))
{
for
(
DELogic
subLogic
:
logic
.
getRefLogic
())
{
fillGlobalParam
(
kieSession
,
subLogic
.
getProcess
(),
entity
);
}
}
kieSession
.
startProcess
(
mainProcess
.
getId
());
log
.
debug
(
"实体处理逻辑[{}:{}:{}:本地模式]执行结束"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmnFile
.
getFilename
());
}
catch
(
IOException
e
)
{
log
.
error
(
"实体处理逻辑[{}:{}:{}:本地模式]发生异常"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmnFile
.
getFilename
());
throw
new
BadRequestAlertException
(
"执行实体处理逻辑发生异常"
+
e
.
getMessage
(),
"DELogicAspect"
,
"executeLogic"
);
}
kieSession
.
startProcess
(
mainProcess
.
getId
());
log
.
debug
(
"实体处理逻辑[{}:{}:{}:本地模式]执行结束"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmnFile
.
getName
());
}
/**
...
...
@@ -180,11 +184,11 @@ public class DELogicAspect {
*
* @param logic
*/
private
void
reloadLogic
(
DELogic
logic
)
{
private
void
reloadLogic
(
DELogic
logic
)
throws
IOException
{
KieServices
kieServices
=
KieServices
.
get
();
KieFileSystem
kieFileSystem
=
kieServices
.
newKieFileSystem
();
for
(
Fil
e
bpmn
:
logic
.
getRefRuleFiles
())
{
kieFileSystem
.
write
(
ResourceFactory
.
new
FileResource
(
bpmn
));
for
(
Resourc
e
bpmn
:
logic
.
getRefRuleFiles
())
{
kieFileSystem
.
write
(
ResourceFactory
.
new
UrlResource
(
bpmn
.
getURL
()
));
}
KieBuilder
kieBuilder
=
kieServices
.
newKieBuilder
(
kieFileSystem
).
buildAll
();
Results
results
=
kieBuilder
.
getResults
();
...
...
@@ -239,28 +243,29 @@ public class DELogicAspect {
* @param bpmnFile
* @return
*/
@SneakyThrows
private
DELogic
getDELogic
(
File
bpmnFile
)
{
private
DELogic
getDELogic
(
Resource
bpmnFile
)
{
DELogic
logic
=
null
;
XMLStreamReader
reader
=
null
;
InputStream
bpmn
=
null
;
try
{
if
(
bpmnFile
.
exists
())
{
XMLInputFactory
factory
=
XMLInputFactory
.
newInstance
();
bpmn
=
new
FileInputStream
(
bpmnFile
);
bpmn
=
bpmnFile
.
getInputStream
(
);
reader
=
factory
.
createXMLStreamReader
(
bpmn
);
BpmnModel
model
=
bpmnXMLConverter
.
convertToBpmnModel
(
reader
);
Process
mainProcess
=
model
.
getMainProcess
();
if
(
mainProcess
==
null
)
{
return
null
;
}
log
.
debug
(
"正在加载 BPMN:{}"
,
bpmnFile
.
getURL
().
getPath
());
List
<
DELogic
>
refLogics
=
new
ArrayList
<>();
List
<
Fil
e
>
refFiles
=
new
ArrayList
<>();
List
<
Resourc
e
>
refFiles
=
new
ArrayList
<>();
//自己 bpmn 及 drl
refFiles
.
add
(
bpmnFile
);
Fil
e
drlFile
=
getDrl
(
bpmnFile
);
Resourc
e
drlFile
=
getDrl
(
bpmnFile
);
if
(
drlFile
!=
null
&&
drlFile
.
exists
())
{
refFiles
.
add
(
drlFile
);
log
.
debug
(
"正在加载 DRL:{}"
,
drlFile
.
getURL
().
getPath
());
}
//子 bpmn 及 drl
if
(!
ObjectUtils
.
isEmpty
(
model
.
getMainProcess
())
&&
!
ObjectUtils
.
isEmpty
(
model
.
getMainProcess
().
getFlowElementMap
()))
{
...
...
@@ -268,11 +273,7 @@ public class DELogicAspect {
if
(
item
instanceof
CallActivity
)
{
CallActivity
subBpmn
=
(
CallActivity
)
item
;
String
bpmnFileName
=
subBpmn
.
getName
();
log
.
debug
(
"正在加载 BPMN:{}"
,
bpmnFileName
);
File
subBpmnFile
=
getSubBpmn
(
bpmnFileName
);
if
(
ObjectUtils
.
isEmpty
(
subBpmnFile
))
{
log
.
debug
(
"BPMN:{},缺少文件:{} "
,
bpmnFileName
,
subBpmnFile
);
}
Resource
subBpmnFile
=
getSubBpmn
(
bpmnFileName
);
DELogic
refLogic
=
getDELogic
(
subBpmnFile
);
if
(
refLogic
!=
null
)
{
refLogics
.
add
(
refLogic
);
...
...
@@ -292,7 +293,7 @@ public class DELogicAspect {
logic
.
setMd5
(
getMd5
(
refFiles
));
}
}
catch
(
Exception
e
)
{
log
.
error
(
"执行处理逻辑失败"
+
e
);
log
.
error
(
"执行处理逻辑失败"
+
e
);
}
finally
{
try
{
if
(
reader
!=
null
)
{
...
...
@@ -302,7 +303,7 @@ public class DELogicAspect {
bpmn
.
close
();
}
}
catch
(
Exception
e
)
{
log
.
error
(
"执行处理逻辑失败"
+
e
);
log
.
error
(
"执行处理逻辑失败"
+
e
);
}
}
return
logic
;
...
...
@@ -327,10 +328,10 @@ public class DELogicAspect {
}
}
}
if
(!
ObjectUtils
.
isEmpty
(
service
.
getSuperclass
())
&&
!
service
.
getSuperclass
().
getName
().
equals
(
Object
.
class
.
getName
()))
{
if
(!
ObjectUtils
.
isEmpty
(
service
.
getSuperclass
())
&&
!
service
.
getSuperclass
().
getName
().
equals
(
Object
.
class
.
getName
()))
{
return
getEntity
(
service
.
getSuperclass
());
}
log
.
error
(
"获取实体信息失败,未能在[{}]中找到参数为实体类对象的行为,如create.update等"
,
service
.
getSimpleName
());
log
.
error
(
"获取实体信息失败,未能在[{}]中找到参数为实体类对象的行为,如create.update等"
,
service
.
getSimpleName
());
return
null
;
}
...
...
@@ -340,19 +341,19 @@ public class DELogicAspect {
* @param subFiles
* @return
*/
private
String
getMd5
(
List
<
Fil
e
>
subFiles
)
{
private
String
getMd5
(
List
<
Resourc
e
>
subFiles
)
{
try
{
StringBuffer
buffer
=
new
StringBuffer
();
for
(
Fil
e
file
:
subFiles
)
{
for
(
Resourc
e
file
:
subFiles
)
{
InputStream
bpmnFile
=
null
;
try
{
bpmnFile
=
new
FileInputStream
(
file
);
bpmnFile
=
file
.
getInputStream
(
);
if
(!
ObjectUtils
.
isEmpty
(
bpmnFile
))
{
String
strBpmn
=
IOUtils
.
toString
(
bpmnFile
,
"UTF-8"
);
buffer
.
append
(
strBpmn
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"处理逻辑版本检查失败"
+
e
);
log
.
error
(
"处理逻辑版本检查失败"
+
e
);
}
finally
{
if
(
bpmnFile
!=
null
)
{
bpmnFile
.
close
();
...
...
@@ -365,12 +366,12 @@ public class DELogicAspect {
return
null
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"处理逻辑版本检查失败"
+
e
);
log
.
error
(
"处理逻辑版本检查失败"
+
e
);
return
null
;
}
}
/**
/**
* 本地逻辑
*
* @param entity
...
...
@@ -378,10 +379,8 @@ public class DELogicAspect {
* @param logicExecMode
* @return
*/
private
File
getLocalModel
(
String
entity
,
String
action
,
LogicExecMode
logicExecMode
)
{
String
logicName
=
String
.
format
(
"%s.bpmn"
,
logicExecMode
.
text
);
String
filePath
=
File
.
separator
+
"rules"
+
File
.
separator
+
entity
+
File
.
separator
+
action
.
toLowerCase
()
+
File
.
separator
+
logicName
;
return
getBpmnFile
(
filePath
);
private
Resource
getLocalModel
(
String
entity
,
String
action
,
LogicExecMode
logicExecMode
)
{
return
new
ClassPathResource
(
"rules"
+
File
.
separator
+
entity
+
File
.
separator
+
action
.
toLowerCase
()
+
File
.
separator
+
logicExecMode
.
text
+
".bpmn"
);
}
/**
...
...
@@ -390,9 +389,8 @@ public class DELogicAspect {
* @param logicName
* @return
*/
private
File
getSubBpmn
(
String
logicName
)
{
String
filePath
=
String
.
format
(
"/rules/%s"
,
logicName
);
return
getBpmnFile
(
filePath
);
private
Resource
getSubBpmn
(
String
logicName
)
{
return
new
ClassPathResource
(
String
.
format
(
"rules/%s"
,
logicName
));
}
/**
...
...
@@ -401,41 +399,10 @@ public class DELogicAspect {
* @param bpmn
* @return
*/
private
File
getDrl
(
File
bpmn
)
{
if
(
bpmn
.
getPath
().
endsWith
(
"RuleFlow.bpmn"
))
{
return
getBpmnFile
(
bpmn
.
getPath
().
replace
(
"RuleFlow.bpmn"
,
"Rule.drl"
));
}
else
{
return
getBpmnFile
(
bpmn
.
getPath
().
replace
(
".bpmn"
,
".drl"
));
}
}
/**
* 获取 bpmn
*
* @param filePath
* @return
*/
private
File
getBpmnFile
(
String
filePath
)
{
InputStream
in
=
null
;
File
bpmn
=
null
;
try
{
in
=
this
.
getClass
().
getResourceAsStream
(
filePath
.
replace
(
"\\"
,
"/"
));
if
(
in
!=
null
)
{
bpmn
=
new
File
(
filePath
);
FileUtils
.
copyToFile
(
in
,
bpmn
);
}
}
catch
(
IOException
e
)
{
log
.
error
(
"执行处理逻辑失败,无法获取逻辑文件"
+
e
);
}
finally
{
if
(
in
!=
null
)
{
try
{
in
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
bpmn
;
private
Resource
getDrl
(
Resource
bpmn
)
{
String
filePath
=
((
ClassPathResource
)
bpmn
).
getPath
();
filePath
=
filePath
.
endsWith
(
"RuleFlow.bpmn"
)
?
filePath
.
replace
(
"RuleFlow.bpmn"
,
"Rule.drl"
)
:
filePath
.
replace
(
".bpmn"
,
".drl"
);
return
new
ClassPathResource
(
filePath
);
}
/**
...
...
@@ -446,8 +413,8 @@ public class DELogicAspect {
* @param action
* @return
*/
private
boolean
isValid
(
Fil
e
bpmn
,
Object
entity
,
Object
action
)
{
String
logicId
=
String
.
format
(
"%s%s%s"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmn
.
get
N
ame
()).
toLowerCase
();
private
boolean
isValid
(
Resourc
e
bpmn
,
Object
entity
,
Object
action
)
{
String
logicId
=
String
.
format
(
"%s%s%s"
,
entity
.
getClass
().
getSimpleName
(),
action
,
bpmn
.
get
Filen
ame
()).
toLowerCase
();
if
(
validLogic
.
containsKey
(
logicId
))
{
return
true
;
}
else
{
...
...
ibzwf-util/src/main/java/cn/ibizlab/util/client/IBZWFFeignClient.java
浏览文件 @
4a189ed9
...
...
@@ -24,4 +24,5 @@ public interface IBZWFFeignClient
JSONObject
wfstart
(
@PathVariable
(
"system"
)
String
system
,
@PathVariable
(
"appname"
)
String
appname
,
@PathVariable
(
"entity"
)
String
entity
,
@PathVariable
(
"businessKey"
)
String
businessKey
,
@RequestBody
JSONObject
instance
);
}
ibzwf-util/src/main/java/cn/ibizlab/util/domain/DELogic.java
浏览文件 @
4a189ed9
...
...
@@ -2,6 +2,7 @@ package cn.ibizlab.util.domain;
import
lombok.Data
;
import
org.flowable.bpmn.model.Process
;
import
org.springframework.core.io.Resource
;
import
org.kie.api.runtime.KieContainer
;
import
java.io.File
;
import
java.io.Serializable
;
...
...
@@ -14,6 +15,6 @@ public class DELogic implements Serializable {
Process
process
;
KieContainer
container
;
List
<
DELogic
>
refLogic
;
List
<
Fil
e
>
refRuleFiles
;
List
<
Resourc
e
>
refRuleFiles
;
String
md5
;
}
ibzwf-util/src/main/java/cn/ibizlab/util/filter/SearchContextBase.java
浏览文件 @
4a189ed9
...
...
@@ -67,6 +67,7 @@ public class SearchContextBase implements ISearchContext{
* 工作流流程标识
*/
public
String
processDefinitionKey
;
/**
* 获取工作流步骤标识
*/
...
...
ibzwf-util/src/main/java/cn/ibizlab/util/security/AuthenticationUser.java
浏览文件 @
4a189ed9
...
...
@@ -254,6 +254,7 @@ public class AuthenticationUser implements UserDetails
if
(
this
.
sessionParams
==
null
)
{
sessionParams
=
getUserSessionParam
();
sessionParams
.
put
(
"srfdynainstid"
,
this
.
getSrfdynainstid
());
sessionParams
.
put
(
"srfpersonid"
,
this
.
getUserid
());
sessionParams
.
put
(
"srfpersonname"
,
this
.
getPersonname
());
sessionParams
.
put
(
"srforgsectorid"
,
this
.
getMdeptid
());
...
...
ibzwf-util/src/main/java/cn/ibizlab/util/security/AuthorizationTokenFilter.java
浏览文件 @
4a189ed9
...
...
@@ -3,7 +3,6 @@ package cn.ibizlab.util.security;
import
io.jsonwebtoken.ExpiredJwtException
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.ibizlab.util.service.AuthenticationUserService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.security.authentication.UsernamePasswordAuthenticationToken
;
import
org.springframework.security.core.context.SecurityContextHolder
;
...
...
@@ -22,6 +21,7 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
org.springframework.util.StringUtils
;
@Slf4j
@Component
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录