切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
tangxvhui
2 years ago
提交
2af380ae94c0aa3fc772210ff1e749602145b000
1 个父辈
c0a3fff5
处理绩效评估的填写值
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
32 行增加
和
16 行删除
pkg/application/staff_assess/service/service.go
pkg/domain/evaluation_rule.go
pkg/application/staff_assess/service/service.go
查看文件 @
2af380a
...
...
@@ -1694,6 +1694,12 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma
continue
}
v
.
Value
=
item
.
Value
//填入评估值描述
reteResult
,
err
:=
v
.
Rule
.
ScoreOrRating
(
&
v
.
Value
)
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
BUSINESS_ERROR
,
err
.
Error
())
}
v
.
ReteResult
=
reteResult
for
ii
:=
range
v
.
Remark
{
for
_
,
vvv
:=
range
item
.
Remark
{
if
v
.
Remark
[
ii
]
.
Title
==
vvv
.
Title
{
...
...
@@ -1702,6 +1708,7 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma
}
}
}
}
//保存信息
...
...
pkg/domain/evaluation_rule.go
查看文件 @
2af380a
...
...
@@ -2,6 +2,8 @@ package domain
import
(
"errors"
"fmt"
"strconv"
"time"
)
...
...
@@ -56,9 +58,9 @@ type EvaluationRule struct {
DeletedAt
*
time
.
Time
`json:"deletedAt" comment:"删除时间"`
}
//根据评估填写的值,得出等级名称,
//如果 评估方式是评分,对评估填写的值 的小数点进行处理
//value 根据评估填写的值
// 根据评估填写的值,得出等级名称
// 如果 评估方式是评分,对评估填写的值的小数点后的位数进行处理,
// value 根据评估填写的值
func
(
rule
*
EvaluationRule
)
ScoreOrRating
(
value
*
string
)
(
string
,
error
)
{
switch
rule
.
Type
{
case
EvaluationTypeRating
:
...
...
@@ -71,20 +73,27 @@ func (rule *EvaluationRule) ScoreOrRating(value *string) (string, error) {
//根据评估填写的值,得出等级名称,
func
(
rule
*
EvaluationRule
)
ScoreValue
(
value
*
string
)
(
string
,
error
)
{
// valueFloat, err := strconv.ParseFloat(*value, 64)
// if err != nil {
// return "", errors.New("评分填写的值错误")
// }
// if valueFloat < rule.Score.Min || valueFloat > rule.Score.Max {
// return "", errors.New("评分填写的值超出限制")
// }
valueFloat
,
err
:=
strconv
.
ParseFloat
(
*
value
,
64
)
if
err
!=
nil
{
return
""
,
errors
.
New
(
"评分填写的值错误"
)
}
if
valueFloat
<
rule
.
Score
.
Min
||
valueFloat
>
rule
.
Score
.
Max
{
return
""
,
fmt
.
Errorf
(
"评分填写的值超出限制,>=%f且<=%f"
,
rule
.
Score
.
Min
,
rule
.
Score
.
Max
)
}
//保留小数处理
fStr
:=
fmt
.
Sprintf
(
"%%.%df"
,
rule
.
Score
.
DecimalPlaces
)
valueStr
:=
fmt
.
Sprintf
(
fStr
,
valueFloat
)
*
value
=
valueStr
if
rule
.
Score
.
IntervalState
==
0
{
// 未开启按分数子区间匹配等级
return
""
,
nil
}
valueDescrip
:=
""
// for _, v := range rule.Score.Levels {
// if valueFloat >= v.Start && valueFloat <= v.End {
// valueDescrip = v.Name
// }
// }
for
_
,
v
:=
range
rule
.
Score
.
Levels
{
if
valueFloat
>=
v
.
Start
&&
valueFloat
<=
v
.
End
{
valueDescrip
=
v
.
Name
}
}
return
valueDescrip
,
nil
}
...
...
请
注册
或
登录
后发表评论