Commit 7edaa096 by 799284587@qq.com

工作量合计

parent 09049971
...@@ -156,8 +156,8 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al ...@@ -156,8 +156,8 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al
if (null == allot || string.IsNullOrEmpty(allot.Path)) if (null == allot || string.IsNullOrEmpty(allot.Path))
throw new PerformanceException("当前绩效记录不存在或没有上传数据文件"); throw new PerformanceException("当前绩效记录不存在或没有上传数据文件");
var email = _claim.GetUserClaim(JwtClaimTypes.Mail); var email = _claim.GetUserClaim(JwtClaimTypes.Mail);
//_allotService.Generate(allot, email); _allotService.Generate(allot, email);
BackgroundJob.Enqueue(() => _allotService.Generate(allot, email)); //BackgroundJob.Enqueue(() => _allotService.Generate(allot, email));
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
} }
......
...@@ -204,9 +204,9 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -204,9 +204,9 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
var confs = GetDrugConfig(excel, allotid); var confs = GetDrugConfig(excel, allotid);
//医生组 一次计算 //医生组 一次计算
var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs); //var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs);
//医生组 二次计算 //医生组 二次计算
var twiceWorkloadResult1 = workloadCompute.TwiceCompute(onceWorkload1); var twiceWorkloadResult1 = workloadCompute.TwiceCompute(workload1);
twiceWorkloadResult1.Sheet.SheetType = SheetType.ComputeDoctorWorkload; twiceWorkloadResult1.Sheet.SheetType = SheetType.ComputeDoctorWorkload;
perSheet.Add(twiceWorkloadResult1.Sheet); perSheet.Add(twiceWorkloadResult1.Sheet);
...@@ -214,9 +214,9 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -214,9 +214,9 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
var workload2 = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.Workload && t.SheetName.Contains("护理组")); var workload2 = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.Workload && t.SheetName.Contains("护理组"));
workload2.SheetName = "护理组工作量绩效测算表"; workload2.SheetName = "护理组工作量绩效测算表";
//护理组 一次计算 //护理组 一次计算
var onceWorkload2 = workloadCompute.OnceCompute(workload2); //var onceWorkload2 = workloadCompute.OnceCompute(workload2);
//护理组 二次计算 //护理组 二次计算
var twiceWorkloadResult2 = workloadCompute.TwiceCompute(onceWorkload2); var twiceWorkloadResult2 = workloadCompute.TwiceCompute(workload2);
twiceWorkloadResult2.Sheet.SheetType = SheetType.ComputeNurseWorkload; twiceWorkloadResult2.Sheet.SheetType = SheetType.ComputeNurseWorkload;
perSheet.Add(twiceWorkloadResult2.Sheet); perSheet.Add(twiceWorkloadResult2.Sheet);
...@@ -224,7 +224,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -224,7 +224,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
var deptAccounting = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.AccountBasic); var deptAccounting = excel.PerSheet.FirstOrDefault(t => t.SheetType == SheetType.AccountBasic);
var dataList = deptAccounting.PerData.Select(t => (PerDataAccountBaisc)t); var dataList = deptAccounting.PerData.Select(t => (PerDataAccountBaisc)t);
var sheet = Compute(dataList, twiceEconomicResult.PerData, twiceWorkloadResult1.PerData); var sheet = Compute(dataList, twiceEconomicResult.PerData, twiceWorkloadResult2.PerData, twiceWorkloadResult2.PerData);
perSheet.AddRange(sheet); perSheet.AddRange(sheet);
return perSheet; return perSheet;
...@@ -236,12 +236,12 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid) ...@@ -236,12 +236,12 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
/// <param name="economicData"></param> /// <param name="economicData"></param>
/// <param name="workloadData"></param> /// <param name="workloadData"></param>
/// <returns></returns> /// <returns></returns>
private List<PerSheet> Compute(IEnumerable<PerDataAccountBaisc> dataList, List<PerData> economicData, List<PerData> workloadData) private List<PerSheet> Compute(IEnumerable<PerDataAccountBaisc> dataList, List<PerData> economicData, List<PerData> doctorWorkloadData, List<PerData> nurseWorkloadData)
{ {
var pairs = new[] var pairs = new[]
{ {
new { Name = "医生组临床科室单元核算表", SheetType = SheetType.ComputeDoctorAccount, UnitTypes = new List<UnitType> { UnitType.医生组, UnitType.医技组 } }, new { Name = "医生组临床科室单元核算表", Data = doctorWorkloadData, SheetType = SheetType.ComputeDoctorAccount, UnitTypes = new List<UnitType> { UnitType.医生组, UnitType.医技组 } },
new { Name = "护理组临床科室单元核算表", SheetType = SheetType.ComputeNurseAccount, UnitTypes = new List<UnitType> { UnitType.护理组 } }, new { Name = "护理组临床科室单元核算表", Data = nurseWorkloadData, SheetType = SheetType.ComputeNurseAccount, UnitTypes = new List<UnitType> { UnitType.护理组 } },
}; };
List<PerSheet> result = new List<PerSheet>(); List<PerSheet> result = new List<PerSheet>();
foreach (var info in pairs) foreach (var info in pairs)
...@@ -256,7 +256,7 @@ private List<PerSheet> Compute(IEnumerable<PerDataAccountBaisc> dataList, List<P ...@@ -256,7 +256,7 @@ private List<PerSheet> Compute(IEnumerable<PerDataAccountBaisc> dataList, List<P
continue; continue;
var econDoctor = economicData.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department); var econDoctor = economicData.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department);
var workDoctor = workloadData.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department); var workDoctor = info.Data.FirstOrDefault(t => t.UnitType == unitType.ToString() && t.AccountingUnit == dept.Department);
dept.ScoringAverage = dept.ScoringAverage == 0m ? 1 : dept.ScoringAverage; dept.ScoringAverage = dept.ScoringAverage == 0m ? 1 : dept.ScoringAverage;
dept.AdjustFactor = dept.AdjustFactor == 0m ? 1 : dept.AdjustFactor; dept.AdjustFactor = dept.AdjustFactor == 0m ? 1 : dept.AdjustFactor;
......
...@@ -108,7 +108,8 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -108,7 +108,8 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
List<PerData> perDataList = new List<PerData>(); List<PerData> perDataList = new List<PerData>();
//插入合计结果 //插入合计结果
var groupList = dataList.Where(t => t.IsTotal == 1 && t.CellValue.HasValue).GroupBy(t => new { t.UnitType, t.AccountingUnit }); //var groupList = dataList.Where(t => t.IsTotal == 1 && t.CellValue.HasValue).GroupBy(t => new { t.UnitType, t.AccountingUnit });
var groupList = dataList.Where(t => t.CellValue.HasValue).GroupBy(t => new { t.UnitType, t.AccountingUnit });
foreach (var group in groupList) foreach (var group in groupList)
{ {
var ds = group.Select(t => new PerData var ds = group.Select(t => new PerData
......
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