Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fuyue82
o2oa
提交
bbc457cb
o2oa
项目概览
fuyue82
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bbc457cb
编写于
8月 19, 2021
作者:
O
o2null
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改identity list with unit
上级
da3fd002
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
111 addition
and
1 deletion
+111
-1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitSubDirectObject.java
...express/jaxrs/unit/ActionListWithUnitSubDirectObject.java
+111
-1
未找到文件。
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitSubDirectObject.java
浏览文件 @
bbc457cb
package
com.x.organization.assemble.express.jaxrs.unit
;
package
com.x.organization.assemble.express.jaxrs.unit
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Optional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.Tuple
;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
org.apache.commons.lang3.BooleanUtils
;
import
com.google.gson.JsonElement
;
import
com.google.gson.JsonElement
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
...
@@ -15,7 +26,10 @@ import com.x.base.core.project.http.ActionResult;
...
@@ -15,7 +26,10 @@ import com.x.base.core.project.http.ActionResult;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.organization.assemble.express.Business
;
import
com.x.organization.assemble.express.Business
;
import
com.x.organization.core.entity.Identity
;
import
com.x.organization.core.entity.Identity_
;
import
com.x.organization.core.entity.Unit
;
import
com.x.organization.core.entity.Unit
;
import
com.x.organization.core.entity.Unit_
;
class
ActionListWithUnitSubDirectObject
extends
BaseAction
{
class
ActionListWithUnitSubDirectObject
extends
BaseAction
{
...
@@ -40,9 +54,17 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
...
@@ -40,9 +54,17 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
public
static
class
Wi
extends
GsonPropertyObject
{
public
static
class
Wi
extends
GsonPropertyObject
{
private
static
final
long
serialVersionUID
=
1106979865206299656L
;
@FieldDescribe
(
"组织"
)
@FieldDescribe
(
"组织"
)
private
List
<
String
>
unitList
;
private
List
<
String
>
unitList
;
@FieldDescribe
(
"是否要统计直接子部门数量"
)
private
Boolean
countSubDirectUnit
=
false
;
@FieldDescribe
(
"是否要统计直接部门身份数量"
)
private
Boolean
countSubDirectIdentity
=
false
;
public
List
<
String
>
getUnitList
()
{
public
List
<
String
>
getUnitList
()
{
return
unitList
;
return
unitList
;
}
}
...
@@ -51,10 +73,49 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
...
@@ -51,10 +73,49 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
this
.
unitList
=
unitList
;
this
.
unitList
=
unitList
;
}
}
public
Boolean
getCountSubDirectUnit
()
{
return
countSubDirectUnit
;
}
public
void
setCountSubDirectUnit
(
Boolean
countSubDirectUnit
)
{
this
.
countSubDirectUnit
=
countSubDirectUnit
;
}
public
Boolean
getCountSubDirectIdentity
()
{
return
countSubDirectIdentity
;
}
public
void
setCountSubDirectIdentity
(
Boolean
countSubDirectIdentity
)
{
this
.
countSubDirectIdentity
=
countSubDirectIdentity
;
}
}
}
public
static
class
Wo
extends
com
.
x
.
base
.
core
.
project
.
organization
.
Unit
{
public
static
class
Wo
extends
com
.
x
.
base
.
core
.
project
.
organization
.
Unit
{
private
static
final
long
serialVersionUID
=
-
1387072363896397302L
;
@FieldDescribe
(
"直接下级组织数量"
)
private
Long
subDirectUnitCount
;
@FieldDescribe
(
"直接下级身份数量"
)
private
Long
subDirectIdentityCount
;
public
Long
getSubDirectUnitCount
()
{
return
subDirectUnitCount
;
}
public
void
setSubDirectUnitCount
(
Long
subDirectUnitCount
)
{
this
.
subDirectUnitCount
=
subDirectUnitCount
;
}
public
Long
getSubDirectIdentityCount
()
{
return
subDirectIdentityCount
;
}
public
void
setSubDirectIdentityCount
(
Long
subDirectIdentityCount
)
{
this
.
subDirectIdentityCount
=
subDirectIdentityCount
;
}
}
}
private
List
<
Wo
>
list
(
Business
business
,
Wi
wi
)
throws
Exception
{
private
List
<
Wo
>
list
(
Business
business
,
Wi
wi
)
throws
Exception
{
...
@@ -65,10 +126,59 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
...
@@ -65,10 +126,59 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
unitIds
.
addAll
(
business
.
unit
().
listSubDirect
(
o
.
getId
()));
unitIds
.
addAll
(
business
.
unit
().
listSubDirect
(
o
.
getId
()));
}
}
unitIds
=
ListTools
.
trim
(
unitIds
,
true
,
true
);
unitIds
=
ListTools
.
trim
(
unitIds
,
true
,
true
);
Map
<
String
,
Long
>
countSubDirectUnitMap
=
new
HashMap
<>();
if
(
BooleanUtils
.
isTrue
(
wi
.
getCountSubDirectUnit
()))
{
countSubDirectUnitMap
=
this
.
countSubDirectUnit
(
business
,
unitIds
);
}
Map
<
String
,
Long
>
countSubDirectIdentityMap
=
new
HashMap
<>();
if
(
BooleanUtils
.
isTrue
(
wi
.
getCountSubDirectIdentity
()))
{
countSubDirectIdentityMap
=
this
.
countSubDirectIdentity
(
business
,
unitIds
);
}
for
(
Unit
o
:
business
.
unit
().
pick
(
unitIds
))
{
for
(
Unit
o
:
business
.
unit
().
pick
(
unitIds
))
{
wos
.
add
(
this
.
convert
(
business
,
o
,
Wo
.
class
));
Wo
wo
=
this
.
convert
(
business
,
o
,
Wo
.
class
);
if
(
BooleanUtils
.
isTrue
(
wi
.
getCountSubDirectUnit
()))
{
wo
.
setSubDirectUnitCount
(
countSubDirectUnitMap
.
getOrDefault
(
o
.
getId
(),
0L
));
}
if
(
BooleanUtils
.
isTrue
(
wi
.
getCountSubDirectIdentity
()))
{
wo
.
setSubDirectIdentityCount
(
countSubDirectIdentityMap
.
getOrDefault
(
o
.
getId
(),
0L
));
}
wos
.
add
(
wo
);
}
}
return
wos
;
return
wos
;
}
}
private
Map
<
String
,
Long
>
countSubDirectUnit
(
Business
business
,
List
<
String
>
unitIds
)
throws
Exception
{
EntityManagerContainer
emc
=
business
.
entityManagerContainer
();
EntityManager
em
=
emc
.
get
(
Unit
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
Tuple
>
cq
=
cb
.
createQuery
(
Tuple
.
class
);
Root
<
Unit
>
root
=
cq
.
from
(
Unit
.
class
);
Predicate
predicate
=
root
.
get
(
Unit_
.
superior
).
in
(
unitIds
);
cq
.
where
(
predicate
).
multiselect
(
root
.
get
(
Unit_
.
superior
),
cb
.
count
(
root
)).
groupBy
(
root
.
get
(
Unit_
.
superior
));
List
<
Tuple
>
list
=
em
.
createQuery
(
cq
).
getResultList
();
Map
<
String
,
Long
>
map
=
new
HashMap
<>();
for
(
Tuple
t
:
list
)
{
map
.
put
(
t
.
get
(
0
,
String
.
class
),
t
.
get
(
1
,
Long
.
class
));
}
return
map
;
}
private
Map
<
String
,
Long
>
countSubDirectIdentity
(
Business
business
,
List
<
String
>
unitIds
)
throws
Exception
{
EntityManagerContainer
emc
=
business
.
entityManagerContainer
();
EntityManager
em
=
emc
.
get
(
Identity
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
Tuple
>
cq
=
cb
.
createQuery
(
Tuple
.
class
);
Root
<
Identity
>
root
=
cq
.
from
(
Identity
.
class
);
Predicate
predicate
=
root
.
get
(
Identity_
.
unit
).
in
(
unitIds
);
cq
.
where
(
predicate
).
multiselect
(
root
.
get
(
Identity_
.
unit
),
cb
.
count
(
root
)).
groupBy
(
root
.
get
(
Identity_
.
unit
));
List
<
Tuple
>
list
=
em
.
createQuery
(
cq
).
getResultList
();
Map
<
String
,
Long
>
map
=
new
HashMap
<>();
for
(
Tuple
t
:
list
)
{
map
.
put
(
t
.
get
(
0
,
String
.
class
),
t
.
get
(
1
,
Long
.
class
));
}
return
map
;
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录