Commit 4f79fa32 by lcx

二次分配,行政科室工作量绩效带出应发绩效

parent 19801009
......@@ -567,7 +567,6 @@ private void SupplyHeaderByWorkItem(int hospitalId, SecondResponse result, ag_se
public List<ag_othersource> GetOtherTempDetails(int userId, int secondId, int isArchive, int employeeSource)
{
var secondAllot = agsecondallotRepository.GetEntity(t => t.Id == secondId);
if (secondAllot == null) throw new PerformanceException("二次绩效信息无效!");
......@@ -670,38 +669,22 @@ public List<ag_othersource> GetOtherTempDetails(int userId, int secondId, int is
/// <param name="isTitlePerformance">是否补全职称绩效</param>
private void SupplementSecondDetail(ag_secondallot second, List<per_employee> employees, List<ag_othersource> result, bool isTitlePerformance = true)
{
//if (employees == null || !employees.Any(t => t.UnitType == second.UnitType))
// return;
// 补充医院其他绩效 及 预留比例
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3);
Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts
?.Where(w => w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.Amount) : 0;
var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId && employees.Select(s => s.PersonnelNumber).Contains(t.JobNumber));
Func<per_employee, decimal?> getDistPerformance = (t) => 0;
if (second.UnitType == UnitType.行政后勤.ToString())
getDistPerformance = (t) => second.Department == t.AccountingUnit ? distPerformance
?.Where(w => w.JobNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.GiveFee) : 0;
var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId);
foreach (var item in result)
{
var empl = employees.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (empl != null)
{
item.ReservedRatio = empl.ReservedRatio;
item.OtherPerformance = getAprAmount(empl);
if (isTitlePerformance)
{
var empl = employees?.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
item.ReservedRatio = empl?.ReservedRatio ?? 0;
// 如果是行政后勤,则把绩效放在工作量上
if (isTitlePerformance && second.UnitType == UnitType.行政后勤.ToString())
item.WorkPerformance = distPerformance?.Where(w => second.Department == item.Department && w.JobNumber?.Trim() == item.WorkNumber?.Trim())?.Sum(w => w.GiveFee);
if (second.UnitType == UnitType.行政后勤.ToString())
item.WorkPerformance = getDistPerformance(empl);
// 其他人群则把绩效放在职称上
else
item.TitlePerformance = getDistPerformance(empl);
}
}
item.OtherPerformance = perapramounts?.Where(w => second.Department == item.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim())?.Sum(w => w.Amount);
else if (!string.IsNullOrEmpty(empl?.AccountingUnit))
item.OtherPerformance = perapramounts?.Where(w => second.Department == empl?.AccountingUnit && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim())?.Sum(w => w.Amount);
}
}
......
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