切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
tangxvhui
2 years ago
提交
8514a9bd245de388d5a25be06dc76ad2b7b603b9
1 个父辈
467a9334
更新评估任务的生成
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
129 行增加
和
50 行删除
pkg/application/staff_assess/service/service.go
pkg/application/staff_assess/service/service.go
查看文件 @
8514a9b
...
...
@@ -352,36 +352,103 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat
}
nowTime
:=
time
.
Now
()
_
,
assassessTaskList
,
err
:=
assessTaskRepo
.
Find
(
map
[
string
]
interface
{}{
"evaluationProjectId"
:
param
.
EvaluationProjectId
,
"beginDay"
:
taskBeginTime
.
Local
()
.
Format
(
"2006-01-02"
),
})
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"查询同日期同项目已存在的评估任务"
+
err
.
Error
())
}
var
assessTaskData
*
domain
.
StaffAssessTask
//更新旧数据或者新建数据
if
len
(
assassessTaskList
)
>
0
{
assessTaskData
=
assassessTaskList
[
0
]
assessTaskData
.
UpdatedAt
=
nowTime
}
else
{
//建立新的评估任务
assessTaskData
=
&
domain
.
StaffAssessTask
{
Id
:
0
,
CompanyId
:
param
.
CompanyId
,
EvaluationProjectId
:
param
.
EvaluationProjectId
,
EvaluationProjectName
:
param
.
EvaluationProjectName
,
CycleId
:
param
.
CycleId
,
CycleName
:
param
.
CycleName
,
BeginTime
:
taskBeginTime
,
EndTime
:
taskEndTime
,
StepList
:
[]
domain
.
AssessTaskStep
{},
ExecutorId
:
[]
int
{},
CreatedAt
:
nowTime
,
UpdatedAt
:
nowTime
,
DeletedAt
:
nil
,
BeginDay
:
taskBeginTime
.
Local
()
.
Format
(
"2006-01-02"
),
}
// _, assassessTaskList, err := assessTaskRepo.Find(map[string]interface{}{
// "evaluationProjectId": param.EvaluationProjectId,
// "beginDay": taskBeginTime.Local().Format("2006-01-02"),
// })
// if err != nil {
// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询同日期同项目已存在的评估任务"+err.Error())
// }
// var assessTaskData *domain.StaffAssessTask
// //更新旧数据或者新建数据
// if len(assassessTaskList) > 0 {
// assessTaskData = assassessTaskList[0]
// assessTaskData.UpdatedAt = nowTime
// } else {
// //建立新的评估任务
// assessTaskData = &domain.StaffAssessTask{
// Id: 0,
// CompanyId: param.CompanyId,
// EvaluationProjectId: param.EvaluationProjectId,
// EvaluationProjectName: param.EvaluationProjectName,
// CycleId: param.CycleId,
// CycleName: param.CycleName,
// BeginTime: taskBeginTime,
// EndTime: taskEndTime,
// StepList: []domain.AssessTaskStep{},
// ExecutorId: []int{},
// CreatedAt: nowTime,
// UpdatedAt: nowTime,
// DeletedAt: nil,
// BeginDay: taskBeginTime.Local().Format("2006-01-02"),
// }
// }
// executorIds := []int{} //提取评估的参与人id
// executorIdMap := map[int]struct{}{} //过滤重复的用户
// //从入参中提取参与人
// for _, v := range param.ExecutorId {
// if _, ok := executorIdMap[v]; ok {
// continue
// }
// executorIdMap[v] = struct{}{}
// executorIds = append(executorIds, v)
// }
// //就数据中提取参与人
// for _, v := range assessTaskData.ExecutorId {
// if _, ok := executorIdMap[v]; ok {
// continue
// }
// executorIdMap[v] = struct{}{}
// executorIds = append(executorIds, v)
// }
// //填入新的参与人id
// assessTaskData.ExecutorId = executorIds
// //填充新的评估环节
// loop:
// for _, v := range param.StepList {
// for _, vv := range assessTaskData.StepList {
// if vv.LinkNodeId == v.LinkNodeId {
// continue loop
// }
// }
// stepBeginTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.BeginTime, time.Local)
// if err != nil {
// return nil, application.ThrowError(application.ARG_ERROR, "评估环节开始时间填写错误,"+param.BeginTime)
// }
// stepEndTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.EndTime, time.Local)
// if err != nil {
// return nil, application.ThrowError(application.ARG_ERROR, "评估环节结束时间填写错误,"+param.EndTime)
// }
// step := domain.AssessTaskStep{
// SortBy: v.SortBy,
// LinkNodeId: v.LinkNodeId,
// LinkNodeName: v.LinkNodeName,
// LinkNodeType: v.LinkNodeType,
// BeginTime: stepBeginTime,
// EndTime: stepEndTime,
// }
// assessTaskData.StepList = append(assessTaskData.StepList, step)
// }
// //排序流程环节
// stepList := domain.SortTaskStep(assessTaskData.StepList)
// sort.Sort(stepList)
// assessTaskData.StepList = stepList
assessTaskData
:=
&
domain
.
StaffAssessTask
{
Id
:
0
,
CompanyId
:
param
.
CompanyId
,
EvaluationProjectId
:
param
.
EvaluationProjectId
,
EvaluationProjectName
:
param
.
EvaluationProjectName
,
CycleId
:
param
.
CycleId
,
CycleName
:
param
.
CycleName
,
BeginTime
:
taskBeginTime
,
EndTime
:
taskEndTime
,
StepList
:
[]
domain
.
AssessTaskStep
{},
ExecutorId
:
[]
int
{},
CreatedAt
:
nowTime
,
UpdatedAt
:
nowTime
,
DeletedAt
:
nil
,
BeginDay
:
taskBeginTime
.
Local
()
.
Format
(
"2006-01-02"
),
}
executorIds
:=
[]
int
{}
//提取评估的参与人id
executorIdMap
:=
map
[
int
]
struct
{}{}
//过滤重复的用户
...
...
@@ -393,24 +460,8 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat
executorIdMap
[
v
]
=
struct
{}{}
executorIds
=
append
(
executorIds
,
v
)
}
//就数据中提取参与人
for
_
,
v
:=
range
assessTaskData
.
ExecutorId
{
if
_
,
ok
:=
executorIdMap
[
v
];
ok
{
continue
}
executorIdMap
[
v
]
=
struct
{}{}
executorIds
=
append
(
executorIds
,
v
)
}
//填入新的参与人id
assessTaskData
.
ExecutorId
=
executorIds
//填充新的评估环节
loop
:
for
_
,
v
:=
range
param
.
StepList
{
for
_
,
vv
:=
range
assessTaskData
.
StepList
{
if
vv
.
LinkNodeId
==
v
.
LinkNodeId
{
continue
loop
}
}
stepBeginTime
,
err
:=
time
.
ParseInLocation
(
"2006-01-02 15:04:05"
,
param
.
BeginTime
,
time
.
Local
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
ARG_ERROR
,
"评估环节开始时间填写错误,"
+
param
.
BeginTime
)
...
...
@@ -429,20 +480,45 @@ loop:
}
assessTaskData
.
StepList
=
append
(
assessTaskData
.
StepList
,
step
)
}
//排序流程环节
stepList
:=
domain
.
SortTaskStep
(
assessTaskData
.
StepList
)
sort
.
Sort
(
stepList
)
assessTaskData
.
StepList
=
stepList
//添加员工的节点任务
assessList
,
err
:=
srv
.
createStaffAssess
(
transactionContext
,
assessTaskData
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"生成个人评估项"
+
err
.
Error
())
}
//合并项目评估的新旧数据
_
,
assassessTaskList
,
err
:=
assessTaskRepo
.
Find
(
map
[
string
]
interface
{}{
"evaluationProjectId"
:
param
.
EvaluationProjectId
,
"beginDay"
:
taskBeginTime
.
Local
()
.
Format
(
"2006-01-02"
),
})
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"查询同日期同项目已存在的评估任务"
+
err
.
Error
())
}
if
len
(
assassessTaskList
)
>
0
{
//就数据中提取参与人
for
_
,
v
:=
range
assessTaskData
.
ExecutorId
{
if
_
,
ok
:=
executorIdMap
[
v
];
ok
{
continue
}
executorIdMap
[
v
]
=
struct
{}{}
executorIds
=
append
(
executorIds
,
v
)
}
assassessTaskList
[
0
]
.
UpdatedAt
=
time
.
Now
()
assassessTaskList
[
0
]
.
ExecutorId
=
executorIds
//更新步骤
assassessTaskList
[
0
]
.
StepList
=
append
(
assassessTaskList
[
0
]
.
StepList
,
assessTaskData
.
StepList
...
)
\
asassessTaskData
=
asassassessTaskList
[
0
]
//排序流程环节
stepList
:=
domain
.
SortTaskStep
(
assessTaskData
.
StepList
)
sort
.
Sort
(
stepList
)
}
_
,
err
=
assessTaskRepo
.
Save
(
assessTaskData
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"保存评估任务"
+
err
.
Error
())
}
//保存 员工的评估任务
assessRepo
:=
factory
.
CreateStaffAssessRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
...
...
@@ -453,6 +529,9 @@ loop:
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"保存个人评估项"
+
err
.
Error
())
}
}
//处理生成的项目评估
return
map
[
string
]
interface
{}{
"assessTaskId"
:
assessTaskData
.
Id
,
},
nil
...
...
请
注册
或
登录
后发表评论