Merge branch 'test' of http://gitlab.fjmaimaimai.com/allied-creation/performance into test
正在显示
1 个修改的文件
包含
69 行增加
和
59 行删除
@@ -1371,85 +1371,95 @@ func (srv *SummaryEvaluationService) ConfirmScoreEvaluation(param *command.Confi | @@ -1371,85 +1371,95 @@ func (srv *SummaryEvaluationService) ConfirmScoreEvaluation(param *command.Confi | ||
1371 | return application.ThrowError(application.TRANSACTION_ERROR, "前面流程暂未完成提交评估内容") | 1371 | return application.ThrowError(application.TRANSACTION_ERROR, "前面流程暂未完成提交评估内容") |
1372 | } | 1372 | } |
1373 | 1373 | ||
1374 | - _, evaluationList, err := evaluationRepo.Find(map[string]interface{}{ | ||
1375 | - "companyId": result.CompanyId, | ||
1376 | - "cycleId": result.CycleId, | ||
1377 | - "targetUserId": result.TargetUser.UserId, | ||
1378 | - }) | ||
1379 | - if err != nil { | ||
1380 | - return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1381 | - } | ||
1382 | - | ||
1383 | - var super *domain.SummaryEvaluation // 上级评估 | ||
1384 | - for i := range evaluationList { | ||
1385 | - it := evaluationList[i] | ||
1386 | - if it.Types == domain.EvaluationSuper { | ||
1387 | - super = it | ||
1388 | - break | ||
1389 | - } | ||
1390 | - } | ||
1391 | - | ||
1392 | - // 评估内容和值 | ||
1393 | - var itemList []*domain.EvaluationItemUsed | ||
1394 | - var itemValues []*domain.SummaryEvaluationValue | ||
1395 | - | ||
1396 | - // 获取自评模板内容 | ||
1397 | - _, itemList, err = evaluationItemRepo.Find(map[string]interface{}{"evaluationProjectId": result.EvaluationProjectId, "nodeType": domain.LinkNodeSelfAssessment}) | 1374 | + // 按评估项优先级顺序(已确认考核结果 ->上级评估 ->HR或360评估或自评) |
1375 | + _, itemValues, err := itemValueRepo.Find(map[string]interface{}{"summaryEvaluationId": result.Id, "limit": 1}) | ||
1398 | if err != nil { | 1376 | if err != nil { |
1399 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1377 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1400 | } | 1378 | } |
1401 | - | ||
1402 | - // 按评估项优先级顺序(已确认考核结果 ->上级评估 ->HR或360评估或自评) | ||
1403 | - if super != nil { | ||
1404 | - _, itemValues, err = itemValueRepo.Find(map[string]interface{}{"summaryEvaluationId": super.Id}) // 获取已填写的评估内容 | ||
1405 | - if err != nil { | ||
1406 | - return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1407 | - } | ||
1408 | - // 更新填写值 | ||
1409 | - itemValues, err = srv.updateItemValuePriority(result, itemList, itemValues, true) | 1379 | + // 如果已经存在考核结果分数,不再进行分数计算(如.超管多次修改员工多次确认) |
1380 | + if len(itemValues) > 0 { | ||
1381 | + // do nothing... | ||
1382 | + } else { | ||
1383 | + // 周期内所有评估类型 | ||
1384 | + _, evaluationList, err := evaluationRepo.Find(map[string]interface{}{ | ||
1385 | + "companyId": result.CompanyId, | ||
1386 | + "cycleId": result.CycleId, | ||
1387 | + "targetUserId": result.TargetUser.UserId, | ||
1388 | + }) | ||
1410 | if err != nil { | 1389 | if err != nil { |
1411 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1390 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1412 | } | 1391 | } |
1413 | - } else { | ||
1414 | - // 评估项ID(除考核结果和上级) | ||
1415 | - var evaluationIds = make([]int, 0) | 1392 | + |
1393 | + var super *domain.SummaryEvaluation // 上级评估 | ||
1416 | for i := range evaluationList { | 1394 | for i := range evaluationList { |
1417 | it := evaluationList[i] | 1395 | it := evaluationList[i] |
1418 | - if it.Types == domain.EvaluationSelf || it.Types == domain.Evaluation360 || it.Types == domain.EvaluationHrbp { | ||
1419 | - evaluationIds = append(evaluationIds, it.Id) | 1396 | + if it.Types == domain.EvaluationSuper { |
1397 | + super = it | ||
1398 | + break | ||
1420 | } | 1399 | } |
1421 | } | 1400 | } |
1422 | - if len(evaluationIds) > 0 { | ||
1423 | - // 获取已填写的评估内容 | ||
1424 | - _, itemValues, err = itemValueRepo.Find(map[string]interface{}{"summaryEvaluationIdList": evaluationIds}) | 1401 | + |
1402 | + // 评估内容和值 | ||
1403 | + var itemList []*domain.EvaluationItemUsed | ||
1404 | + var itemValues []*domain.SummaryEvaluationValue | ||
1405 | + | ||
1406 | + // 获取自评模板 | ||
1407 | + _, itemList, err = evaluationItemRepo.Find(map[string]interface{}{"evaluationProjectId": result.EvaluationProjectId, "nodeType": domain.LinkNodeSelfAssessment}) | ||
1408 | + if err != nil { | ||
1409 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1410 | + } | ||
1411 | + | ||
1412 | + if super != nil { | ||
1413 | + _, itemValues, err = itemValueRepo.Find(map[string]interface{}{"summaryEvaluationId": super.Id}) // 获取已填写的评估内容 | ||
1425 | if err != nil { | 1414 | if err != nil { |
1426 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1415 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1427 | } | 1416 | } |
1428 | - | ||
1429 | // 更新填写值 | 1417 | // 更新填写值 |
1430 | - itemValues, err = srv.updateItemValuePriority(result, itemList, itemValues, false) | 1418 | + itemValues, err = srv.updateItemValuePriority(result, itemList, itemValues, true) |
1431 | if err != nil { | 1419 | if err != nil { |
1432 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1420 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1433 | } | 1421 | } |
1422 | + } else { | ||
1423 | + // 评估项ID(除考核结果和上级) | ||
1424 | + var evaluationIds = make([]int, 0) | ||
1425 | + for i := range evaluationList { | ||
1426 | + it := evaluationList[i] | ||
1427 | + if it.Types == domain.EvaluationSelf || it.Types == domain.Evaluation360 || it.Types == domain.EvaluationHrbp { | ||
1428 | + evaluationIds = append(evaluationIds, it.Id) | ||
1429 | + } | ||
1430 | + } | ||
1431 | + if len(evaluationIds) > 0 { | ||
1432 | + // 已填写的评估内容 | ||
1433 | + _, itemValues, err = itemValueRepo.Find(map[string]interface{}{"summaryEvaluationIdList": evaluationIds}) | ||
1434 | + if err != nil { | ||
1435 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1436 | + } | ||
1437 | + | ||
1438 | + // 更新填写值 | ||
1439 | + itemValues, err = srv.updateItemValuePriority(result, itemList, itemValues, false) | ||
1440 | + if err != nil { | ||
1441 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1442 | + } | ||
1443 | + } | ||
1434 | } | 1444 | } |
1435 | - } | ||
1436 | - err = itemValueRepo.RemoveBySummaryEvaluationId(result.Id) | ||
1437 | - if err != nil { | ||
1438 | - return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1439 | - } | ||
1440 | - for i := range itemValues { | ||
1441 | - if err := itemValueRepo.Save(itemValues[i]); err != nil { | 1445 | + err = itemValueRepo.RemoveBySummaryEvaluationId(result.Id) |
1446 | + if err != nil { | ||
1442 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 1447 | return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
1443 | } | 1448 | } |
1444 | - } | ||
1445 | - //重置评级汇总 | ||
1446 | - result.TotalRating = nil | ||
1447 | - for i := range itemList { | ||
1448 | - result.ResetTotalRating(itemList[i]) | ||
1449 | - } | ||
1450 | - //重新计算总分 | ||
1451 | - if err := result.EvaluationTotalScore(itemValues); err != nil { | ||
1452 | - return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 1449 | + for i := range itemValues { |
1450 | + if err := itemValueRepo.Save(itemValues[i]); err != nil { | ||
1451 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
1452 | + } | ||
1453 | + } | ||
1454 | + // 重置评级汇总 | ||
1455 | + result.TotalRating = nil | ||
1456 | + for i := range itemList { | ||
1457 | + result.ResetTotalRating(itemList[i]) | ||
1458 | + } | ||
1459 | + // 计算分数 | ||
1460 | + if err := result.EvaluationTotalScore(itemValues); err != nil { | ||
1461 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
1462 | + } | ||
1453 | } | 1463 | } |
1454 | 1464 | ||
1455 | result.CheckResult = domain.EvaluationCheckCompleted | 1465 | result.CheckResult = domain.EvaluationCheckCompleted |
-
请 注册 或 登录 后发表评论