...
|
...
|
@@ -994,10 +994,40 @@ func (srv *SummaryEvaluationService) ListEvaluationSuper(param *command.QueryEva |
|
|
userRepo := factory.CreateUserRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
cnt, evaluationList, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
positionRepo := factory.CreatePositionRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
departmentRepo := factory.CreateDepartmentRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
limit := param.PageSize
|
|
|
offset := (param.PageNumber - 1) * param.PageSize
|
|
|
|
|
|
//获取评估列表信息
|
|
|
condition1 := map[string]interface{}{
|
|
|
"cycleId": param.CycleId,
|
|
|
"executorId": param.ExecutorId,
|
|
|
"types": int(domain.EvaluationSuper),
|
|
|
"limit": limit,
|
|
|
}
|
|
|
if offset > 0 {
|
|
|
condition1["offset"] = offset
|
|
|
}
|
|
|
if len(param.TargetUserName) == 0 {
|
|
|
condition1["targetUserName"] = "%" + param.TargetUserName + "%"
|
|
|
}
|
|
|
//获取评估列表信息
|
|
|
cnt, evaluationList, err := evaluationRepo.Find(condition1)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
//获取未完成上级评估的数量
|
|
|
cntUn, _, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"cycleId": param.CycleId,
|
|
|
"executorId": param.ExecutorId,
|
|
|
"types": int(domain.EvaluationSuper),
|
|
|
"status": domain.EvaluationUncompleted,
|
|
|
"limit": 1,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
...
|
...
|
@@ -1006,21 +1036,109 @@ func (srv *SummaryEvaluationService) ListEvaluationSuper(param *command.QueryEva |
|
|
for _, v := range evaluationList {
|
|
|
targetUserIds = append(targetUserIds, v.TargetUser.UserId)
|
|
|
}
|
|
|
var userList []*domain.User
|
|
|
//获取员工的综合自评
|
|
|
evaluationSelfMap := map[int]*domain.SummaryEvaluation{}
|
|
|
for _, v := range evaluationList {
|
|
|
_, evaluationSelfList, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"cycleId": param.CycleId,
|
|
|
"executorId": v.TargetUser.UserId,
|
|
|
"types": int(domain.EvaluationSelf),
|
|
|
"limit": 1,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取综合自评"+err.Error())
|
|
|
}
|
|
|
if len(evaluationSelfList) > 0 {
|
|
|
evaluationSelfMap[v.TargetUser.UserId] = evaluationSelfList[0]
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取员工信息
|
|
|
userMap := map[int64]*domain.User{}
|
|
|
if len(targetUserIds) > 0 {
|
|
|
_, userList, err = userRepo.Find(map[string]interface{}{
|
|
|
_, userList, err := userRepo.Find(map[string]interface{}{
|
|
|
"ids": targetUserIds,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
for _, v := range userList {
|
|
|
userMap[v.Id] = v
|
|
|
}
|
|
|
}
|
|
|
var departmentIds []int
|
|
|
//获取部门
|
|
|
departmentMap := map[int64]*domain.Department{}
|
|
|
var positionIds []int
|
|
|
//获取职位列表
|
|
|
positionMap := map[int64]*domain.Position{}
|
|
|
for _, v := range userMap {
|
|
|
departmentIds = append(departmentIds, v.DepartmentId...)
|
|
|
positionIds = append(positionIds, v.PositionId...)
|
|
|
}
|
|
|
if len(departmentIds) > 0 {
|
|
|
_, departmentList, err := departmentRepo.Find(map[string]interface{}{"ids": departmentIds})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
|
|
|
}
|
|
|
for _, v := range departmentList {
|
|
|
departmentMap[v.Id] = v
|
|
|
}
|
|
|
}
|
|
|
|
|
|
_ = userList
|
|
|
_ = evaluationList
|
|
|
_ = cnt
|
|
|
if len(positionIds) > 0 {
|
|
|
_, positionList, err := positionRepo.Find(map[string]interface{}{"ids": departmentIds})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
|
|
|
}
|
|
|
for _, v := range positionList {
|
|
|
positionMap[v.Id] = v
|
|
|
}
|
|
|
}
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
return nil, nil
|
|
|
evaluationListAdapter := []*adapter.EvaluationSuperListAdapter{}
|
|
|
for _, v := range evaluationList {
|
|
|
item := adapter.EvaluationSuperListAdapter{
|
|
|
SummaryEvaluationId: v.Id,
|
|
|
TargetUserName: v.TargetUser.UserName,
|
|
|
EvaluationStatus: string(v.Status),
|
|
|
EndTime: v.EndTime.Format("2006-01-02 15:04:05"),
|
|
|
TotalScoreSelf: "",
|
|
|
Department: "",
|
|
|
Position: "",
|
|
|
EntryTime: "",
|
|
|
}
|
|
|
//填充员工信息
|
|
|
if targetUser, ok := userMap[int64(v.TargetUser.UserId)]; ok {
|
|
|
//填充部门信息
|
|
|
for _, departId := range targetUser.DepartmentId {
|
|
|
if depart, ok := departmentMap[int64(departId)]; ok {
|
|
|
item.Department += depart.Name + " "
|
|
|
}
|
|
|
}
|
|
|
//填充职位信息
|
|
|
for _, positionId := range targetUser.PositionId {
|
|
|
if position, ok := positionMap[int64(positionId)]; ok {
|
|
|
item.Position += position.Name + " "
|
|
|
}
|
|
|
}
|
|
|
//填充入职时间
|
|
|
item.EntryTime = targetUser.EntryTime
|
|
|
}
|
|
|
//填充自评总分
|
|
|
if evaluationSelf, ok := evaluationSelfMap[v.TargetUser.UserId]; ok {
|
|
|
item.TotalScoreSelf = evaluationSelf.TotalScore
|
|
|
}
|
|
|
evaluationListAdapter = append(evaluationListAdapter, &item)
|
|
|
}
|
|
|
result := tool_funs.SimpleWrapGridMap(int64(cnt), evaluationListAdapter)
|
|
|
result["endTime"] = ""
|
|
|
result["uncompleted_number"] = 0
|
|
|
if len(evaluationList) > 0 {
|
|
|
result["endTime"] = evaluationList[0].EndTime.Format("2006-01-02 15:04:05")
|
|
|
result["uncompleted_number"] = cntUn
|
|
|
}
|
|
|
return result, nil
|
|
|
} |
...
|
...
|
|