Commit a2b3955f by lcx

Merge branch 'feature/二次绩效打印' into release/v20210709功能分支合并

parents da43572f 53dce077
......@@ -235,10 +235,8 @@ public AutoMapperConfigs()
CreateMap<HistoryData, report_original_surgery>()
.ForMember(dest => dest.PersonTime, opt => opt.MapFrom(src => src.ResultData))
.ReverseMap();
}
public void xx()
{
CreateMap<ag_headsource, SecPrintHeaderResponse>().ReverseMap();
}
}
}
......@@ -61,4 +61,62 @@ public class SecPrintResponse
public int RowNumber { get; set; }
}
public class SecPrintHeaderResponse
{
/// <summary>
/// 可分配绩效
/// </summary>
public decimal TotalPerformance { get; set; }
/// <summary>
/// 科室总绩效
/// </summary>
public decimal TotalDistPerformance { get; set; }
/// <summary>
/// 科室单项奖励
/// </summary>
public decimal TheTotalAllocationOfPerformanceResults { get; set; }
/// <summary>
/// 主任基础绩效
/// </summary>
public decimal DirectorBasisPerformance { get; set; }
/// <summary>
/// 夜班绩效总和
/// </summary>
public decimal NightShiftWorkPerforTotal { get; set; }
/// <summary>
/// 医院其他绩效
/// </summary>
public decimal HosOtherPerformance { get; set; }
/// <summary>
/// 年资职称绩效占比
/// </summary>
public decimal SeniorityTitlesAccountedPerformance { get; set; }
/// <summary>
/// 年资职称绩效
/// </summary>
public decimal SeniorityTitlesPerformance { get; set; }
/// <summary>
/// 工作量绩效占比
/// </summary>
public decimal Workload_Ratio_Default { get; set; }
/// <summary>
/// 工作量分配绩效金额
/// </summary>
public decimal Workload_Amount_Default { get; set; }
/// <summary>
/// 其他工作量占比
/// </summary>
public List<TitleValue<decimal>> WorkloadTypes { get; set; }
}
}
......@@ -2081,30 +2081,29 @@ public void OtherSave(int secondId, SaveCollectData collectData)
#region 打印
public List<SecPrintResponse> Print(int secondId)
public dynamic Print(int secondId)
{
var second = agsecondallotRepository.GetEntity(t => t.Id == secondId);
if (second == null) return new List<SecPrintResponse>();
var allot = perallotRepository.GetEntity(t => t.ID == second.AllotId);
if (allot == null) return new List<SecPrintResponse>();
var temps = agusetempRepository.GetEntities(w => w.HospitalId == allot.HospitalId && w.UnitType == second.UnitType && w.Department == second.Department);
var useTempId = second.UseTempId ?? temps?.OrderByDescending(w => w.Id).FirstOrDefault().UseTempId;
//var computes = agcomputeRepository.GetEntities(t => t.SecondId == secondId);
//if (computes == null || !computes.Any())
// return new List<SecPrintResponse>();
List<SecPrintResponse> result = new List<SecPrintResponse>();
if (useTempId.HasValue && useTempId == 6)
SecPrintHeaderResponse header = new SecPrintHeaderResponse();
if (second.UseTempId.HasValue && second.UseTempId == 6)
{
var data = agothersourceRepository.GetEntities(t => t.SecondId == secondId);
if (data == null || !data.Any()) return new List<SecPrintResponse>();
result = Mapper.Map<List<SecPrintResponse>>(data);
header.TotalDistPerformance = second.RealGiveFee ?? 0;
header.HosOtherPerformance = result.Sum(t => t.OtherPerformance ?? 0);
header.NightShiftWorkPerforTotal = result.Sum(t => t.NightWorkPerformance ?? 0);
header.TotalPerformance = result.Sum(t => t.DistPerformance ?? 0);
}
else if (useTempId.HasValue && (new int[] { 9, 10 }).Contains(useTempId.Value))
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>();
......@@ -2126,8 +2125,13 @@ public List<SecPrintResponse> Print(int secondId)
OtherPerformance = w.OtherPerformance,
NightWorkPerformance = w.NightWorkPerformance,
}).ToList();
var headerdata = agheadsourceRepository.GetEntity(t => t.SecondId == secondId);
header = Mapper.Map<SecPrintHeaderResponse>(headerdata);
//header.HosOtherPerformance = result.Sum(t => t.OtherPerformance ?? 0);
}
else if (useTempId.HasValue && (new int[] { 7, 8 }).Contains(useTempId.Value))
else
{
var itemname = new List<string> { "人员工号", "姓名", "职称", "职称绩效", "工作量绩效工资", "单项奖励小计", "可分配绩效", "医院其他绩效", "夜班工作量绩效" };
var fixaitems = agfixatitemRepository.GetEntities(t => t.SecondId == secondId && itemname.Contains(t.ItemName));
......@@ -2156,6 +2160,21 @@ public List<SecPrintResponse> Print(int secondId)
sec.NightWorkPerformance = nightworkperfor;
result.Add(sec);
}
fixaitems = agfixatitemRepository.GetEntities(t => t.SecondId == secondId && t.RowNumber == -1);
if (fixaitems != null && fixaitems.Any())
{
header.TotalDistPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "科室总绩效")?.ItemValue);
header.TotalPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "可分配绩效")?.ItemValue);
header.TheTotalAllocationOfPerformanceResults = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "科室单项奖励")?.ItemValue);
header.DirectorBasisPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "主任基础绩效")?.ItemValue);
header.NightShiftWorkPerforTotal = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "夜班绩效总和")?.ItemValue);
header.HosOtherPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "医院其他绩效")?.ItemValue);
header.SeniorityTitlesAccountedPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "年资职称绩效占比")?.ItemValue);
header.SeniorityTitlesPerformance = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "年资职称绩效")?.ItemValue);
header.Workload_Ratio_Default = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "工作量绩效占比")?.ItemValue);
header.Workload_Amount_Default = ConvertHelper.To<decimal>(fixaitems.FirstOrDefault(t => t.ItemName == "工作量分配绩效金额")?.ItemValue);
}
}
// 补充医院其他绩效 及 预留比例
......@@ -2198,8 +2217,24 @@ public List<SecPrintResponse> Print(int secondId)
item.RealAmount = (item.DistPerformance ?? 0) * (1 - (item.ReservedRatio ?? 0)) + (item.OtherPerformance ?? 0) + (item.NightWorkPerformance ?? 0);
}
var otherWorktypes = agworktypesourceRepository.GetEntities(t => t.SecondId == secondId);
if (otherWorktypes != null && otherWorktypes.Any())
{
List<TitleValue<decimal>> dict = new List<TitleValue<decimal>>();
foreach (var worktype in otherWorktypes.OrderBy(t => t.WorkTypeId).ThenBy(t => t.FieldId))
{
dict.Add(new TitleValue<decimal>
{
Title = worktype.FieldName,
Value = worktype.Value ?? 0
});
}
header.WorkloadTypes = dict;
}
return result.OrderBy(t => t.JobNumber).ThenBy(t => t.PersonName).ToList();
return new { header, body = result.OrderBy(t => t.JobNumber).ThenBy(t => t.PersonName).ToList() };
}
#endregion 打印
......
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