...
|
...
|
@@ -7,25 +7,32 @@ import ( |
|
|
|
|
|
// 周综合评估
|
|
|
type SummaryEvaluation struct {
|
|
|
Id int
|
|
|
CompanyId int //公司id
|
|
|
EvaluationProjectId int //对应的项目id
|
|
|
EvaluationProjectName string //对应的项目名称
|
|
|
CycleId int64 //对应的周期id
|
|
|
CycleName string //对应的周期名称
|
|
|
NodeId int //
|
|
|
TargetUser StaffDesc //被评估的目标用户,被执行的
|
|
|
TargetDepartment []StaffDepartment //被评估的目标用户所在的部门
|
|
|
Executor StaffDesc //填写评估的用户,执行人
|
|
|
Types EvaluationType //评估类型
|
|
|
Status EvaluationStatus //评估的填写状态
|
|
|
CheckResult EvaluationCheckResult //被执行的人确认评估结果
|
|
|
BeginTime time.Time //开始时间
|
|
|
EndTime time.Time //截止时间
|
|
|
TotalScore string //最终上级评估得分.
|
|
|
CreatedAt time.Time //数据创建时间
|
|
|
UpdatedAt time.Time //数据更新时间
|
|
|
DeletedAt *time.Time //数据删除时间
|
|
|
Id int `json:"id"`
|
|
|
CompanyId int `json:"companyId"` //公司id
|
|
|
EvaluationProjectId int `json:"evaluationProjectId"` //对应的项目id
|
|
|
EvaluationProjectName string `json:"evaluationProjectName"` //对应的项目名称
|
|
|
CycleId int64 `json:"cycleId"` //对应的周期id
|
|
|
CycleName string `json:"cycleName"` //对应的周期名称
|
|
|
NodeId int `json:"nodeId"` //对应的节点id
|
|
|
TargetUser StaffDesc `json:"targetUser"` //被评估的目标用户,被执行的
|
|
|
TargetDepartment []StaffDepartment `json:"targetDepartment"` //被评估的目标用户所在的部门
|
|
|
Executor StaffDesc `json:"executor"` //填写评估的用户,执行人
|
|
|
Types EvaluationType `json:"types"` //评估类型
|
|
|
Status EvaluationStatus `json:"status"` //评估的填写状态
|
|
|
CheckResult EvaluationCheckResult `json:"checkResult"` //被执行的人确认评估结果
|
|
|
BeginTime time.Time `json:"beginTime"` //开始时间
|
|
|
EndTime time.Time `json:"endTime"` //截止时间
|
|
|
TotalScore string `json:"totalScore"` //最终上级评估得分.
|
|
|
TotalRating []RatingCodeNumber `json:"totalRating"` //汇总各个评级的数量
|
|
|
CreatedAt time.Time `json:"createdAt"` //数据创建时间
|
|
|
UpdatedAt time.Time `json:"updatedAt"` //数据更新时间
|
|
|
DeletedAt *time.Time `json:"deletedAt"` //数据删除时间
|
|
|
}
|
|
|
|
|
|
// 各个评级的数量
|
|
|
type RatingCodeNumber struct {
|
|
|
Code string `json:"code"`
|
|
|
Number int `json:"number"`
|
|
|
}
|
|
|
|
|
|
type EvaluationType int //综合评估类型
|
...
|
...
|
@@ -64,13 +71,52 @@ type SummaryEvaluationRepository interface { |
|
|
func (evaluation *SummaryEvaluation) EvaluationTotalScore(valueList []*SummaryEvaluationValue) error {
|
|
|
var totalScore float64
|
|
|
for _, v := range valueList {
|
|
|
score, err := v.SumScore()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
if v.Weight == 0 {
|
|
|
evaluation.SumRatingCode(v.Rating.Code)
|
|
|
} else {
|
|
|
score, err := v.SumScore()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
totalScore += score
|
|
|
totalScore += score
|
|
|
}
|
|
|
}
|
|
|
evaluation.TotalScore = fmt.Sprintf("%.1f", totalScore)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
// 重置评级统计数量
|
|
|
func (evaluation *SummaryEvaluation) ResetTotalRating(param *EvaluationItemUsed) {
|
|
|
if param.Weight > 0 {
|
|
|
return
|
|
|
}
|
|
|
if len(evaluation.TotalRating) == 0 {
|
|
|
evaluation.TotalRating = make([]RatingCodeNumber, 0)
|
|
|
}
|
|
|
for _, v := range param.Rule.Rating.Levels {
|
|
|
isExist := false
|
|
|
for i2, v2 := range evaluation.TotalRating {
|
|
|
if v.Code == v2.Code {
|
|
|
isExist = true
|
|
|
evaluation.TotalRating[i2].Number = 0
|
|
|
}
|
|
|
}
|
|
|
if !isExist {
|
|
|
evaluation.TotalRating = append(evaluation.TotalRating, RatingCodeNumber{
|
|
|
Code: v.Code,
|
|
|
Number: 0,
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 增加对应评级的数量
|
|
|
func (evaluation *SummaryEvaluation) SumRatingCode(code string) {
|
|
|
for i := range evaluation.TotalRating {
|
|
|
if evaluation.TotalRating[i].Code == code {
|
|
|
evaluation.TotalRating[i].Number += 1
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
} |
...
|
...
|
|