打印及重新加载

parent d1def977
......@@ -3666,6 +3666,11 @@
夜班工作量绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintResponse.ReservedRatio">
<summary>
预留比例
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintResponse.RealAmount">
<summary>
实发绩效工资金额
......
......@@ -360,7 +360,7 @@ List<ag_bodysource> LoadEmployeeByDictionary(ag_secondallot second, List<per_emp
Name = existEmp.DoctorName,
JobTitle = existEmp.JobTitle,
ReservedRatio = existEmp.ReservedRatio,
Post = "",
Post = "",
});
}
return loadDatas;
......@@ -374,15 +374,15 @@ private List<string> LoadEmployees_PrevSecondAllot(per_allot allot, ag_secondall
var status = new int[] { (int)SecondAllotStatus.WaitReview, (int)SecondAllotStatus.PassAudit };
if (prevSecondAllot != null && status.Contains(prevSecondAllot.Status ?? (int)SecondAllotStatus.Uncommitted))
{
if (prevSecondAllot.Status == 6)
if (prevSecondAllot.UseTempId == 6)
{
var prevDatas = _agothersourceRepository.GetEntities(w => w.SecondId == prevSecondAllot.Id);
numbers = prevDatas
?.Where(pre => string.IsNullOrEmpty(pre.WorkNumber?.Trim()))
?.Where(pre => !string.IsNullOrEmpty(pre.WorkNumber?.Trim()))
.Select(pre => pre.WorkNumber?.Trim())
.Distinct().ToList() ?? new List<string>();
}
else if (prevSecondAllot.Status == 7 || prevSecondAllot.Status == 8)
else if (prevSecondAllot.UseTempId == 7 || prevSecondAllot.UseTempId == 8)
{
var prevDatas = _agfixatitemRepository
.GetEntities(w => w.SecondId == prevSecondAllot.Id && w.RowNumber.HasValue && w.RowNumber > -1 && w.Type == (int)TempColumnType.TableFixedColumns);
......@@ -390,15 +390,15 @@ private List<string> LoadEmployees_PrevSecondAllot(per_allot allot, ag_secondall
numbers = prevDatas
?.GroupBy(w => w.RowNumber.Value)
.Select(row => row.FirstOrDefault(w => w.ItemName == "人员工号")?.ItemValue)
.Where(w => string.IsNullOrEmpty(w?.Trim()))
.Where(w => !string.IsNullOrEmpty(w?.Trim()))
.Distinct().ToList() ?? new List<string>();
}
else if (prevSecondAllot.Status == 9 || prevSecondAllot.Status == 10)
else
{
var prevDatas = _agbodysourceRepository.GetEntities(w => w.SecondId == prevSecondAllot.Id);
numbers = prevDatas
?.Where(pre => string.IsNullOrEmpty(pre.WorkNumber?.Trim()))
?.Where(pre => !string.IsNullOrEmpty(pre.WorkNumber?.Trim()))
.Select(pre => pre.WorkNumber?.Trim())
.Distinct().ToList() ?? new List<string>();
}
......@@ -1210,7 +1210,7 @@ public object RedistributionEmployee(SecondEmployeeDto request)
item.Add(nameof(ag_bodysource.Name), employee.DoctorName);
item.Add(nameof(ag_bodysource.WorkNumber), employee.PersonnelNumber);
item.Add(nameof(ag_bodysource.JobTitle), employee.JobTitle);
item.Add(nameof(ag_bodysource.Post), "");
item.Add(nameof(ag_bodysource.Post), "");
item.Add(nameof(ag_bodysource.TitleCoefficient), 1);
item.Add(nameof(ag_bodysource.ActualAttendance), employee.AttendanceDay > monthDays ? monthDays : employee.AttendanceDay);
item.Add(nameof(ag_bodysource.StaffCoefficient), 1);
......
......@@ -2101,30 +2101,7 @@ public List<SecPrintResponse> Print(int secondId)
result = Mapper.Map<List<SecPrintResponse>>(data);
}
else if (second.UseTempId.HasValue && (new int[] { 9, 10 }).Contains(second.UseTempId.Value))
{
var data = agbodysourceRepository.GetEntities(t => t.SecondId == secondId);
if (data == null || !data.Any()) return new List<SecPrintResponse>();
var bodyDynamic = agworkloadsourceRepository.GetEntities(t => data.Select(w => w.Id).Contains(t.BodyId));
if (data == null || !data.Any()) return new List<SecPrintResponse>();
result = data.Select(w => new SecPrintResponse
{
JobNumber = w.WorkNumber,
PersonName = w.Name,
Department = w.Department,
RealAmount = w.RealAmount,
WorkPost = w.Post,
TitlePerfor = w.TitlePerformance,
WorkPerformance = bodyDynamic?.Where(b => b.BodyId == w.Id && b.ItemId.StartsWith("WorkPerformance_")).Sum(b => b.Value) ?? 0,
DeptReward = w.DeptReward,
DistPerformance = w.DistPerformance,
OtherPerformance = w.OtherPerformance,
NightWorkPerformance = w.NightWorkPerformance,
}).ToList();
}
else
else if (second.UseTempId.HasValue && (new int[] { 7, 8 }).Contains(second.UseTempId.Value))
{
var itemname = new List<string> { "人员工号", "姓名", "职称", "职称绩效", "工作量绩效工资", "单项奖励小计", "可分配绩效", "医院其他绩效", "夜班工作量绩效" };
var fixaitems = agfixatitemRepository.GetEntities(t => t.SecondId == secondId && itemname.Contains(t.ItemName));
......@@ -2154,6 +2131,29 @@ public List<SecPrintResponse> Print(int secondId)
result.Add(sec);
}
}
else
{
var data = agbodysourceRepository.GetEntities(t => t.SecondId == secondId);
if (data == null || !data.Any()) return new List<SecPrintResponse>();
var bodyDynamic = agworkloadsourceRepository.GetEntities(t => data.Select(w => w.Id).Contains(t.BodyId));
if (data == null || !data.Any()) return new List<SecPrintResponse>();
result = data.Select(w => new SecPrintResponse
{
JobNumber = w.WorkNumber,
PersonName = w.Name,
Department = w.Department,
RealAmount = w.RealAmount,
WorkPost = w.Post,
TitlePerfor = w.TitlePerformance,
WorkPerformance = bodyDynamic?.Where(b => b.BodyId == w.Id && b.ItemId.StartsWith("WorkPerformance_")).Sum(b => b.Value) ?? 0,
DeptReward = w.DeptReward,
DistPerformance = w.DistPerformance,
OtherPerformance = w.OtherPerformance,
NightWorkPerformance = w.NightWorkPerformance,
}).ToList();
}
// 补充医院其他绩效 及 预留比例
var perapramounts = perapramountRepository.GetFullAmount(t => t.AllotId == second.AllotId && t.Status == 3);
......
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