行政高层 行政中层 行政工勤 计算调整

parent c32cdc96
......@@ -126,7 +126,7 @@ public class ComputeResult
public Nullable<decimal> OtherPerfor { get; set; }
/// <summary>
/// 应发绩效 考核(需计算)
/// 应发绩效 考核(需计算)
/// </summary>
public Nullable<decimal> GiveFee { get; set; }
......
......@@ -387,7 +387,6 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
OtherManagePerfor = empolyee.OtherManagePerfor ?? 0,
Number = resAccount.Number,
PerforTotal = resAccount.PerforTotal,
Avg = avg * (empolyee.Basics ?? 0) * (empolyee.Attendance ?? 0),
Efficiency = effAvg * (empolyee.Efficiency ?? 0),
Scale = resAccount.PerforTotal * (empolyee.Scale ?? 0),
Adjust = (isBudget ? adjust : empolyee.Adjust) ?? 1m,
......@@ -404,21 +403,29 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
.FirstOrDefault(w => w.AccountingUnit == empolyee.AccountingUnit && w.UnitType == empolyee.UnitType
&& w.JobNumber == empolyee.JobNumber && w.EmployeeName == empolyee.DoctorName)?.TotelValue;
compute.Avg = avg * (empolyee.Basics ?? 0) * compute.Attendance;
compute.Punishment = extra ?? 0;
// 考核前管理绩效
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 = Math.Round((compute.Avg * (empolyee.Basics ?? 0)) + compute.ShouldGiveFee + compute.AssessBeforeOtherFee ?? 0);
//应发绩效
//compute.GiveFee = compute.PerforSumFee;
compute.GiveFee = Math.Round(compute.PerforSumFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment + compute.OtherPerfor + compute.AssessLaterOtherFee ?? 0);
//实发绩效
//compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate * (compute.Attendance ?? 0) + (compute.Punishment ?? 0) + (compute.OtherPerfor ?? 0)) * (compute.Adjust ?? 1m);
compute.RealGiveFee = Math.Round(compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
// 考核前绩效
compute.PerforSumFee = compute.Attendance == 0 ? Math.Round(compute.ShouldGiveFee ?? 0) : Math.Round(compute.Avg / compute.Attendance + compute.ShouldGiveFee ?? 0);
// 参考基数专用绩效合计
compute.BaiscNormPerforTotal = compute.PerforSumFee;
// 实发绩效
compute.RealGiveFee = Math.Round((compute.Avg + compute.AssessLaterManagementFee) * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
////绩效合计
//compute.PerforSumFee = Math.Round((compute.Avg * (empolyee.Basics ?? 0)) + compute.ShouldGiveFee + compute.AssessBeforeOtherFee ?? 0);
////应发绩效
////compute.GiveFee = compute.PerforSumFee;
//compute.GiveFee = Math.Round(compute.PerforSumFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment + compute.OtherPerfor + compute.AssessLaterOtherFee ?? 0);
////实发绩效
////compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate * (compute.Attendance ?? 0) + (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);
}
......@@ -496,31 +503,46 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
compute.FitPeopleValue = baiscnorm;
}
}
// 行政高层 行政中层 夜班费
if (AccountUnitType.行政高层.ToString() == involve || AccountUnitType.行政中层.ToString() == involve)
compute.NightWorkPerfor = item.NightWorkPerfor;
//添加参数计算
compute.BaiscNormValue = baiscnorm * (item.FitPeopleRatio ?? 0);
//绩效合计
compute.PerforTotal = compute.BaiscNormValue * compute.PostCoefficient * compute.Attendance;
// 行政高层 行政中层 考核前其他绩效
if (AccountUnitType.行政高层.ToString() == involve || AccountUnitType.行政中层.ToString() == involve)
compute.PerforTotal = compute.PerforTotal + compute.AssessBeforeOtherFee;
//应发绩效
compute.GiveFee = compute.BaiscNormValue * compute.PostCoefficient * compute.Attendance + compute.Punishment;
// 行政中高层 不需要其他绩效 行政工勤 不需要考核得分率 区分开计算
if (AccountUnitType.行政工勤.ToString() == involve)
compute.GiveFee = Math.Round(compute.GiveFee + compute.OtherPerfor ?? 0);
else
compute.GiveFee = Math.Round((compute.GiveFee * compute.ScoreAverageRate + compute.AssessLaterOtherFee) ?? 0);
//实发绩效
compute.RealGiveFee = Math.Round((compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee) ?? 0);
{
// 行政高层 行政中层 夜班费
compute.NightWorkPerfor = item.NightWorkPerfor;
//考核前绩效
compute.PerforTotal = Math.Round(compute.BaiscNormValue * compute.PostCoefficient * compute.Attendance + compute.AssessBeforeOtherFee ?? 0);
//考核后绩效
compute.GiveFee = Math.Round(compute.PerforTotal * compute.ScoreAverageRate + compute.Punishment ?? 0);
//实发绩效
compute.RealGiveFee = Math.Round((compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee) ?? 0);
}
else if (AccountUnitType.行政工勤.ToString() == involve)
{
//考核前绩效
compute.PerforTotal = Math.Round(compute.BaiscNormValue * compute.PostCoefficient * compute.Attendance + compute.OtherPerfor ?? 0);
//考核后绩效 没什么用也不显示
compute.GiveFee = compute.PerforTotal * compute.ScoreAverageRate;
//实发绩效 没什么用也不显示
compute.RealGiveFee = Math.Round(compute.GiveFee * compute.Adjust ?? 0);
}
computeList.Add(compute);
//// 行政高层 行政中层 夜班费
//if (AccountUnitType.行政高层.ToString() == involve || AccountUnitType.行政中层.ToString() == involve)
// compute.NightWorkPerfor = item.NightWorkPerfor;
//// 行政高层 行政中层 考核前其他绩效
//if (AccountUnitType.行政高层.ToString() == involve || AccountUnitType.行政中层.ToString() == involve)
// compute.PerforTotal = compute.PerforTotal + compute.AssessBeforeOtherFee;
////考核后绩效
//compute.GiveFee = compute.BaiscNormValue * compute.PostCoefficient * compute.Attendance + compute.Punishment;
//// 行政中高层 不需要其他绩效 行政工勤 不需要考核得分率 区分开计算
//if (AccountUnitType.行政工勤.ToString() == involve)
// compute.GiveFee = Math.Round(compute.GiveFee + compute.OtherPerfor ?? 0);
//else
// compute.GiveFee = Math.Round((compute.GiveFee * compute.ScoreAverageRate + compute.AssessLaterOtherFee) ?? 0);
////实发绩效
//compute.RealGiveFee = Math.Round((compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee) ?? 0);
//computeList.Add(compute);
}
}
......
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