Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ghsby
o2oa
提交
8d72316c
o2oa
项目概览
ghsby
/
o2oa
落后 Fork 源项目 2880 个版本
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
1
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,发现更多精彩内容 >>
提交
8d72316c
编写于
4月 28, 2020
作者:
L
luojing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
teamwok服务接口修改
上级
734d06c5
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
574 addition
and
138 deletion
+574
-138
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/factory/ProjectTemplateFactory.java
...work/assemble/control/factory/ProjectTemplateFactory.java
+22
-43
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/factory/TaskListTemplateFactory.java
...ork/assemble/control/factory/TaskListTemplateFactory.java
+5
-3
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionDelete.java
.../assemble/control/jaxrs/projectTemplate/ActionDelete.java
+3
-3
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionGet.java
...ork/assemble/control/jaxrs/projectTemplate/ActionGet.java
+80
-5
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionList.java
...rk/assemble/control/jaxrs/projectTemplate/ActionList.java
+19
-26
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionListNextWithFilter.java
...ntrol/jaxrs/projectTemplate/ActionListNextWithFilter.java
+173
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ProjectTemplateAction.java
.../control/jaxrs/projectTemplate/ProjectTemplateAction.java
+9
-24
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/WrapInQueryProjectTemplate.java
...rol/jaxrs/projectTemplate/WrapInQueryProjectTemplate.java
+103
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/WrapOutControl.java
...ssemble/control/jaxrs/projectTemplate/WrapOutControl.java
+51
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/taskListTemplate/ActionList.java
...k/assemble/control/jaxrs/taskListTemplate/ActionList.java
+6
-4
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicPersistService.java
...mwork/assemble/control/service/DynamicPersistService.java
+22
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicService.java
...m/x/teamwork/assemble/control/service/DynamicService.java
+15
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/ProjectTemplateQueryService.java
...assemble/control/service/ProjectTemplateQueryService.java
+27
-13
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/ProjectTemplateService.java
...work/assemble/control/service/ProjectTemplateService.java
+26
-16
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskListTemplateService.java
...ork/assemble/control/service/TaskListTemplateService.java
+12
-0
o2server/x_teamwork_core_entity/src/main/java/com/x/teamwork/core/entity/ProjectTemplate.java
...main/java/com/x/teamwork/core/entity/ProjectTemplate.java
+1
-1
未找到文件。
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/factory/ProjectTemplateFactory.java
浏览文件 @
8d72316c
...
...
@@ -20,6 +20,7 @@ import com.x.teamwork.core.entity.Dynamic_;
import
com.x.teamwork.core.entity.Project
;
import
com.x.teamwork.core.entity.ProjectDetail
;
import
com.x.teamwork.core.entity.ProjectTemplate
;
import
com.x.teamwork.core.entity.ProjectTemplate_
;
import
com.x.teamwork.core.entity.Project_
;
import
com.x.teamwork.core.entity.tools.CriteriaBuilderTools
;
import
com.x.teamwork.core.entity.tools.filter.QueryFilter
;
...
...
@@ -173,44 +174,34 @@ public class ProjectTemplateFactory extends AbstractFactory {
* @return
* @throws Exception
*/
public
List
<
Project
>
listWithFilter
(
Integer
maxCount
,
Object
sequenceFieldValue
,
String
orderField
,
String
orderType
,
String
personName
,
List
<
String
>
identityNames
,
List
<
String
>
unitNames
,
List
<
String
>
groupNames
,
QueryFilter
queryFilter
)
throws
Exception
{
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
Project
.
class
);
public
List
<
Project
Template
>
listWithFilter
(
Integer
maxCount
,
Object
sequenceFieldValue
,
String
orderField
,
String
orderType
,
String
personName
,
QueryFilter
queryFilter
)
throws
Exception
{
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
Project
Template
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
Project
>
cq
=
cb
.
createQuery
(
Project
.
class
);
Root
<
Project
>
root
=
cq
.
from
(
Project
.
class
);
CriteriaQuery
<
Project
Template
>
cq
=
cb
.
createQuery
(
ProjectTemplate
.
class
);
Root
<
Project
Template
>
root
=
cq
.
from
(
ProjectTemplate
.
class
);
Predicate
p_permission
=
null
;
if
(
StringUtils
.
isNotEmpty
(
personName
))
{
/*
if( StringUtils.isNotEmpty( personName )) {
//可以管理的栏目,肯定可以发布信息
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.isMember( personName, root.get( Project_.participantPersonList )) );
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.isMember( personName, root.get( Project_.manageablePersonList )) );
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.equal( root.get( Project_.creatorPerson ), personName ) );
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.equal( root.get( Project_.executor ), personName ) );
}
if
(
ListTools
.
isNotEmpty
(
identityNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantIdentityList
).
in
(
identityNames
));
}
if
(
ListTools
.
isNotEmpty
(
unitNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantUnitList
).
in
(
unitNames
));
}
if
(
ListTools
.
isNotEmpty
(
groupNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantGroupList
).
in
(
groupNames
));
}
}*/
Predicate
p
=
CriteriaBuilderTools
.
composePredicateWithQueryFilter
(
Project_
.
class
,
cb
,
p_permission
,
root
,
queryFilter
);
Predicate
p
=
CriteriaBuilderTools
.
composePredicateWithQueryFilter
(
Project
Template
_
.
class
,
cb
,
p_permission
,
root
,
queryFilter
);
if
(
sequenceFieldValue
!=
null
&&
StringUtils
.
isNotEmpty
(
sequenceFieldValue
.
toString
()
))
{
Predicate
p_seq
=
cb
.
isNotNull
(
root
.
get
(
Dynamic_
.
sequence
)
);
if
(
"desc"
.
equalsIgnoreCase
(
orderType
)){
p_seq
=
cb
.
and
(
p_seq
,
cb
.
lessThan
(
root
.
get
(
Project_
.
sequence
),
sequenceFieldValue
.
toString
()
));
p_seq
=
cb
.
and
(
p_seq
,
cb
.
lessThan
(
root
.
get
(
Project
Template
_
.
sequence
),
sequenceFieldValue
.
toString
()
));
}
else
{
p_seq
=
cb
.
and
(
p_seq
,
cb
.
greaterThan
(
root
.
get
(
Project_
.
sequence
),
sequenceFieldValue
.
toString
()
));
p_seq
=
cb
.
and
(
p_seq
,
cb
.
greaterThan
(
root
.
get
(
Project
Template
_
.
sequence
),
sequenceFieldValue
.
toString
()
));
}
p
=
cb
.
and
(
p
,
p_seq
);
}
Order
orderWithField
=
CriteriaBuilderTools
.
getOrder
(
cb
,
root
,
Project_
.
class
,
orderField
,
orderType
);
Order
orderWithField
=
CriteriaBuilderTools
.
getOrder
(
cb
,
root
,
Project
Template
_
.
class
,
orderField
,
orderType
);
if
(
orderWithField
!=
null
){
cq
.
orderBy
(
orderWithField
);
}
...
...
@@ -219,46 +210,34 @@ public class ProjectTemplateFactory extends AbstractFactory {
}
/**
* 根据条件查询所有符合条件的项目信息ID,项目信息不会很多 ,所以直接查询出来
* 根据条件查询所有符合条件的项目
模板
信息ID,项目信息不会很多 ,所以直接查询出来
* @param maxCount
* @param sequenceFieldValue
* @param orderField
* @param orderType
* @param personName
* @param identityNames
* @param unitNames
* @param groupNames
* @param queryFilter
* @return
* @throws Exception
*/
public
List
<
String
>
listAll
ViewableProjectIds
(
Integer
maxCount
,
String
personName
,
List
<
String
>
identityNames
,
List
<
String
>
unitNames
,
List
<
String
>
groupNames
,
QueryFilter
queryFilter
)
throws
Exception
{
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
Project
.
class
);
public
List
<
String
>
listAll
ProjectTemplateIds
(
Integer
maxCount
,
String
personName
,
QueryFilter
queryFilter
)
throws
Exception
{
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
Project
Template
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
String
>
cq
=
cb
.
createQuery
(
String
.
class
);
Root
<
Project
>
root
=
cq
.
from
(
Project
.
class
);
Root
<
Project
Template
>
root
=
cq
.
from
(
ProjectTemplate
.
class
);
Predicate
p_permission
=
null
;
if
(
StringUtils
.
isNotEmpty
(
personName
))
{
/*
if( StringUtils.isNotEmpty( personName )) {
//可以管理的栏目,肯定可以发布信息
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
cb
.
isMember
(
personName
,
root
.
get
(
Project_
.
participantPersonList
))
);
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.isMember( personName, root.get( Project
Template
_.participantPersonList )) );
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.isMember( personName, root.get( Project_.manageablePersonList )) );
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
cb
.
equal
(
root
.
get
(
Project_
.
creatorPerson
),
personName
)
);
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
cb
.
equal
(
root
.
get
(
Project_
.
executor
),
personName
)
);
}
if
(
ListTools
.
isNotEmpty
(
identityNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantIdentityList
).
in
(
identityNames
));
}
if
(
ListTools
.
isNotEmpty
(
unitNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantUnitList
).
in
(
unitNames
));
}
if
(
ListTools
.
isNotEmpty
(
groupNames
))
{
p_permission
=
CriteriaBuilderTools
.
predicate_or
(
cb
,
p_permission
,
root
.
get
(
Project_
.
participantGroupList
).
in
(
groupNames
));
}
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.equal( root.get( ProjectTemplate_.creatorPerson ), personName ) );
p_permission = CriteriaBuilderTools.predicate_or( cb, p_permission, cb.equal( root.get( ProjectTemplate_.executor ), personName ) );
}*/
Predicate
p
=
CriteriaBuilderTools
.
composePredicateWithQueryFilter
(
Project_
.
class
,
cb
,
p_permission
,
root
,
queryFilter
);
cq
.
distinct
(
true
).
select
(
root
.
get
(
Project_
.
id
)
);
Predicate
p
=
CriteriaBuilderTools
.
composePredicateWithQueryFilter
(
Project
Template
_
.
class
,
cb
,
p_permission
,
root
,
queryFilter
);
cq
.
distinct
(
true
).
select
(
root
.
get
(
Project
Template
_
.
id
)
);
return
em
.
createQuery
(
cq
.
where
(
p
)).
setMaxResults
(
maxCount
).
getResultList
();
}
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/factory/TaskListTemplateFactory.java
浏览文件 @
8d72316c
...
...
@@ -23,6 +23,7 @@ import com.x.teamwork.core.entity.ProjectTemplate;
import
com.x.teamwork.core.entity.Project_
;
import
com.x.teamwork.core.entity.TaskListTemplate
;
import
com.x.teamwork.core.entity.TaskListTemplate_
;
import
com.x.teamwork.core.entity.Task_
;
import
com.x.teamwork.core.entity.tools.CriteriaBuilderTools
;
import
com.x.teamwork.core.entity.tools.filter.QueryFilter
;
...
...
@@ -54,14 +55,15 @@ public class TaskListTemplateFactory extends AbstractFactory {
* @throws Exception
*/
public
List
<
TaskListTemplate
>
list
(
String
id
)
throws
Exception
{
if
(
StringUtils
.
is
Not
Empty
(
id
)
){
if
(
StringUtils
.
isEmpty
(
id
)
){
return
new
ArrayList
<
TaskListTemplate
>();
}
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
Project
.
class
);
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
TaskListTemplate
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
TaskListTemplate
>
cq
=
cb
.
createQuery
(
TaskListTemplate
.
class
);
Root
<
TaskListTemplate
>
root
=
cq
.
from
(
TaskListTemplate
.
class
);
Predicate
p
=
cb
.
equal
(
root
.
get
(
TaskListTemplate_
.
id
),
id
);
Predicate
p
=
cb
.
equal
(
root
.
get
(
TaskListTemplate_
.
projectTemplate
),
id
);
p
=
cb
.
and
(
p
,
cb
.
isFalse
(
root
.
get
(
TaskListTemplate_
.
deleted
)));
cq
.
orderBy
(
cb
.
desc
(
root
.
get
(
TaskListTemplate_
.
updateTime
)
)
);
return
em
.
createQuery
(
cq
.
where
(
p
)).
getResultList
();
}
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionDelete.java
浏览文件 @
8d72316c
...
...
@@ -70,9 +70,9 @@ public class ActionDelete extends BaseAction {
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
/*
if( Boolean.TRUE.equals( check ) ){
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
try
{
Dynamic dynamic = dynamicPersistService.project
GroupDeleteDynamic( projectGroup
, effectivePerson );
Dynamic
dynamic
=
dynamicPersistService
.
project
TemplateDeleteDynamic
(
projectTemplate
,
effectivePerson
);
if
(
dynamic
!=
null
)
{
List
<
WoDynamic
>
dynamics
=
new
ArrayList
<>();
dynamics
.
add
(
WoDynamic
.
copier
.
copy
(
dynamic
)
);
...
...
@@ -83,7 +83,7 @@ public class ActionDelete extends BaseAction {
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
*/
}
result
.
setData
(
wo
);
return
result
;
}
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionGet.java
浏览文件 @
8d72316c
...
...
@@ -7,7 +7,10 @@ import javax.servlet.http.HttpServletRequest;
import
org.apache.commons.lang3.StringUtils
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
import
com.x.base.core.entity.JpaObject
;
import
com.x.base.core.project.annotation.FieldDescribe
;
import
com.x.base.core.project.bean.WrapCopier
;
import
com.x.base.core.project.bean.WrapCopierFactory
;
import
com.x.base.core.project.cache.ApplicationCache
;
...
...
@@ -16,7 +19,9 @@ import com.x.base.core.project.http.EffectivePerson;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.teamwork.assemble.control.Business
;
import
com.x.teamwork.core.entity.ProjectTemplate
;
import
com.x.teamwork.core.entity.TaskListTemplate
;
import
net.sf.ehcache.Element
;
...
...
@@ -29,6 +34,8 @@ public class ActionGet extends BaseAction {
Wo
wo
=
null
;
ProjectTemplate
projectTemplate
=
null
;
Boolean
check
=
true
;
List
<
TaskListTemplate
>
taskListTemplate
=
null
;
WrapOutControl
control
=
null
;
if
(
StringUtils
.
isEmpty
(
id
)
)
{
check
=
false
;
...
...
@@ -36,13 +43,13 @@ public class ActionGet extends BaseAction {
result
.
error
(
exception
);
}
String
cacheKey
=
ApplicationCache
.
concreteCacheKey
(
id
,
effectivePerson
);
/*
String cacheKey = ApplicationCache.concreteCacheKey( id ,effectivePerson);
Element element = projectTemplateCache.get( cacheKey );
if ((null != element) && (null != element.getObjectValue())) {
wo = (Wo) element.getObjectValue();
result.setData( wo );
}
else
{
} else {
*/
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
try
{
projectTemplate
=
projectTemplateQueryService
.
get
(
id
);
...
...
@@ -61,8 +68,45 @@ public class ActionGet extends BaseAction {
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
try
{
wo
=
Wo
.
copier
.
copy
(
projectTemplate
);
projectTemplateCache
.
put
(
new
Element
(
cacheKey
,
wo
));
wo
=
Wo
.
copier
.
copy
(
projectTemplate
);
taskListTemplate
=
projectTemplateQueryService
.
getTaskListTemplateWithTemplateId
(
wo
.
getId
());
if
(
ListTools
.
isNotEmpty
(
taskListTemplate
))
{
wo
.
setTaskListTemplate
(
WoTaskListTemplate
.
copier
.
copy
(
taskListTemplate
));
}
//计算权限
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
Business
business
=
null
;
try
(
EntityManagerContainer
bc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
bc
);
}
try
{
control
=
new
WrapOutControl
();
if
(
business
.
isManager
(
effectivePerson
)
||
effectivePerson
.
getDistinguishedName
().
equalsIgnoreCase
(
projectTemplate
.
getOwner
()
)){
control
.
setDelete
(
true
);
control
.
setEdit
(
true
);
control
.
setSortable
(
true
);
}
else
{
control
.
setDelete
(
false
);
control
.
setEdit
(
false
);
control
.
setSortable
(
false
);
}
if
(
effectivePerson
.
getDistinguishedName
().
equalsIgnoreCase
(
projectTemplate
.
getOwner
()
)){
control
.
setFounder
(
true
);
}
else
{
control
.
setFounder
(
false
);
}
wo
.
setControl
(
control
);
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
ProjectTemplateQueryException
(
e
,
"根据指定flag查询工作任务权限信息时发生异常。id:"
+
id
);
result
.
error
(
exception
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
//projectTemplateCache.put(new Element(cacheKey, wo));
result
.
setData
(
wo
);
}
catch
(
Exception
e
)
{
Exception
exception
=
new
ProjectTemplateQueryException
(
e
,
"将查询出来的项目模板信息对象转换为可输出的数据信息时发生异常。"
);
...
...
@@ -70,11 +114,33 @@ public class ActionGet extends BaseAction {
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
}
//
}
return
result
;
}
public
static
class
Wo
extends
ProjectTemplate
{
@FieldDescribe
(
"项目模板权限"
)
private
WrapOutControl
control
=
null
;
@FieldDescribe
(
"模板对应的泳道信息"
)
private
List
<
WoTaskListTemplate
>
taskListTemplate
=
null
;
public
WrapOutControl
getControl
()
{
return
control
;
}
public
void
setControl
(
WrapOutControl
control
)
{
this
.
control
=
control
;
}
public
List
<
WoTaskListTemplate
>
getTaskListTemplate
()
{
return
taskListTemplate
;
}
public
void
setTaskListTemplate
(
List
<
WoTaskListTemplate
>
taskListTemplate
)
{
this
.
taskListTemplate
=
taskListTemplate
;
}
private
static
final
long
serialVersionUID
=
-
5076990764713538973L
;
...
...
@@ -83,4 +149,13 @@ public class ActionGet extends BaseAction {
static
WrapCopier
<
ProjectTemplate
,
Wo
>
copier
=
WrapCopierFactory
.
wo
(
ProjectTemplate
.
class
,
Wo
.
class
,
null
,
ListTools
.
toList
(
JpaObject
.
FieldsInvisible
));
}
public
static
class
WoTaskListTemplate
extends
TaskListTemplate
{
private
static
final
long
serialVersionUID
=
-
5076990764713538973L
;
public
static
List
<
String
>
Excludes
=
new
ArrayList
<
String
>();
static
WrapCopier
<
TaskListTemplate
,
WoTaskListTemplate
>
copier
=
WrapCopierFactory
.
wo
(
TaskListTemplate
.
class
,
WoTaskListTemplate
.
class
,
null
,
ListTools
.
toList
(
JpaObject
.
FieldsInvisible
));
}
}
\ No newline at end of file
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionList.java
浏览文件 @
8d72316c
...
...
@@ -16,6 +16,7 @@ import com.x.base.core.project.logger.LoggerFactory;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.base.core.project.tools.SortTools
;
import
com.x.teamwork.core.entity.ProjectGroup
;
import
com.x.teamwork.core.entity.TaskListTemplate
;
import
net.sf.ehcache.Element
;
...
...
@@ -27,39 +28,31 @@ public class ActionList extends BaseAction {
protected
ActionResult
<
List
<
Wo
>>
execute
(
HttpServletRequest
request
,
EffectivePerson
effectivePerson
)
throws
Exception
{
ActionResult
<
List
<
Wo
>>
result
=
new
ActionResult
<>();
List
<
Wo
>
wos
=
null
;
List
<
ProjectGroup
>
projectGroups
=
null
;
List
<
TaskListTemplate
>
projectGroups
=
null
;
Boolean
check
=
true
;
String
cacheKey
=
ApplicationCache
.
concreteCacheKey
(
"list.my"
,
effectivePerson
.
getDistinguishedName
()
);
/*Element element = projectGroupCache.get( cacheKey );
if ((null != element) && (null != element.getObjectValue())) {
wos = (List<Wo>) element.getObjectValue();
result.setData( wos );
} else {
if( Boolean.TRUE.equals( check ) ){
try {
projectGroups = projectGroupQueryService.listGroupByPerson( effectivePerson.getDistinguishedName() );
if( ListTools.isNotEmpty( projectGroups )) {
wos = Wo.copier.copy( projectGroups );
SortTools.asc( wos, "createTime");
projectGroupCache.put(new Element(cacheKey, wos));
result.setData(wos);
}
} catch (Exception e) {
check = false;
Exception exception = new ProjectTemplateQueryException(e, "根据用户拥有的项目组信息列表时发生异常。");
result.error(exception);
logger.error(e, effectivePerson, request, null);
/*if( Boolean.TRUE.equals( check ) ){
try {
projectGroups = projectGroupQueryService.listGroupByPerson( effectivePerson.getDistinguishedName() );
if( ListTools.isNotEmpty( projectGroups )) {
wos = Wo.copier.copy( projectGroups );
SortTools.asc( wos, "createTime");
result.setData(wos);
}
} catch (Exception e) {
check = false;
Exception exception = new ProjectTemplateQueryException(e, "根据用户拥有的项目组信息列表时发生异常。");
result.error(exception);
logger.error(e, effectivePerson, request, null);
}
}*/
return
result
;
}
public
static
class
Wo
extends
ProjectGroup
{
public
static
class
Wo
extends
TaskListTemplate
{
private
Long
rank
;
...
...
@@ -75,7 +68,7 @@ public class ActionList extends BaseAction {
public
static
List
<
String
>
Excludes
=
new
ArrayList
<
String
>();
static
WrapCopier
<
ProjectGroup
,
Wo
>
copier
=
WrapCopierFactory
.
wo
(
ProjectGroup
.
class
,
Wo
.
class
,
null
,
ListTools
.
toList
(
JpaObject
.
FieldsInvisible
));
static
WrapCopier
<
TaskListTemplate
,
Wo
>
copier
=
WrapCopierFactory
.
wo
(
TaskListTemplate
.
class
,
Wo
.
class
,
null
,
ListTools
.
toList
(
JpaObject
.
FieldsInvisible
));
}
}
\ No newline at end of file
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ActionListNextWithFilter.java
0 → 100644
浏览文件 @
8d72316c
package
com.x.teamwork.assemble.control.jaxrs.projectTemplate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
org.apache.commons.lang3.StringUtils
;
import
com.google.gson.JsonElement
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
import
com.x.base.core.entity.JpaObject
;
import
com.x.base.core.project.bean.WrapCopier
;
import
com.x.base.core.project.bean.WrapCopierFactory
;
import
com.x.base.core.project.cache.ApplicationCache
;
import
com.x.base.core.project.http.ActionResult
;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.teamwork.assemble.control.Business
;
import
com.x.teamwork.core.entity.Project
;
import
com.x.teamwork.core.entity.ProjectTemplate
;
import
com.x.teamwork.core.entity.tools.filter.QueryFilter
;
import
com.x.teamwork.core.entity.tools.filter.term.InTerm
;
import
net.sf.ehcache.Element
;
public
class
ActionListNextWithFilter
extends
BaseAction
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ActionListNextWithFilter
.
class
);
protected
ActionResult
<
List
<
Wo
>>
execute
(
HttpServletRequest
request
,
EffectivePerson
effectivePerson
,
String
flag
,
Integer
count
,
JsonElement
jsonElement
)
throws
Exception
{
ActionResult
<
List
<
Wo
>>
result
=
new
ActionResult
<>();
ResultObject
resultObject
=
null
;
List
<
Wo
>
wos
=
new
ArrayList
<>();
Wi
wrapIn
=
null
;
Boolean
check
=
true
;
String
cacheKey
=
null
;
Element
element
=
null
;
QueryFilter
queryFilter
=
null
;
List
<
String
>
queryProjectIds
=
new
ArrayList
<>();
if
(
StringUtils
.
isEmpty
(
flag
)
||
"(0)"
.
equals
(
flag
))
{
flag
=
null
;
}
try
{
wrapIn
=
this
.
convertToWrapIn
(
jsonElement
,
Wi
.
class
);
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
ProjectTemplateQueryException
(
e
,
"系统在将JSON信息转换为对象时发生异常。JSON:"
+
jsonElement
.
toString
());
result
.
error
(
exception
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
if
(
wrapIn
==
null
)
{
wrapIn
=
new
Wi
();
}
queryFilter
=
wrapIn
.
getQueryFilter
();
}
if
(
Boolean
.
TRUE
.
equals
(
check
)
){
cacheKey
=
ApplicationCache
.
concreteCacheKey
(
"ActionListNextWithFilter"
,
effectivePerson
.
getDistinguishedName
(),
flag
,
count
,
wrapIn
.
getOrderField
(),
wrapIn
.
getOrderType
(),
queryFilter
.
getContentSHA1
()
);
element
=
projectTemplateCache
.
get
(
cacheKey
);
if
((
null
!=
element
)
&&
(
null
!=
element
.
getObjectValue
()))
{
resultObject
=
(
ResultObject
)
element
.
getObjectValue
();
result
.
setCount
(
resultObject
.
getTotal
()
);
result
.
setData
(
resultObject
.
getWos
()
);
}
else
{
try
{
//获取用户能查看的所有的项目信息ID列表,最多查询2000条数据
List
<
String
>
projectIds
=
projectTemplateQueryService
.
listAllProjectTemplateIds
(
effectivePerson
,
2000
,
queryFilter
);
if
(
ListTools
.
isNotEmpty
(
projectIds
))
{
//直接根据可见项目ID列表进行分页查询
Long
total
=
Long
.
parseLong
(
projectIds
.
size
()
+
""
);
List
<
ProjectTemplate
>
projectList
=
projectTemplateQueryService
.
listWithProjectIdFilter
(
count
,
flag
,
wrapIn
.
getOrderField
(),
wrapIn
.
getOrderType
(),
projectIds
);
if
(
ListTools
.
isNotEmpty
(
projectList
))
{
WrapOutControl
control
=
null
;
for
(
ProjectTemplate
project
:
projectList
)
{
Wo
wo
=
Wo
.
copier
.
copy
(
project
);
/*Business business = null;
try (EntityManagerContainer bc = EntityManagerContainerFactory.instance().create()) {
business = new Business(bc);
}
control = new WrapOutControl();
if( business.isManager(effectivePerson)
|| effectivePerson.getDistinguishedName().equalsIgnoreCase( project.getCreatorPerson() )
|| project.getManageablePersonList().contains( effectivePerson.getDistinguishedName() )) {
control.setDelete( true );
control.setEdit( true );
control.setSortable( true );
}else{
control.setDelete( false );
control.setEdit( false );
control.setSortable( false );
}
if(effectivePerson.getDistinguishedName().equalsIgnoreCase( project.getCreatorPerson())){
control.setFounder( true );
}else{
control.setFounder( false );
}
wo.setControl(control);*/
wos
.
add
(
wo
);
}
}
resultObject
=
new
ResultObject
(
total
,
wos
);
projectTemplateCache
.
put
(
new
Element
(
cacheKey
,
resultObject
));
result
.
setCount
(
resultObject
.
getTotal
()
);
result
.
setData
(
resultObject
.
getWos
()
);
}
}
catch
(
Exception
e
)
{
check
=
false
;
logger
.
warn
(
"系统查询项目信息列表时发生异常!"
);
result
.
error
(
e
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
}
return
result
;
}
public
static
class
Wi
extends
WrapInQueryProjectTemplate
{
}
public
static
class
Wo
extends
ProjectTemplate
{
private
static
final
long
serialVersionUID
=
-
5076990764713538973L
;
public
static
List
<
String
>
Excludes
=
new
ArrayList
<
String
>();
static
WrapCopier
<
ProjectTemplate
,
Wo
>
copier
=
WrapCopierFactory
.
wo
(
ProjectTemplate
.
class
,
Wo
.
class
,
null
,
ListTools
.
toList
(
JpaObject
.
FieldsInvisible
));
}
public
static
class
ResultObject
{
private
Long
total
;
private
List
<
Wo
>
wos
;
public
ResultObject
()
{}
public
ResultObject
(
Long
count
,
List
<
Wo
>
data
)
{
this
.
total
=
count
;
this
.
wos
=
data
;
}
public
Long
getTotal
()
{
return
total
;
}
public
void
setTotal
(
Long
total
)
{
this
.
total
=
total
;
}
public
List
<
Wo
>
getWos
()
{
return
wos
;
}
public
void
setWos
(
List
<
Wo
>
wos
)
{
this
.
wos
=
wos
;
}
}
}
\ No newline at end of file
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/ProjectTemplateAction.java
浏览文件 @
8d72316c
...
...
@@ -28,6 +28,7 @@ import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
@Path
(
"projectTemplate"
)
@JaxrsDescribe
(
"项目模板信息管理"
)
public
class
ProjectTemplateAction
extends
StandardJaxrsAction
{
...
...
@@ -53,35 +54,19 @@ public class ProjectTemplateAction extends StandardJaxrsAction {
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"查询用户创建的所有项目组信息列表."
,
action
=
ActionList
.
class
)
@GET
@Path
(
"list/my"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
listGroups
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
)
{
ActionResult
<
List
<
ActionList
.
Wo
>>
result
=
new
ActionResult
<>();
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
try
{
result
=
new
ActionList
().
execute
(
request
,
effectivePerson
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
result
.
error
(
e
);
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"根据ID列表查询项目组信息列表."
,
action
=
ActionListWithFilter
.
class
)
@JaxrsMethodDescribe
(
value
=
"列示项目信息,下一页."
,
action
=
ActionListNextWithFilter
.
class
)
@PUT
@Path
(
"list/{id}/next/{count}"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
listWithIds
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"传入的ID列表"
)
JsonElement
jsonElement
)
{
ActionResult
<
List
<
ActionListWithFilter
.
Wo
>>
result
=
new
ActionResult
<>();
public
void
listNextWithFilter
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"最后一条信息数据的ID"
)
@PathParam
(
"id"
)
String
id
,
@JaxrsParameterDescribe
(
"每页显示的条目数量"
)
@PathParam
(
"count"
)
Integer
count
,
@JaxrsParameterDescribe
(
"查询过滤条件"
)
JsonElement
jsonElement
)
{
ActionResult
<
List
<
ActionListNextWithFilter
.
Wo
>>
result
=
new
ActionResult
<>();
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
try
{
result
=
new
ActionList
WithFilter
().
execute
(
request
,
effectivePerson
,
jsonElement
);
result
=
new
ActionList
NextWithFilter
().
execute
(
request
,
effectivePerson
,
id
,
count
,
jsonElement
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
result
.
error
(
e
);
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/WrapInQueryProjectTemplate.java
0 → 100644
浏览文件 @
8d72316c
package
com.x.teamwork.assemble.control.jaxrs.projectTemplate
;
import
org.apache.commons.lang3.StringUtils
;
import
com.x.base.core.project.annotation.FieldDescribe
;
import
com.x.teamwork.core.entity.tools.filter.QueryFilter
;
import
com.x.teamwork.core.entity.tools.filter.term.EqualsTerm
;
import
com.x.teamwork.core.entity.tools.filter.term.LikeTerm
;
public
class
WrapInQueryProjectTemplate
{
@FieldDescribe
(
"用于排列的属性,非必填,默认为createTime."
)
private
String
orderField
=
"createTime"
;
@FieldDescribe
(
"排序方式:DESC | ASC,非必填, 默认为DESC."
)
private
String
orderType
=
"DESC"
;
@FieldDescribe
(
"用于搜索的标题,非必填."
)
private
String
title
=
null
;
@FieldDescribe
(
"用于搜索的项目模板类型,非必填."
)
private
String
type
=
null
;
@FieldDescribe
(
"是否已经删除,非必填"
)
private
String
deleted
=
null
;
@FieldDescribe
(
"创建者,非必填"
)
private
String
owner
=
null
;
private
Long
rank
=
0L
;
public
String
getOrderField
()
{
return
orderField
;
}
public
void
setOrderField
(
String
orderField
)
{
this
.
orderField
=
orderField
;
}
public
String
getOrderType
()
{
return
orderType
;
}
public
void
setOrderType
(
String
orderType
)
{
this
.
orderType
=
orderType
;
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getDeleted
()
{
return
deleted
;
}
public
void
setDeleted
(
String
deleted
)
{
this
.
deleted
=
deleted
;
}
public
String
getOwner
()
{
return
owner
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
Long
getRank
()
{
return
rank
;
}
public
void
setRank
(
Long
rank
)
{
this
.
rank
=
rank
;
}
/**
* 根据传入的查询参数,组织一个完整的QueryFilter对象
* @return
*/
public
QueryFilter
getQueryFilter
()
{
QueryFilter
queryFilter
=
new
QueryFilter
();
queryFilter
.
setJoinType
(
"and"
);
//组织查询条件对象
if
(
StringUtils
.
isNotEmpty
(
this
.
getTitle
()
))
{
queryFilter
.
addLikeTerm
(
new
LikeTerm
(
"title"
,
this
.
getTitle
()
)
);
}
if
(
StringUtils
.
isNotEmpty
(
this
.
getType
()))
{
queryFilter
.
addEqualsTerm
(
new
EqualsTerm
(
"type"
,
this
.
getType
()
)
);
}
if
(
StringUtils
.
isNotEmpty
(
this
.
getOwner
()))
{
queryFilter
.
addEqualsTerm
(
new
EqualsTerm
(
"owner"
,
this
.
getOwner
()
)
);
}
if
(
StringUtils
.
isNotEmpty
(
this
.
getDeleted
()
))
{
if
(
"true"
.
equalsIgnoreCase
(
this
.
getDeleted
()
))
{
queryFilter
.
addEqualsTerm
(
new
EqualsTerm
(
"deleted"
,
true
)
);
}
else
{
queryFilter
.
addEqualsTerm
(
new
EqualsTerm
(
"deleted"
,
false
)
);
}
}
return
queryFilter
;
}
}
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/projectTemplate/WrapOutControl.java
0 → 100644
浏览文件 @
8d72316c
package
com.x.teamwork.assemble.control.jaxrs.projectTemplate
;
import
com.x.base.core.project.annotation.FieldDescribe
;
public
class
WrapOutControl
{
@FieldDescribe
(
"是否可删除"
)
private
Boolean
delete
=
false
;
@FieldDescribe
(
"是否可编辑"
)
private
Boolean
edit
=
false
;
@FieldDescribe
(
"是否可排序"
)
private
Boolean
sortable
=
true
;
@FieldDescribe
(
"是否创始人"
)
private
Boolean
founder
=
false
;
public
Boolean
getDelete
()
{
return
delete
;
}
public
void
setDelete
(
Boolean
delete
)
{
this
.
delete
=
delete
;
}
public
Boolean
getEdit
()
{
return
edit
;
}
public
void
setEdit
(
Boolean
edit
)
{
this
.
edit
=
edit
;
}
public
Boolean
getSortable
()
{
return
sortable
;
}
public
void
setSortable
(
Boolean
sortable
)
{
this
.
sortable
=
sortable
;
}
public
Boolean
getFounder
()
{
return
founder
;
}
public
void
setFounder
(
Boolean
founder
)
{
this
.
founder
=
founder
;
}
}
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/taskListTemplate/ActionList.java
浏览文件 @
8d72316c
...
...
@@ -16,6 +16,7 @@ import com.x.base.core.project.logger.LoggerFactory;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.base.core.project.tools.SortTools
;
import
com.x.teamwork.core.entity.ProjectGroup
;
import
com.x.teamwork.core.entity.TaskListTemplate
;
import
net.sf.ehcache.Element
;
...
...
@@ -27,16 +28,17 @@ public class ActionList extends BaseAction {
protected
ActionResult
<
List
<
Wo
>>
execute
(
HttpServletRequest
request
,
EffectivePerson
effectivePerson
)
throws
Exception
{
ActionResult
<
List
<
Wo
>>
result
=
new
ActionResult
<>();
List
<
Wo
>
wos
=
null
;
List
<
ProjectGroup
>
projectGroup
s
=
null
;
List
<
TaskListTemplate
>
taskListTemplate
s
=
null
;
Boolean
check
=
true
;
String
cacheKey
=
ApplicationCache
.
concreteCacheKey
(
"list.my
"
,
effectivePerson
.
getDistinguishedName
()
);
/*
Element element = projectGroupCache.get( cacheKey );
/*String cacheKey = ApplicationCache.concreteCacheKey( "list.taskListTemplates
", effectivePerson.getDistinguishedName() );
Element element = projectGroupCache.get( cacheKey );
if ((null != element) && (null != element.getObjectValue())) {
wos = (List<Wo>) element.getObjectValue();
result.setData( wos );
} else {
if( Boolean.TRUE.equals( check ) ){
try {
projectGroups = projectGroupQueryService.listGroupByPerson( effectivePerson.getDistinguishedName() );
...
...
@@ -55,7 +57,7 @@ public class ActionList extends BaseAction {
logger.error(e, effectivePerson, request, null);
}
}
}*/
//
}*/
return
result
;
}
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicPersistService.java
浏览文件 @
8d72316c
...
...
@@ -408,6 +408,28 @@ public class DynamicPersistService {
}
return
dynamic
;
}
/**
* 保存项目模板删除动态信息
* @param object
* @param effectivePerson
* @return
* @throws Exception
*/
public
Dynamic
projectTemplateDeleteDynamic
(
ProjectTemplate
object
,
EffectivePerson
effectivePerson
)
throws
Exception
{
if
(
object
==
null
)
{
throw
new
Exception
(
"ProjectTemplate object is null."
);
}
if
(
effectivePerson
==
null
)
{
throw
new
Exception
(
"effectivePerson is null."
);
}
Dynamic
dynamic
=
dynamicService
.
getProjectTemplateDeleteDynamic
(
object
,
effectivePerson
);
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
dynamic
=
dynamicService
.
save
(
emc
,
dynamic
,
null
);
}
catch
(
Exception
e
)
{
throw
e
;
}
return
dynamic
;
}
/**
* 保存工作任务删除动态信息
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicService.java
浏览文件 @
8d72316c
...
...
@@ -542,6 +542,21 @@ class DynamicService {
return
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
object
,
effectivePerson
,
true
);
}
/**
* 组织一个项目模板删除操作动态
* @param object
* @param effectivePerson
* @return
*/
protected
Dynamic
getProjectTemplateDeleteDynamic
(
ProjectTemplate
object
,
EffectivePerson
effectivePerson
)
{
String
objectType
=
"PROJECT_TEMPLATE"
;
String
title
=
"项目模板信息删除"
;
String
viewUrl
=
null
;
String
optType
=
"DELETE"
;
String
description
=
effectivePerson
.
getName
()
+
"删除了项目模板信息:"
+
object
.
getTitle
();
return
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
object
,
effectivePerson
,
true
);
}
/**
* 组织项目扩展信息配置保存操作动态
* @param object_old
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/ProjectTemplateQueryService.java
浏览文件 @
8d72316c
...
...
@@ -12,6 +12,7 @@ import com.x.base.core.project.tools.ListTools;
import
com.x.teamwork.core.entity.Project
;
import
com.x.teamwork.core.entity.ProjectDetail
;
import
com.x.teamwork.core.entity.ProjectTemplate
;
import
com.x.teamwork.core.entity.TaskListTemplate
;
import
com.x.teamwork.core.entity.tools.filter.QueryFilter
;
import
com.x.teamwork.core.entity.tools.filter.term.EqualsTerm
;
import
com.x.teamwork.core.entity.tools.filter.term.InTerm
;
...
...
@@ -24,6 +25,8 @@ import com.x.teamwork.core.entity.tools.filter.term.InTerm;
public
class
ProjectTemplateQueryService
{
private
ProjectTemplateService
projectTemplateService
=
new
ProjectTemplateService
();
private
TaskListTemplateService
taskListTemplateService
=
new
TaskListTemplateService
();
private
UserManagerService
userManagerService
=
new
UserManagerService
();
/**
...
...
@@ -43,6 +46,23 @@ public class ProjectTemplateQueryService {
}
}
/**
* 根据项目的标识查询项目信息
* @param id
* @return
* @throws Exception
*/
public
List
<
TaskListTemplate
>
getTaskListTemplateWithTemplateId
(
String
id
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
id
))
{
return
null
;
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
return
taskListTemplateService
.
getTaskListTemplateWithTemplateId
(
emc
,
id
);
}
catch
(
Exception
e
)
{
throw
e
;
}
}
public
ProjectDetail
getDetail
(
String
id
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
id
))
{
return
null
;
...
...
@@ -153,8 +173,8 @@ public class ProjectTemplateQueryService {
* @return
* @throws Exception
*/
public
List
<
Project
>
listWithProjectIdFilter
(
Integer
pageSize
,
String
lastId
,
String
orderField
,
String
orderType
,
List
<
String
>
projectIds
)
throws
Exception
{
Project
project
=
null
;
public
List
<
Project
Template
>
listWithProjectIdFilter
(
Integer
pageSize
,
String
lastId
,
String
orderField
,
String
orderType
,
List
<
String
>
projectIds
)
throws
Exception
{
Project
Template
project
=
null
;
if
(
pageSize
==
0
)
{
pageSize
=
20
;
}
if
(
StringUtils
.
isEmpty
(
orderField
)
)
{
orderField
=
"createTime"
;
...
...
@@ -166,7 +186,7 @@ public class ProjectTemplateQueryService {
queryFilter
.
addInTerm
(
new
InTerm
(
"id"
,
new
ArrayList
<>(
projectIds
)
));
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
if
(
lastId
!=
null
)
{
project
=
emc
.
find
(
lastId
,
Project
.
class
);
project
=
emc
.
find
(
lastId
,
Project
Template
.
class
);
}
if
(
project
!=
null
)
{
return
projectTemplateService
.
listWithFilter
(
emc
,
pageSize
,
project
.
getSequence
(),
orderField
,
orderType
,
null
,
null
,
null
,
null
,
queryFilter
);
...
...
@@ -294,27 +314,21 @@ public class ProjectTemplateQueryService {
}
/**
* 根据条件查询项目ID列表,最大查询2000条,查询未删除
* 根据条件查询项目
模板
ID列表,最大查询2000条,查询未删除
* @param effectivePerson
* @param i
* @param queryFilter
* @return
* @throws Exception
*/
public
List
<
String
>
listAllViewableProjectIds
(
EffectivePerson
effectivePerson
,
int
maxCount
,
QueryFilter
queryFilter
)
throws
Exception
{
List
<
String
>
unitNames
=
null
;
List
<
String
>
groupNames
=
null
;
List
<
String
>
identityNames
=
null
;
public
List
<
String
>
listAllProjectTemplateIds
(
EffectivePerson
effectivePerson
,
int
maxCount
,
QueryFilter
queryFilter
)
throws
Exception
{
String
personName
=
effectivePerson
.
getDistinguishedName
();
if
(
maxCount
==
0
)
{
maxCount
=
1000
;
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
unitNames
=
userManagerService
.
listUnitNamesWithPerson
(
personName
);
groupNames
=
userManagerService
.
listGroupNamesByPerson
(
personName
);
identityNames
=
userManagerService
.
listIdentitiesWithPerson
(
personName
);
queryFilter
.
addEqualsTerm
(
new
EqualsTerm
(
"deleted"
,
false
)
);
return
projectTemplateService
.
listAll
ViewableProjectIds
(
emc
,
maxCount
,
personName
,
identityNames
,
unitNames
,
groupNames
,
queryFilter
);
return
projectTemplateService
.
listAll
ProjectTemplateIds
(
emc
,
maxCount
,
personName
,
queryFilter
);
}
catch
(
Exception
e
)
{
throw
e
;
}
...
...
@@ -339,7 +353,7 @@ public class ProjectTemplateQueryService {
unitNames
=
userManagerService
.
listUnitNamesWithPerson
(
personName
);
groupNames
=
userManagerService
.
listGroupNamesByPerson
(
personName
);
identityNames
=
userManagerService
.
listIdentitiesWithPerson
(
personName
);
return
projectTemplateService
.
listAll
ViewableProjectIds
(
emc
,
maxCount
,
personName
,
identityNames
,
unitNames
,
groupNames
,
queryFilter
);
return
projectTemplateService
.
listAll
ProjectTemplateIds
(
emc
,
maxCount
,
personName
,
queryFilter
);
}
catch
(
Exception
e
)
{
throw
e
;
}
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/ProjectTemplateService.java
浏览文件 @
8d72316c
...
...
@@ -62,7 +62,7 @@ class ProjectTemplateService {
}
/**
* 根据条件查询符合条件的项目信息ID,根据上一条的sequnce查询指定数量的信息
* 根据条件查询符合条件的项目
模板
信息ID,根据上一条的sequnce查询指定数量的信息
* @param emc
* @param maxCount
* @param sequnce
...
...
@@ -77,9 +77,9 @@ class ProjectTemplateService {
* @return
* @throws Exception
*/
protected
List
<
Project
>
listWithFilter
(
EntityManagerContainer
emc
,
Integer
maxCount
,
String
sequnce
,
String
orderField
,
String
orderType
,
String
personName
,
List
<
String
>
identityNames
,
List
<
String
>
unitNames
,
List
<
String
>
groupNames
,
QueryFilter
queryFilter
)
throws
Exception
{
protected
List
<
Project
Template
>
listWithFilter
(
EntityManagerContainer
emc
,
Integer
maxCount
,
String
sequnce
,
String
orderField
,
String
orderType
,
String
personName
,
List
<
String
>
identityNames
,
List
<
String
>
unitNames
,
List
<
String
>
groupNames
,
QueryFilter
queryFilter
)
throws
Exception
{
Business
business
=
new
Business
(
emc
);
return
business
.
project
Factory
().
listWithFilter
(
maxCount
,
sequnce
,
orderField
,
orderType
,
personName
,
identityNames
,
unitNames
,
groupNames
,
queryFilter
);
return
business
.
project
TemplateFactory
().
listWithFilter
(
maxCount
,
sequnce
,
orderField
,
orderType
,
personName
,
queryFilter
);
}
/**
...
...
@@ -98,8 +98,7 @@ class ProjectTemplateService {
projectTemplate
=
emc
.
find
(
object
.
getId
(),
ProjectTemplate
.
class
);
emc
.
beginTransaction
(
Project
.
class
);
emc
.
beginTransaction
(
ProjectDetail
.
class
);
emc
.
beginTransaction
(
ProjectTemplate
.
class
);
if
(
projectTemplate
==
null
){
// 保存一个新的对象
projectTemplate
=
new
ProjectTemplate
();
...
...
@@ -138,12 +137,12 @@ class ProjectTemplateService {
emc
.
check
(
projectTemplate
,
CheckPersistType
.
all
);
}
//还需要删除所有的TaskListTemplate
List
<
TaskListTemplate
>
T
askListTemplates
=
business
.
taskListTemplateFactory
().
list
(
projectTemplate
.
getId
());
if
(
ListTools
.
isNotEmpty
(
T
askListTemplates
))
{
for
(
TaskListTemplate
TaskListTemplate
:
T
askListTemplates
)
{
List
<
TaskListTemplate
>
t
askListTemplates
=
business
.
taskListTemplateFactory
().
list
(
projectTemplate
.
getId
());
if
(
ListTools
.
isNotEmpty
(
t
askListTemplates
))
{
for
(
TaskListTemplate
taskListTemplate
:
t
askListTemplates
)
{
//emc.remove( task , CheckRemoveType.all );
T
askListTemplate
.
setDeleted
(
true
);
emc
.
check
(
T
askListTemplate
,
CheckPersistType
.
all
);
t
askListTemplate
.
setDeleted
(
true
);
emc
.
check
(
t
askListTemplate
,
CheckPersistType
.
all
);
}
}
emc
.
commit
();
...
...
@@ -241,15 +240,26 @@ class ProjectTemplateService {
TaskListTemplate
taskList
=
null
;
List
<
String
>
taskListsTemplate
=
template
.
getTaskList
();
//检查是否已有模板对应的泳道,如有则先删除
Business
business
=
new
Business
(
emc
);
List
<
TaskListTemplate
>
tlTemplates
=
business
.
taskListTemplateFactory
().
list
(
template
.
getId
());
if
(
ListTools
.
isNotEmpty
(
tlTemplates
))
{
for
(
TaskListTemplate
tlemplate
:
tlTemplates
)
{
//emc.remove( task , CheckRemoveType.all );
tlemplate
.
setDeleted
(
true
);
emc
.
check
(
tlemplate
,
CheckPersistType
.
all
);
}
}
if
(
!
ListTools
.
isEmpty
(
taskListsTemplate
))
{
emc
.
beginTransaction
(
TaskList
.
class
);
emc
.
beginTransaction
(
TaskListTemplate
.
class
);
//添加模板对应的泳道
for
(
String
taskListTemplate:
taskListsTemplate
)
{
taskList
=
composeTaskListObject
(
template
.
getId
(),
taskListTemplate
,
1
,
"SYSTEM"
,
person
,
""
);
emc
.
persist
(
taskList
,
CheckPersistType
.
all
);
}
emc
.
commit
();
}
emc
.
commit
();
}
private
TaskListTemplate
composeTaskListObject
(
String
projectTemplateId
,
String
listName
,
int
orderNum
,
String
creatorName
,
String
owner
,
String
memo
)
{
...
...
@@ -267,7 +277,7 @@ class ProjectTemplateService {
}
/**
* 根据条件查询项目ID列表,最大查询2000条
* 根据条件查询项目
模板
ID列表,最大查询2000条
* @param emc
* @param maxCount
* @param personName
...
...
@@ -278,9 +288,9 @@ class ProjectTemplateService {
* @return
* @throws Exception
*/
public
List
<
String
>
listAll
ViewableProjectIds
(
EntityManagerContainer
emc
,
int
maxCount
,
String
personName
,
List
<
String
>
identityNames
,
List
<
String
>
unitNames
,
List
<
String
>
groupNames
,
QueryFilter
queryFilter
)
throws
Exception
{
public
List
<
String
>
listAll
ProjectTemplateIds
(
EntityManagerContainer
emc
,
int
maxCount
,
String
personName
,
QueryFilter
queryFilter
)
throws
Exception
{
Business
business
=
new
Business
(
emc
);
return
business
.
project
Factory
().
listAllViewableProjectIds
(
maxCount
,
personName
,
identityNames
,
unitNames
,
groupNames
,
queryFilter
);
return
business
.
project
TemplateFactory
().
listAllProjectTemplateIds
(
maxCount
,
personName
,
queryFilter
);
}
public
List
<
String
>
listAllProjectIds
(
EntityManagerContainer
emc
)
throws
Exception
{
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskListTemplateService.java
浏览文件 @
8d72316c
...
...
@@ -41,6 +41,18 @@ class TaskListTemplateService {
return
business
.
projectFactory
().
getDetail
(
id
);
}
/**
* 根据项目的标识查询项目的信息
* @param emc
* @param flag 主要是ID
* @return
* @throws Exception
*/
protected
List
<
TaskListTemplate
>
getTaskListTemplateWithTemplateId
(
EntityManagerContainer
emc
,
String
flag
)
throws
Exception
{
Business
business
=
new
Business
(
emc
);
return
business
.
taskListTemplateFactory
().
list
(
flag
);
}
/**
* 根据过滤条件查询符合要求的项目信息列表
* @param emc
...
...
o2server/x_teamwork_core_entity/src/main/java/com/x/teamwork/core/entity/ProjectTemplate.java
浏览文件 @
8d72316c
...
...
@@ -96,7 +96,7 @@ public class ProjectTemplate extends SliceJpaObject {
private
String
icon
=
null
;
public
static
final
String
description_FIELDNAME
=
"description"
;
@FieldDescribe
(
"
模板类型
"
)
@FieldDescribe
(
"
描述
"
)
@Column
(
length
=
JpaObject
.
length_255B
,
name
=
ColumnNamePrefix
+
description_FIELDNAME
)
@Index
(
name
=
TABLE
+
IndexNameMiddle
+
description_FIELDNAME
)
@CheckPersist
(
allowEmpty
=
true
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录