Commit 943a6d0b by lcx

全院核算绩效发放数据分组合并、5.2读取数据设置起始行、人员信息中的医院奖罚数据来源修改

parent f4c54d56
...@@ -78,7 +78,7 @@ public class ResultComputeService : IAutoInjection ...@@ -78,7 +78,7 @@ public class ResultComputeService : IAutoInjection
/// <param name="excel"></param> /// <param name="excel"></param>
public List<res_baiscnorm> Compute(per_allot allot, List<PerSheet> accountSheet) public List<res_baiscnorm> Compute(per_allot allot, List<PerSheet> accountSheet)
{ {
//取出人员信息 //取出人员信息
var empolyeeList = perforImemployeeclinicRepository.GetEntities(t => t.AllotID == allot.ID); var empolyeeList = perforImemployeeclinicRepository.GetEntities(t => t.AllotID == allot.ID);
var accountbasicList = perforImaccountbasicRepository.GetEntities(t => t.AllotID == allot.ID); var accountbasicList = perforImaccountbasicRepository.GetEntities(t => t.AllotID == allot.ID);
...@@ -118,7 +118,6 @@ public List<res_baiscnorm> Compute(per_allot allot, List<PerSheet> accountSheet) ...@@ -118,7 +118,6 @@ public List<res_baiscnorm> Compute(per_allot allot, List<PerSheet> accountSheet)
return baiscnormList; return baiscnormList;
} }
/// <summary> /// <summary>
/// 特殊科室绩效计算 /// 特殊科室绩效计算
/// </summary> /// </summary>
...@@ -166,7 +165,6 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno ...@@ -166,7 +165,6 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
return t.Quantity * t.QuantitativeIndicatorsValue * headcount; return t.Quantity * t.QuantitativeIndicatorsValue * headcount;
}); });
foreach (var item in accountDataList) foreach (var item in accountDataList)
{ {
//科室奖罚汇总结果 //科室奖罚汇总结果
...@@ -194,7 +192,7 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno ...@@ -194,7 +192,7 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
Quantity = item.Quantity, Quantity = item.Quantity,
QuantitativeIndicatorsValue = item.QuantitativeIndicatorsValue, QuantitativeIndicatorsValue = item.QuantitativeIndicatorsValue,
QuantitativeFee = item.Quantity * item.QuantitativeIndicatorsValue * headcount, QuantitativeFee = item.Quantity * item.QuantitativeIndicatorsValue * headcount,
//ScoringAverage = scoreAverage.HasValue ? scoreAverage : dept?.ScoringAverage, //ScoringAverage = scoreAverage.HasValue ? scoreAverage : dept?.ScoringAverage,
ScoringAverage = dept?.ScoringAverage ?? 1, ScoringAverage = dept?.ScoringAverage ?? 1,
//OtherPerfor = dept?.OtherPerfor1, //OtherPerfor = dept?.OtherPerfor1,
//Punishment = (extra ?? 0), //Punishment = (extra ?? 0),
...@@ -250,7 +248,7 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno ...@@ -250,7 +248,7 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
JobTitle = empolyee.JobTitle, JobTitle = empolyee.JobTitle,
JobNumber = empolyee.JobNumber, JobNumber = empolyee.JobNumber,
ScoreAverageRate = empolyee.ScoreAverageRate, ScoreAverageRate = empolyee.ScoreAverageRate,
Punishment = 0, Punishment = empolyee.Punishment ?? 0,
//OtherPerfor = empolyee.OtherPerfor, //OtherPerfor = empolyee.OtherPerfor,
OtherManagePerfor = empolyee?.OtherManagePerfor ?? 0, OtherManagePerfor = empolyee?.OtherManagePerfor ?? 0,
Number = group.Number, Number = group.Number,
...@@ -503,7 +501,8 @@ private void ChangeRealGiveFee(res_reserved reserved, per_allot allot, decimal r ...@@ -503,7 +501,8 @@ private void ChangeRealGiveFee(res_reserved reserved, per_allot allot, decimal r
reserved.DecRatio = ratio; reserved.DecRatio = ratio;
} }
} }
#endregion
#endregion 预留金额
/// <summary> /// <summary>
/// 创建科室二次分配 /// 创建科室二次分配
......
...@@ -344,12 +344,30 @@ public List<DeptResponse> GetAdminPerformance(int allotId) ...@@ -344,12 +344,30 @@ public List<DeptResponse> GetAdminPerformance(int allotId)
//ScoringPerfor = t.Sum(group => group.RealGiveFee) * (t.FirstOrDefault(group => group.ScoreAverageRate > 0)?.ScoreAverageRate ?? 0), //ScoringPerfor = t.Sum(group => group.RealGiveFee) * (t.FirstOrDefault(group => group.ScoreAverageRate > 0)?.ScoreAverageRate ?? 0),
Avg = t.Sum(group => group.RealGiveFee) / t.Count(), //人均绩效 Avg = t.Sum(group => group.RealGiveFee) / t.Count(), //人均绩效
OtherPerfor1 = t.Sum(group => group.OtherPerfor), OtherPerfor1 = t.Sum(group => group.OtherPerfor),
RealGiveFee = t.Sum(group => group.RealGiveFee) + t.Sum(group => group.OtherPerfor), //实发绩效 RealGiveFee = t.Sum(group => group.RealGiveFee ?? 0) + t.Sum(group => group.OtherPerfor ?? 0), //实发绩效
}).ToList(); }).ToList();
var enumItems = EnumHelper.GetItems<AccountUnitType>();
adminPerfor = adminPerfor.OrderBy(t => enumItems.FirstOrDefault(e => e.Name == t.UnitName).Value).ThenBy(t => t.AccountingUnit).ToList();
result.AddRange(adminPerfor); result.AddRange(adminPerfor);
result = result.GroupBy(t => new { t.AccountingUnit, t.UnitName })
.Select(t => new DeptResponse
{
UnitName = t.Key.UnitName,
AccountingUnit = t.Key.AccountingUnit,
Department = t.Key.AccountingUnit,
PerforFee = t.Sum(group => group.PerforFee),
WorkloadFee = t.Sum(group => group.WorkloadFee),
AssessBeforeOtherFee = t.Sum(group => group.AssessBeforeOtherFee),
ScoringAverage = t.Sum(group => group.ScoringAverage),
MedicineExtra = t.Sum(group => group.MedicineExtra),
Extra = t.Sum(group => group.Extra),
AssessLaterOtherFee = t.Sum(group => group.AssessLaterOtherFee),
AdjustFactor = t.Sum(group => group.AdjustFactor),
AdjustLaterOtherFee = t.Sum(group => group.AdjustLaterOtherFee),
RealGiveFee = t.Sum(group => group.RealGiveFee),
}).ToList();
var enumItems = EnumHelper.GetItems<AccountUnitType>();
result = result.OrderBy(t => enumItems.FirstOrDefault(e => e.Name == t.UnitName)?.Value)/*.ThenBy(t => t.AccountingUnit)*/.ToList();
return result; return result;
} }
......
...@@ -19,6 +19,7 @@ public class PerSheetDataReadPersonExtra : IPerSheetDataRead ...@@ -19,6 +19,7 @@ public class PerSheetDataReadPersonExtra : IPerSheetDataRead
HeaderLastRowNum = 1, HeaderLastRowNum = 1,
HeaderFirstCellNum = 0, HeaderFirstCellNum = 0,
DataFirstRowNum = 2, DataFirstRowNum = 2,
DataFirstCellNum = 4,
TotalCellNum = 0, TotalCellNum = 0,
AccountingUnit = new List<AccountingUnit> AccountingUnit = new List<AccountingUnit>
{ {
...@@ -45,7 +46,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -45,7 +46,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
var row = sheet.GetRow(r); var row = sheet.GetRow(r);
if (row == null) continue; if (row == null) continue;
for (int c = 0; c < vhead.Count(); c++) for (int c = Point.DataFirstCellNum.Value; c < vhead.Count(); c++)
{ {
var athead = vhead.ElementAt(c); var athead = vhead.ElementAt(c);
//var cellValue = NopiSevice.GetCellValue(row.GetCell(athead.PointCell)); //var cellValue = NopiSevice.GetCellValue(row.GetCell(athead.PointCell));
...@@ -74,7 +75,6 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -74,7 +75,6 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
if (unit.JobCellNum.HasValue) if (unit.JobCellNum.HasValue)
data.JobNumber = row.GetCell(unit.JobCellNum.Value).GetValue(); data.JobNumber = row.GetCell(unit.JobCellNum.Value).GetValue();
if (string.IsNullOrEmpty(data.AccountingUnit) && string.IsNullOrEmpty(data.Department)) if (string.IsNullOrEmpty(data.AccountingUnit) && string.IsNullOrEmpty(data.Department))
continue; continue;
dataList.Add(data); dataList.Add(data);
......
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