Commit 5143bb0a by 钟博

发放表视图、下载(error)

parent 5971bbc3
...@@ -449,7 +449,7 @@ public IActionResult AllComputeDownload(int allotId) ...@@ -449,7 +449,7 @@ public IActionResult AllComputeDownload(int allotId)
var list = _computeService.AllCompute(allotId, allot.HospitalId, isShowManage); var list = _computeService.AllCompute(allotId, allot.HospitalId, isShowManage);
var filepath = downloadService.AllComputerReport(allotId, list, true,"全院绩效发放"); var filepath = downloadService.AllComputerReport(allotId, list, true, "全院绩效发放");
var memoryStream = new MemoryStream(); var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open)) using (var stream = new FileStream(filepath, FileMode.Open))
...@@ -481,7 +481,7 @@ public IActionResult AllComputeByPMDownLoad(int allotId) ...@@ -481,7 +481,7 @@ public IActionResult AllComputeByPMDownLoad(int allotId)
var result = _computeService.ComputerGroupBy(list); var result = _computeService.ComputerGroupBy(list);
var filepath = downloadService.AllComputerReport(allotId, result, false,"财务全院绩效"); var filepath = downloadService.AllComputerReport(allotId, result, false, "财务全院绩效");
var memoryStream = new MemoryStream(); var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open)) using (var stream = new FileStream(filepath, FileMode.Open))
...@@ -495,5 +495,103 @@ public IActionResult AllComputeByPMDownLoad(int allotId) ...@@ -495,5 +495,103 @@ public IActionResult AllComputeByPMDownLoad(int allotId)
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name)); return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
} }
#endregion #endregion
#region 发放表视图、下载
/// <summary>
/// 获取全院绩效列表(视图)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("allcomputeView")]
[HttpPost]
public ApiResponse AllComputeView([FromBody] ComputerRequest request)
{
var allot = _allotService.GetAllot(request.AllotId);
if (null == allot)
throw new PerformanceException("当前绩效记录不存在");
var list = _computeService.GetAllComputeView(allot.HospitalId, request.AllotId, true);
return new ApiResponse(ResponseType.OK, "ok", list);
}
/// <summary>
/// 获取全院绩效列表(人事科)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("allcomputeView/personnel")]
[HttpPost]
public ApiResponse AllComputeViewByPM([FromBody] ComputerRequest request)
{
var allot = _allotService.GetAllot(request.AllotId);
if (null == allot)
throw new PerformanceException("当前绩效记录不存在");
var result = _computeService.GetAllComputeView(allot.HospitalId, request.AllotId, false);
//var result = _computeService.ComputerGroupBy(list);
return new ApiResponse(ResponseType.OK, "ok", result);
}
/// <summary>
/// 下载全院绩效列表
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[Route("allcomputeView/download/{allotId}")]
[HttpPost]
public IActionResult AllComputeViewDownload(int allotId)
{
var allot = _allotService.GetAllot(allotId);
if (null == allot)
throw new PerformanceException("当前绩效记录不存在");
var list = _computeService.GetAllComputeView(allot.HospitalId, allotId, true);
var filepath = downloadService.AllComputerViewReport(allotId, list, true, "全院绩效发放");
var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open))
{
stream.CopyToAsync(memoryStream).Wait();
}
memoryStream.Seek(0, SeekOrigin.Begin);
var provider = new FileExtensionContentTypeProvider();
FileInfo fileInfo = new FileInfo(filepath);
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
}
/// <summary>
/// 下载全院绩效列表(人事科/视图)
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[Route("allcomputeView/personnel/download/{allotId}")]
[HttpPost]
public IActionResult AllComputeByPMViewDownLoad(int allotId)
{
var allot = _allotService.GetAllot(allotId);
if (null == allot)
throw new PerformanceException("当前绩效记录不存在");
var result =_computeService.GetAllComputeView(allot.HospitalId, allotId, false);
var filepath = downloadService.AllComputerViewReport(allotId, result, false, "财务全院绩效");
var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open))
{
stream.CopyToAsync(memoryStream).Wait();
}
memoryStream.Seek(0, SeekOrigin.Begin);
var provider = new FileExtensionContentTypeProvider();
FileInfo fileInfo = new FileInfo(filepath);
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
#endregion
}
} }
} }
\ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
}, },
"AppConnection": { "AppConnection": {
//"PerformanceConnectionString": "server=112.124.13.17;database=db_performance;uid=suvalue;pwd=suvalue2016;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;", //"PerformanceConnectionString": "server=112.124.13.17;database=db_performance;uid=suvalue;pwd=suvalue2016;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;",
"PerformanceConnectionString": "server=192.168.18.166;database=db_performance_screen;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;", "PerformanceConnectionString": "server=192.168.18.166;database=db_test_zhangye;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;",
"HangfireConnectionString": "server=192.168.18.166;database=db_hangfire;uid=root;pwd=1234qwer;port=3306;allow user variables=true;", "HangfireConnectionString": "server=192.168.18.166;database=db_hangfire;uid=root;pwd=1234qwer;port=3306;allow user variables=true;",
"RedisConnectionString": "116.62.245.55:6379,defaultDatabase=2" "RedisConnectionString": "116.62.245.55:6379,defaultDatabase=2"
}, },
......
...@@ -575,6 +575,34 @@ ...@@ -575,6 +575,34 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ComputeController.AllComputeView(Performance.DtoModels.ComputerRequest)">
<summary>
获取全院绩效列表(视图)
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ComputeController.AllManageComputeView(Performance.DtoModels.ComputerRequest)">
<summary>
获取全院管理绩效列表(视图)
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ComputeController.AllComputeViewDownload(System.Int32)">
<summary>
下载全院绩效列表
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ComputeController.AllComputeByPMViewDownLoad(System.Int32)">
<summary>
下载全院绩效列表(人事科/视图)
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeList(Performance.DtoModels.DrugpropRequest)"> <member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeList(Performance.DtoModels.DrugpropRequest)">
<summary> <summary>
获取 药占比类型信息列表 获取 药占比类型信息列表
......
...@@ -7620,5 +7620,20 @@ ...@@ -7620,5 +7620,20 @@
不公示其他绩效 不公示其他绩效
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.view_allot_result.RealPerformance">
<summary>
实发绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.ShouldGiveFee">
<summary>
应发小计
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.ReservedRatioFee">
<summary>
预留金额
</summary>
</member>
</members> </members>
</doc> </doc>
...@@ -42,6 +42,25 @@ public class view_allot_result ...@@ -42,6 +42,25 @@ public class view_allot_result
/// 不公示其他绩效 /// 不公示其他绩效
/// </summary> /// </summary>
public decimal? HideOtherPerfor { get; set; } public decimal? HideOtherPerfor { get; set; }
/// <summary>
/// 实发绩效
/// </summary>
public decimal? RealPerformance { get; set; } public decimal? RealPerformance { get; set; }
/// <summary>
/// 应发小计
/// </summary>
public decimal? ShouldGiveFee { get; set; }
/// <summary>
/// 预留金额
/// </summary>
public decimal? ReservedRatioFee { get; set; }
public string Emp_UnitType { get; set; }
public string Emp_AccountingUnit { get; set; }
public string BankCard { get; set; }
public string JobCategory { get; set; }
public string Duty { get; set; }
public string TitlePosition { get; set; }
} }
} }
...@@ -388,5 +388,19 @@ public List<view_allot_result> GetOwnerPerformance(List<int> hospitalId, string ...@@ -388,5 +388,19 @@ public List<view_allot_result> GetOwnerPerformance(List<int> hospitalId, string
string sql = "SELECT * FROM view_allot_result WHERE HospitalID IN @HospitalID AND JobNumber=@JobNumber"; string sql = "SELECT * FROM view_allot_result WHERE HospitalID IN @HospitalID AND JobNumber=@JobNumber";
return DapperQuery<view_allot_result>(sql, new { HospitalID = hospitalId, JobNumber = jobNumber })?.ToList(); return DapperQuery<view_allot_result>(sql, new { HospitalID = hospitalId, JobNumber = jobNumber })?.ToList();
} }
public List<dynamic> QueryAllCompute(int hospitalId,int allotId)
{
var sql = $@"SELECT * FROM view_allot_result WHERE hospitalId = @hospitalId AND AllotId = @AllotId ORDER BY UnitType,AccountingUnit; ";
return DapperQuery<dynamic>(sql, new { hospitalId, allotId })?.ToList();
}
public List<dynamic> QueryAdminCompute(int hospitalId, int allotId)
{
var sql = $@"SELECT * FROM view_allot_result_finance WHERE hospitalId=@hospitalId AND allotId=@allotId ORDER BY UnitType,AccountingUnit;";
return DapperQuery<dynamic>(sql, new { hospitalId, allotId })?.ToList();
}
} }
} }
...@@ -36,6 +36,7 @@ public class ComputeService : IAutoInjection ...@@ -36,6 +36,7 @@ public class ComputeService : IAutoInjection
private readonly PerforPerapramounthideRepository _hideRepository; private readonly PerforPerapramounthideRepository _hideRepository;
private readonly PerforCofworkitemRepository cofworkitemRepository; private readonly PerforCofworkitemRepository cofworkitemRepository;
private readonly PerforCofaliasRepository cofaliasRepository; private readonly PerforCofaliasRepository cofaliasRepository;
private readonly PerforReportRepository reportRepository;
public ComputeService( public ComputeService(
PerforResaccountRepository perforResaccountRepository, PerforResaccountRepository perforResaccountRepository,
...@@ -56,7 +57,8 @@ public class ComputeService : IAutoInjection ...@@ -56,7 +57,8 @@ public class ComputeService : IAutoInjection
PerforPeremployeeRepository perforPeremployeeRepository, PerforPeremployeeRepository perforPeremployeeRepository,
PerforPerapramounthideRepository hideRepository, PerforPerapramounthideRepository hideRepository,
PerforCofworkitemRepository cofworkitemRepository, PerforCofworkitemRepository cofworkitemRepository,
PerforCofaliasRepository cofaliasRepository) PerforCofaliasRepository cofaliasRepository,
PerforReportRepository reportRepository)
{ {
this.perforResaccountRepository = perforResaccountRepository; this.perforResaccountRepository = perforResaccountRepository;
this._perforPerSheetRepository = perforPerSheetRepository; this._perforPerSheetRepository = perforPerSheetRepository;
...@@ -77,6 +79,7 @@ public class ComputeService : IAutoInjection ...@@ -77,6 +79,7 @@ public class ComputeService : IAutoInjection
_hideRepository = hideRepository; _hideRepository = hideRepository;
this.cofworkitemRepository = cofworkitemRepository; this.cofworkitemRepository = cofworkitemRepository;
this.cofaliasRepository = cofaliasRepository; this.cofaliasRepository = cofaliasRepository;
this.reportRepository = reportRepository;
} }
public int IsShowManage(int allotId) public int IsShowManage(int allotId)
...@@ -1990,6 +1993,11 @@ private decimal GetDecimal(decimal? value, decimal _ = 0) ...@@ -1990,6 +1993,11 @@ private decimal GetDecimal(decimal? value, decimal _ = 0)
return Math.Round(value.Value, decimals, MidpointRounding.AwayFromZero); return Math.Round(value.Value, decimals, MidpointRounding.AwayFromZero);
} }
/// <summary>
/// 发放表自定义列头
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public List<cof_alias> CustomColumnHeaders(ComputerAliasRequest request) public List<cof_alias> CustomColumnHeaders(ComputerAliasRequest request)
{ {
var result = cofaliasRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Route == request.Route && t.States == 1); var result = cofaliasRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.Route == request.Route && t.States == 1);
...@@ -2020,5 +2028,27 @@ public bool Batch(BatchRequest request) ...@@ -2020,5 +2028,27 @@ public bool Batch(BatchRequest request)
}); });
return perforPerbatchRepository.AddRange(data.ToArray()); return perforPerbatchRepository.AddRange(data.ToArray());
} }
public List<dynamic> GetAllComputeView(int hospitalId,int AllotId,bool isAllCompte)
{
var viewResult = new List<dynamic>();
if (isAllCompte)
viewResult = reportRepository.QueryAllCompute(hospitalId, AllotId);
else
viewResult = reportRepository.QueryAdminCompute(hospitalId, AllotId);
// 人员字典
var employees = perforPeremployeeRepository.GetEntities(w => w.AllotId == AllotId);
viewResult.ForEach(t =>
{
var employee=employees?.FirstOrDefault(w => w.PersonnelNumber == t.JobNumber);
var real = Math.Round((t.PerforSumFee ?? 0) + (t.PerforManagementFee ?? 0) + (t.AdjustLaterOtherFee ?? 0), 2, MidpointRounding.AwayFromZero);
t.ReservedRatioFee = Math.Round(real * (employee?.ReservedRatio ?? 0), 2, MidpointRounding.AwayFromZero);
t.RealPerformance = Math.Round(t.ShouldGiveFee - (t.ReservedRatioFee ?? 0) ?? 0, 2, MidpointRounding.AwayFromZero);
});
return viewResult;
}
} }
} }
...@@ -164,6 +164,123 @@ public string AllComputerReport(int allotId, List<ComputeResponse> allData, bool ...@@ -164,6 +164,123 @@ public string AllComputerReport(int allotId, List<ComputeResponse> allData, bool
return filepath; return filepath;
} }
/// <summary>
/// 财务、全院绩效发放下载
/// </summary>
/// <param name="allotId"></param>
/// <param name="allData"></param>
/// <param name="isAll"></param>
/// <returns></returns>
public string AllComputerViewReport(int allotId, List<view_allot_result> allData, bool isAll, string name)
{
var allot = perallotRepository.GetEntity(t => t.ID == allotId);
var hospital = perforHospital.GetEntity(t => t.ID == allot.HospitalId);
var alias = perforCofalias.GetEntities(t => t.HospitalId == hospital.ID && t.States == 1);
var headShow = new List<string> { "银行卡号", "正式/临聘", "职务", "职称" };
var headList = AllComputeView;
if (!isAll)
{
headList = PersonView;
alias = alias?.Where(t => t.Route == "/result/wholeHospital")?.ToList();
if (alias != null)
headShow = headShow.Except(alias.Select(t => t.OriginalName)).ToList();
}
else
{
alias = alias?.Where(t => t.Route == "/result/compute")?.ToList();
if (alias != null)
headShow = headShow.Except(alias.Select(t => t.OriginalName)).ToList();
}
var dpath = Path.Combine(evn.ContentRootPath, "Files", "PerformanceRelease", $"{allot.HospitalId}");
FileHelper.CreateDirectory(dpath);
string fileName = $"{hospital.HosName}-{name}-{DateTime.Now:yyyyMMdd}";
string filepath = Path.Combine(dpath, fileName);
FileStream stream = new FileStream(filepath, FileMode.Create);
try
{
XSSFWorkbook workbook = new XSSFWorkbook();
//设置单元格样式
ICellStyle style = workbook.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
style.BorderBottom = BorderStyle.Thin;
style.BorderRight = BorderStyle.Thin;
ISheet sheet = workbook.CreateSheet($"{name}");
sheet.ForceFormulaRecalculation = true;
ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");
IRow row1 = sheet.CreateRow(0);
row1.CreateCell(0).SetCellValue("序号");
row1.GetCell(0).CellStyle = style;
int cellIndex = 1;
foreach (var item in headList)
{
if (headShow.Contains(item.Item1))
continue;
row1.CreateCell(cellIndex).SetCellValue(item.Item1);
row1.GetCell(cellIndex).CellStyle = style;
sheet.SetColumnWidth(cellIndex, 14 * 256);
cellIndex++;
}
int startIndex = 1;
foreach (var item in allData)
{
var row = sheet.CreateRow(startIndex);
cellIndex = 1;
var serial = row.CreateCell(0);
serial.SetCellOValue(startIndex);
serial.CellStyle = style;
foreach (var field in headList)
{
if (headShow.Contains(field.Item1))
continue;
var cell = row.CreateCell(cellIndex);
cell.SetCellOValue(field.Item2?.Invoke(item));
cell.CellStyle = style;
cellIndex++;
}
startIndex++;
}
//合计
cellIndex = 1;
var totalRow = sheet.CreateRow(startIndex);
var totalSerial = totalRow.CreateCell(0);
totalSerial.SetCellOValue("合计");
totalSerial.CellStyle = style;
foreach (var value in headList)
{
if (headShow.Contains(value.Item1))
continue;
var cell = totalRow.CreateCell(cellIndex);
cell.SetCellOValue(value.Item3?.Invoke(allData));
cell.CellStyle = style;
cellIndex++;
}
workbook.Write(stream);
}
catch (Exception ex)
{
Console.WriteLine("下载异常" + ex);
}
finally
{
stream.Close();
}
return filepath;
}
public static List<(string, Func<ComputeResponse, object>, Func<List<ComputeResponse>, decimal>)> AllCompute { get; } = new List<(string, Func<ComputeResponse, object>, Func<List<ComputeResponse>, decimal>)> public static List<(string, Func<ComputeResponse, object>, Func<List<ComputeResponse>, decimal>)> AllCompute { get; } = new List<(string, Func<ComputeResponse, object>, Func<List<ComputeResponse>, decimal>)>
{ {
("来源",t=>t.Source,null), ("来源",t=>t.Source,null),
...@@ -203,6 +320,76 @@ public string AllComputerReport(int allotId, List<ComputeResponse> allData, bool ...@@ -203,6 +320,76 @@ public string AllComputerReport(int allotId, List<ComputeResponse> allData, bool
("预留绩效",t=>t.ReservedRatioFee,(t) => Math.Round(t.Sum(item => item.ReservedRatioFee ?? 0), 2, MidpointRounding.AwayFromZero)), ("预留绩效",t=>t.ReservedRatioFee,(t) => Math.Round(t.Sum(item => item.ReservedRatioFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("实发绩效",t=>t.RealGiveFee,(t) => Math.Round(t.Sum(item => item.RealGiveFee ?? 0), 2, MidpointRounding.AwayFromZero)) ("实发绩效",t=>t.RealGiveFee,(t) => Math.Round(t.Sum(item => item.RealGiveFee ?? 0), 2, MidpointRounding.AwayFromZero))
}; };
//public static List<(string, Func<view_allot_result, object>, Func<List<view_allot_result>, decimal>)> AllComputeView { get; } = new List<(string, Func<view_allot_result, object>, Func<List<view_allot_result>, decimal>)>
//{
// ("来源",t=>t.Source,null),
// ("科室类别",t=>t.UnitType,null),
// ("核算单元",t=>t.AccountingUnit,null),
// ("员工号",t=>t.JobNumber,null),
// ("人员姓名",t=>t.EmployeeName,null),
// ("职务",t=>t.JobTitle,null),
// //("批次",t=>t.Batch,null),
// ("调节后业绩绩效",t=>t.PerforSumFee,(t) => Math.Round(t.Sum(item => item.PerforSumFee ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("调节后实发管理绩效",t=>t.PerforManagementFee,(t) => Math.Round(t.Sum(item => item.PerforManagementFee ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("调节后其他绩效",t=>t.AdjustLaterOtherFee,(t) => Math.Round(t.Sum(item => item.AdjustLaterOtherFee ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("夜班费",t=>t.NightWorkPerfor,(t) => Math.Round(t.Sum(item => item.NightWorkPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("医院其他绩效",t=>t.OtherPerfor,(t) => Math.Round(t.Sum(item => item.OtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("不公示其他绩效",t=>t.HideOtherPerfor,(t) => Math.Round(t.Sum(item => item.HideOtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("应发小计",t=>t.ShouldGiveFee,(t) => Math.Round(t.Sum(item => item.ShouldGiveFee ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("预留绩效",t=>t.ReservedRatioFee,(t) => Math.Round(t.Sum(item => item.ReservedRatioFee ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("实发绩效",t=>t.RealPerformance,(t) => Math.Round(t.Sum(item => item.RealPerformance ?? 0), 2, MidpointRounding.AwayFromZero)),
// ("银行卡号",t=>t.BankCard,null),
// ("正式/临聘",t=>t.JobCategory,null),
// ("职务",t=>t.Duty,null),
// ("职称",t=>t.TitlePosition,null),
//};
public static List<cof_alias>AllComputeView { get; } = new List<cof_alias>
{
new cof_alias{ Alias = "来源",Name = nameof(view_allot_result.Source), States = 1},
new cof_alias{ Alias = "科室类别",Name = nameof(view_allot_result.UnitType), States = 1},
new cof_alias{ Alias = "核算单元",Name = nameof(view_allot_result.AccountingUnit), States = 1},
//("",t=>t.UnitType,null),
//("",t=>t.AccountingUnit,null),
//("员工号",t=>t.JobNumber,null),
//("人员姓名",t=>t.EmployeeName,null),
//("职务",t=>t.JobTitle,null),
////("批次",t=>t.Batch,null),
//("调节后业绩绩效",t=>t.PerforSumFee,(t) => Math.Round(t.Sum(item => item.PerforSumFee ?? 0), 2, MidpointRounding.AwayFromZero)),
//("调节后实发管理绩效",t=>t.PerforManagementFee,(t) => Math.Round(t.Sum(item => item.PerforManagementFee ?? 0), 2, MidpointRounding.AwayFromZero)),
//("调节后其他绩效",t=>t.AdjustLaterOtherFee,(t) => Math.Round(t.Sum(item => item.AdjustLaterOtherFee ?? 0), 2, MidpointRounding.AwayFromZero)),
//("夜班费",t=>t.NightWorkPerfor,(t) => Math.Round(t.Sum(item => item.NightWorkPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
//("医院其他绩效",t=>t.OtherPerfor,(t) => Math.Round(t.Sum(item => item.OtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
//("不公示其他绩效",t=>t.HideOtherPerfor,(t) => Math.Round(t.Sum(item => item.HideOtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
//("应发小计",t=>t.ShouldGiveFee,(t) => Math.Round(t.Sum(item => item.ShouldGiveFee ?? 0), 2, MidpointRounding.AwayFromZero)),
//("预留绩效",t=>t.ReservedRatioFee,(t) => Math.Round(t.Sum(item => item.ReservedRatioFee ?? 0), 2, MidpointRounding.AwayFromZero)),
//("实发绩效",t=>t.RealPerformance,(t) => Math.Round(t.Sum(item => item.RealPerformance ?? 0), 2, MidpointRounding.AwayFromZero)),
//("银行卡号",t=>t.BankCard,null),
//("正式/临聘",t=>t.JobCategory,null),
//("职务",t=>t.Duty,null),
//("职称",t=>t.TitlePosition,null),
};
public static List<(string, Func<view_allot_result, object>, Func<List<view_allot_result>, decimal>)> PersonView { get; } = new List<(string, Func<view_allot_result, object>, Func<List<view_allot_result>, decimal>)>
{
("科室类别",t=>t.UnitType,null),
("核算单元",t=>t.AccountingUnit,null),
("员工号",t=>t.JobNumber,null),
("人员姓名",t=>t.EmployeeName,null),
("调节后业绩绩效",t=>t.PerforSumFee,(t) => Math.Round(t.Sum(item => item.PerforSumFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("调节后实发管理绩效",t=>t.PerforManagementFee,(t) => Math.Round(t.Sum(item => item.PerforManagementFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("调节后其他绩效",t=>t.AdjustLaterOtherFee,(t) => Math.Round(t.Sum(item => item.AdjustLaterOtherFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("夜班费",t=>t.NightWorkPerfor,(t) => Math.Round(t.Sum(item => item.NightWorkPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
("医院其他绩效",t=>t.OtherPerfor,(t) => Math.Round(t.Sum(item => item.OtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
("不公示其他绩效",t=>t.HideOtherPerfor,(t) => Math.Round(t.Sum(item => item.HideOtherPerfor ?? 0), 2, MidpointRounding.AwayFromZero)),
("应发小计",t=>t.ShouldGiveFee,(t) => Math.Round(t.Sum(item => item.ShouldGiveFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("预留绩效",t=>t.ReservedRatioFee,(t) => Math.Round(t.Sum(item => item.ReservedRatioFee ?? 0), 2, MidpointRounding.AwayFromZero)),
("实发绩效",t=>t.RealPerformance,(t) => Math.Round(t.Sum(item => item.RealPerformance ?? 0), 2, MidpointRounding.AwayFromZero))
};
#endregion #endregion
#region 全院绩效核算 #region 全院绩效核算
......
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