|
|
package service
|
|
|
|
|
|
import (
|
|
|
"github.com/linmadan/egglib-go/core/application"
|
|
|
"github.com/linmadan/egglib-go/utils/tool_funs"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/summary_evaluation/adapter"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/summary_evaluation/command"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/dao"
|
|
|
)
|
|
|
|
|
|
type SummaryEvaluationServeice struct {
|
|
|
}
|
|
|
|
...
|
...
|
@@ -8,9 +18,218 @@ func NewStaffAssessServeice() *SummaryEvaluationServeice { |
|
|
return newService
|
|
|
}
|
|
|
|
|
|
// GetCycleList
|
|
|
// 获取周期列表
|
|
|
func (srv SummaryEvaluationServeice) GetCycleList() (map[string]interface{}, error) {
|
|
|
return nil, nil
|
|
|
func (srv *SummaryEvaluationServeice) GetCycleList(param *command.QueryCycleList) (map[string]interface{}, error) {
|
|
|
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()
|
|
|
}()
|
|
|
evaluationDao := dao.NewSummaryEvaluationDao(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
limit := 300
|
|
|
offset := 0
|
|
|
if param.PageSize > 0 {
|
|
|
limit = param.PageSize
|
|
|
}
|
|
|
if param.PageNumber > 0 {
|
|
|
offset = (param.PageNumber - 1) * param.PageSize
|
|
|
}
|
|
|
|
|
|
cycleData, err := evaluationDao.GetPersonalCycleList(param.UserId, offset, limit)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取周期列表"+err.Error())
|
|
|
}
|
|
|
|
|
|
cnt, err := evaluationDao.CountPersonalCycleList(param.UserId)
|
|
|
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())
|
|
|
}
|
|
|
cycleList := []adapter.CycleList{}
|
|
|
for _, v := range cycleData {
|
|
|
m := adapter.CycleList{
|
|
|
CycleId: v.CycleId,
|
|
|
CycleName: v.CycleName,
|
|
|
ExecutorId: v.ExecutorId,
|
|
|
}
|
|
|
cycleList = append(cycleList, m)
|
|
|
}
|
|
|
return tool_funs.SimpleWrapGridMap(int64(cnt), cycleList), nil
|
|
|
}
|
|
|
|
|
|
// 获取自评信息 |
|
|
// GetMenu
|
|
|
// 根据周期获取菜单显示
|
|
|
func (srv *SummaryEvaluationServeice) GetMenu(param *command.QueryMenu) (map[string]interface{}, error) {
|
|
|
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()
|
|
|
}()
|
|
|
evaluationRepo := factory.CreateSummaryEvaluationRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
|
|
|
//查找我的绩效
|
|
|
_, selfEvaluation, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"types": int(domain.EvaluationSelf),
|
|
|
"executorId": param.UserId,
|
|
|
"limit": 1,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
//查找360评估,统计未完成的
|
|
|
cnt360, _, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"types": int(domain.Evaluation360),
|
|
|
"executorId": param.UserId,
|
|
|
"limit": 1,
|
|
|
"status": string(domain.EvaluationUncompleted),
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
//查询上级评估,统计未完成
|
|
|
cntSuper, _, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"types": int(domain.EvaluationSelf),
|
|
|
"executorId": param.UserId,
|
|
|
"limit": 1,
|
|
|
"status": string(domain.EvaluationUncompleted),
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
//查询人资评估,统计未完成
|
|
|
cntHrbp, _, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
"types": int(domain.EvaluationHrbp),
|
|
|
"executorId": param.UserId,
|
|
|
"limit": 1,
|
|
|
"status": string(domain.EvaluationUncompleted),
|
|
|
})
|
|
|
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
|
|
|
menuList := []adapter.MenuList{}
|
|
|
|
|
|
//模块-我的绩效
|
|
|
menu1 := adapter.MenuList{
|
|
|
CycleId: 0,
|
|
|
NodeName: "我的绩效",
|
|
|
StatusName: "",
|
|
|
Types: "",
|
|
|
Child: []adapter.MenuList{},
|
|
|
}
|
|
|
menu1_1 := adapter.MenuList{
|
|
|
CycleId: param.CycleId,
|
|
|
NodeName: "填写综合自评",
|
|
|
StatusName: "",
|
|
|
Types: "填写综合自评",
|
|
|
}
|
|
|
menu1_2 := adapter.MenuList{
|
|
|
CycleId: param.CycleId,
|
|
|
NodeName: "查看综合自评",
|
|
|
StatusName: "",
|
|
|
Types: "查看综合自评",
|
|
|
}
|
|
|
if len(selfEvaluation) > 0 {
|
|
|
if selfEvaluation[0].Status == domain.EvaluationCompleted {
|
|
|
menu1_1.StatusName = "已完成"
|
|
|
} else {
|
|
|
menu1_1.StatusName = "未完成"
|
|
|
}
|
|
|
if selfEvaluation[0].CheckResult == domain.EvaluationCheckCompleted {
|
|
|
menu1_2.StatusName = "已完成"
|
|
|
} else {
|
|
|
menu1_2.StatusName = "未完成"
|
|
|
}
|
|
|
}
|
|
|
menu1.Child = append(menu1.Child, menu1_1, menu1_2)
|
|
|
menuList = append(menuList, menu1)
|
|
|
menu2 := adapter.MenuList{
|
|
|
CycleId: 0,
|
|
|
NodeName: "给他人评估",
|
|
|
StatusName: "",
|
|
|
Types: "",
|
|
|
Child: []adapter.MenuList{},
|
|
|
}
|
|
|
menu2_1 := adapter.MenuList{
|
|
|
CycleId: param.CycleId,
|
|
|
NodeName: "360综评",
|
|
|
StatusName: "",
|
|
|
Types: "360综评",
|
|
|
}
|
|
|
if cnt360 > 0 {
|
|
|
menu2_1.StatusName = "未完成"
|
|
|
} else {
|
|
|
menu2_1.StatusName = "已完成"
|
|
|
}
|
|
|
menu2.Child = append(menu2.Child, menu2_1)
|
|
|
menuList = append(menuList, menu2)
|
|
|
menu3 := adapter.MenuList{
|
|
|
CycleId: 0,
|
|
|
NodeName: "人资评估",
|
|
|
StatusName: "",
|
|
|
Types: "",
|
|
|
Child: []adapter.MenuList{},
|
|
|
}
|
|
|
menu3_1 := adapter.MenuList{
|
|
|
CycleId: param.CycleId,
|
|
|
NodeName: "上级综评",
|
|
|
StatusName: "",
|
|
|
Types: "上级综评",
|
|
|
}
|
|
|
if cntHrbp > 0 {
|
|
|
menu3_1.StatusName = "未完成"
|
|
|
} else {
|
|
|
menu3_1.StatusName = "已完成"
|
|
|
}
|
|
|
menu3.Child = append(menu3.Child, menu3_1)
|
|
|
|
|
|
menuList = append(menuList, menu3)
|
|
|
menu4 := adapter.MenuList{
|
|
|
CycleId: 0,
|
|
|
NodeName: "我的团队绩效",
|
|
|
StatusName: "",
|
|
|
Types: "",
|
|
|
Child: []adapter.MenuList{},
|
|
|
}
|
|
|
menu4_1 := adapter.MenuList{
|
|
|
CycleId: param.CycleId,
|
|
|
NodeName: "上级综评",
|
|
|
StatusName: "",
|
|
|
Types: "上级综评",
|
|
|
}
|
|
|
if cntSuper > 0 {
|
|
|
menu4_1.StatusName = "未完成"
|
|
|
} else {
|
|
|
menu4_1.StatusName = "已完成"
|
|
|
}
|
|
|
menu4.Child = append(menu4.Child, menu4_1)
|
|
|
menuList = append(menuList, menu4)
|
|
|
result := map[string]interface{}{
|
|
|
"menus": menuList,
|
|
|
}
|
|
|
return result, nil
|
|
|
}
|
|
|
|
|
|
// 获取综合自评详情
|
|
|
func (srv *SummaryEvaluationServeice) GetEvaluationSelf() {}
|
|
|
|
|
|
// 编辑综合自评详情
|
|
|
func (srv *SummaryEvaluationServeice) EditEvaluationSelf() {} |
...
|
...
|
|