正在显示
5 个修改的文件
包含
81 行增加
和
32 行删除
@@ -461,12 +461,13 @@ func (srv *SummaryEvaluationService) EditEvaluationSelf(param *command.EditEvalu | @@ -461,12 +461,13 @@ func (srv *SummaryEvaluationService) EditEvaluationSelf(param *command.EditEvalu | ||
461 | if err != nil { | 461 | if err != nil { |
462 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 462 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
463 | } | 463 | } |
464 | - | 464 | + evaluationItemMap := map[int]*domain.EvaluationItemUsed{} |
465 | evaluationValueMap := map[int]*domain.SummaryEvaluationValue{} | 465 | evaluationValueMap := map[int]*domain.SummaryEvaluationValue{} |
466 | for _, v := range itemList { | 466 | for _, v := range itemList { |
467 | newValue := &domain.SummaryEvaluationValue{} | 467 | newValue := &domain.SummaryEvaluationValue{} |
468 | newValue.SetBlankValue(evaluationData, v) | 468 | newValue.SetBlankValue(evaluationData, v) |
469 | evaluationValueMap[v.Id] = newValue | 469 | evaluationValueMap[v.Id] = newValue |
470 | + evaluationItemMap[v.Id] = v | ||
470 | } | 471 | } |
471 | for _, v := range itemValueList { | 472 | for _, v := range itemValueList { |
472 | if mValue, ok := evaluationValueMap[v.EvaluationItemId]; ok { | 473 | if mValue, ok := evaluationValueMap[v.EvaluationItemId]; ok { |
@@ -479,11 +480,13 @@ func (srv *SummaryEvaluationService) EditEvaluationSelf(param *command.EditEvalu | @@ -479,11 +480,13 @@ func (srv *SummaryEvaluationService) EditEvaluationSelf(param *command.EditEvalu | ||
479 | if !ok { | 480 | if !ok { |
480 | continue | 481 | continue |
481 | } | 482 | } |
483 | + evaluationItem, ok := evaluationItemMap[v.EvaluationItemId] | ||
484 | + if !ok { | ||
485 | + continue | ||
486 | + } | ||
482 | updatedData.UpdatedAt = nowTime | 487 | updatedData.UpdatedAt = nowTime |
483 | - updatedData.Value = v.Value | ||
484 | - updatedData.Remark = v.Remark | ||
485 | - //计算得分 | ||
486 | - err = updatedData.SummaryEvaluationScore() | 488 | + //填充评估填写值 |
489 | + err = updatedData.FillValue(evaluationItem, v.Value, v.Remark) | ||
487 | if err != nil { | 490 | if err != nil { |
488 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | 491 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) |
489 | } | 492 | } |
@@ -845,11 +848,14 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval | @@ -845,11 +848,14 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval | ||
845 | if err != nil { | 848 | if err != nil { |
846 | return nil, err | 849 | return nil, err |
847 | } | 850 | } |
851 | + evaluationItemMap := map[int]*domain.EvaluationItemUsed{} | ||
848 | evaluationValueMap := map[int]*domain.SummaryEvaluationValue{} | 852 | evaluationValueMap := map[int]*domain.SummaryEvaluationValue{} |
849 | for _, v := range itemList { | 853 | for _, v := range itemList { |
850 | newValue := &domain.SummaryEvaluationValue{} | 854 | newValue := &domain.SummaryEvaluationValue{} |
855 | + //初始一个空白的value | ||
851 | newValue.SetBlankValue(evaluationData, v) | 856 | newValue.SetBlankValue(evaluationData, v) |
852 | evaluationValueMap[v.Id] = newValue | 857 | evaluationValueMap[v.Id] = newValue |
858 | + evaluationItemMap[v.Id] = v | ||
853 | } | 859 | } |
854 | for _, v := range itemValueList { | 860 | for _, v := range itemValueList { |
855 | if mValue, ok := evaluationValueMap[v.EvaluationItemId]; ok { | 861 | if mValue, ok := evaluationValueMap[v.EvaluationItemId]; ok { |
@@ -862,18 +868,23 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval | @@ -862,18 +868,23 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval | ||
862 | if !ok { | 868 | if !ok { |
863 | continue | 869 | continue |
864 | } | 870 | } |
871 | + evaluationItem, ok := evaluationItemMap[v.EvaluationItemId] | ||
872 | + if !ok { | ||
873 | + continue | ||
874 | + } | ||
865 | if defaultValue, ok := hrbpOr360ItemValue[v.EvaluationItemId]; ok { | 875 | if defaultValue, ok := hrbpOr360ItemValue[v.EvaluationItemId]; ok { |
866 | - updatedData.Value = defaultValue.Value | 876 | + //填充值 |
877 | + err = updatedData.FillValue(evaluationItem, defaultValue.Value, v.Remark) | ||
878 | + if err != nil { | ||
879 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
880 | + } | ||
867 | } else { | 881 | } else { |
868 | - updatedData.Value = v.Value | 882 | + err = updatedData.FillValue(evaluationItem, v.Value, v.Remark) |
883 | + if err != nil { | ||
884 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
885 | + } | ||
869 | } | 886 | } |
870 | updatedData.UpdatedAt = nowTime | 887 | updatedData.UpdatedAt = nowTime |
871 | - updatedData.Remark = v.Remark | ||
872 | - //计算得分 | ||
873 | - err = updatedData.SummaryEvaluationScore() | ||
874 | - if err != nil { | ||
875 | - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
876 | - } | ||
877 | } | 888 | } |
878 | evaluationValueList := []*domain.SummaryEvaluationValue{} | 889 | evaluationValueList := []*domain.SummaryEvaluationValue{} |
879 | for _, v := range evaluationValueMap { | 890 | for _, v := range evaluationValueMap { |
@@ -16,6 +16,7 @@ type SummaryEvaluationValue struct { | @@ -16,6 +16,7 @@ type SummaryEvaluationValue struct { | ||
16 | Types EvaluationType `json:"types"` //评估类型 | 16 | Types EvaluationType `json:"types"` //评估类型 |
17 | Remark string `json:"remark"` //填写的内容反馈 | 17 | Remark string `json:"remark"` //填写的内容反馈 |
18 | Weight float64 `json:"weight"` //"权重" | 18 | Weight float64 `json:"weight"` //"权重" |
19 | + Rating RatingLevel `json:"rating" ` //评级时的填写值 | ||
19 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 | 20 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 |
20 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 | 21 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 |
21 | DeletedAt *time.Time `json:"deletedAt"` //数据删除时间 | 22 | DeletedAt *time.Time `json:"deletedAt"` //数据删除时间 |
@@ -45,35 +46,62 @@ func (itemValue *SummaryEvaluationValue) SumScore() (float64, error) { | @@ -45,35 +46,62 @@ func (itemValue *SummaryEvaluationValue) SumScore() (float64, error) { | ||
45 | if len(itemValue.Value) == 0 { | 46 | if len(itemValue.Value) == 0 { |
46 | return 0, nil | 47 | return 0, nil |
47 | } | 48 | } |
49 | + if itemValue.Weight == 0 { | ||
50 | + //使用评级 | ||
51 | + return 0, nil | ||
52 | + } | ||
48 | if itemValue.Types == EvaluationHrbp { | 53 | if itemValue.Types == EvaluationHrbp { |
54 | + //hrbp 填写值就是得分 | ||
49 | valueFloat, err := strconv.ParseFloat(itemValue.Value, 64) | 55 | valueFloat, err := strconv.ParseFloat(itemValue.Value, 64) |
50 | if err != nil { | 56 | if err != nil { |
51 | return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value) | 57 | return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value) |
52 | } | 58 | } |
53 | return valueFloat, nil | 59 | return valueFloat, nil |
54 | } | 60 | } |
55 | - | ||
56 | - if itemValue.Weight == 0 { | ||
57 | - return 0, nil | ||
58 | - } | ||
59 | valueFloat, err := strconv.ParseFloat(itemValue.Value, 64) | 61 | valueFloat, err := strconv.ParseFloat(itemValue.Value, 64) |
60 | if err != nil { | 62 | if err != nil { |
61 | return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value) | 63 | return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value) |
62 | } | 64 | } |
63 | - //计算方式 | 65 | + //得分计算方式 |
64 | score := itemValue.Weight * valueFloat | 66 | score := itemValue.Weight * valueFloat |
65 | return score, nil | 67 | return score, nil |
66 | } | 68 | } |
67 | 69 | ||
68 | // 初始化一个空的value | 70 | // 初始化一个空的value |
69 | func (itemValue *SummaryEvaluationValue) SetBlankValue(evaluation *SummaryEvaluation, item *EvaluationItemUsed) { | 71 | func (itemValue *SummaryEvaluationValue) SetBlankValue(evaluation *SummaryEvaluation, item *EvaluationItemUsed) { |
72 | + itemValue.Types = evaluation.Types | ||
70 | itemValue.EvaluationItemId = item.Id | 73 | itemValue.EvaluationItemId = item.Id |
71 | itemValue.SummaryEvaluationId = evaluation.Id | 74 | itemValue.SummaryEvaluationId = evaluation.Id |
72 | itemValue.Value = "" | 75 | itemValue.Value = "" |
73 | itemValue.Score = "" | 76 | itemValue.Score = "" |
74 | itemValue.Remark = "" | 77 | itemValue.Remark = "" |
75 | - itemValue.Types = evaluation.Types | ||
76 | itemValue.Weight = item.Weight | 78 | itemValue.Weight = item.Weight |
77 | itemValue.CreatedAt = time.Now() | 79 | itemValue.CreatedAt = time.Now() |
78 | itemValue.UpdatedAt = time.Now() | 80 | itemValue.UpdatedAt = time.Now() |
79 | } | 81 | } |
82 | + | ||
83 | +// 填充评估的内容 | ||
84 | +func (itemValue *SummaryEvaluationValue) FillValue(item *EvaluationItemUsed, value string, remark string) error { | ||
85 | + itemValue.Remark = remark | ||
86 | + itemValue.Value = value | ||
87 | + if item.Weight == 0 { | ||
88 | + //使用评级 | ||
89 | + if len(value) == 0 { | ||
90 | + return nil | ||
91 | + } | ||
92 | + var ratingValue *RatingLevel | ||
93 | + for _, v := range item.Rule.Rating.Levels { | ||
94 | + if v.Code == value { | ||
95 | + ratingValue = v | ||
96 | + } | ||
97 | + } | ||
98 | + if (ratingValue == nil) && len(value) > 0 { | ||
99 | + return fmt.Errorf("条目%d系评级值异常", itemValue.EvaluationItemId) | ||
100 | + } | ||
101 | + itemValue.Rating = *ratingValue | ||
102 | + return nil | ||
103 | + } | ||
104 | + //使用评分的形式 | ||
105 | + err := itemValue.SummaryEvaluationScore() | ||
106 | + return err | ||
107 | +} |
@@ -1210,7 +1210,7 @@ from staff_assess_content | @@ -1210,7 +1210,7 @@ from staff_assess_content | ||
1210 | join staff_assess on staff_assess_content.staff_assess_id = staff_assess.id | 1210 | join staff_assess on staff_assess_content.staff_assess_id = staff_assess.id |
1211 | where 1=1 and staff_assess.deleted_at isnull | 1211 | where 1=1 and staff_assess.deleted_at isnull |
1212 | and target_user ->>'userId'='?' | 1212 | and target_user ->>'userId'='?' |
1213 | -and staff_assess."types" = '?' | 1213 | +and staff_assess."types" = ? |
1214 | and staff_assess_content.level_value notnull | 1214 | and staff_assess_content.level_value notnull |
1215 | and staff_assess.cycle_id =? | 1215 | and staff_assess.cycle_id =? |
1216 | group by level_value,category,"name" ` | 1216 | group by level_value,category,"name" ` |
1 | package models | 1 | package models |
2 | 2 | ||
3 | -import "time" | 3 | +import ( |
4 | + "time" | ||
5 | + | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
7 | +) | ||
4 | 8 | ||
5 | // 周期综合评估填写的内容 | 9 | // 周期综合评估填写的内容 |
6 | type SummaryEvaluationValue struct { | 10 | type SummaryEvaluationValue struct { |
7 | - tableName struct{} `comment:"周期综合评估填写的内容" pg:"summary_evaluation_value"` | ||
8 | - Id int // | ||
9 | - EvaluationItemId int //评估条目的id | ||
10 | - SummaryEvaluationId int //综合评估任务(SummaryEvaluation)的id | ||
11 | - Value string //评估填写的评分 | ||
12 | - Score string //评定得分 | ||
13 | - Types int //评估类型 | ||
14 | - Remark string //填写的内容反馈 | ||
15 | - CreatedAt time.Time //数据创建时间 | ||
16 | - UpdatedAt time.Time //数据更新时间 | ||
17 | - DeletedAt *time.Time //数据删除时间 | 11 | + tableName struct{} `comment:"周期综合评估填写的内容" pg:"summary_evaluation_value"` |
12 | + Id int // | ||
13 | + EvaluationItemId int //评估条目的id | ||
14 | + SummaryEvaluationId int //综合评估任务(SummaryEvaluation)的id | ||
15 | + Value string //评估填写的评分 | ||
16 | + Score string //评定得分 | ||
17 | + Types int //评估类型 | ||
18 | + Weight float64 //权重 | ||
19 | + Rating domain.RatingLevel //评级填写值 | ||
20 | + Remark string //填写的内容反馈 | ||
21 | + CreatedAt time.Time //数据创建时间 | ||
22 | + UpdatedAt time.Time //数据更新时间 | ||
23 | + DeletedAt *time.Time //数据删除时间 | ||
18 | } | 24 | } |
@@ -30,6 +30,8 @@ func (repo *SummaryEvaluationValueRepository) TransformToDomain(d *models.Summar | @@ -30,6 +30,8 @@ func (repo *SummaryEvaluationValueRepository) TransformToDomain(d *models.Summar | ||
30 | Score: d.Score, | 30 | Score: d.Score, |
31 | Types: domain.EvaluationType(d.Types), | 31 | Types: domain.EvaluationType(d.Types), |
32 | Remark: d.Remark, | 32 | Remark: d.Remark, |
33 | + Weight: d.Weight, | ||
34 | + Rating: d.Rating, | ||
33 | CreatedAt: d.CreatedAt, | 35 | CreatedAt: d.CreatedAt, |
34 | UpdatedAt: d.UpdatedAt, | 36 | UpdatedAt: d.UpdatedAt, |
35 | DeletedAt: d.DeletedAt, | 37 | DeletedAt: d.DeletedAt, |
@@ -44,6 +46,8 @@ func (repo *SummaryEvaluationValueRepository) Save(param *domain.SummaryEvaluati | @@ -44,6 +46,8 @@ func (repo *SummaryEvaluationValueRepository) Save(param *domain.SummaryEvaluati | ||
44 | Value: param.Value, | 46 | Value: param.Value, |
45 | Score: param.Score, | 47 | Score: param.Score, |
46 | Types: int(param.Types), | 48 | Types: int(param.Types), |
49 | + Weight: param.Weight, | ||
50 | + Rating: param.Rating, | ||
47 | Remark: param.Remark, | 51 | Remark: param.Remark, |
48 | CreatedAt: param.CreatedAt, | 52 | CreatedAt: param.CreatedAt, |
49 | UpdatedAt: param.UpdatedAt, | 53 | UpdatedAt: param.UpdatedAt, |
-
请 注册 或 登录 后发表评论