切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
tangxvhui
2 years ago
提交
447151ca8b1ebcdd13f6b61713f11e60d8695a1f
1 个父辈
0b5b6758
修正 评估分数的计算方式
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
109 行增加
和
55 行删除
pkg/domain/summary_evaluation.go
pkg/domain/summary_evaluation_value.go
pkg/domain/summary_evaluation.go
查看文件 @
447151c
...
...
@@ -2,6 +2,7 @@ package domain
import
(
"fmt"
"strconv"
"time"
)
...
...
@@ -74,11 +75,7 @@ func (evaluation *SummaryEvaluation) EvaluationTotalScore(valueList []*SummaryEv
if
v
.
Weight
==
0
{
evaluation
.
SumRatingCode
(
v
.
Rating
.
Code
)
}
else
{
score
,
err
:=
v
.
SumScore
()
if
err
!=
nil
{
return
err
}
score
,
_
:=
strconv
.
ParseFloat
(
v
.
Score
,
64
)
totalScore
+=
score
}
}
...
...
@@ -113,10 +110,21 @@ func (evaluation *SummaryEvaluation) ResetTotalRating(param *EvaluationItemUsed)
// 增加对应评级的数量
func
(
evaluation
*
SummaryEvaluation
)
SumRatingCode
(
code
string
)
{
if
len
(
code
)
==
0
{
return
}
codeNotFound
:=
true
for
i
:=
range
evaluation
.
TotalRating
{
if
evaluation
.
TotalRating
[
i
]
.
Code
==
code
{
evaluation
.
TotalRating
[
i
]
.
Number
+=
1
codeNotFound
=
false
break
}
}
if
codeNotFound
{
evaluation
.
TotalRating
=
append
(
evaluation
.
TotalRating
,
RatingCodeNumber
{
Code
:
code
,
Number
:
1
,
})
}
}
...
...
pkg/domain/summary_evaluation_value.go
查看文件 @
447151c
package
domain
import
(
"errors"
"fmt"
"strconv"
"strings"
"time"
)
...
...
@@ -32,40 +34,40 @@ type SummaryEvaluationValueRepository interface {
// 计算周期评估
// 当指标项没有权重的时候,还是进行评级操作,不计算分数
// 分数保留2位小数
func
(
itemValue
*
SummaryEvaluationValue
)
SummaryEvaluationScore
()
error
{
//计算方式
score
,
err
:=
itemValue
.
SumScore
()
if
err
!=
nil
{
return
err
}
itemValue
.
Score
=
fmt
.
Sprintf
(
"%.2f"
,
score
)
return
nil
}
// func (itemValue *SummaryEvaluationValue) SummaryEvaluationScore() error {
// //计算方式
// score, err := itemValue.SumScore()
// if err != nil {
// return err
// }
// itemValue.Score = fmt.Sprintf("%.2f", score)
// return nil
// }
func
(
itemValue
*
SummaryEvaluationValue
)
SumScore
()
(
float64
,
error
)
{
if
len
(
itemValue
.
Value
)
==
0
{
return
0
,
nil
}
if
itemValue
.
Weight
==
0
{
//使用评级
return
0
,
nil
}
if
itemValue
.
Types
==
EvaluationHrbp
{
//hrbp 填写值就是得分
valueFloat
,
err
:=
strconv
.
ParseFloat
(
itemValue
.
Value
,
64
)
if
err
!=
nil
{
return
0
,
fmt
.
Errorf
(
"条目%d系数值异常,%s"
,
itemValue
.
Id
,
itemValue
.
Value
)
}
return
valueFloat
,
nil
}
valueFloat
,
err
:=
strconv
.
ParseFloat
(
itemValue
.
Value
,
64
)
if
err
!=
nil
{
return
0
,
fmt
.
Errorf
(
"条目%d系数值异常,%s"
,
itemValue
.
Id
,
itemValue
.
Value
)
}
//得分计算方式
score
:=
itemValue
.
Weight
*
valueFloat
return
score
,
nil
}
// func (itemValue *SummaryEvaluationValue) SumScore() (float64, error) {
// if len(itemValue.Value) == 0 {
// return 0, nil
// }
// if itemValue.Weight == 0 {
// //使用评级
// return 0, nil
// }
// if itemValue.Types == EvaluationHrbp {
// //hrbp 填写值就是得分
// valueFloat, err := strconv.ParseFloat(itemValue.Value, 64)
// if err != nil {
// return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value)
// }
// return valueFloat, nil
// }
// valueFloat, err := strconv.ParseFloat(itemValue.Value, 64)
// if err != nil {
// return 0, fmt.Errorf("条目%d系数值异常,%s", itemValue.Id, itemValue.Value)
// }
// //得分计算方式
// score := itemValue.Weight * valueFloat
// return score, nil
// }
// 初始化一个空的value
func
(
itemValue
*
SummaryEvaluationValue
)
SetBlankValue
(
evaluation
*
SummaryEvaluation
,
item
*
EvaluationItemUsed
)
{
...
...
@@ -83,25 +85,69 @@ func (itemValue *SummaryEvaluationValue) SetBlankValue(evaluation *SummaryEvalua
// 填充评估的内容
func
(
itemValue
*
SummaryEvaluationValue
)
FillValue
(
item
*
EvaluationItemUsed
,
value
string
,
remark
string
)
error
{
itemValue
.
Remark
=
remark
itemValue
.
Value
=
value
if
item
.
Weight
==
0
{
//使用评级
if
len
(
value
)
==
0
{
return
nil
}
var
ratingValue
*
RatingLevel
for
_
,
v
:=
range
item
.
Rule
.
Rating
.
Levels
{
if
v
.
Code
==
value
{
ratingValue
=
v
}
}
if
(
ratingValue
==
nil
)
&&
len
(
value
)
>
0
{
return
fmt
.
Errorf
(
"条目%d系评级值异常"
,
itemValue
.
EvaluationItemId
)
}
itemValue
.
Rating
=
*
ratingValue
return
nil
err
:=
itemValue
.
valueTypeRating
(
item
,
value
)
return
err
}
err
:=
itemValue
.
valueTypeScore
(
item
,
value
)
//使用评分的形式
err
:=
itemValue
.
SummaryEvaluationScore
()
//
err := itemValue.SummaryEvaluationScore()
return
err
}
// 填写的值是 评级
func
(
itemValue
*
SummaryEvaluationValue
)
valueTypeRating
(
item
*
EvaluationItemUsed
,
value
string
)
error
{
if
item
.
Weight
!=
0
{
return
errors
.
New
(
"评级方式错误"
)
}
itemValue
.
Value
=
value
itemValue
.
Score
=
"0"
// 使用评级
if
len
(
value
)
==
0
{
itemValue
.
Rating
=
RatingLevel
{}
return
nil
}
var
ratingValue
*
RatingLevel
for
_
,
v
:=
range
item
.
Rule
.
Rating
.
Levels
{
if
v
.
Code
==
value
{
ratingValue
=
v
}
}
if
(
ratingValue
==
nil
)
&&
len
(
value
)
>
0
{
return
fmt
.
Errorf
(
"条目%d:%s-%s系评级值异常"
,
item
.
Id
,
item
.
Category
,
item
.
Name
)
}
itemValue
.
Rating
=
*
ratingValue
return
nil
}
// 填写的值是 评分
func
(
itemValue
*
SummaryEvaluationValue
)
valueTypeScore
(
item
*
EvaluationItemUsed
,
value
string
)
error
{
if
item
.
Weight
<=
0
{
return
errors
.
New
(
"评分方式错误"
)
}
value
=
strings
.
TrimSpace
(
value
)
valueNumber
,
err
:=
strconv
.
ParseFloat
(
value
,
64
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"条目%d:%s-%s系评分值异常"
,
item
.
Id
,
item
.
Category
,
item
.
Name
)
}
itemValue
.
Value
=
value
//处理空值
if
len
(
value
)
==
0
{
itemValue
.
Score
=
"0"
return
nil
}
if
item
.
EvaluatorId
<
0
{
//hrbp 的评分方式
itemValue
.
Score
=
value
return
nil
}
else
{
// 非hrbp的评分方式
// 分数保留2位小数
score
:=
valueNumber
*
item
.
Weight
itemValue
.
Score
=
fmt
.
Sprintf
(
"%.2f"
,
score
)
}
return
nil
}
...
...
请
注册
或
登录
后发表评论