考核后绩效、特殊科室绩效

parent f08504de
......@@ -226,7 +226,7 @@ public class ResultComputeService : IAutoInjection
&& (!string.IsNullOrEmpty(w.EmployeeName) || !string.IsNullOrEmpty(w.JobNumber)))
.FirstOrDefault(w => w.AccountingUnit == empolyee.AccountingUnit && w.UnitType == empolyee.UnitType
&& w.JobNumber == empolyee.JobNumber && w.EmployeeName == empolyee.DoctorName)?.TotelValue;
var avg = (group.Number == 0 ? 0 : (sumValue / group.Number));
var empolyeeAdjust = isBudget ? adjust : empolyee.Adjust;
var compute = new ComputeResult
{
......@@ -244,29 +244,45 @@ public class ResultComputeService : IAutoInjection
OtherManagePerfor = empolyee.OtherManagePerfor,
Number = group.Number,
PerforTotal = sumValue,
Avg = group.Number == 0 ? 0 : (sumValue / group.Number),
//Avg = group.Number == 0 ? 0 : (sumValue / group.Number),
Adjust = empolyeeAdjust ?? 1m,
Grant = isBudget ? grant : empolyee.Management,
Attendance = empolyee.Attendance ?? 0,
AssessBeforeOtherFee = empolyee?.AssessBeforeOtherFee ?? 0,
AssessLaterOtherFee = empolyee?.AssessLaterOtherFee ?? 0,
AdjustLaterOtherFee = empolyee?.AdjustLaterOtherFee ?? 0,
Efficiency = avg * (empolyee.Efficiency ?? 0),
Scale = sumValue * (empolyee.Scale ?? 0),
};
compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1);
compute.Scale = compute.PerforTotal * (empolyee.Scale ?? 1);
//应发管理绩效
compute.ShouldGiveFee = Math.Round((compute.Efficiency + compute.Scale) * compute.Grant ?? 0);
//绩效合计
compute.PerforSumFee = Math.Round(compute.Avg + compute.ShouldGiveFee + compute.AssessBeforeOtherFee ?? 0);
//应发绩效
//compute.GiveFee = compute.PerforSumFee;
compute.GiveFee = Math.Round(compute.PerforSumFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment + compute.AssessLaterOtherFee ?? 0);
//实发绩效
//compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate + (compute.Punishment ?? 0) + (compute.OtherPerfor ?? 0)) * (compute.Adjust ?? 1m);
compute.RealGiveFee = Math.Round(compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
compute.Avg = (group.Number == 0 ? 0 : (sumValue / group.Number)) * (empolyee.Basics ?? 0) * compute.Attendance;
// 考核前管理绩效
compute.ShouldGiveFee = Math.Round((compute.Efficiency + compute.Scale) * compute.Grant + compute.OtherManagePerfor ?? 0);
// 考核后管理绩效
compute.AssessLaterManagementFee = Math.Round(compute.ShouldGiveFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment ?? 0);
// 考核前绩效
compute.PerforSumFee = compute.Attendance == 0 ? Math.Round(compute.ShouldGiveFee ?? 0) : Math.Round(compute.Avg / compute.Attendance + compute.ShouldGiveFee ?? 0);
// 考核后绩效
compute.GiveFee = Math.Round(compute.Avg + compute.AssessLaterManagementFee ?? 0);
// 参考基数专用绩效合计
compute.BaiscNormPerforTotal = compute.PerforSumFee;
// 实发绩效
compute.RealGiveFee = Math.Round((compute.Avg + compute.AssessLaterManagementFee) * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
//compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1);
//compute.Scale = compute.PerforTotal * (empolyee.Scale ?? 1);
////应发管理绩效
//compute.ShouldGiveFee = Math.Round((compute.Efficiency + compute.Scale) * compute.Grant ?? 0);
////绩效合计
//compute.PerforSumFee = Math.Round(compute.Avg + compute.ShouldGiveFee + compute.AssessBeforeOtherFee ?? 0);
////应发绩效
////compute.GiveFee = compute.PerforSumFee;
//compute.GiveFee = Math.Round(compute.PerforSumFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment + compute.AssessLaterOtherFee ?? 0);
////实发绩效
////compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate + (compute.Punishment ?? 0) + (compute.OtherPerfor ?? 0)) * (compute.Adjust ?? 1m);
//compute.RealGiveFee = Math.Round(compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
//// 参考基数专用绩效合计
//compute.BaiscNormPerforTotal = compute.PerforSumFee;
computeList.Add(compute);
}
......
......@@ -411,6 +411,8 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
compute.AssessLaterManagementFee = Math.Round(compute.ShouldGiveFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment ?? 0);
// 考核前绩效
compute.PerforSumFee = compute.Attendance == 0 ? Math.Round(compute.ShouldGiveFee ?? 0) : Math.Round(compute.Avg / compute.Attendance + compute.ShouldGiveFee ?? 0);
// 考核后绩效
compute.GiveFee = Math.Round(compute.Avg + compute.AssessLaterManagementFee ?? 0);
// 参考基数专用绩效合计
compute.BaiscNormPerforTotal = compute.PerforSumFee;
// 实发绩效
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment