Commit 4c3c052a by lcx

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

parent 5dd9c7f5
......@@ -55,10 +55,10 @@ public class ComputeResult
/// </summary>
public Nullable<decimal> PostCoefficient { get; set; }
///// <summary>
///// 发放系数(来自人员名单)
///// </summary>
//public Nullable<decimal> Grant { get; set; }
/// <summary>
/// 发放系数(来自人员名单)
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary>
/// 应发管理绩效(需计算)
......@@ -143,5 +143,15 @@ public class ComputeResult
///// 工作量绩效
///// </summary>
//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
///
/// </summary>
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
///
/// </summary>
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
Number = group.Number,
PerforTotal = sumValue,
Avg = group.Number == 0 ? 0 : (sumValue / group.Number),
Adjust = empolyee.Adjust
Adjust = empolyee.Adjust,
Grant = empolyee.Management
};
compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1);
......
......@@ -301,18 +301,34 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
var empolyee = empolyees.ElementAt(i);
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[]
{
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;
new { UnitType = new List<int>{ (int)UnitType.医生组, (int)UnitType.医技组 }, JobTitle = "主任" },
new { UnitType = new List<int>{ (int)UnitType.护理组 }, JobTitle = "护士长" },
};
foreach (var type in unitTypes)
{
if (empolyee.JobTitle.IndexOf(type.JobTitle) == -1) continue;
foreach (var item in type.UnitType)
{
resAccount = dataList.FirstOrDefault(t => t.UnitType == item && t.AccountingUnit == empolyee.AccountingUnit);
if (resAccount != null) continue;
}
}
if (resAccount == null) continue;
}
if (resAccount == null) continue;
var basicRule = basicRuleList.FirstOrDefault(t => t.UnitType == (UnitType)resAccount.UnitType);
if (basicRule == null) continue;
......@@ -344,7 +360,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
Efficiency = effAvg * (empolyee.Efficiency ?? 1),
Scale = resAccount.PerforTotal * (empolyee.Scale ?? 1),
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);
......@@ -390,7 +410,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
AccountingUnit = item.AccountingUnit,
EmployeeName = item.DoctorName,
FitPeople = item.FitPeople,
//Grant = item.Grant ?? 1,
Grant = item.Management ?? 1,
WorkTime = item.WorkTime,
PostCoefficient = item.PostCoefficient,
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