Commit 0ec1c97d by 李承祥

特殊科室增加枚举,护士总绩效基数分组合并,去除重复添加

parent e7129a72
......@@ -161,6 +161,8 @@ public enum PerforType
行政中层,
[Description("行政工勤人均绩效")]
行政工勤,
[Description("医生护士平均绩效")]
医生护士平均,
}
/// <summary>
......
......@@ -118,6 +118,13 @@ public List<res_baiscnorm> DocterNurseBaiscnorm(List<res_baiscnorm> baiscnormLis
// 护士
var sheetNurse = list.FirstOrDefault(t => t.SheetType == SheetType.ComputeNurseAccount);
var perdataNurse = sheetNurse.PerData.Select(t => (PerDataAccountNurse)t);
perdataNurse = perdataNurse.GroupBy(t => t.AccountingUnit)
.Select(t => new PerDataAccountNurse
{
AccountingUnit = t.Key,
Number = t.Sum(p => p.Number),
PerforTotal = t.Max(p => p.PerforTotal)
});
var baiscnormNurse = new res_baiscnorm
{
PositionName = EnumHelper.GetDescription(PerforType.护士),
......@@ -130,6 +137,13 @@ public List<res_baiscnorm> DocterNurseBaiscnorm(List<res_baiscnorm> baiscnormLis
// 医生
var sheetDocter = list.FirstOrDefault(t => t.SheetType == SheetType.ComputeDoctorAccount);
var perdataDocter = sheetDocter.PerData.Select(t => (PerDataAccountDoctor)t);
perdataDocter = perdataDocter.GroupBy(t => t.AccountingUnit)
.Select(t => new PerDataAccountDoctor
{
AccountingUnit = t.Key,
Number = t.Sum(p => p.Number),
PerforTotal = t.Max(p => p.PerforTotal)
});
var baiscnormDocter = new res_baiscnorm
{
PositionName = EnumHelper.GetDescription(PerforType.临床医生),
......
......@@ -87,6 +87,15 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
var type = typeList.FirstOrDefault(o => o.Description == item.QuantitativeIndicators);
if (type != null)
{
if (type.Value == (int)PerforType.医生护士平均)
{
var doctor = baiscNormService.GetBaiscNorm(baiscnormList, PerforType.临床医生) ?? 0;
var nurse = baiscNormService.GetBaiscNorm(baiscnormList, PerforType.护士) ?? 0;
// 添加参数计算
item.Quantity = (doctor + nurse) / 2;
}
else
{
var radio = perforImEmployeeRepository.GetEntities(p => p.FitPeople == EnumHelper.GetDescription((PerforType)type.Value) && p.AllotID == allot.ID)
?.FirstOrDefault().FitPeopleRatio ?? 1;
var basic = baiscNormService.GetBaiscNorm(baiscnormList, (PerforType)type.Value);
......@@ -94,6 +103,7 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
item.Quantity = basic != null ? basic * radio : null;
}
}
}
List<res_specialunit> resDataList = new List<res_specialunit>();
......
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