切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
差异文件
浏览文件
作者
郑周
2 years ago
提交
f8eddba1e154aec165beb63bf58a6d93f4054788
2 个父辈
30e6c801
14c82d26
Merge branch 'dev-tangxvhui' into dev-zhengzhou
隐藏空白字符变更
内嵌
并排对比
正在显示
9 个修改的文件
包含
252 行增加
和
26 行删除
pkg/application/task/adapter/task_info.go
pkg/application/task/command/update_task_stage.go
pkg/application/task/service/service.go
pkg/domain/task.go
pkg/domain/task_stage.go
pkg/infrastructure/dao/task.go → pkg/infrastructure/dao/task_dao.go
pkg/infrastructure/repository/pg_task_stage_repository.go
pkg/port/beego/controllers/task_controller.go
pkg/port/beego/routers/task_router.go
pkg/application/task/adapter/task_info.go
查看文件 @
f8eddba
...
...
@@ -23,10 +23,10 @@ type UserData struct {
type
TaskStage
struct
{
Id
int
`json:"id,string"`
Name
string
`json:"name"`
//里程碑名称
StatusDescription
string
`json:"statusDescription"`
//里程碑的完成情况
Status
int
`json:"status"`
//里程碑状态
Name
string
`json:"name"`
//里程碑名称
StatusDescription
string
`json:"statusDescription,omitempty"`
//里程碑的完成情况
Status
int
`json:"status"`
//里程碑状态
SortBy
int
`json:"sortBy"`
PlanCompletedAt
string
`json:"planCompletedAt"`
//计划完成时间, 例:2006-01-02
RealCompletedAt
string
`json:"realCompletedAt"`
//实际完成时间, 例:2006-01-02
PlanCompletedAt
string
`json:"planCompletedAt,omitempty"`
//计划完成时间, 例:2006-01-02
RealCompletedAt
string
`json:"realCompletedAt,omitempty"`
//实际完成时间, 例:2006-01-02
}
...
...
pkg/application/task/command/update_task_stage.go
0 → 100644
查看文件 @
f8eddba
package
command
...
...
pkg/application/task/service/service.go
查看文件 @
f8eddba
...
...
@@ -27,6 +27,12 @@ func dayEndTime(t time.Time) time.Time {
return
t2
}
func
dayZeroTime
(
t
time
.
Time
)
time
.
Time
{
y
,
m
,
d
:=
t
.
Local
()
.
Date
()
t2
:=
time
.
Date
(
y
,
m
,
d
,
0
,
0
,
0
,
0
,
time
.
Local
)
return
t2
}
func
(
srv
TaskService
)
CreateTaskTest
(
param
*
command
.
CreateTaskCommand
)
error
{
transactionContext
,
err
:=
factory
.
CreateTransactionContext
(
nil
)
if
err
!=
nil
{
...
...
@@ -108,7 +114,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"创建任务失败:"
+
err
.
Error
())
}
nowEndTime
:=
day
End
Time
(
nowTime
)
nowEndTime
:=
day
Zero
Time
(
nowTime
)
newTaskStage
:=
[]
*
domain
.
TaskStage
{
{
...
...
@@ -590,7 +596,7 @@ func (t TaskService) CancelAttention(param *command.CancelAttentionCommand) erro
}
// 员工绩效-任务管理-列表
func
(
t
TaskService
)
ListTask2
(
param
command
.
SearchTaskCommand
)
(
map
[
string
]
interface
{},
error
)
{
func
(
t
TaskService
)
ListTask2
(
param
*
command
.
SearchTaskCommand
)
(
map
[
string
]
interface
{},
error
)
{
transactionContext
,
err
:=
factory
.
CreateTransactionContext
(
nil
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
TRANSACTION_ERROR
,
err
.
Error
())
...
...
@@ -605,6 +611,10 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"获取用户的角色信息"
+
err
.
Error
())
}
if
hrbpFlag
==
domain
.
RoleTypeSystem
{
listData
,
err
:=
t
.
listTask2ForHrbp
(
param
)
return
listData
,
err
}
var
limit
=
20
var
offset
=
0
if
param
.
PageSize
>
0
{
...
...
@@ -623,22 +633,204 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
LeaderId
:
param
.
LeaderId
,
}
if
hrbpFlag
==
domain
.
RoleTypeSystem
{
//已hrbp权限获取
// info.IsHrbp = true
return
nil
,
nil
}
taskDato
:=
dao
.
NewTaskDao
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
taskDato
.
ListTaskStageNotHrbp
(
condition
)
tasklistData
,
err
:=
taskDato
.
ListTaskStageNotHrbp
(
condition
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"获取任务列表"
+
err
.
Error
())
}
taskCount
,
err
:=
taskDato
.
CountTaskStageNotHrbp
(
condition
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"统计任务总数"
+
err
.
Error
())
}
if
err
:=
transactionContext
.
CommitTransaction
();
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
return
nil
,
nil
taskResult
:=
[]
*
adapter
.
TaskItem
{}
taskMapResult
:=
map
[
int
]
*
adapter
.
TaskItem
{}
for
_
,
val
:=
range
tasklistData
{
if
_
,
ok
:=
taskMapResult
[
val
.
TaskId
];
ok
{
continue
}
tk
:=
adapter
.
TaskItem
{
Id
:
val
.
TaskId
,
Name
:
val
.
TaskName
,
Alias
:
val
.
TaskAliasName
,
Leader
:
val
.
LeaderName
,
Status
:
val
.
TaskStatus
,
Level
:
val
.
Level
,
LevelName
:
val
.
LevelName
,
// StageA: adapter.TaskStage{},
// StageB: adapter.TaskStage{},
// StageC: adapter.TaskStage{},
// StageD: adapter.TaskStage{},
// StageE: adapter.TaskStage{},
}
taskMapResult
[
val
.
TaskId
]
=
&
tk
taskResult
=
append
(
taskResult
,
&
tk
)
}
for
_
,
val
:=
range
tasklistData
{
taskData
,
ok
:=
taskMapResult
[
val
.
TaskId
]
if
!
ok
{
continue
}
stage
:=
adapter
.
TaskStage
{
Id
:
val
.
StageId
,
Name
:
val
.
StageName
,
Status
:
val
.
StageStatus
,
SortBy
:
val
.
StageSortBy
,
}
switch
val
.
StageSortBy
{
case
1
:
taskData
.
StageA
=
stage
case
2
:
taskData
.
StageB
=
stage
case
3
:
taskData
.
StageC
=
stage
case
4
:
taskData
.
StageD
=
stage
case
5
:
taskData
.
StageE
=
stage
}
}
result
:=
tool_funs
.
SimpleWrapGridMap
(
int64
(
taskCount
),
taskResult
)
return
result
,
nil
}
// 以hrbp角色权限获取任务列表
func
(
t
TaskService
)
ListTask2ForHrbp
(
param
command
.
SearchTaskCommand
)
(
map
[
string
]
interface
{},
error
)
{
return
nil
,
nil
func
(
t
TaskService
)
listTask2ForHrbp
(
param
*
command
.
SearchTaskCommand
)
(
map
[
string
]
interface
{},
error
)
{
var
limit
=
20
var
offset
=
0
if
param
.
PageSize
>
0
{
limit
=
param
.
PageSize
if
param
.
PageNumber
>
0
{
offset
=
(
param
.
PageNumber
-
1
)
*
param
.
PageSize
}
}
condition
:=
dao
.
ListTaskCondition
{
Limit
:
limit
,
Offset
:
offset
,
UserId
:
param
.
UserId
,
TaskName
:
param
.
TaskName
,
LevelName
:
param
.
LevelName
,
OnlyMy
:
param
.
OnlyMy
,
LeaderId
:
param
.
LeaderId
,
}
transactionContext
,
err
:=
factory
.
CreateTransactionContext
(
nil
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
TRANSACTION_ERROR
,
err
.
Error
())
}
if
err
:=
transactionContext
.
StartTransaction
();
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
TRANSACTION_ERROR
,
err
.
Error
())
}
defer
func
()
{
_
=
transactionContext
.
RollbackTransaction
()
}()
taskDato
:=
dao
.
NewTaskDao
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
tasklistData
,
err
:=
taskDato
.
ListTaskStageByHrbp
(
condition
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"获取任务列表"
+
err
.
Error
())
}
taskCount
,
err
:=
taskDato
.
CountTaskStageByHrbp
(
condition
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"统计任务总数"
+
err
.
Error
())
}
if
err
:=
transactionContext
.
CommitTransaction
();
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
taskResult
:=
[]
*
adapter
.
TaskItem
{}
taskMapResult
:=
map
[
int
]
*
adapter
.
TaskItem
{}
for
_
,
val
:=
range
tasklistData
{
if
_
,
ok
:=
taskMapResult
[
val
.
TaskId
];
ok
{
continue
}
tk
:=
adapter
.
TaskItem
{
Id
:
val
.
TaskId
,
Name
:
val
.
TaskName
,
Alias
:
val
.
TaskAliasName
,
Leader
:
val
.
LeaderName
,
Status
:
val
.
TaskStatus
,
Level
:
val
.
Level
,
LevelName
:
val
.
LevelName
,
// StageA: adapter.TaskStage{},
// StageB: adapter.TaskStage{},
// StageC: adapter.TaskStage{},
// StageD: adapter.TaskStage{},
// StageE: adapter.TaskStage{},
}
taskMapResult
[
val
.
TaskId
]
=
&
tk
taskResult
=
append
(
taskResult
,
&
tk
)
}
for
_
,
val
:=
range
tasklistData
{
taskData
,
ok
:=
taskMapResult
[
val
.
TaskId
]
if
!
ok
{
continue
}
stage
:=
adapter
.
TaskStage
{
Id
:
val
.
StageId
,
Name
:
val
.
StageName
,
Status
:
val
.
StageStatus
,
SortBy
:
val
.
StageSortBy
,
}
switch
val
.
StageSortBy
{
case
1
:
taskData
.
StageA
=
stage
case
2
:
taskData
.
StageB
=
stage
case
3
:
taskData
.
StageC
=
stage
case
4
:
taskData
.
StageD
=
stage
case
5
:
taskData
.
StageE
=
stage
}
}
result
:=
tool_funs
.
SimpleWrapGridMap
(
int64
(
taskCount
),
taskResult
)
return
result
,
nil
}
// ReplyTaskStage 根据每日的任务反馈 ,更新任务里程碑
func
(
t
TaskService
)
ReplyTaskStage
(
transactionContext
application
.
TransactionContext
,
param
[]
*
domain
.
TaskRecord
)
error
{
taskRepo
:=
factory
.
CreateTaskRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
taskStageRepo
:=
factory
.
CreateTaskStageRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
var
taskList
[]
*
domain
.
Task
var
taskStages
[]
*
domain
.
TaskStage
for
_
,
val
:=
range
param
{
taskData
,
err
:=
taskRepo
.
FindOne
(
map
[
string
]
interface
{}{
"id"
:
val
.
TaskId
})
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"找不到任务数据"
+
err
.
Error
())
}
if
!
(
len
(
val
.
AssistContent
)
==
0
||
val
.
AssistContent
==
"无"
)
{
taskData
.
Anomaly
=
0
}
taskList
=
append
(
taskList
,
taskData
)
_
,
stageList
,
err
:=
taskStageRepo
.
Find
(
map
[
string
]
interface
{}{
"ids"
:
[]
int
{
val
.
TaskStageCheck
.
Id
}})
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"找不到任务里程碑数据"
+
err
.
Error
())
}
if
len
(
stageList
)
>
0
{
stageList
[
0
]
.
Status
=
val
.
TaskStageCheck
.
Status
stageList
[
0
]
.
RealCompletedAt
=
val
.
TaskStageCheck
.
RealCompletedAt
taskStages
=
append
(
taskStages
,
stageList
[
0
])
}
}
err
:=
taskStageRepo
.
Save
(
taskStages
)
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"保存任务里程碑数据"
+
err
.
Error
())
}
for
_
,
val
:=
range
taskList
{
err
=
taskRepo
.
Save
(
val
)
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"保存任务数据"
+
err
.
Error
())
}
}
return
nil
}
...
...
pkg/domain/task.go
查看文件 @
f8eddba
...
...
@@ -26,7 +26,7 @@ type Task struct {
RelatedUser
[]
int
`json:"relatedUser"`
// 相关的员工id
RunAt
int64
`json:"runAt"`
// 启动的时间戳,秒
StopAt
int64
`json:"stopAt"`
// 停止的时间戳,秒
Anomaly
int
`json:"anomaly"`
//异常反馈的次数
Anomaly
int
`json:"anomaly"`
//
异常反馈的次数
}
type
TaskLeader
struct
{
...
...
pkg/domain/task_stage.go
查看文件 @
f8eddba
...
...
@@ -6,8 +6,7 @@ type TaskStageState int
const
(
TaskStageUncompleted
TaskStageState
=
1
//里程碑未完成
// TaskStageCompletedOverdue TaskStageState = 2 //里程碑逾期完成
TaskStageCompleted
TaskStageState
=
2
//里程碑完成
TaskStageCompleted
TaskStageState
=
2
//里程碑完成
)
...
...
pkg/infrastructure/dao/task.go → pkg/infrastructure/dao/task
_dao
.go
查看文件 @
f8eddba
...
...
@@ -71,8 +71,10 @@ type ListTaskCondition struct {
// 任务和里程碑列表
type
ListTaskStage
struct
{
TaskId
string
`pg:"task_id"`
TaskId
int
`pg:"task_id"`
TaskName
string
`pg:"task_name"`
TaskStatus
int
`pg:"task_status"`
TaskAliasName
string
`pg:"task_alias_name"`
LeaderName
string
`pg:"leader_name"`
LeaderId
string
`pg:"leader_id"`
LevelName
string
`pg:"level_name"`
...
...
@@ -80,6 +82,7 @@ type ListTaskStage struct {
Anomaly
int
`pg:"anomaly"`
UpdatedAt
time
.
Time
`pg:"updated_at"`
CreatedAt
time
.
Time
`pg:"created_at"`
StageId
int
`pg:"stage_id"`
StageName
string
`pg:"stage_name"`
StageSortBy
int
`pg:"stage_sort_by"`
StageStatus
int
`pg:"stage_status"`
...
...
@@ -98,6 +101,7 @@ func (d *TaskDao) ListTaskStageNotHrbp(param ListTaskCondition) ([]ListTaskStage
select
task.id as task_id,
task."name" as task_name,
task."alias" as task_alias_name,
task.leader ->>'name' as leader_name,
task.leader ->>'id' as leader_id,
task.level_name ,
...
...
@@ -105,6 +109,8 @@ func (d *TaskDao) ListTaskStageNotHrbp(param ListTaskCondition) ([]ListTaskStage
task.updated_at ,
task.created_at ,
task."level" ,
task."status" as task_status,
task_stage."id" as stage_id,
task_stage."name" as stage_name,
task_stage.sort_by as stage_sort_by,
task_stage.status as stage_status,
...
...
@@ -131,6 +137,8 @@ func (d *TaskDao) ListTaskStageNotHrbp(param ListTaskCondition) ([]ListTaskStage
select
t_task_tage_1.task_id,
t_task_tage_1.task_name,
t_task_tage_1.task_alias_name,
t_task_tage_1.task_status,
t_task_tage_1.leader_name,
t_task_tage_1.level_name ,
t_task_tage_1.anomaly ,
...
...
@@ -139,8 +147,9 @@ func (d *TaskDao) ListTaskStageNotHrbp(param ListTaskCondition) ([]ListTaskStage
t_task_tage_1."level" ,
t_task_tage_1.plan_completed_at,
t_task_tage_1.stage_name,
t_task_tage_1.stage_id,
t_task_tage_1.stage_sort_by,
t_task_tage_1.stage_status
,
t_task_tage_1.stage_status
from t_task_tage_1
where t_task_tage_1.task_id in(
select t_task_page.task_id from t_task_page
...
...
@@ -214,6 +223,8 @@ func (d *TaskDao) ListTaskStageByHrbp(param ListTaskCondition) ([]ListTaskStage,
select
task.id as task_id,
task."name" as task_name,
task."alias" as task_alias_name,
task."status" as task_status,
task.leader ->>'name' as leader_name,
task.leader ->>'id' as leader_id,
task.level_name ,
...
...
@@ -221,6 +232,7 @@ func (d *TaskDao) ListTaskStageByHrbp(param ListTaskCondition) ([]ListTaskStage,
task.updated_at ,
task.created_at ,
task."level" ,
task_stage."id" as stage_id,
task_stage."name" as stage_name,
task_stage.sort_by as stage_sort_by,
task_stage.status as stage_status,
...
...
@@ -247,6 +259,8 @@ func (d *TaskDao) ListTaskStageByHrbp(param ListTaskCondition) ([]ListTaskStage,
select
t_task_tage_1.task_id,
t_task_tage_1.task_name,
t_task_tage_1.task_alias_name,
t_task_tage_1.task_status,
t_task_tage_1.leader_name,
t_task_tage_1.level_name ,
t_task_tage_1.anomaly ,
...
...
@@ -255,8 +269,9 @@ func (d *TaskDao) ListTaskStageByHrbp(param ListTaskCondition) ([]ListTaskStage,
t_task_tage_1."level" ,
t_task_tage_1.plan_completed_at,
t_task_tage_1.stage_name,
t_task_tage_1.stage_id,
t_task_tage_1.stage_sort_by,
t_task_tage_1.stage_status
,
t_task_tage_1.stage_status
from t_task_tage_1
where t_task_tage_1.task_id in(
select t_task_page.task_id from t_task_page
...
...
pkg/infrastructure/repository/pg_task_stage_repository.go
查看文件 @
f8eddba
...
...
@@ -110,7 +110,9 @@ func (repo *TaskStageRepository) Find(queryOptions map[string]interface{}) (int,
if
val
,
ok
:=
queryOptions
[
"taskId"
];
ok
{
query
.
Where
(
"task_stage.task_id = ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"ids"
];
ok
{
query
.
Where
(
"task_stage.id in(?)"
,
pg
.
In
(
val
))
}
if
val
,
ok
:=
queryOptions
[
"taskIdList"
];
ok
{
query
.
Where
(
"task_stage.task_id in(?)"
,
pg
.
In
(
val
))
}
...
...
pkg/port/beego/controllers/task_controller.go
查看文件 @
f8eddba
...
...
@@ -107,7 +107,7 @@ func (c *TaskController) ListTask() {
c
.
Response
(
data
,
err
)
}
// CancelAttention 取消关注的任务
// CancelAttention
员工绩效-任务管理列表-
取消关注的任务
func
(
c
*
TaskController
)
CancelAttention
()
{
srv
:=
service
.
NewTaskService
()
paramReq
:=
&
command
.
CancelAttentionCommand
{}
...
...
@@ -122,3 +122,20 @@ func (c *TaskController) CancelAttention() {
err
=
srv
.
CancelAttention
(
paramReq
)
c
.
Response
(
nil
,
err
)
}
// ListTask2 员工绩效-任务管理列表
func
(
c
*
TaskController
)
ListTask2
()
{
srv
:=
service
.
NewTaskService
()
paramReq
:=
&
command
.
SearchTaskCommand
{}
err
:=
c
.
BindJSON
(
paramReq
)
if
err
!=
nil
{
e
:=
application
.
ThrowError
(
application
.
ARG_ERROR
,
"json 解析错误"
+
err
.
Error
())
c
.
Response
(
nil
,
e
)
return
}
userReq
:=
middlewares
.
GetUser
(
c
.
Ctx
)
paramReq
.
CompanyId
=
int
(
userReq
.
CompanyId
)
paramReq
.
UserId
=
int
(
userReq
.
UserId
)
result
,
err
:=
srv
.
ListTask2
(
paramReq
)
c
.
Response
(
result
,
err
)
}
...
...
pkg/port/beego/routers/task_router.go
查看文件 @
f8eddba
...
...
@@ -18,11 +18,11 @@ func init() {
web
.
NSCtrlPost
(
"/list"
,
(
*
controllers
.
TaskController
)
.
ListTask
),
)
web
.
AddNamespace
(
taskAdminNS
)
// 员工绩效模块
taskFontNS
:=
web
.
NewNamespace
(
"/v1/font/task"
,
web
.
NSBefore
(
filters
.
AllowCors
(),
middlewares
.
CheckFontToken
()),
web
.
NSCtrlPost
(
"/attention/cancel"
,
(
*
controllers
.
TaskController
)
.
CancelAttention
),
web
.
NSCtrlPost
(
"/list"
,
(
*
controllers
.
TaskController
)
.
ListTask
),
//TODO
web
.
NSCtrlPost
(
"/list"
,
(
*
controllers
.
TaskController
)
.
ListTask
2
),
)
web
.
AddNamespace
(
taskFontNS
)
...
...
请
注册
或
登录
后发表评论