|
|
package service
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
|
|
|
"github.com/linmadan/egglib-go/core/application"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/adapter"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/query"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/dao"
|
|
|
)
|
|
|
|
...
|
...
|
@@ -67,8 +71,8 @@ func (srv StaffAssessServeice) ListAllAssessCycleDay(param *query.ListAssessCycl |
|
|
}
|
|
|
|
|
|
//根据周期id和日期获取 员工填写评估内容
|
|
|
// 有过滤查看权限
|
|
|
func (srv StaffAssessServeice) ListAllAssessContentCycleDay(param *query.ListAssessContentCycleDay) (map[string]interface{}, error) {
|
|
|
//有过滤查看权限
|
|
|
func (srv StaffAssessServeice) ListUserAssessContentCycleDay(param *query.ListAssessContentCycleDay) (*adapter.ListUserAssessContent, error) {
|
|
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
...
|
...
|
@@ -79,11 +83,110 @@ func (srv StaffAssessServeice) ListAllAssessContentCycleDay(param *query.ListAss |
|
|
defer func() {
|
|
|
_ = transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
// assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
|
|
// "transactionContext": transactionContext,
|
|
|
// })
|
|
|
|
|
|
roleRepo := factory.CreateRoleRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
_, roleList, err := roleRepo.Find(map[string]interface{}{
|
|
|
"type": domain.RoleTypeSystem,
|
|
|
"companyId": param.CompanyId,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取角色信息列表"+err.Error())
|
|
|
}
|
|
|
_, userRoleList, err := roleUserRepo.Find(map[string]interface{}{
|
|
|
"companyId": param.CompanyId,
|
|
|
"userId": param.OperaterId,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
|
|
|
}
|
|
|
hrbp := -1
|
|
|
for _, v := range userRoleList {
|
|
|
for _, v2 := range roleList {
|
|
|
if v.RoleId == v2.Id {
|
|
|
hrbp = 1
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
if hrbp == 1 {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
|
|
|
limit := param.PageSize
|
|
|
offset := (param.PageNumber - 1) * limit
|
|
|
cnt, err := assessDao.CountUserAssess(dao.SearchConditin1{
|
|
|
CompanyId: param.CompanyId,
|
|
|
CycleId: param.CycleId,
|
|
|
BeginDay: param.BeginDay,
|
|
|
TargetUserName: param.TargetUserName,
|
|
|
Limit: 5000,
|
|
|
Offset: 0,
|
|
|
OperaterId: param.OperaterId,
|
|
|
Hrbp: hrbp,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "统计总数"+err.Error())
|
|
|
}
|
|
|
contentList, err := assessDao.SearchUserAssessContent(dao.SearchConditin1{
|
|
|
CompanyId: param.CompanyId,
|
|
|
CycleId: param.CycleId,
|
|
|
BeginDay: param.BeginDay,
|
|
|
TargetUserName: param.TargetUserName,
|
|
|
Limit: limit,
|
|
|
Offset: offset,
|
|
|
OperaterId: param.OperaterId,
|
|
|
Hrbp: hrbp,
|
|
|
})
|
|
|
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
|
|
|
|
|
|
//可变的表格列
|
|
|
changeableHeader := []adapter.ListTableHeader{
|
|
|
{Key: "targetUserName", Name: "姓名"}, //固定列
|
|
|
}
|
|
|
//过滤重复的列
|
|
|
headerMap := map[string]string{}
|
|
|
// 获取已经填报的内容
|
|
|
changeableRows := map[string]map[string]string{}
|
|
|
tableSort := []string{} //确定列表数据的顺序
|
|
|
for i, v := range contentList {
|
|
|
name := fmt.Sprintf("%s-%s", v.Category, v.ContentName)
|
|
|
key := fmt.Sprintf("k%d", i)
|
|
|
if _, ok := headerMap[name]; !ok {
|
|
|
changeableHeader = append(changeableHeader, adapter.ListTableHeader{
|
|
|
Key: key, Name: name,
|
|
|
})
|
|
|
headerMap[name] = key
|
|
|
}
|
|
|
if _, ok := changeableRows[v.TargetUserId]; !ok {
|
|
|
changeableRows[v.TargetUserId] = map[string]string{}
|
|
|
tableSort = append(tableSort, v.TargetUserId)
|
|
|
}
|
|
|
key = headerMap[name]
|
|
|
changeableRows[v.TargetUserId][key] = v.Value
|
|
|
changeableRows[v.TargetUserId]["targetUserName"] = v.TargetUserName
|
|
|
changeableRows[v.TargetUserId]["targetUserId"] = v.TargetUserId
|
|
|
}
|
|
|
list := []map[string]string{}
|
|
|
for _, v := range tableSort {
|
|
|
list = append(list, changeableRows[v])
|
|
|
}
|
|
|
result := adapter.ListUserAssessContent{
|
|
|
TableHeader: changeableHeader,
|
|
|
Total: cnt,
|
|
|
List: list,
|
|
|
}
|
|
|
return &result, nil
|
|
|
} |
...
|
...
|
|