Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzou
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzou
提交
50038314
提交
50038314
编写于
12月 25, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码 [ibz-ou,统一组织单位]
上级
b1f2f192
变更
19
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
761 行增加
和
15 行删除
+761
-15
sys-dept-members.ts
app_web/src/mock/entity/sys-dept-members/sys-dept-members.ts
+200
-0
sys-dept-member-service-base.ts
...c/service/sys-dept-member/sys-dept-member-service-base.ts
+56
-0
SysDeptMember.java
...rc/main/java/cn/ibizlab/core/ou/domain/SysDeptMember.java
+16
-0
SysDepartmentSearchContext.java
...cn/ibizlab/core/ou/filter/SysDepartmentSearchContext.java
+14
-0
SysEmployeeSearchContext.java
...a/cn/ibizlab/core/ou/filter/SysEmployeeSearchContext.java
+21
-0
SysOrganizationSearchContext.java
.../ibizlab/core/ou/filter/SysOrganizationSearchContext.java
+7
-0
ISysDeptMemberService.java
...ava/cn/ibizlab/core/ou/service/ISysDeptMemberService.java
+1
-0
SysDeptMemberServiceImpl.java
...bizlab/core/ou/service/impl/SysDeptMemberServiceImpl.java
+12
-1
ISysDeptMembersaveDeptMemberLogic.java
...e/ou/service/logic/ISysDeptMembersaveDeptMemberLogic.java
+18
-0
SysDeptMembersaveDeptMemberLogicImpl.java
...vice/logic/impl/SysDeptMembersaveDeptMemberLogicImpl.java
+59
-0
RocketMQConfig.java
...main/java/cn/ibizlab/core/util/config/RocketMQConfig.java
+78
-0
h2_table.xml
ibzou-core/src/main/resources/liquibase/h2_table.xml
+13
-13
systemResource.json
ibzou-core/src/main/resources/permission/systemResource.json
+1
-1
SysDeptMembersaveDeptMemberRule.drl
.../main/resources/rules/SysDeptMembersaveDeptMemberRule.drl
+39
-0
SysDeptMembersaveDeptMemberRuleFlow.bpmn
.../resources/rules/SysDeptMembersaveDeptMemberRuleFlow.bpmn
+31
-0
ibzou.json
ibzou-core/src/main/resources/sysmodel/ibzou.json
+2
-0
pom.xml
ibzou-dependencies/pom.xml
+6
-0
SysDeptMemberResource.java
.../main/java/cn/ibizlab/api/rest/SysDeptMemberResource.java
+71
-0
RocketMQAspect.java
.../src/main/java/cn/ibizlab/util/aspect/RocketMQAspect.java
+116
-0
未找到文件。
app_web/src/mock/entity/sys-dept-members/sys-dept-members.ts
浏览文件 @
50038314
...
...
@@ -1207,6 +1207,206 @@ mock.onPost(new RegExp(/^\/sysdeptmembers\/?([a-zA-Z0-9\-\;]{0,35})\/save$/)).re
return
[
status
,
data
];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'orgid'
,
'deptid'
,
'userid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'orgid'
,
'userid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'orgid'
,
'deptid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'deptid'
,
'userid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'userid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'deptid'
,
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// SaveDeptMember
mock
.
onPost
(
new
RegExp
(
/^
\/
sysdeptmembers
\/?([
a-zA-Z0-9
\-\;]{0,35})\/
savedeptmember$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:sysdeptmember 方法: SaveDeptMember"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'memberid'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
sysdeptmembers
\/([
a-zA-Z0-9
\-\;]{1,35})\/
savedeptmember$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
//let items = mockDatas ? mockDatas : [];
//let _items = items.find((item: any) => Object.is(item.memberid, tempValue.memberid));
let
data
=
JSON
.
parse
(
config
.
data
);
mockDatas
.
forEach
((
item
)
=>
{
if
(
item
[
'memberid'
]
==
tempValue
[
'memberid'
]
){
for
(
let
value
in
data
){
if
(
item
.
hasOwnProperty
(
value
)){
item
[
value
]
=
data
[
value
];
}
}
}
})
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
data
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
data
];
});
// FetchDefault
mock
.
onGet
(
new
RegExp
(
/^
\/
sysorganizations
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdepartments
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysemployees
\/([
a-zA-Z0-9
\-\;]{1,35})\/
sysdeptmembers
\/
fetchdefault$/
)).
reply
((
config
:
any
)
=>
{
...
...
app_web/src/service/sys-dept-member/sys-dept-member-service-base.ts
浏览文件 @
50038314
...
...
@@ -500,6 +500,62 @@ export default class SysDeptMemberServiceBase extends EntityService {
return
res
;
}
/**
* SaveDeptMember接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof SysDeptMemberServiceBase
*/
public
async
SaveDeptMember
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
.
sysorganization
&&
context
.
sysdepartment
&&
context
.
sysemployee
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysorganizations/
${
context
.
sysorganization
}
/sysdepartments/
${
context
.
sysdepartment
}
/sysemployees/
${
context
.
sysemployee
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
if
(
context
.
sysorganization
&&
context
.
sysemployee
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysorganizations/
${
context
.
sysorganization
}
/sysemployees/
${
context
.
sysemployee
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
if
(
context
.
sysorganization
&&
context
.
sysdepartment
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysorganizations/
${
context
.
sysorganization
}
/sysdepartments/
${
context
.
sysdepartment
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
if
(
context
.
sysdepartment
&&
context
.
sysemployee
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysdepartments/
${
context
.
sysdepartment
}
/sysemployees/
${
context
.
sysemployee
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
if
(
context
.
sysemployee
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysemployees/
${
context
.
sysemployee
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
if
(
context
.
sysdepartment
&&
context
.
sysdeptmember
){
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/sysdepartments/
${
context
.
sysdepartment
}
/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
let
res
:
any
=
Http
.
getInstance
().
post
(
`/sysdeptmembers/
${
context
.
sysdeptmember
}
/savedeptmember`
,
data
,
isloading
);
return
res
;
}
/**
* FetchDefault接口方法
*
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/domain/SysDeptMember.java
浏览文件 @
50038314
...
...
@@ -167,6 +167,22 @@ public class SysDeptMember extends EntityMP implements Serializable {
}
/**
* 获取 [标识]
*/
public
String
getMemberid
()
{
if
(
ObjectUtils
.
isEmpty
(
memberid
))
{
memberid
=(
String
)
getDefaultKey
(
true
);
}
return
memberid
;
}
@Override
public
Serializable
getDefaultKey
(
boolean
gen
)
{
if
((!
ObjectUtils
.
isEmpty
(
this
.
getDeptid
()))&&(!
ObjectUtils
.
isEmpty
(
this
.
getUserid
())))
return
DigestUtils
.
md5DigestAsHex
(
String
.
format
(
"%s||%s"
,
this
.
getDeptid
(),
this
.
getUserid
()).
getBytes
());
return
null
;
}
/**
* 复制当前对象数据到目标对象(粘贴重置)
* @param targetEntity 目标数据对象
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/filter/SysDepartmentSearchContext.java
浏览文件 @
50038314
...
...
@@ -27,6 +27,13 @@ import cn.ibizlab.core.ou.domain.SysDepartment;
@Data
public
class
SysDepartmentSearchContext
extends
QueryWrapperContext
<
SysDepartment
>
{
private
String
n_deptid_in
;
//[部门标识]
public
void
setN_deptid_in
(
String
n_deptid_in
)
{
this
.
n_deptid_in
=
n_deptid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_deptid_in
)){
this
.
getSearchCond
().
in
(
"deptid"
,
this
.
n_deptid_in
.
split
(
";"
));
}
}
private
String
n_deptcode_like
;
//[部门代码]
public
void
setN_deptcode_like
(
String
n_deptcode_like
)
{
this
.
n_deptcode_like
=
n_deptcode_like
;
...
...
@@ -47,6 +54,13 @@ public class SysDepartmentSearchContext extends QueryWrapperContext<SysDepartmen
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_eq
)){
this
.
getSearchCond
().
eq
(
"orgid"
,
n_orgid_eq
);
}
}
private
String
n_orgid_in
;
//[单位]
public
void
setN_orgid_in
(
String
n_orgid_in
)
{
this
.
n_orgid_in
=
n_orgid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_in
)){
this
.
getSearchCond
().
in
(
"orgid"
,
this
.
n_orgid_in
.
split
(
";"
));
}
}
private
String
n_pdeptid_eq
;
//[上级部门]
public
void
setN_pdeptid_eq
(
String
n_pdeptid_eq
)
{
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/filter/SysEmployeeSearchContext.java
浏览文件 @
50038314
...
...
@@ -75,6 +75,13 @@ public class SysEmployeeSearchContext extends QueryWrapperContext<SysEmployee> {
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_mdeptid_eq
)){
this
.
getSearchCond
().
eq
(
"mdeptid"
,
n_mdeptid_eq
);
}
}
private
String
n_mdeptid_in
;
//[主部门]
public
void
setN_mdeptid_in
(
String
n_mdeptid_in
)
{
this
.
n_mdeptid_in
=
n_mdeptid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_mdeptid_in
)){
this
.
getSearchCond
().
in
(
"mdeptid"
,
this
.
n_mdeptid_in
.
split
(
";"
));
}
}
private
String
n_mdeptname_like
;
//[主部门名称]
public
void
setN_mdeptname_like
(
String
n_mdeptname_like
)
{
...
...
@@ -96,6 +103,13 @@ public class SysEmployeeSearchContext extends QueryWrapperContext<SysEmployee> {
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_postid_eq
)){
this
.
getSearchCond
().
eq
(
"postid"
,
n_postid_eq
);
}
}
private
String
n_postid_in
;
//[岗位标识]
public
void
setN_postid_in
(
String
n_postid_in
)
{
this
.
n_postid_in
=
n_postid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_postid_in
)){
this
.
getSearchCond
().
in
(
"postid"
,
this
.
n_postid_in
.
split
(
";"
));
}
}
private
String
n_postname_eq
;
//[岗位名称]
public
void
setN_postname_eq
(
String
n_postname_eq
)
{
...
...
@@ -117,6 +131,13 @@ public class SysEmployeeSearchContext extends QueryWrapperContext<SysEmployee> {
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_eq
)){
this
.
getSearchCond
().
eq
(
"orgid"
,
n_orgid_eq
);
}
}
private
String
n_orgid_in
;
//[单位]
public
void
setN_orgid_in
(
String
n_orgid_in
)
{
this
.
n_orgid_in
=
n_orgid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_in
)){
this
.
getSearchCond
().
in
(
"orgid"
,
this
.
n_orgid_in
.
split
(
";"
));
}
}
private
String
n_orgcode_leftlike
;
//[单位代码]
public
void
setN_orgcode_leftlike
(
String
n_orgcode_leftlike
)
{
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/filter/SysOrganizationSearchContext.java
浏览文件 @
50038314
...
...
@@ -27,6 +27,13 @@ import cn.ibizlab.core.ou.domain.SysOrganization;
@Data
public
class
SysOrganizationSearchContext
extends
QueryWrapperContext
<
SysOrganization
>
{
private
String
n_orgid_in
;
//[单位标识]
public
void
setN_orgid_in
(
String
n_orgid_in
)
{
this
.
n_orgid_in
=
n_orgid_in
;
if
(!
ObjectUtils
.
isEmpty
(
this
.
n_orgid_in
)){
this
.
getSearchCond
().
in
(
"orgid"
,
this
.
n_orgid_in
.
split
(
";"
));
}
}
private
String
n_orgid_like
;
//[单位标识]
public
void
setN_orgid_like
(
String
n_orgid_like
)
{
this
.
n_orgid_like
=
n_orgid_like
;
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/service/ISysDeptMemberService.java
浏览文件 @
50038314
...
...
@@ -36,6 +36,7 @@ public interface ISysDeptMemberService extends IService<SysDeptMember> {
boolean
checkKey
(
SysDeptMember
et
);
boolean
save
(
SysDeptMember
et
);
void
saveBatch
(
List
<
SysDeptMember
>
list
);
SysDeptMember
saveDeptMember
(
SysDeptMember
et
);
Page
<
SysDeptMember
>
searchDefault
(
SysDeptMemberSearchContext
context
);
List
<
SysDeptMember
>
selectByDeptid
(
String
deptid
);
void
removeByDeptid
(
String
deptid
);
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/service/impl/SysDeptMemberServiceImpl.java
浏览文件 @
50038314
...
...
@@ -57,6 +57,10 @@ public class SysDeptMemberServiceImpl extends ServiceImpl<SysDeptMemberMapper, S
@Autowired
@Lazy
protected
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysPostService
syspostService
;
@Autowired
@Lazy
protected
cn
.
ibizlab
.
core
.
ou
.
service
.
logic
.
ISysDeptMembersaveDeptMemberLogic
savedeptmemberLogic
;
@Autowired
@Lazy
ISysDeptMemberService
proxyService
;
...
...
@@ -78,7 +82,7 @@ public class SysDeptMemberServiceImpl extends ServiceImpl<SysDeptMemberMapper, S
@Transactional
public
void
createBatch
(
List
<
SysDeptMember
>
list
)
{
list
.
forEach
(
item
->
fillParentData
(
item
));
this
.
save
Batch
(
list
,
batchSize
);
this
.
save
OrUpdateBatch
(
list
,
batchSize
);
}
@Override
...
...
@@ -197,6 +201,13 @@ public class SysDeptMemberServiceImpl extends ServiceImpl<SysDeptMemberMapper, S
}
}
@Override
@Transactional
public
SysDeptMember
saveDeptMember
(
SysDeptMember
et
)
{
savedeptmemberLogic
.
execute
(
et
);
return
et
;
}
@Override
public
List
<
SysDeptMember
>
selectByDeptid
(
String
deptid
)
{
...
...
ibzou-core/src/main/java/cn/ibizlab/core/ou/service/logic/ISysDeptMembersaveDeptMemberLogic.java
0 → 100644
浏览文件 @
50038314
package
cn
.
ibizlab
.
core
.
ou
.
service
.
logic
;
import
java.sql.Timestamp
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.HashMap
;
import
cn.ibizlab.core.ou.domain.SysDeptMember
;
/**
* 关系型数据实体[saveDeptMember] 对象
*/
public
interface
ISysDeptMembersaveDeptMemberLogic
{
void
execute
(
SysDeptMember
et
)
;
}
ibzou-core/src/main/java/cn/ibizlab/core/ou/service/logic/impl/SysDeptMembersaveDeptMemberLogicImpl.java
0 → 100644
浏览文件 @
50038314
package
cn
.
ibizlab
.
core
.
ou
.
service
.
logic
.
impl
;
import
java.util.Map
;
import
java.util.HashMap
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.kie.api.runtime.KieSession
;
import
org.kie.api.runtime.KieContainer
;
import
cn.ibizlab.core.ou.service.logic.ISysDeptMembersaveDeptMemberLogic
;
import
cn.ibizlab.core.ou.domain.SysDeptMember
;
/**
* 关系型数据实体[saveDeptMember] 对象
*/
@Slf4j
@Service
public
class
SysDeptMembersaveDeptMemberLogicImpl
implements
ISysDeptMembersaveDeptMemberLogic
{
@Autowired
private
KieContainer
kieContainer
;
@Autowired
private
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
sysdeptmemberservice
;
public
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
getSysdeptmemberService
()
{
return
this
.
sysdeptmemberservice
;
}
@Autowired
private
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
iBzSysDefaultService
;
public
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
getIBzSysDefaultService
()
{
return
this
.
iBzSysDefaultService
;
}
@Override
public
void
execute
(
SysDeptMember
et
)
{
KieSession
kieSession
=
null
;
try
{
kieSession
=
kieContainer
.
newKieSession
();
kieSession
.
insert
(
et
);
kieSession
.
setGlobal
(
"sysdeptmembersavedeptmemberdefault"
,
et
);
kieSession
.
setGlobal
(
"sysdeptmemberservice"
,
sysdeptmemberservice
);
kieSession
.
setGlobal
(
"iBzSysSysdeptmemberDefaultService"
,
iBzSysDefaultService
);
kieSession
.
setGlobal
(
"curuser"
,
cn
.
ibizlab
.
util
.
security
.
AuthenticationUser
.
getAuthenticationUser
());
kieSession
.
startProcess
(
"cn.ibizlab.core.ou.service.logic.sysdeptmembersavedeptmember"
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"执行[保存部门成员]处理逻辑发生异常"
+
e
);
}
finally
{
if
(
kieSession
!=
null
)
{
kieSession
.
destroy
();
}
}
}
}
ibzou-core/src/main/java/cn/ibizlab/core/util/config/RocketMQConfig.java
0 → 100644
浏览文件 @
50038314
package
cn
.
ibizlab
.
core
.
util
.
config
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer
;
import
com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext
;
import
com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus
;
import
com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently
;
import
com.alibaba.rocketmq.client.producer.DefaultMQProducer
;
import
com.alibaba.rocketmq.common.message.MessageExt
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Lazy
;
import
java.util.List
;
@Slf4j
@Configuration
public
class
RocketMQConfig
{
@Bean
(
"SysEmployeedeleteSysUserproducer"
)
public
DefaultMQProducer
sysEmployeedeleteSysUserproducer
(){
DefaultMQProducer
producer
=
null
;
try
{
producer
=
new
DefaultMQProducer
();
producer
.
setSendMsgTimeout
(
6000
);
producer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
producer
.
setInstanceName
(
"rmq-instance"
);
}
catch
(
Exception
e
){
log
.
error
(
"初始化消息发送对象异常!"
);
}
return
producer
;
}
@Bean
(
"SysEmployeesaveSysUserproducer"
)
public
DefaultMQProducer
sysEmployeesaveSysUserproducer
(){
DefaultMQProducer
producer
=
null
;
try
{
producer
=
new
DefaultMQProducer
();
producer
.
setSendMsgTimeout
(
6000
);
producer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
producer
.
setInstanceName
(
"rmq-instance"
);
}
catch
(
Exception
e
){
log
.
error
(
"初始化消息发送对象异常!"
);
}
return
producer
;
}
@Autowired
@Lazy
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
SysDeptMemberService
;
@Bean
(
"SysDeptMembersaveDeptMemberconsumer"
)
public
DefaultMQPushConsumer
sysDeptMembersaveDeptMemberconsumer
(){
DefaultMQPushConsumer
consumer
=
null
;
try
{
consumer
=
new
DefaultMQPushConsumer
();
consumer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
consumer
.
setInstanceName
(
"rmq-instance"
);
consumer
.
subscribe
(
"saveSysUser"
,
"saveSysUser"
);
consumer
.
registerMessageListener
(
new
MessageListenerConcurrently
()
{
public
ConsumeConcurrentlyStatus
consumeMessage
(
List
<
MessageExt
>
msgs
,
ConsumeConcurrentlyContext
context
)
{
for
(
MessageExt
msg
:
msgs
)
{
cn
.
ibizlab
.
core
.
ou
.
domain
.
SysDeptMember
domain
=
JSON
.
parseObject
(
new
String
(
msg
.
getBody
()),
cn
.
ibizlab
.
core
.
ou
.
domain
.
SysDeptMember
.
class
);
SysDeptMemberService
.
saveDeptMember
(
domain
);
}
return
ConsumeConcurrentlyStatus
.
CONSUME_SUCCESS
;
}
});
consumer
.
start
();
}
catch
(
Exception
e
){
log
.
error
(
"初始化消息接收对象异常!"
);
}
return
consumer
;
}
}
ibzou-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
50038314
...
...
@@ -4,7 +4,7 @@
<!--输出实体[SYS_DEPT]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_dept-6
0
-1"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_dept-6
2
-1"
>
<createTable
tableName=
"IBZDEPT"
>
<column
name=
"DEPTID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_SYS_DEPT_DEPTID"
/>
...
...
@@ -42,7 +42,7 @@
<!--输出实体[SYS_DEPTMEMBER]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_deptmember-
29
-2"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_deptmember-
33
-2"
>
<createTable
tableName=
"IBZDEPTMEMBER"
>
<column
name=
"MEMBERID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_SYS_DEPTMEMBER_MEMBERID"
/>
...
...
@@ -60,7 +60,7 @@
<!--输出实体[SYS_EMP]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_emp-
78
-3"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_emp-
83
-3"
>
<createTable
tableName=
"IBZEMP"
>
<column
name=
"USERID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_SYS_EMP_USERID"
/>
...
...
@@ -140,7 +140,7 @@
<!--输出实体[SYS_ORG]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_org-3
5
-4"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_org-3
6
-4"
>
<createTable
tableName=
"IBZORG"
>
<column
name=
"ORGID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_SYS_ORG_ORGID"
/>
...
...
@@ -221,34 +221,34 @@
</changeSet>
<!--输出实体[SYS_DEPT]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_dept-6
0
-8"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_dept-6
2
-8"
>
<addForeignKeyConstraint
baseColumnNames=
"PDEPTID"
baseTableName=
"IBZDEPT"
constraintName=
"DER1N_SYS_DEPT_SYS_DEPT_PDEPTI"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"DEPTID"
referencedTableName=
"IBZDEPT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_dept-6
0
-9"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_dept-6
2
-9"
>
<addForeignKeyConstraint
baseColumnNames=
"ORGID"
baseTableName=
"IBZDEPT"
constraintName=
"DER1N_SYS_DEPT_SYS_ORG_ORGID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"ORGID"
referencedTableName=
"IBZORG"
validate=
"true"
/>
</changeSet>
<!--输出实体[SYS_DEPTMEMBER]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
29
-10"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
33
-10"
>
<addForeignKeyConstraint
baseColumnNames=
"DEPTID"
baseTableName=
"IBZDEPTMEMBER"
constraintName=
"DER1N_SYS_DEPTMEMBER_SYS_DEPT_"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"DEPTID"
referencedTableName=
"IBZDEPT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
29
-11"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
33
-11"
>
<addForeignKeyConstraint
baseColumnNames=
"USERID"
baseTableName=
"IBZDEPTMEMBER"
constraintName=
"DER1N_SYS_DEPTMEMBER_SYS_EMP_U"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"USERID"
referencedTableName=
"IBZEMP"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
29
-12"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_deptmember-
33
-12"
>
<addForeignKeyConstraint
baseColumnNames=
"POSTID"
baseTableName=
"IBZDEPTMEMBER"
constraintName=
"DER1N_SYS_DEPTMEMBER_SYS_POST_"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"POSTID"
referencedTableName=
"IBZPOST"
validate=
"true"
/>
</changeSet>
<!--输出实体[SYS_EMP]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
78
-13"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
83
-13"
>
<addForeignKeyConstraint
baseColumnNames=
"MDEPTID"
baseTableName=
"IBZEMP"
constraintName=
"DER1N_SYS_EMP_SYS_DEPT_MDEPTID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"DEPTID"
referencedTableName=
"IBZDEPT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
78
-14"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
83
-14"
>
<addForeignKeyConstraint
baseColumnNames=
"ORGID"
baseTableName=
"IBZEMP"
constraintName=
"DER1N_SYS_EMP_SYS_ORG_ORGID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"ORGID"
referencedTableName=
"IBZORG"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
78
-15"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_emp-
83
-15"
>
<addForeignKeyConstraint
baseColumnNames=
"POSTID"
baseTableName=
"IBZEMP"
constraintName=
"DER1N_SYS_EMP_SYS_POST_POSTID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"POSTID"
referencedTableName=
"IBZPOST"
validate=
"true"
/>
</changeSet>
<!--输出实体[SYS_ORG]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_org-3
5
-16"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_org-3
6
-16"
>
<addForeignKeyConstraint
baseColumnNames=
"PORGID"
baseTableName=
"IBZORG"
constraintName=
"DER1N_SYS_ORG_SYS_ORG_PORGID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"ORGID"
referencedTableName=
"IBZORG"
validate=
"true"
/>
</changeSet>
<!--输出实体[SYS_POST]外键关系 -->
...
...
ibzou-core/src/main/resources/permission/systemResource.json
浏览文件 @
50038314
...
...
@@ -16,7 +16,7 @@
"delogicname"
:
"部门成员"
,
"sysmoudle"
:{
"id"
:
"OU"
,
"name"
:
"ou"
},
"dedataset"
:[{
"id"
:
"Default"
,
"name"
:
"DEFAULT"
}],
"deaction"
:[{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
}],
"deaction"
:[{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
}
,{
"id"
:
"SaveDeptMember"
,
"name"
:
"保存部门成员"
,
"type"
:
"DELOGIC"
}
],
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
}]
}
,
{
...
...
ibzou-core/src/main/resources/rules/SysDeptMembersaveDeptMemberRule.drl
0 → 100644
浏览文件 @
50038314
package
cn
.
ibizlab
.
ou
.
logic
.
sysdeptmemberlogic
.
savedeptmember
;
import
java
.
util
.
Map
;
import
java
.
util
.
HashMap
;
import
com
.
alibaba
.
fastjson
.
JSONObject
;
import
org
.
springframework
.
util
.
StringUtils
;
import
org
.
springframework
.
util
.
ObjectUtils
;
import
cn
.
ibizlab
.
util
.
errors
.
BadRequestAlertException
;
global
cn
.
ibizlab
.
core
.
ou
.
domain
.
SysDeptMember
sysdeptmembersavedeptmemberdefault
;
global
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
sysdeptmemberservice
;
global
cn
.
ibizlab
.
core
.
ou
.
service
.
ISysDeptMemberService
iBzSysSysdeptmemberDefaultService
;
global
cn
.
ibizlab
.
util
.
security
.
AuthenticationUser
curuser
;
no
-
loop
//
逻辑处理节点
[
开始
]
rule
"begin"
ruleflow
-
group
"sysdeptmembersavedeptmemberbegin"
when
then
end
//
逻辑处理节点
[
准备
sysuser
参数
]
rule
"prepareparam1"
ruleflow
-
group
"sysdeptmembersavedeptmemberprepareparam1"
when
then
update
(
sysdeptmembersavedeptmemberdefault
);//
更新
fact
中变量值
end
//
逻辑处理节点
[
保存部门用户
]
rule
"deaction1"
ruleflow
-
group
"sysdeptmembersavedeptmemberdeaction1"
when
then
sysdeptmemberservice
.
save
(
sysdeptmembersavedeptmemberdefault
);
update
(
sysdeptmembersavedeptmemberdefault
);//
更新
fact
中变量值
end
ibzou-core/src/main/resources/rules/SysDeptMembersaveDeptMemberRuleFlow.bpmn
0 → 100644
浏览文件 @
50038314
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:di=
"http://www.omg.org/spec/DD/20100524/DI"
xmlns:g=
"http://www.jboss.org/drools/flow/gpd"
xmlns:tns=
"http://www.jboss.org/drools"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
expressionLanguage=
"http://www.mvel.org/2.0"
id=
"Definition"
name=
""
targetNamespace=
"http://www.jboss.org/drools"
typeLanguage=
"http://www.java.com/javaTypes"
>
<process
id=
"cn.ibizlab.core.ou.service.logic.sysdeptmembersavedeptmember"
isClosed=
"false"
isExecutable=
"true"
name=
"ScoreRule"
processType=
"Private"
tns:packageName=
"cn.ibizlab.core.ou.service.logic.sysdeptmembersavedeptmember"
>
<extensionElements>
<tns:import
name=
"java.util.Map"
/>
<tns:import
name=
"org.springframework.util.StringUtils"
/>
<tns:import
name=
"cn.ibizlab.util.helper.RuleUtils"
/>
<tns:global
identifier=
"sysdeptmembersavedeptmemberdefault"
type=
"cn.ibizlab.core.ou.domain.SysDeptMember"
/>
</extensionElements>
<startEvent
id=
"begin"
isInterrupting=
"true"
/>
<businessRuleTask
activiti:exclusive=
"true"
g:ruleFlowGroup=
"sysdeptmembersavedeptmemberprepareparam1"
id=
"prepareparam1"
implementation=
"http://www.jboss.org/drools/rule"
name=
"准备sysUser参数"
/>
<businessRuleTask
activiti:exclusive=
"true"
g:ruleFlowGroup=
"sysdeptmembersavedeptmemberdeaction1"
id=
"deaction1"
implementation=
"http://www.jboss.org/drools/rule"
name=
"保存部门用户"
/>
<endEvent
id=
"deaction1_end"
name=
"end"
/>
<sequenceFlow
id=
"deaction1_end_line"
sourceRef=
"deaction1"
targetRef=
"deaction1_end"
/>
<sequenceFlow
id=
"prepareparam1_deaction1"
sourceRef=
"prepareparam1"
targetRef=
"deaction1"
>
</sequenceFlow>
<sequenceFlow
id=
"gateway-begin_prepareparam1"
sourceRef=
"gateway-begin"
targetRef=
"prepareparam1"
>
<conditionExpression
language=
"http://www.jboss.org/drools/rule"
>
<![CDATA[
$sysdeptmembersavedeptmemberdefault:SysDeptMember();
eval($sysdeptmembersavedeptmemberdefault==sysdeptmembersavedeptmemberdefault);
eval((RuleUtils.test($sysdeptmembersavedeptmemberdefault.get("mdeptid"),"ISNOTNULL",""))&&(RuleUtils.test($sysdeptmembersavedeptmemberdefault.get("userid"),"ISNOTNULL","")))
]]>
</conditionExpression>
</sequenceFlow>
<exclusiveGateway
id=
"gateway-begin"
name=
"Gateway"
gatewayDirection=
"Diverging"
default=
"gateway-begin_end_line"
></exclusiveGateway>
<sequenceFlow
id=
"begin_gateway-begin_gatewayline"
sourceRef=
"begin"
targetRef=
"gateway-begin"
></sequenceFlow>
<sequenceFlow
id=
"gateway-begin_end_line"
sourceRef=
"gateway-begin"
targetRef=
"gateway-begin_end"
/>
<endEvent
id=
"gateway-begin_end"
name=
"end"
/>
</process>
</definitions>
ibzou-core/src/main/resources/sysmodel/ibzou.json
浏览文件 @
50038314
...
...
@@ -342,6 +342,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
100
,
"key_field"
:
0
,
"union_key"
:
"KEY1"
,
"show_order"
:
2
,
"major_field"
:
0
},
...
...
@@ -378,6 +379,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
100
,
"key_field"
:
0
,
"union_key"
:
"KEY2"
,
"show_order"
:
4
,
"major_field"
:
0
},
...
...
ibzou-dependencies/pom.xml
浏览文件 @
50038314
...
...
@@ -85,6 +85,7 @@
<oracle.version>
19.8.0.0
</oracle.version>
<postgresql.version>
42.2.6
</postgresql.version>
<rocketmq.version>
4.7.0
</rocketmq.version>
</properties>
...
...
@@ -261,6 +262,11 @@
<version>
${baomidou-jobs.version}
</version>
</dependency>
<dependency>
<groupId>
org.apache.rocketmq
</groupId>
<artifactId>
rocketmq-client
</artifactId>
<version>
${rocketmq.version}
</version>
</dependency>
</dependencies>
</dependencyManagement>
...
...
ibzou-provider/ibzou-provider-api/src/main/java/cn/ibizlab/api/rest/SysDeptMemberResource.java
浏览文件 @
50038314
此差异已折叠。
点击以展开。
ibzou-util/src/main/java/cn/ibizlab/util/aspect/RocketMQAspect.java
0 → 100644
浏览文件 @
50038314
package
cn
.
ibizlab
.
util
.
aspect
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.rocketmq.client.producer.DefaultMQProducer
;
import
com.alibaba.rocketmq.common.message.Message
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.ibizlab.util.domain.EntityBase
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.AfterReturning
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.expression.EvaluationContext
;
import
org.springframework.expression.Expression
;
import
org.springframework.expression.ExpressionParser
;
import
org.springframework.expression.spel.standard.SpelExpressionParser
;
import
org.springframework.expression.spel.support.StandardEvaluationContext
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.List
;
/**
* rocketMQ消息切面
*/
@Aspect
@Component
@Slf4j
public
class
RocketMQAspect
{
private
final
ExpressionParser
parser
=
new
SpelExpressionParser
();
@Autowired
@Qualifier
(
"SysEmployeedeleteSysUserproducer"
)
@Lazy
DefaultMQProducer
SysEmployeedeleteSysUserproducer
;
@AfterReturning
(
value
=
"(execution(* cn.ibizlab.core.*.service.*SysEmployee*.create*(..))||execution(* cn.ibizlab.core.*.service.*SysEmployee*.update*(..))||execution(* cn.ibizlab.core.*.service.*SysEmployee*.save*(..)) ||execution(* cn.ibizlab.core.*.service.*SysEmployee*.remove*(..))) && !execution(* cn.ibizlab.core.es.service.*.create*(..)) && !execution(* cn.ibizlab.core.es.service.*.update*(..)) && !execution(* cn.ibizlab.core.es.service.*.save*(..)) && !execution(* cn.ibizlab.core.es.service.*.remove*(..))"
)
@Async
public
void
sysEmployeedeleteSysUserproducer
(
JoinPoint
point
)
{
sendMsg
(
SysEmployeedeleteSysUserproducer
,
"deleteSysUser"
,
"deleteSysUser"
,
getEntity
(
point
));
}
@Autowired
@Qualifier
(
"SysEmployeesaveSysUserproducer"
)
@Lazy
DefaultMQProducer
SysEmployeesaveSysUserproducer
;
@AfterReturning
(
value
=
"(execution(* cn.ibizlab.core.*.service.*SysEmployee*.create*(..))||execution(* cn.ibizlab.core.*.service.*SysEmployee*.update*(..))||execution(* cn.ibizlab.core.*.service.*SysEmployee*.save*(..)) ||execution(* cn.ibizlab.core.*.service.*SysEmployee*.remove*(..))) && !execution(* cn.ibizlab.core.es.service.*.create*(..)) && !execution(* cn.ibizlab.core.es.service.*.update*(..)) && !execution(* cn.ibizlab.core.es.service.*.save*(..)) && !execution(* cn.ibizlab.core.es.service.*.remove*(..))"
)
@Async
public
void
sysEmployeesaveSysUserproducer
(
JoinPoint
point
)
{
sendMsg
(
SysEmployeesaveSysUserproducer
,
"saveSysUser"
,
"saveSysUser"
,
getEntity
(
point
));
}
/**
* 输出过滤行为
* @param point
* @param actionName
*/
private
void
outputAction
(
JoinPoint
point
,
String
actionName
)
{
Object
[]
args
=
point
.
getArgs
();
if
(
ObjectUtils
.
isEmpty
(
args
)
||
args
.
length
==
0
)
{
return
;
}
Object
arg
=
args
[
0
];
Object
service
=
point
.
getTarget
();
EvaluationContext
serviceCtx
=
new
StandardEvaluationContext
();
serviceCtx
.
setVariable
(
"service"
,
service
);
serviceCtx
.
setVariable
(
"arg"
,
arg
);
Expression
serviceExp
=
parser
.
parseExpression
(
String
.
format
(
"#service.%s(#arg)"
,
actionName
));
serviceExp
.
getValue
(
serviceCtx
);
}
/**
* 获取实体对象
* @param point
* @return
*/
private
Object
getEntity
(
JoinPoint
point
)
{
Object
entity
=
null
;
String
action
=
point
.
getSignature
().
getName
();
Object
[]
args
=
point
.
getArgs
();
if
(
ObjectUtils
.
isEmpty
(
args
)
||
args
.
length
==
0
||
StringUtils
.
isEmpty
(
action
))
{
return
entity
;
}
Object
arg
=
args
[
0
];
if
(
arg
instanceof
EntityBase
||
arg
instanceof
List
)
{
return
arg
;
}
else
{
return
null
;
}
}
/**
* 发送消息
* @param producer
* @param topic
* @param tag
* @param body
*/
private
void
sendMsg
(
DefaultMQProducer
producer
,
String
topic
,
String
tag
,
Object
body
)
{
if
(
ObjectUtils
.
isEmpty
(
body
))
{
log
.
error
(
"发送消息失败,无法获取到要发送的消息内容!"
);
return
;
}
try
{
producer
.
start
();
Message
message
=
new
Message
(
topic
,
tag
,
JSON
.
toJSONString
(
body
).
getBytes
());
producer
.
send
(
message
);
producer
.
shutdown
();
}
catch
(
Exception
e
)
{
log
.
error
(
"消息发送异常,"
+
e
);
}
}
}
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录