医院其他绩效临时解决

parent aca0f8ed
......@@ -898,10 +898,8 @@ public List<ComputeResponse> AddAprAmount(int allotId, List<ComputeResponse> com
foreach (var item in computes.GroupBy(w => new { w.AccountingUnit, w.JobNumber }))
{
// 补充过一次就不在补充了
var emp = computes.Where(w => w.AccountingUnit == item.Key.AccountingUnit && w.JobNumber == item.Key.JobNumber)
.OrderByDescending(w => w.Source).FirstOrDefault();
var apramount = list.Where(t => t.AccountingUnit == emp.AccountingUnit
&& !string.IsNullOrEmpty(t.PersonnelNumber) && emp.JobNumber?.Trim() == t.PersonnelNumber?.Trim());
var emp = computes.Where(w => w.AccountingUnit == item.Key.AccountingUnit && w.JobNumber == item.Key.JobNumber).OrderByDescending(w => w.Source).FirstOrDefault();
var apramount = list.Where(t => t.AccountingUnit == emp.AccountingUnit && !string.IsNullOrEmpty(t.PersonnelNumber) && emp.JobNumber?.Trim() == t.PersonnelNumber?.Trim());
// 如果医院其他绩效 已经被使用,则不再多次带出,防止单个人多次出现造成金额叠加
var tag = $"{(emp.AccountingUnit ?? "")}-{(emp.JobNumber ?? "")}";
if (apramount != null && !uses.Contains(tag))
......@@ -1791,7 +1789,7 @@ public res_baiscnorm EditHospitalAvg(ComputerAvgRequest request)
if (!emp.Any())
dicData.Add(type, "0");
else
dicData.Add(type, Math.Round(Convert.ToDecimal(emp?.Sum(c=>c.Amount))).ToString());
dicData.Add(type, Math.Round(Convert.ToDecimal(emp?.Sum(c => c.Amount))).ToString());
}
var sum = employees.Where(c => c.PersonnelNumber == num)?.Sum(t => t.Amount);
......
......@@ -820,43 +820,46 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em
{
item.WorkPerformance = distPerformance?.Where(w => w.AccountingUnit == item.Department && w.JobNumber?.Trim() == item.WorkNumber?.Trim())?.Sum(w => w.GiveFee);
if (string.IsNullOrEmpty(item.WorkNumber))
item.WorkPerformance = distPerformance?.Where(w => w.AccountingUnit == item.Department && w.JobNumber?.Trim() == item.WorkNumber?.Trim() && w.EmployeeName?.Trim() == item.Name?.Trim())?.Sum(w => w.GiveFee);
item.WorkPerformance = distPerformance?.Where(w => w.AccountingUnit == item.Department && w.JobNumber?.Trim() == item.WorkNumber?.Trim())?.Sum(w => w.GiveFee);
}
if (second.UnitType == UnitType.行政后勤.ToString())
{
if (string.IsNullOrEmpty(item.WorkNumber))
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim());
}
else
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
}
}
else if (!string.IsNullOrEmpty(empl?.AccountingUnit))
// 必须是相同核算单元类型才能带出医院其他绩效
if (second.UnitType.Replace("其他", "").Replace("医技", "医生")
== empl.UnitType.Replace("其他", "").Replace("医技", "医生"))
{
if (string.IsNullOrEmpty(item.WorkNumber))
if (second.UnitType == UnitType.行政后勤.ToString())
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim() && w.DoctorName?.Trim() == item.Name?.Trim());
if (string.IsNullOrEmpty(item.WorkNumber))
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
}
else
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
}
}
else
else if (!string.IsNullOrEmpty(empl?.AccountingUnit))
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (string.IsNullOrEmpty(item.WorkNumber))
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
}
else
{
var hasAmountData = perapramounts?.Where(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
if (hasAmountData == null || !hasAmountData.Any()) continue;
item.OtherPerformance = hasAmountData.Sum(w => w.Amount);
perapramounts.RemoveAll(w => w.AccountingUnit == second.Department && w.PersonnelNumber?.Trim() == item.WorkNumber?.Trim());
}
}
}
}
......
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