Commit c9334fe5 by lcx

二次绩效获取其他绩效时,只根据功耗进行匹配

parent b44b3728
...@@ -425,7 +425,7 @@ private void SupplementOtherPerfor(ag_secondallot secondAllot, List<BodyItem> bo ...@@ -425,7 +425,7 @@ private void SupplementOtherPerfor(ag_secondallot secondAllot, List<BodyItem> bo
if (employee == null) continue; if (employee == null) continue;
var amount = secondAllot.Department == employee.AccountingUnit ? perapramounts var amount = secondAllot.Department == employee.AccountingUnit ? perapramounts
?.Where(w => w.AccountingUnit?.Trim() == secondAllot.Department?.Trim() && w.PersonnelNumber?.Trim() == personnelNumber?.Trim()) ?.Where(w => w.PersonnelNumber?.Trim() == personnelNumber?.Trim())
?.Sum(w => w.Amount) : 0; ?.Sum(w => w.Amount) : 0;
var otherPerfor = rowData.FirstOrDefault(w => w.FiledId == "OtherPerformance"); var otherPerfor = rowData.FirstOrDefault(w => w.FiledId == "OtherPerformance");
...@@ -601,19 +601,19 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em ...@@ -601,19 +601,19 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em
// 补充医院其他绩效 及 预留比例 // 补充医院其他绩效 及 预留比例
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3); var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3);
Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts
?.Where(w => w.DoctorName?.Trim() == t.DoctorName?.Trim() && w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim()) ?.Where(w => w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.Amount) : 0; ?.Sum(w => w.Amount) : 0;
var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId && employees.Select(s => s.DoctorName).Contains(t.EmployeeName)); var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId && employees.Select(s => s.PersonnelNumber).Contains(t.JobNumber));
Func<per_employee, decimal?> getDistPerformance = (t) => 0; Func<per_employee, decimal?> getDistPerformance = (t) => 0;
if (second.UnitType == UnitType.行政后勤.ToString()) if (second.UnitType == UnitType.行政后勤.ToString())
getDistPerformance = (t) => second.Department == t.AccountingUnit ? distPerformance getDistPerformance = (t) => second.Department == t.AccountingUnit ? distPerformance
?.Where(w => w.EmployeeName?.Trim() == t.DoctorName?.Trim() && w.JobNumber?.Trim() == t.PersonnelNumber?.Trim()) ?.Where(w => w.JobNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.GiveFee) : 0; ?.Sum(w => w.GiveFee) : 0;
foreach (var item in result) foreach (var item in result)
{ {
var empl = employees.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim()); var empl = employees.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (empl != null) if (empl != null)
{ {
item.ReservedRatio = empl.ReservedRatio; item.ReservedRatio = empl.ReservedRatio;
......
...@@ -409,7 +409,7 @@ private List<BodyItem> GetEmployees(List<per_employee> employees, ag_secondallot ...@@ -409,7 +409,7 @@ private List<BodyItem> GetEmployees(List<per_employee> employees, ag_secondallot
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3); var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3);
Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts
?.Where(w => w.DoctorName?.Trim() == t.DoctorName?.Trim() && w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim()) ?.Where(w => w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.Amount) : 0; ?.Sum(w => w.Amount) : 0;
Dictionary<(string, string), Func<per_employee, object>> dict = new Dictionary<(string, string), Func<per_employee, object>> Dictionary<(string, string), Func<per_employee, object>> dict = new Dictionary<(string, string), Func<per_employee, object>>
...@@ -1615,19 +1615,19 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em ...@@ -1615,19 +1615,19 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em
// 补充医院其他绩效 及 预留比例 // 补充医院其他绩效 及 预留比例
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3); var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == second.AllotId && t.Status == 3);
Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts Func<per_employee, decimal?> getAprAmount = (t) => second.Department == t.AccountingUnit ? perapramounts
?.Where(w => w.DoctorName?.Trim() == t.DoctorName?.Trim() && w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim()) ?.Where(w => w.PersonnelNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.Amount) : 0; ?.Sum(w => w.Amount) : 0;
var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId && employees.Select(s => s.DoctorName).Contains(t.EmployeeName)); var distPerformance = rescomputeRepository.GetEntities(t => t.AllotID == second.AllotId && employees.Select(s => s.PersonnelNumber).Contains(t.JobNumber));
Func<per_employee, decimal?> getDistPerformance = (t) => 0; Func<per_employee, decimal?> getDistPerformance = (t) => 0;
if (second.UnitType == UnitType.行政后勤.ToString()) if (second.UnitType == UnitType.行政后勤.ToString())
getDistPerformance = (t) => second.Department == t.AccountingUnit ? distPerformance getDistPerformance = (t) => second.Department == t.AccountingUnit ? distPerformance
?.Where(w => w.EmployeeName?.Trim() == t.DoctorName?.Trim() && w.JobNumber?.Trim() == t.PersonnelNumber?.Trim()) ?.Where(w => w.JobNumber?.Trim() == t.PersonnelNumber?.Trim())
?.Sum(w => w.GiveFee) : 0; ?.Sum(w => w.GiveFee) : 0;
foreach (var item in result) foreach (var item in result)
{ {
var empl = employees.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim()); var empl = employees.FirstOrDefault(w => w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (empl != null) if (empl != null)
{ {
item.ReservedRatio = empl.ReservedRatio; item.ReservedRatio = empl.ReservedRatio;
......
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