二次分配审核和护理部审核通过同步数据调整

parent ea8747c4
...@@ -1703,108 +1703,118 @@ public bool ConfirmAudit(int userId, SecondAuditRequest request) ...@@ -1703,108 +1703,118 @@ public bool ConfirmAudit(int userId, SecondAuditRequest request)
if (histories != null && histories.Any()) if (histories != null && histories.Any())
agcomputeRepository.RemoveRange(histories.ToArray()); agcomputeRepository.RemoveRange(histories.ToArray());
#region 添加至二次绩效汇总 if (request.IsPass == 1)
SyncSecondComputeData(second);
if (result && request.IsPass == 1) return result;
{ }
// 护理部审核
var allot = perallotRepository.GetEntity(w => w.ID == second.AllotId);
if (allot == null) return true;
var hospital = hospitalRepository.GetEntity(w => w.ID == allot.HospitalId); /// <summary>
if (hospital == null) return true; /// 审核结束 添加至二次绩效汇总
/// </summary>
/// <param name="second"></param>
/// <param name="isPass"></param>
/// <returns></returns>
private bool SyncSecondComputeData(ag_secondallot second)
{
// 护理部及二次分配审核同时审核完成
var allot = perallotRepository.GetEntity(w => w.ID == second.AllotId);
if (allot == null) return true;
if (hospital.IsOpenNursingDeptAudit == 1 && second.NursingDeptStatus != 3 && new string[] { UnitType.护理组.ToString(), UnitType.其他护理组.ToString() }.Contains(second.UnitType)) var hospital = hospitalRepository.GetEntity(w => w.ID == allot.HospitalId);
return true; if (hospital == null) return true;
var computes = new List<ag_compute>(); if (hospital.IsOpenNursingDeptAudit == 1 && second.NursingDeptStatus != 3 && new string[] { UnitType.护理组.ToString(), UnitType.其他护理组.ToString() }.Contains(second.UnitType))
return true;
var (tempId, name) = GetUsingTempId(hospital.ID, second); if (second.Status != 3)
return true;
if (new int[] { (int)Temp.crosswise, (int)Temp.lengthways }.Contains(tempId)) var computes = new List<ag_compute>();
{
var items = agfixatitemRepository.GetEntities(t => t.SecondId == request.SecondId); var (tempId, name) = GetUsingTempId(hospital.ID, second);
if (items != null && items.Any())
{ if (new int[] { (int)Temp.crosswise, (int)Temp.lengthways }.Contains(tempId))
var rowNumbers = items.Select(t => t.RowNumber).Where(t => t >= 0)?.Distinct(); {
if (rowNumbers != null && rowNumbers.Any()) var items = agfixatitemRepository.GetEntities(t => t.SecondId == second.Id);
{ if (items != null && items.Any())
foreach (var item in rowNumbers)
{
var perforsumfee = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "可分配绩效")?.ItemValue, 0);
var nightworkperfor = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "夜班工作量绩效")?.ItemValue, 0);
computes.Add(new ag_compute
{
AllotId = second.AllotId,
SecondId = second.Id,
UnitType = second.UnitType,
Department = second.Department,
JobNumber = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "人员工号")?.ItemValue,
WorkPost = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "岗位")?.ItemValue,
PersonName = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "姓名")?.ItemValue,
PerforSumFee = perforsumfee,
OthePerfor = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "医院其他绩效")?.ItemValue, 0),
NightWorkPerfor = nightworkperfor,
RealGiveFee = perforsumfee + nightworkperfor,
});
}
}
}
}
else if (tempId == (int)Temp.other)
{ {
var others = agothersourceRepository.GetEntities(t => t.SecondId == request.SecondId); var rowNumbers = items.Select(t => t.RowNumber).Where(t => t >= 0)?.Distinct();
if (others != null && others.Any()) if (rowNumbers != null && rowNumbers.Any())
{ {
foreach (var item in others) foreach (var item in rowNumbers)
{ {
var perforsumfee = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "可分配绩效")?.ItemValue, 0);
var nightworkperfor = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "夜班工作量绩效")?.ItemValue, 0);
computes.Add(new ag_compute computes.Add(new ag_compute
{ {
AllotId = second.AllotId, AllotId = second.AllotId,
SecondId = second.Id, SecondId = second.Id,
UnitType = second.UnitType, UnitType = second.UnitType,
Department = second.Department, Department = second.Department,
WorkPost = item.WorkPost, JobNumber = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "人员工号")?.ItemValue,
JobNumber = item.WorkNumber, WorkPost = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "岗位")?.ItemValue,
PersonName = item.Name, PersonName = items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "姓名")?.ItemValue,
PerforSumFee = item.DistPerformance, PerforSumFee = perforsumfee,
OthePerfor = item.OtherPerformance, OthePerfor = ConvertHelper.TryDecimal(items.FirstOrDefault(t => t.RowNumber == item && t.ItemName == "医院其他绩效")?.ItemValue, 0),
NightWorkPerfor = item.NightWorkPerformance, NightWorkPerfor = nightworkperfor,
RealGiveFee = item.RealAmount, RealGiveFee = perforsumfee + nightworkperfor,
}); });
} }
} }
} }
else }
else if (tempId == (int)Temp.other)
{
var others = agothersourceRepository.GetEntities(t => t.SecondId == second.Id);
if (others != null && others.Any())
{ {
var bodys = agbodysourceRepository.GetEntities(t => t.SecondId == request.SecondId); foreach (var item in others)
if (bodys != null && bodys.Any())
{ {
foreach (var item in bodys) computes.Add(new ag_compute
{ {
computes.Add(new ag_compute AllotId = second.AllotId,
{ SecondId = second.Id,
AllotId = second.AllotId, UnitType = second.UnitType,
SecondId = second.Id, Department = second.Department,
UnitType = second.UnitType, WorkPost = item.WorkPost,
Department = second.Department, JobNumber = item.WorkNumber,
WorkPost = item.JobTitle, PersonName = item.Name,
JobNumber = item.WorkNumber, PerforSumFee = item.DistPerformance,
PersonName = item.Name, OthePerfor = item.OtherPerformance,
PerforSumFee = item.DistPerformance, NightWorkPerfor = item.NightWorkPerformance,
OthePerfor = item.OtherPerformance, RealGiveFee = item.RealAmount,
NightWorkPerfor = item.NightWorkPerformance, });
RealGiveFee = item.RealAmount,
});
}
} }
} }
agcomputeRepository.AddRange(computes.ToArray());
} }
else
{
var bodys = agbodysourceRepository.GetEntities(t => t.SecondId == second.Id);
if (bodys != null && bodys.Any())
{
foreach (var item in bodys)
{
computes.Add(new ag_compute
{
AllotId = second.AllotId,
SecondId = second.Id,
UnitType = second.UnitType,
Department = second.Department,
WorkPost = item.JobTitle,
JobNumber = item.WorkNumber,
PersonName = item.Name,
PerforSumFee = item.DistPerformance,
OthePerfor = item.OtherPerformance,
NightWorkPerfor = item.NightWorkPerformance,
RealGiveFee = item.RealAmount,
});
}
}
}
agcomputeRepository.AddRange(computes.ToArray());
#endregion 添加至二次绩效汇总 return true;
return result;
} }
/// <summary> /// <summary>
...@@ -1834,6 +1844,9 @@ public bool NursingDeptAudit(int userId, SecondAuditRequest request) ...@@ -1834,6 +1844,9 @@ public bool NursingDeptAudit(int userId, SecondAuditRequest request)
second.NursingDeptAuditUser = userId; second.NursingDeptAuditUser = userId;
second.NursingDeptAuditTime = DateTime.Now; second.NursingDeptAuditTime = DateTime.Now;
if (request.IsPass == 1)
SyncSecondComputeData(second);
return agsecondallotRepository.Update(second); return agsecondallotRepository.Update(second);
} }
......
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