From 0a174808148c1ae8409f9d10cb4c7a5f6d8ad029 Mon Sep 17 00:00:00 2001
From: tangxvhui <you@example.com>
Date: Fri, 17 Feb 2023 11:27:35 +0800
Subject: [PATCH] 修正一些错误

---
 pkg/application/staff_assess/service/service.go               | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------
 pkg/application/summary_evaluation/adapter/evaluation_info.go |   2 ++
 pkg/application/summary_evaluation/service/service.go         |  25 ++++++++++++++++++++++---
 pkg/domain/summary_evaluation.go                              |   2 +-
 4 files changed, 125 insertions(+), 104 deletions(-)

diff --git a/pkg/application/staff_assess/service/service.go b/pkg/application/staff_assess/service/service.go
index 64cce84..85f3ba4 100644
--- a/pkg/application/staff_assess/service/service.go
+++ b/pkg/application/staff_assess/service/service.go
@@ -828,106 +828,106 @@ func (srv StaffAssessServeice) getAssessSelfInfoUncompleted(transactionContext a
 }
 
 // 选择员工评估可邀请的用户
-func (srv StaffAssessServeice) SelectAssessInviteUser(param *query.SelectAssessInviteUser) (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()
-	}()
-	//获取被评估的目标用户
-	userRepo := factory.CreateUserRepository(map[string]interface{}{
-		"transactionContext": transactionContext,
-	})
-	//获取公司信息
-	companyRepo := factory.CreateCompanyRepository(map[string]interface{}{
-		"transactionContext": transactionContext,
-	})
-	companyInfo, _ := companyRepo.FindOne(map[string]interface{}{
-		"id": param.CompanyId,
-	})
-	targetUser, err := userRepo.FindOne(map[string]interface{}{
-		"id": param.TargetUserId,
-	})
-	if err != nil {
-		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工信息"+err.Error())
-	}
-	//获取被评估的目标用户的部门
-	departmentRepo := factory.CreateDepartmentRepository(map[string]interface{}{
-		"transactionContext": transactionContext,
-	})
-	var targetUserDepartment []*domain.Department
-	if len(targetUser.DepartmentId) > 0 {
-		_, targetUserDepartment, err = departmentRepo.Find(map[string]interface{}{
-			"ids": targetUser.DepartmentId,
-		})
-		if err != nil {
-			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
-		}
-	}
-	//获取部门主管的id
-	targetUserCharge := map[int64]struct{}{}
-	for _, v := range targetUserDepartment {
-		for _, vv := range v.ChargeUserIds {
-			targetUserCharge[vv] = struct{}{}
-		}
-	}
-	//
-	targetUserDepartmentMap := map[int64]struct{}{}
-	for _, v := range targetUserDepartment {
-		targetUserDepartmentMap[v.Id] = struct{}{}
-	}
-	//查询员工数据
-	condition := map[string]interface{}{
-		"companyId": param.CompanyId,
-		"name":      param.InviteUserName,
-		"limit":     20,
-		"status":    1,
-	}
-	if param.PageSize > 0 {
-		condition["limit"] = param.PageSize
-	}
-	offset := (param.PageNumber - 1) * param.PageSize
-	if offset > 0 {
-		condition["offset"] = offset
-	}
-	cnt, userList, err := userRepo.Find(condition)
-	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())
-	}
-	listData := []adapter.SelectInviteUser{}
-	companyName := ""
-	if companyInfo != nil {
-		companyName = companyInfo.Name
-	}
-	for _, v := range userList {
-		item := adapter.SelectInviteUser{
-			UserId:      int(v.Id),
-			UserName:    v.Name,
-			CompanyName: companyName,
-			IsSupper:    false,
-			Types:       2, //默认是不同上级
-		}
-		if _, ok := targetUserCharge[v.Id]; ok {
-			item.IsSupper = true
-		}
-		for _, vv := range v.DepartmentId {
-			if _, ok := targetUserDepartmentMap[int64(vv)]; ok {
-				item.Types = 1 //设为相同上级
-				break
-			}
-		}
-		listData = append(listData, item)
-	}
-	return tool_funs.SimpleWrapGridMap(int64(cnt), listData), nil
-}
+// func (srv StaffAssessServeice) SelectAssessInviteUser(param *query.SelectAssessInviteUser) (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()
+// 	}()
+// 	//获取被评估的目标用户
+// 	userRepo := factory.CreateUserRepository(map[string]interface{}{
+// 		"transactionContext": transactionContext,
+// 	})
+// 	//获取公司信息
+// 	companyRepo := factory.CreateCompanyRepository(map[string]interface{}{
+// 		"transactionContext": transactionContext,
+// 	})
+// 	companyInfo, _ := companyRepo.FindOne(map[string]interface{}{
+// 		"id": param.CompanyId,
+// 	})
+// 	targetUser, err := userRepo.FindOne(map[string]interface{}{
+// 		"id": param.TargetUserId,
+// 	})
+// 	if err != nil {
+// 		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工信息"+err.Error())
+// 	}
+// 	//获取被评估的目标用户的部门
+// 	departmentRepo := factory.CreateDepartmentRepository(map[string]interface{}{
+// 		"transactionContext": transactionContext,
+// 	})
+// 	var targetUserDepartment []*domain.Department
+// 	if len(targetUser.DepartmentId) > 0 {
+// 		_, targetUserDepartment, err = departmentRepo.Find(map[string]interface{}{
+// 			"ids": targetUser.DepartmentId,
+// 		})
+// 		if err != nil {
+// 			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
+// 		}
+// 	}
+// 	//获取部门主管的id
+// 	targetUserCharge := map[int64]struct{}{}
+// 	for _, v := range targetUserDepartment {
+// 		for _, vv := range v.ChargeUserIds {
+// 			targetUserCharge[vv] = struct{}{}
+// 		}
+// 	}
+// 	//
+// 	targetUserDepartmentMap := map[int64]struct{}{}
+// 	for _, v := range targetUserDepartment {
+// 		targetUserDepartmentMap[v.Id] = struct{}{}
+// 	}
+// 	//查询员工数据
+// 	condition := map[string]interface{}{
+// 		"companyId": param.CompanyId,
+// 		"name":      param.InviteUserName,
+// 		"limit":     20,
+// 		"status":    1,
+// 	}
+// 	if param.PageSize > 0 {
+// 		condition["limit"] = param.PageSize
+// 	}
+// 	offset := (param.PageNumber - 1) * param.PageSize
+// 	if offset > 0 {
+// 		condition["offset"] = offset
+// 	}
+// 	cnt, userList, err := userRepo.Find(condition)
+// 	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())
+// 	}
+// 	listData := []adapter.SelectInviteUser{}
+// 	companyName := ""
+// 	if companyInfo != nil {
+// 		companyName = companyInfo.Name
+// 	}
+// 	for _, v := range userList {
+// 		item := adapter.SelectInviteUser{
+// 			UserId:      int(v.Id),
+// 			UserName:    v.Name,
+// 			CompanyName: companyName,
+// 			IsSupper:    false,
+// 			Types:       2, //默认是不同上级
+// 		}
+// 		if _, ok := targetUserCharge[v.Id]; ok {
+// 			item.IsSupper = true
+// 		}
+// 		for _, vv := range v.DepartmentId {
+// 			if _, ok := targetUserDepartmentMap[int64(vv)]; ok {
+// 				item.Types = 1 //设为相同上级
+// 				break
+// 			}
+// 		}
+// 		listData = append(listData, item)
+// 	}
+// 	return tool_funs.SimpleWrapGridMap(int64(cnt), listData), nil
+// }
 
 // 根据staffAssessId 获取评估的填写信息
 func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*adapter.AssessInfoResp, error) {
diff --git a/pkg/application/summary_evaluation/adapter/evaluation_info.go b/pkg/application/summary_evaluation/adapter/evaluation_info.go
index e058186..f53a5b9 100644
--- a/pkg/application/summary_evaluation/adapter/evaluation_info.go
+++ b/pkg/application/summary_evaluation/adapter/evaluation_info.go
@@ -32,4 +32,6 @@ type EvaluationItemAdapter struct {
 	Value            string                `json:"value"`                   //评估填写的评分
 	Score            string                `json:"score"`                   //计算的评定得分
 	Remark           string                `json:"remark"`                  //填写的内容反馈
+	//
+	//
 }
diff --git a/pkg/application/summary_evaluation/service/service.go b/pkg/application/summary_evaluation/service/service.go
index 5dd295a..c241158 100644
--- a/pkg/application/summary_evaluation/service/service.go
+++ b/pkg/application/summary_evaluation/service/service.go
@@ -416,19 +416,38 @@ func (srv *SummaryEvaluationServeice) EditEvaluationSelf(param *command.EditEval
 	for _, v := range param.EvaluationItems {
 		updatedData, ok := evaluationValueMap[v.EvaluationItemId]
 		if !ok {
-			updatedData.UpdatedAt = nowTime
-			updatedData.Value = v.Value
-			updatedData.Remark = v.Remark
+			continue
+		}
+		updatedData.UpdatedAt = nowTime
+		updatedData.Value = v.Value
+		updatedData.Remark = v.Remark
+		//计算得分
+		err = updatedData.SummaryEvaluationScore()
+		if err != nil {
+			return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
 		}
 	}
+
 	evaluationValueList := []*domain.SummaryEvaluationValue{}
 	for _, v := range evaluationValueMap {
+		//保存填写值
 		err = itemValueRepo.Save(v)
 		if err != nil {
 			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
 		}
 		evaluationValueList = append(evaluationValueList, v)
 	}
+	//计算总得分
+	err = evaluationData.EvaluationTotalScore(evaluationValueList)
+	if err != nil {
+		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
+	}
+	evaluationData.UpdatedAt = nowTime
+	//保存填写值
+	err = evaluationRepo.Save(evaluationData)
+	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())
 	}
diff --git a/pkg/domain/summary_evaluation.go b/pkg/domain/summary_evaluation.go
index d6bad0b..7fba9f6 100644
--- a/pkg/domain/summary_evaluation.go
+++ b/pkg/domain/summary_evaluation.go
@@ -71,6 +71,6 @@ func (evaluation *SummaryEvaluation) EvaluationTotalScore(valueList []*SummaryEv
 
 		totalScore += score
 	}
-	evaluation.TotalScore = fmt.Sprintf("%.2f", totalScore)
+	evaluation.TotalScore = fmt.Sprintf("%.1f", totalScore)
 	return nil
 }
--
libgit2 0.24.0