Commit 4c3c052a by lcx

共用科主任/护士长计算修改,最终数据添加 发放系数,科主任人数,核算科室人数 字段

parent 5dd9c7f5
...@@ -55,10 +55,10 @@ public class ComputeResult ...@@ -55,10 +55,10 @@ public class ComputeResult
/// </summary> /// </summary>
public Nullable<decimal> PostCoefficient { get; set; } public Nullable<decimal> PostCoefficient { get; set; }
///// <summary> /// <summary>
///// 发放系数(来自人员名单) /// 发放系数(来自人员名单)
///// </summary> /// </summary>
//public Nullable<decimal> Grant { get; set; } public Nullable<decimal> Grant { get; set; }
/// <summary> /// <summary>
/// 应发管理绩效(需计算) /// 应发管理绩效(需计算)
...@@ -143,5 +143,15 @@ public class ComputeResult ...@@ -143,5 +143,15 @@ public class ComputeResult
///// 工作量绩效 ///// 工作量绩效
///// </summary> ///// </summary>
//public decimal? Workload { get; set; } //public decimal? Workload { get; set; }
/// <summary>
/// 科主任/护士长人数
/// </summary>
public Nullable<decimal> ManagerNumber { get; set; }
/// <summary>
/// 核算单元人员数量
/// </summary>
public Nullable<decimal> MedicalNumber { get; set; }
} }
} }
...@@ -150,5 +150,15 @@ public class ResComputeResponse ...@@ -150,5 +150,15 @@ public class ResComputeResponse
/// ///
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary>
/// 科主任/护士长人数
/// </summary>
public Nullable<decimal> ManagerNumber { get; set; }
/// <summary>
/// 核算单元人员数量
/// </summary>
public Nullable<decimal> MedicalNumber { get; set; }
} }
} }
...@@ -170,5 +170,15 @@ public class res_compute ...@@ -170,5 +170,15 @@ public class res_compute
/// ///
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary>
/// 科主任/护士长人数
/// </summary>
public Nullable<decimal> ManagerNumber { get; set; }
/// <summary>
/// 核算单元人员数量
/// </summary>
public Nullable<decimal> MedicalNumber { get; set; }
} }
} }
...@@ -218,7 +218,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno ...@@ -218,7 +218,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
Number = group.Number, Number = group.Number,
PerforTotal = sumValue, PerforTotal = sumValue,
Avg = group.Number == 0 ? 0 : (sumValue / group.Number), Avg = group.Number == 0 ? 0 : (sumValue / group.Number),
Adjust = empolyee.Adjust Adjust = empolyee.Adjust,
Grant = empolyee.Management
}; };
compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1); compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1);
......
...@@ -301,18 +301,34 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a ...@@ -301,18 +301,34 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
var empolyee = empolyees.ElementAt(i); var empolyee = empolyees.ElementAt(i);
var resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == empolyee.UnitType && t.AccountingUnit == empolyee.AccountingUnit); var resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == empolyee.UnitType && t.AccountingUnit == empolyee.AccountingUnit);
if (resAccount == null) if (resAccount == null && empolyees.Count() > 1)
{ {
// 如果没有找到科室,则找相同用户的其他核算单元类型 // 如果没有找到科室,则找相同用户的其他核算单元类型
for (int j = 0; j < empolyees.Count(); j++) //for (int j = 0; j < empolyees.Count(); j++)
//{
// if (i == j) continue;
// var empolyee2 = empolyees.ElementAt(j);
// resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == empolyee2.UnitType && t.AccountingUnit == empolyee2.AccountingUnit);
// if (resAccount != null) continue;
//}
//if (resAccount == null) continue;
var unitTypes = new[]
{
new { UnitType = new List<int>{ (int)UnitType.医生组, (int)UnitType.医技组 }, JobTitle = "主任" },
new { UnitType = new List<int>{ (int)UnitType.护理组 }, JobTitle = "护士长" },
};
foreach (var type in unitTypes)
{ {
if (i == j) continue; if (empolyee.JobTitle.IndexOf(type.JobTitle) == -1) continue;
var empolyee2 = empolyees.ElementAt(j); foreach (var item in type.UnitType)
resAccount = dataList.FirstOrDefault(t => ((UnitType)t.UnitType).ToString() == empolyee2.UnitType && t.AccountingUnit == empolyee2.AccountingUnit); {
resAccount = dataList.FirstOrDefault(t => t.UnitType == item && t.AccountingUnit == empolyee.AccountingUnit);
if (resAccount != null) continue; if (resAccount != null) continue;
} }
if (resAccount == null) continue;
} }
}
if (resAccount == null) continue;
var basicRule = basicRuleList.FirstOrDefault(t => t.UnitType == (UnitType)resAccount.UnitType); var basicRule = basicRuleList.FirstOrDefault(t => t.UnitType == (UnitType)resAccount.UnitType);
if (basicRule == null) continue; if (basicRule == null) continue;
...@@ -344,7 +360,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a ...@@ -344,7 +360,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
Efficiency = effAvg * (empolyee.Efficiency ?? 1), Efficiency = effAvg * (empolyee.Efficiency ?? 1),
Scale = resAccount.PerforTotal * (empolyee.Scale ?? 1), Scale = resAccount.PerforTotal * (empolyee.Scale ?? 1),
Adjust = empolyee.Adjust, Adjust = empolyee.Adjust,
Remark = empolyees.Count() > 1 ? "特殊科室主任,共用核算单元" : "" Remark = empolyees.Count() > 1 ? "特殊科室主任,共用核算单元" : "",
Grant = empolyee.Management,
ManagerNumber = resAccount.ManagerNumber,
MedicalNumber = resAccount.Number
}; };
//应发管理绩效 //应发管理绩效
compute.ShouldGiveFee = (compute.Efficiency + compute.Scale) * (empolyee.Management ?? 0); compute.ShouldGiveFee = (compute.Efficiency + compute.Scale) * (empolyee.Management ?? 0);
...@@ -390,7 +410,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot ...@@ -390,7 +410,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
AccountingUnit = item.AccountingUnit, AccountingUnit = item.AccountingUnit,
EmployeeName = item.DoctorName, EmployeeName = item.DoctorName,
FitPeople = item.FitPeople, FitPeople = item.FitPeople,
//Grant = item.Grant ?? 1, Grant = item.Management ?? 1,
WorkTime = item.WorkTime, WorkTime = item.WorkTime,
PostCoefficient = item.PostCoefficient, PostCoefficient = item.PostCoefficient,
Attendance = item.Attendance, Attendance = item.Attendance,
......
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