Commit b9922a39 by 李承祥

绩效类型相关修改,绩效参考对象取值计算

parent 084b90fd
......@@ -27,6 +27,11 @@ public class ComputeEmployee
public string FitPeople { get; set; }
/// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 核算基数
/// </summary>
public Nullable<decimal> BasicNorm { get; set; }
......
......@@ -68,14 +68,14 @@ public enum PerformanceType
Null = 0,
/// <summary> 科室主任人均绩效 </summary>
[Description("科室主任人均绩效")]
Director = 1,
//[Description("科室主任人均绩效")]
//Director = 1,
/// <summary> 科室副主任人均绩效 </summary>
[Description("科室副主任人均绩效")]
DeputyDirector = 2,
/// <summary> 科室护士长人均绩效 </summary>
[Description("科室护士长人均绩效")]
Nurse = 3,
//[Description("科室护士长人均绩效")]
//Nurse = 3,
/// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary>
[Description("临床科室主任人均绩效")]
......@@ -84,10 +84,22 @@ public enum PerformanceType
[Description("临床科室中层人均绩效")]
ReferenceDirectorAvg = 5,
/// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary>
[Description("临床科室护士人均绩效的95%")]
ReferenceNurseAvg95 = 6,
//[Description("临床科室护士人均绩效的95%")]
//ReferenceNurseAvg95 = 6,
/// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary>
[Description("临床科室护士长人均绩效")]
ReferenceHeadNurse = 7,
/// <summary> 临床科室副主任人均绩效 </summary>
[Description("临床科室副主任人均绩效")]
ReferenceDeputyDirector = 8,
/// <summary> 临床科室医生人均绩效 </summary>
[Description("临床科室医生人均绩效")]
ReferenceDoctor = 9,
/// <summary> 临床科室护士人均绩效 </summary>
[Description("临床科室护士人均绩效")]
ReferenceNurse = 10,
/// <summary> 行政工勤人均绩效 </summary>
[Description("行政工勤人均绩效")]
LogisticsWorker = 11,
}
}
......@@ -22,6 +22,11 @@ public class PerDataEmployee : IPerData
public string FitPeople { get; set; }
/// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary>
public string AccountType { get; set; }
......
......@@ -57,6 +57,11 @@ public class im_employee
public string FitPeople { get; set; }
/// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
......
......@@ -36,9 +36,17 @@ public class BaiscNormService : IAutoInjection
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床科护长")?.AvgValue;
}
else if (type == PerformanceType.ReferenceNurseAvg95)
else if (type == PerformanceType.ReferenceNurse)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床护士")?.AvgValue * 0.95m;
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床护士")?.AvgValue;
}
else if (type == PerformanceType.ReferenceDoctor)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床医生")?.AvgValue;
}
else if (type == PerformanceType.LogisticsWorker)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "行政工勤")?.AvgValue;
}
if (result.HasValue)
result = Math.Round(result.Value, 4);
......
......@@ -107,7 +107,11 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
{
var type = typeList.FirstOrDefault(o => o.Description == t.QuantitativeIndicators);
if (type != null)
t.Quantity = baiscNormService.GetBaiscNorm(baiscnormList, (PerformanceType)type.Value);
{
var radio = perforImEmployeeRepository.GetEntities(p => p.FitPeople == EnumHelper.GetDescription((PerformanceType)type.Value) && p.AllotID == allot.ID)
?.FirstOrDefault().FitPeopleRatio ?? 1;
t.Quantity = Math.Round(baiscNormService.GetBaiscNorm(baiscnormList, (PerformanceType)type.Value).Value * radio, 4); //添加参数计算
}
var res = new res_specialunit
{
......
......@@ -55,9 +55,9 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
{
{ 1,new List<PerformanceType>{ PerformanceType.ReferenceDirector } },
{ 2,new List<PerformanceType>{ PerformanceType.ReferenceDirectorAvg } },
{ 3,new List<PerformanceType>{ PerformanceType.ReferenceNurseAvg95, PerformanceType.ReferenceHeadNurse, PerformanceType.Null } },
{ 4,new List<PerformanceType>{ PerformanceType.Director, PerformanceType.DeputyDirector } },
{ 5,new List<PerformanceType>{ PerformanceType.Nurse } }
{ 3,new List<PerformanceType>{ PerformanceType.LogisticsWorker, PerformanceType.ReferenceHeadNurse, PerformanceType.ReferenceNurse, PerformanceType.Null } },
{ 4,new List<PerformanceType>{ PerformanceType.ReferenceDoctor, PerformanceType.DeputyDirector } },
{ 5,new List<PerformanceType>{ PerformanceType.ReferenceNurse } }
};
if (keyValues.ContainsKey(type))
......
......@@ -31,9 +31,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
{
Dictionary<PerformanceType, string> keyValues = new Dictionary<PerformanceType, string>
{
{ PerformanceType.Director, "临床科室主任"},
{ PerformanceType.ReferenceDirector, "临床科室主任"},
{ PerformanceType.DeputyDirector, "临床科室副主任"},
{ PerformanceType.Nurse, "临床科室护士长"},
{ PerformanceType.ReferenceHeadNurse, "临床科室护士长"},
};
List<ComputeResult> computeList = new List<ComputeResult>();
foreach (var key in keyValues.Keys)
......@@ -93,10 +93,19 @@ public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes)
{
var keyList = new[]
{
new { type = "临床科室", reference = "科室主任人均绩效", groupname = "临床科主任" },
new { type = "临床科室", reference = "科室副主任人均绩效", groupname = "临床科副主任" },
new { type = "医技科室", reference = "科室主任人均绩效", groupname = "医技科主任" },
new { type = "临床科室", reference = "科室护士长人均绩效", groupname = "临床科护长" },
//new { type = "临床科室", reference = "科室主任人均绩效", groupname = "临床科主任" },
//new { type = "临床科室", reference = "科室副主任人均绩效", groupname = "临床科副主任" },
//new { type = "医技科室", reference = "科室主任人均绩效", groupname = "医技科主任" },
//new { type = "临床科室", reference = "科室护士长人均绩效", groupname = "临床科护长" },
new { type = "临床科室", reference = "科室副主任人均绩效", groupname = "科副主任" },
new { type = "临床科室", reference = "临床科室主任人均绩效", groupname = "临床科主任" },
new { type = "医技科室", reference = "临床科室主任人均绩效", groupname = "医技科主任" },
new { type = "临床科室", reference = "临床科室副主任人均绩效", groupname = "临床科副主任" },
new { type = "临床科室", reference = "临床科室医生人均绩效", groupname = "临床医生" },
new { type = "临床科室", reference = "临床科室护士长人均绩效", groupname = "临床科护长" },
//new { type = "临床科室", reference = "临床科室护士人均绩效", groupname = "临床护士" },已存在
new { type = "临床科室", reference = "行政工勤人均绩效", groupname = "行政工勤" },
};
var groupList = from cp in computes
......@@ -126,13 +135,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
{
PerformanceType.ReferenceDirector,
PerformanceType.ReferenceDirectorAvg,
PerformanceType.ReferenceNurseAvg95,
PerformanceType.ReferenceNurse,
PerformanceType.ReferenceHeadNurse,
PerformanceType.Null,
};
PerformanceType[] yearTypes = new PerformanceType[]
{
PerformanceType.ReferenceNurseAvg95,
PerformanceType.ReferenceNurse,
PerformanceType.ReferenceHeadNurse,
PerformanceType.Null,
};
......@@ -153,7 +162,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
FitPeople = item.FitPeople,
Grant = item.Grant,
WorkTime = item.WorkTime,
BaiscNormValue = baiscnorm,
BaiscNormValue = baiscnorm * (item.FitPeopleRatio ?? 1), //添加参数计算
PostCoefficient = item.PostCoefficient,
Attendance = item.Attendance,
ScoreAverageRate = item.ScoreAverageRate,
......
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