Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
此号慢热型
o2oa
提交
c01de7fc
o2oa
项目概览
此号慢热型
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
5
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,发现更多精彩内容 >>
提交
c01de7fc
编写于
3月 23, 2020
作者:
liyi_hz2008
提交者:
liyi_hz2008
3月 23, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增将工作转换为某项工作的子工作的单独服务
上级
4e01a3b3
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
494 addition
and
60 deletion
+494
-60
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
...om/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
+1
-1
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/ActionTransformAsSubTask.java
...assemble/control/jaxrs/task/ActionTransformAsSubTask.java
+192
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
...om/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
+21
-1
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/TaskTransformException.java
...k/assemble/control/jaxrs/task/TaskTransformException.java
+20
-0
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicPersistService.java
...mwork/assemble/control/service/DynamicPersistService.java
+46
-13
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicService.java
...m/x/teamwork/assemble/control/service/DynamicService.java
+18
-10
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskPersistService.java
...teamwork/assemble/control/service/TaskPersistService.java
+29
-2
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskQueryService.java
...x/teamwork/assemble/control/service/TaskQueryService.java
+6
-3
o2server/x_teamwork_assemble_control/src/main/webapp/describe/describe.json
...k_assemble_control/src/main/webapp/describe/describe.json
+40
-0
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
...om/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
+1
-1
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
...om/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
+21
-1
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/DynamicPersistService.java
...mwork/assemble/control/service/DynamicPersistService.java
+46
-13
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/DynamicService.java
...m/x/teamwork/assemble/control/service/DynamicService.java
+18
-10
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/TaskPersistService.java
...teamwork/assemble/control/service/TaskPersistService.java
+29
-2
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/TaskQueryService.java
...x/teamwork/assemble/control/service/TaskQueryService.java
+6
-3
未找到文件。
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
浏览文件 @
c01de7fc
...
...
@@ -713,7 +713,7 @@ public class ActionSave extends BaseAction {
}
public
static
class
Wo
extends
WoId
{
public
static
class
Wo
extends
WoId
{
@FieldDescribe
(
"操作引起的动态内容"
)
List
<
WoDynamic
>
dynamics
=
new
ArrayList
<>();
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/ActionTransformAsSubTask.java
0 → 100644
浏览文件 @
c01de7fc
package
com.x.teamwork.assemble.control.jaxrs.task
;
import
com.google.gson.Gson
;
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
;
import
com.x.base.core.project.gson.XGsonBuilder
;
import
com.x.base.core.project.http.ActionResult
;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.jaxrs.WoId
;
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.service.BatchOperationPersistService
;
import
com.x.teamwork.assemble.control.service.BatchOperationProcessService
;
import
com.x.teamwork.core.entity.*
;
import
net.sf.ehcache.Element
;
import
org.apache.commons.lang3.StringUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 将任务转为子任务
*/
public
class
ActionTransformAsSubTask
extends
BaseAction
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ActionTransformAsSubTask
.
class
);
/**
* 将任务转换为子任务的服务
* 1、确认ID是否合法
* 2、将任务的parentId设置为parentId
* 3、保存任务信息
* 4、记录动态信息
*
* @param request
* @param effectivePerson
* @param sourceTaskId
* @param parentId
* @return
* @throws Exception
*/
protected
ActionResult
<
Wo
>
execute
(
HttpServletRequest
request
,
EffectivePerson
effectivePerson
,
String
sourceTaskId
,
String
parentId
)
throws
Exception
{
ActionResult
<
Wo
>
result
=
new
ActionResult
<>();
Wo
wo
=
new
Wo
();
Task
sourceTask
=
null
;
Task
parentTask
=
null
;
TaskDetail
taskDetail
=
null
;
TaskExtField
taskExtField
=
null
;
List
<
ProjectExtFieldRele
>
extFieldReleList
=
null
;
List
<
TaskTag
>
tags
=
null
;
List
<
Dynamic
>
dynamics
=
new
ArrayList
<>();
Boolean
check
=
true
;
if
(
StringUtils
.
isEmpty
(
sourceTaskId
)
)
{
check
=
false
;
Exception
exception
=
new
TaskTransformException
(
"需要转换的工作任务ID不允许为空!"
);
result
.
error
(
exception
);
}
if
(
StringUtils
.
isEmpty
(
parentId
)
)
{
check
=
false
;
Exception
exception
=
new
TaskTransformException
(
"上级任务ID不允许为空!"
);
result
.
error
(
exception
);
}
if
(
check
)
{
//查询需要转换为子任务的任务是否存在
try
{
sourceTask
=
taskQueryService
.
get
(
sourceTaskId
);
if
(
sourceTask
==
null
)
{
check
=
false
;
Exception
exception
=
new
TaskNotExistsException
(
sourceTaskId
);
result
.
error
(
exception
);
}
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
TaskQueryException
(
e
,
"根据指定ID查询工作任务信息对象时发生异常。sourceTaskId:"
+
sourceTaskId
);
result
.
error
(
exception
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
if
(
check
)
{
//查询上级任务是否存在
try
{
parentTask
=
taskQueryService
.
get
(
parentId
);
if
(
parentTask
==
null
)
{
check
=
false
;
Exception
exception
=
new
TaskNotExistsException
(
parentId
);
result
.
error
(
exception
);
}
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
TaskQueryException
(
e
,
"根据指定ID查询工作任务信息对象时发生异常。parentId:"
+
parentId
);
result
.
error
(
exception
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
try
{
taskPersistService
.
updateParentId
(
sourceTask
.
getId
(),
parentTask
.
getId
(),
effectivePerson
);
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
TaskPersistException
(
e
,
"工作上级任务ID信息更新时发生异常。"
);
result
.
error
(
exception
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
if
(
check
)
{
//记录工作任务信息变化记录
try
{
dynamics
=
dynamicPersistService
.
subTaskTransformDynamic
(
sourceTask
,
parentTask
,
effectivePerson
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
if
(
check
)
{
try
{
new
BatchOperationPersistService
().
addOperation
(
BatchOperationProcessService
.
OPT_OBJ_TASK
,
BatchOperationProcessService
.
OPT_TYPE_PERMISSION
,
sourceTask
.
getId
(),
sourceTask
.
getId
(),
"刷新文档权限:ID="
+
sourceTask
.
getId
()
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
if
(
check
)
{
try
{
new
BatchOperationPersistService
().
addOperation
(
BatchOperationProcessService
.
OPT_OBJ_TASK
,
BatchOperationProcessService
.
OPT_TYPE_PERMISSION
,
parentTask
.
getId
(),
parentTask
.
getId
(),
"刷新文档权限:ID="
+
parentTask
.
getId
()
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
if
(
ListTools
.
isNotEmpty
(
dynamics
)
)
{
wo
.
setDynamics
(
WoDynamic
.
copier
.
copy
(
dynamics
)
);
}
// 更新缓存
ApplicationCache
.
notify
(
Task
.
class
);
ApplicationCache
.
notify
(
TaskList
.
class
);
ApplicationCache
.
notify
(
TaskView
.
class
);
ApplicationCache
.
notify
(
Review
.
class
);
ApplicationCache
.
notify
(
TaskGroup
.
class
);
ApplicationCache
.
notify
(
Dynamic
.
class
);
result
.
setData
(
wo
);
return
result
;
}
public
static
class
Wo
extends
WoId
{
@FieldDescribe
(
"操作引起的动态内容"
)
List
<
ActionSave
.
WoDynamic
>
dynamics
=
new
ArrayList
<>();
public
List
<
ActionSave
.
WoDynamic
>
getDynamics
()
{
return
dynamics
;
}
public
void
setDynamics
(
List
<
ActionSave
.
WoDynamic
>
dynamics
)
{
this
.
dynamics
=
dynamics
;
}
}
public
static
class
WoDynamic
extends
Dynamic
{
private
static
final
long
serialVersionUID
=
-
5076990764713538973L
;
public
static
WrapCopier
<
Dynamic
,
ActionSave
.
WoDynamic
>
copier
=
WrapCopierFactory
.
wo
(
Dynamic
.
class
,
ActionSave
.
WoDynamic
.
class
,
null
,
JpaObject
.
FieldsInvisible
);
private
Long
rank
=
0L
;
public
Long
getRank
()
{
return
rank
;
}
public
void
setRank
(
Long
rank
)
{
this
.
rank
=
rank
;
}
}
}
\ No newline at end of file
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
浏览文件 @
c01de7fc
...
...
@@ -90,7 +90,27 @@ public class TaskAction extends StandardJaxrsAction {
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"将指定的工作转换为子工作."
,
action
=
ActionTransformAsSubTask
.
class
)
@GET
@Path
(
"transform/{tid}/parent/{pid}"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
transformAsSubTask
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"指定任务ID"
)
@PathParam
(
"tid"
)
String
tid
,
@JaxrsParameterDescribe
(
"上级任务ID"
)
@PathParam
(
"pid"
)
String
pid
)
{
ActionResult
<
ActionTransformAsSubTask
.
Wo
>
result
=
new
ActionResult
<>();
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
try
{
result
=
new
ActionTransformAsSubTask
().
execute
(
request
,
effectivePerson
,
tid
,
pid
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
result
.
error
(
e
);
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"查询我的项目首页中工作任务视图信息."
,
action
=
ActionStatisticMyTaskViews
.
class
)
@GET
@Path
(
"statitic/group/{projectId}"
)
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/jaxrs/task/TaskTransformException.java
0 → 100644
浏览文件 @
c01de7fc
package
com.x.teamwork.assemble.control.jaxrs.task
;
import
com.x.base.core.project.exception.PromptException
;
class
TaskTransformException
extends
PromptException
{
private
static
final
long
serialVersionUID
=
1859164370743532895L
;
TaskTransformException
(
Throwable
e
)
{
super
(
"系统在转换工作任务为子任务时发生异常。"
,
e
);
}
TaskTransformException
(
Throwable
e
,
String
message
)
{
super
(
"系统在转换工作任务为子任务时发生异常。Message:"
+
message
,
e
);
}
TaskTransformException
(
String
message
)
{
super
(
"系统在转换工作任务为子任务时发生异常。Message:"
+
message
);
}
}
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicPersistService.java
浏览文件 @
c01de7fc
...
...
@@ -82,7 +82,6 @@ public class DynamicPersistService {
/**
* 保存项目创建或者更新动态信息
* @param old_object
* @param object
* @param effectivePerson
* @param content
...
...
@@ -132,9 +131,7 @@ public class DynamicPersistService {
* 保存项目扩展信息保存操作动态信息
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -179,8 +176,8 @@ public class DynamicPersistService {
/**
* 保存动态信息
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @param content
* @return
...
...
@@ -230,7 +227,6 @@ public class DynamicPersistService {
* @param object_old
* @param object_new
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -257,11 +253,53 @@ public class DynamicPersistService {
}
return
result
;
}
/**
* 保存动态信息
* @param dynamic
* 保存转换子工作的动态信息
* @param subTask
* @param parentTask
* @param effectivePerson
* @return
* @throws Exception
*/
public
List
<
Dynamic
>
subTaskTransformDynamic
(
Task
subTask
,
Task
parentTask
,
EffectivePerson
effectivePerson
)
throws
Exception
{
if
(
subTask
==
null
)
{
throw
new
Exception
(
"sourceTask is null."
);
}
if
(
parentTask
==
null
)
{
throw
new
Exception
(
"parentTask is null."
);
}
if
(
effectivePerson
==
null
)
{
throw
new
Exception
(
"effectivePerson is null."
);
}
List
<
Dynamic
>
result
=
new
ArrayList
<>();
List
<
Dynamic
>
dynamics
=
null
;
//记录一个添加子任务转换的动态信息
result
.
add
(
dynamicService
.
getTaskTransformDynamic
(
parentTask
,
subTask
,
effectivePerson
));
//记录一个为上级任务添加子任务的动态信息
result
.
add
(
dynamicService
.
getTaskSplitDynamic
(
parentTask
,
subTask
,
effectivePerson
));
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
if
(
ListTools
.
isNotEmpty
(
result
))
{
for
(
Dynamic
dynamic
:
result
)
{
//持久化工作操作动态
dynamicService
.
save
(
emc
,
dynamic
,
""
);
}
}
}
catch
(
Exception
e
)
{
throw
e
;
}
return
result
;
}
/**
* 保存项目工作组信息动态
* @param object_old
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -287,7 +325,6 @@ public class DynamicPersistService {
* 保存项目组删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -311,7 +348,6 @@ public class DynamicPersistService {
* 保存工作任务删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -338,7 +374,6 @@ public class DynamicPersistService {
* @param addManagers
* @param removeManagers
* @param effectivePerson
* @param content
* @throws Exception
*/
public
List
<
Dynamic
>
taskManagerUpdateDynamic
(
Task
task
,
List
<
String
>
addManagers
,
List
<
String
>
removeManagers
,
EffectivePerson
effectivePerson
)
throws
Exception
{
...
...
@@ -421,7 +456,6 @@ public class DynamicPersistService {
* @param addParticipants
* @param removeParticipants
* @param effectivePerson
* @param content
* @throws Exception
*/
public
List
<
Dynamic
>
taskParticipantsUpdateDynamic
(
Task
task
,
List
<
String
>
addParticipants
,
List
<
String
>
removeParticipants
,
EffectivePerson
effectivePerson
)
throws
Exception
{
...
...
@@ -570,7 +604,6 @@ public class DynamicPersistService {
* 保存工作任务评论删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/DynamicService.java
浏览文件 @
c01de7fc
...
...
@@ -103,8 +103,6 @@ class DynamicService {
* @param maxCount
* @param orderField
* @param orderType
* @param projectIds
* @param taskIds
* @return
* @throws Exception
*/
...
...
@@ -116,7 +114,7 @@ class DynamicService {
/**
* 向数据库持久化动态信息
* @param emc
* @param
dynamic
* @param
object
* @return
* @throws Exception
*/
...
...
@@ -480,7 +478,6 @@ class DynamicService {
* 保存和根据项目组信息操作动态
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @return
*/
...
...
@@ -734,7 +731,7 @@ class DynamicService {
/**
* 更新工作任务管理者信息操作动态
* @param
task
* @param
object
* @param addManagers
* @param removeManagers
* @param effectivePerson
...
...
@@ -768,7 +765,7 @@ class DynamicService {
/**
* 更新工作任务参与者操作动态
* @param
task
* @param
object
* @param addParticipants
* @param removeParticipants
* @param effectivePerson
...
...
@@ -805,11 +802,22 @@ class DynamicService {
String
title
=
"工作任务分解"
;
String
viewUrl
=
task
.
getId
();
String
optType
=
"SPLIT"
;
String
description
=
effectivePerson
.
getName
()
+
"为工作添加了一个子任务:
"
+
task
.
getName
()
;
String
description
=
effectivePerson
.
getName
()
+
"为工作添加了一个子任务:
["
+
task
.
getName
()
+
"]"
;
Dynamic
dynamic
=
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
parentTask
,
effectivePerson
,
false
);
dynamic
.
setTarget
(
parentTask
.
getExecutor
()
);
return
dynamic
;
}
public
Dynamic
getTaskTransformDynamic
(
Task
parentTask
,
Task
task
,
EffectivePerson
effectivePerson
)
{
String
objectType
=
"TASK"
;
String
title
=
"转换为子工作"
;
String
viewUrl
=
task
.
getId
();
String
optType
=
"TRANSFORM"
;
String
description
=
effectivePerson
.
getName
()
+
"将工作转换为工作["
+
parentTask
.
getName
()
+
"]的一个子任务。"
;
Dynamic
dynamic
=
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
task
,
effectivePerson
,
false
);
dynamic
.
setTarget
(
task
.
getExecutor
()
);
return
dynamic
;
}
public
Dynamic
subTaskDeleteDynamic
(
Task
parentTask
,
Task
task
,
EffectivePerson
effectivePerson
)
{
String
objectType
=
"TASK"
;
...
...
@@ -888,7 +896,7 @@ class DynamicService {
/**
* 工作任务附件上传操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
@@ -903,7 +911,7 @@ class DynamicService {
/**
* 工作任务附件下载操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
@@ -918,7 +926,7 @@ class DynamicService {
/**
* 工作任务附件删除操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskPersistService.java
浏览文件 @
c01de7fc
...
...
@@ -190,7 +190,34 @@ public class TaskPersistService {
throw
e
;
}
}
/**
* 更新任务的上级任务ID信息
* @param taskId
* @param parentId
* @param effectivePerson
* @throws Exception
*/
public
void
updateParentId
(
String
taskId
,
String
parentId
,
EffectivePerson
effectivePerson
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
taskId
))
{
throw
new
Exception
(
"taskId can not empty in update parentId."
);
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
Task
task
=
emc
.
find
(
taskId
,
Task
.
class
);
if
(
task
!=
null
){
task
.
setParent
(
parentId
);
}
emc
.
beginTransaction
(
Task
.
class
);
emc
.
check
(
task
,
CheckPersistType
.
all
);
emc
.
commit
();
}
catch
(
Exception
e
)
{
throw
e
;
}
}
/**
* 查询用户是否拥有创建工作任务的权限
* @param effectivePerson
...
...
@@ -588,5 +615,5 @@ public class TaskPersistService {
}
}
}
o2server/x_teamwork_assemble_control/src/main/java/com/x/teamwork/assemble/control/service/TaskQueryService.java
浏览文件 @
c01de7fc
...
...
@@ -217,7 +217,9 @@ public class TaskQueryService {
for
(
TaskListRele
rele
:
taskListReles
)
{
task
=
emc
.
find
(
rele
.
getTaskId
(),
Task
.
class
);
//只查询自己负责的任务
if
(
personName
.
equalsIgnoreCase
(
task
.
getExecutor
()
))
{
if
(
personName
.
equalsIgnoreCase
(
task
.
getExecutor
()
)
||
(
task
.
getParticipantList
()
!=
null
&&
task
.
getParticipantList
().
contains
(
personName
))
)
{
task
.
setOrder
(
rele
.
getOrder
()
);
resultList
.
add
(
task
);
}
...
...
@@ -252,7 +254,9 @@ public class TaskQueryService {
if
(
ListTools
.
isNotEmpty
(
taskListTmp
))
{
for
(
Task
_task
:
taskListTmp
)
{
//只查询自己负责的任务
if
(
personName
.
equalsIgnoreCase
(
_task
.
getExecutor
()
))
{
if
(
personName
.
equalsIgnoreCase
(
_task
.
getExecutor
()
)||
(
_task
.
getParticipantList
()
!=
null
&&
_task
.
getParticipantList
().
contains
(
personName
)))
{
resultList
.
add
(
_task
);
}
}
...
...
@@ -266,7 +270,6 @@ public class TaskQueryService {
/**
* 在人员的可见范围之类,根据指定的工作任务ID,查询子任务列表
* @param project
* @param taskId
* @param effectivePerson
* @return
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/describe.json
浏览文件 @
c01de7fc
...
...
@@ -7790,6 +7790,46 @@
}
]
},
{
"name"
:
"transformAsSubTask"
,
"className"
:
"com.x.teamwork.assemble.control.jaxrs.task.ActionTransformAsSubTask"
,
"description"
:
"将指定的工作转换为子工作."
,
"type"
:
"GET"
,
"path"
:
"jaxrs/task/transform/{tid}/parent/{pid}"
,
"contentType"
:
"application/json"
,
"resultContentType"
:
"application/json; charset
\u
003dUTF-8"
,
"useJsonElementParameter"
:
false
,
"useStringParameter"
:
false
,
"pathParameters"
:
[
{
"name"
:
"tid"
,
"type"
:
"String"
,
"description"
:
"指定任务ID"
},
{
"name"
:
"pid"
,
"type"
:
"String"
,
"description"
:
"上级任务ID"
}
],
"formParameters"
:
[],
"queryParameters"
:
[],
"ins"
:
[],
"outs"
:
[
{
"name"
:
"dynamics"
,
"type"
:
"List
\u
003cWoDynamic
\u
003e"
,
"isCollection"
:
true
,
"description"
:
"操作引起的动态内容"
},
{
"name"
:
"id"
,
"type"
:
"String"
,
"isCollection"
:
false
,
"description"
:
"id"
}
]
},
{
"name"
:
"updateManager"
,
"className"
:
"com.x.teamwork.assemble.control.jaxrs.task.ActionManagerUpdate"
,
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/jaxrs/task/ActionSave.java
浏览文件 @
c01de7fc
...
...
@@ -713,7 +713,7 @@ public class ActionSave extends BaseAction {
}
public
static
class
Wo
extends
WoId
{
public
static
class
Wo
extends
WoId
{
@FieldDescribe
(
"操作引起的动态内容"
)
List
<
WoDynamic
>
dynamics
=
new
ArrayList
<>();
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/jaxrs/task/TaskAction.java
浏览文件 @
c01de7fc
...
...
@@ -90,7 +90,27 @@ public class TaskAction extends StandardJaxrsAction {
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"将指定的工作转换为子工作."
,
action
=
ActionTransformAsSubTask
.
class
)
@GET
@Path
(
"transform/{tid}/parent/{pid}"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
transformAsSubTask
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"指定任务ID"
)
@PathParam
(
"tid"
)
String
tid
,
@JaxrsParameterDescribe
(
"上级任务ID"
)
@PathParam
(
"pid"
)
String
pid
)
{
ActionResult
<
ActionTransformAsSubTask
.
Wo
>
result
=
new
ActionResult
<>();
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
try
{
result
=
new
ActionTransformAsSubTask
().
execute
(
request
,
effectivePerson
,
tid
,
pid
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
result
.
error
(
e
);
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"查询我的项目首页中工作任务视图信息."
,
action
=
ActionStatisticMyTaskViews
.
class
)
@GET
@Path
(
"statitic/group/{projectId}"
)
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/DynamicPersistService.java
浏览文件 @
c01de7fc
...
...
@@ -82,7 +82,6 @@ public class DynamicPersistService {
/**
* 保存项目创建或者更新动态信息
* @param old_object
* @param object
* @param effectivePerson
* @param content
...
...
@@ -132,9 +131,7 @@ public class DynamicPersistService {
* 保存项目扩展信息保存操作动态信息
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -179,8 +176,8 @@ public class DynamicPersistService {
/**
* 保存动态信息
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @param content
* @return
...
...
@@ -230,7 +227,6 @@ public class DynamicPersistService {
* @param object_old
* @param object_new
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -257,11 +253,53 @@ public class DynamicPersistService {
}
return
result
;
}
/**
* 保存动态信息
* @param dynamic
* 保存转换子工作的动态信息
* @param subTask
* @param parentTask
* @param effectivePerson
* @return
* @throws Exception
*/
public
List
<
Dynamic
>
subTaskTransformDynamic
(
Task
subTask
,
Task
parentTask
,
EffectivePerson
effectivePerson
)
throws
Exception
{
if
(
subTask
==
null
)
{
throw
new
Exception
(
"sourceTask is null."
);
}
if
(
parentTask
==
null
)
{
throw
new
Exception
(
"parentTask is null."
);
}
if
(
effectivePerson
==
null
)
{
throw
new
Exception
(
"effectivePerson is null."
);
}
List
<
Dynamic
>
result
=
new
ArrayList
<>();
List
<
Dynamic
>
dynamics
=
null
;
//记录一个添加子任务转换的动态信息
result
.
add
(
dynamicService
.
getTaskTransformDynamic
(
parentTask
,
subTask
,
effectivePerson
));
//记录一个为上级任务添加子任务的动态信息
result
.
add
(
dynamicService
.
getTaskSplitDynamic
(
parentTask
,
subTask
,
effectivePerson
));
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
if
(
ListTools
.
isNotEmpty
(
result
))
{
for
(
Dynamic
dynamic
:
result
)
{
//持久化工作操作动态
dynamicService
.
save
(
emc
,
dynamic
,
""
);
}
}
}
catch
(
Exception
e
)
{
throw
e
;
}
return
result
;
}
/**
* 保存项目工作组信息动态
* @param object_old
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -287,7 +325,6 @@ public class DynamicPersistService {
* 保存项目组删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -311,7 +348,6 @@ public class DynamicPersistService {
* 保存工作任务删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
@@ -338,7 +374,6 @@ public class DynamicPersistService {
* @param addManagers
* @param removeManagers
* @param effectivePerson
* @param content
* @throws Exception
*/
public
List
<
Dynamic
>
taskManagerUpdateDynamic
(
Task
task
,
List
<
String
>
addManagers
,
List
<
String
>
removeManagers
,
EffectivePerson
effectivePerson
)
throws
Exception
{
...
...
@@ -421,7 +456,6 @@ public class DynamicPersistService {
* @param addParticipants
* @param removeParticipants
* @param effectivePerson
* @param content
* @throws Exception
*/
public
List
<
Dynamic
>
taskParticipantsUpdateDynamic
(
Task
task
,
List
<
String
>
addParticipants
,
List
<
String
>
removeParticipants
,
EffectivePerson
effectivePerson
)
throws
Exception
{
...
...
@@ -570,7 +604,6 @@ public class DynamicPersistService {
* 保存工作任务评论删除动态信息
* @param object
* @param effectivePerson
* @param content
* @return
* @throws Exception
*/
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/DynamicService.java
浏览文件 @
c01de7fc
...
...
@@ -103,8 +103,6 @@ class DynamicService {
* @param maxCount
* @param orderField
* @param orderType
* @param projectIds
* @param taskIds
* @return
* @throws Exception
*/
...
...
@@ -116,7 +114,7 @@ class DynamicService {
/**
* 向数据库持久化动态信息
* @param emc
* @param
dynamic
* @param
object
* @return
* @throws Exception
*/
...
...
@@ -480,7 +478,6 @@ class DynamicService {
* 保存和根据项目组信息操作动态
* @param object_old
* @param object
* @param optType
* @param effectivePerson
* @return
*/
...
...
@@ -734,7 +731,7 @@ class DynamicService {
/**
* 更新工作任务管理者信息操作动态
* @param
task
* @param
object
* @param addManagers
* @param removeManagers
* @param effectivePerson
...
...
@@ -768,7 +765,7 @@ class DynamicService {
/**
* 更新工作任务参与者操作动态
* @param
task
* @param
object
* @param addParticipants
* @param removeParticipants
* @param effectivePerson
...
...
@@ -805,11 +802,22 @@ class DynamicService {
String
title
=
"工作任务分解"
;
String
viewUrl
=
task
.
getId
();
String
optType
=
"SPLIT"
;
String
description
=
effectivePerson
.
getName
()
+
"为工作添加了一个子任务:
"
+
task
.
getName
()
;
String
description
=
effectivePerson
.
getName
()
+
"为工作添加了一个子任务:
["
+
task
.
getName
()
+
"]"
;
Dynamic
dynamic
=
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
parentTask
,
effectivePerson
,
false
);
dynamic
.
setTarget
(
parentTask
.
getExecutor
()
);
return
dynamic
;
}
public
Dynamic
getTaskTransformDynamic
(
Task
parentTask
,
Task
task
,
EffectivePerson
effectivePerson
)
{
String
objectType
=
"TASK"
;
String
title
=
"转换为子工作"
;
String
viewUrl
=
task
.
getId
();
String
optType
=
"TRANSFORM"
;
String
description
=
effectivePerson
.
getName
()
+
"将工作转换为工作["
+
parentTask
.
getName
()
+
"]的一个子任务。"
;
Dynamic
dynamic
=
composeNewDynamic
(
objectType
,
title
,
description
,
viewUrl
,
optType
,
task
,
effectivePerson
,
false
);
dynamic
.
setTarget
(
task
.
getExecutor
()
);
return
dynamic
;
}
public
Dynamic
subTaskDeleteDynamic
(
Task
parentTask
,
Task
task
,
EffectivePerson
effectivePerson
)
{
String
objectType
=
"TASK"
;
...
...
@@ -888,7 +896,7 @@ class DynamicService {
/**
* 工作任务附件上传操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
@@ -903,7 +911,7 @@ class DynamicService {
/**
* 工作任务附件下载操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
@@ -918,7 +926,7 @@ class DynamicService {
/**
* 工作任务附件删除操作动态信息
* @param
attachmen
t
* @param
objec
t
* @param effectivePerson
* @return
*/
...
...
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/TaskPersistService.java
浏览文件 @
c01de7fc
...
...
@@ -190,7 +190,34 @@ public class TaskPersistService {
throw
e
;
}
}
/**
* 更新任务的上级任务ID信息
* @param taskId
* @param parentId
* @param effectivePerson
* @throws Exception
*/
public
void
updateParentId
(
String
taskId
,
String
parentId
,
EffectivePerson
effectivePerson
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
taskId
))
{
throw
new
Exception
(
"taskId can not empty in update parentId."
);
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
Task
task
=
emc
.
find
(
taskId
,
Task
.
class
);
if
(
task
!=
null
){
task
.
setParent
(
parentId
);
}
emc
.
beginTransaction
(
Task
.
class
);
emc
.
check
(
task
,
CheckPersistType
.
all
);
emc
.
commit
();
}
catch
(
Exception
e
)
{
throw
e
;
}
}
/**
* 查询用户是否拥有创建工作任务的权限
* @param effectivePerson
...
...
@@ -588,5 +615,5 @@ public class TaskPersistService {
}
}
}
o2server/x_teamwork_assemble_control/src/main/webapp/describe/sources/com/x/teamwork/assemble/control/service/TaskQueryService.java
浏览文件 @
c01de7fc
...
...
@@ -217,7 +217,9 @@ public class TaskQueryService {
for
(
TaskListRele
rele
:
taskListReles
)
{
task
=
emc
.
find
(
rele
.
getTaskId
(),
Task
.
class
);
//只查询自己负责的任务
if
(
personName
.
equalsIgnoreCase
(
task
.
getExecutor
()
))
{
if
(
personName
.
equalsIgnoreCase
(
task
.
getExecutor
()
)
||
(
task
.
getParticipantList
()
!=
null
&&
task
.
getParticipantList
().
contains
(
personName
))
)
{
task
.
setOrder
(
rele
.
getOrder
()
);
resultList
.
add
(
task
);
}
...
...
@@ -252,7 +254,9 @@ public class TaskQueryService {
if
(
ListTools
.
isNotEmpty
(
taskListTmp
))
{
for
(
Task
_task
:
taskListTmp
)
{
//只查询自己负责的任务
if
(
personName
.
equalsIgnoreCase
(
_task
.
getExecutor
()
))
{
if
(
personName
.
equalsIgnoreCase
(
_task
.
getExecutor
()
)||
(
_task
.
getParticipantList
()
!=
null
&&
_task
.
getParticipantList
().
contains
(
personName
)))
{
resultList
.
add
(
_task
);
}
}
...
...
@@ -266,7 +270,6 @@ public class TaskQueryService {
/**
* 在人员的可见范围之类,根据指定的工作任务ID,查询子任务列表
* @param project
* @param taskId
* @param effectivePerson
* @return
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录