Commit b9922a39 by 李承祥

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

parent 084b90fd
...@@ -27,6 +27,11 @@ public class ComputeEmployee ...@@ -27,6 +27,11 @@ public class ComputeEmployee
public string FitPeople { get; set; } public string FitPeople { get; set; }
/// <summary> /// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 核算基数 /// 核算基数
/// </summary> /// </summary>
public Nullable<decimal> BasicNorm { get; set; } public Nullable<decimal> BasicNorm { get; set; }
......
...@@ -68,14 +68,14 @@ public enum PerformanceType ...@@ -68,14 +68,14 @@ public enum PerformanceType
Null = 0, Null = 0,
/// <summary> 科室主任人均绩效 </summary> /// <summary> 科室主任人均绩效 </summary>
[Description("科室主任人均绩效")] //[Description("科室主任人均绩效")]
Director = 1, //Director = 1,
/// <summary> 科室副主任人均绩效 </summary> /// <summary> 科室副主任人均绩效 </summary>
[Description("科室副主任人均绩效")] [Description("科室副主任人均绩效")]
DeputyDirector = 2, DeputyDirector = 2,
/// <summary> 科室护士长人均绩效 </summary> /// <summary> 科室护士长人均绩效 </summary>
[Description("科室护士长人均绩效")] //[Description("科室护士长人均绩效")]
Nurse = 3, //Nurse = 3,
/// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary> /// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary>
[Description("临床科室主任人均绩效")] [Description("临床科室主任人均绩效")]
...@@ -84,10 +84,22 @@ public enum PerformanceType ...@@ -84,10 +84,22 @@ public enum PerformanceType
[Description("临床科室中层人均绩效")] [Description("临床科室中层人均绩效")]
ReferenceDirectorAvg = 5, ReferenceDirectorAvg = 5,
/// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary> /// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary>
[Description("临床科室护士人均绩效的95%")] //[Description("临床科室护士人均绩效的95%")]
ReferenceNurseAvg95 = 6, //ReferenceNurseAvg95 = 6,
/// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary> /// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary>
[Description("临床科室护士长人均绩效")] [Description("临床科室护士长人均绩效")]
ReferenceHeadNurse = 7, 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 ...@@ -22,6 +22,11 @@ public class PerDataEmployee : IPerData
public string FitPeople { get; set; } public string FitPeople { get; set; }
/// <summary> /// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室) /// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary> /// </summary>
public string AccountType { get; set; } public string AccountType { get; set; }
......
...@@ -57,6 +57,11 @@ public class im_employee ...@@ -57,6 +57,11 @@ public class im_employee
public string FitPeople { get; set; } public string FitPeople { get; set; }
/// <summary> /// <summary>
/// 绩效基数核算参考对象取值比例(如临床科室护士*95%)
/// </summary>
public Nullable<decimal> FitPeopleRatio { get; set; }
/// <summary>
/// 医生姓名 /// 医生姓名
/// </summary> /// </summary>
public string DoctorName { get; set; } public string DoctorName { get; set; }
......
...@@ -7,35 +7,35 @@ ...@@ -7,35 +7,35 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// 医院数据提取脚本 /// 医院数据提取脚本
/// </summary> /// </summary>
[Table("sys_extract")] [Table("sys_extract")]
public class sys_extract public class sys_extract
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 医院ID /// 医院ID
/// </summary> /// </summary>
public Nullable<int> HospitalId { get; set; } public Nullable<int> HospitalId { get; set; }
/// <summary> /// <summary>
/// EXCEL中SHEET名称 /// EXCEL中SHEET名称
/// </summary> /// </summary>
public string SheetName { get; set; } public string SheetName { get; set; }
/// <summary> /// <summary>
/// 执行脚本 /// 执行脚本
/// </summary> /// </summary>
public string ExecuteScript { get; set; } public string ExecuteScript { get; set; }
/// <summary> /// <summary>
/// 是否可用 1 可用 2 不可用 /// 是否可用 1 可用 2 不可用
/// </summary> /// </summary>
......
...@@ -36,9 +36,17 @@ public class BaiscNormService : IAutoInjection ...@@ -36,9 +36,17 @@ public class BaiscNormService : IAutoInjection
{ {
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床科护长")?.AvgValue; 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) if (result.HasValue)
result = Math.Round(result.Value, 4); result = Math.Round(result.Value, 4);
......
...@@ -107,7 +107,11 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno ...@@ -107,7 +107,11 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
{ {
var type = typeList.FirstOrDefault(o => o.Description == t.QuantitativeIndicators); var type = typeList.FirstOrDefault(o => o.Description == t.QuantitativeIndicators);
if (type != null) 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 var res = new res_specialunit
{ {
......
...@@ -55,9 +55,9 @@ public List<ResComputeResponse> GetCompute(int allotId, int type) ...@@ -55,9 +55,9 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
{ {
{ 1,new List<PerformanceType>{ PerformanceType.ReferenceDirector } }, { 1,new List<PerformanceType>{ PerformanceType.ReferenceDirector } },
{ 2,new List<PerformanceType>{ PerformanceType.ReferenceDirectorAvg } }, { 2,new List<PerformanceType>{ PerformanceType.ReferenceDirectorAvg } },
{ 3,new List<PerformanceType>{ PerformanceType.ReferenceNurseAvg95, PerformanceType.ReferenceHeadNurse, PerformanceType.Null } }, { 3,new List<PerformanceType>{ PerformanceType.LogisticsWorker, PerformanceType.ReferenceHeadNurse, PerformanceType.ReferenceNurse, PerformanceType.Null } },
{ 4,new List<PerformanceType>{ PerformanceType.Director, PerformanceType.DeputyDirector } }, { 4,new List<PerformanceType>{ PerformanceType.ReferenceDoctor, PerformanceType.DeputyDirector } },
{ 5,new List<PerformanceType>{ PerformanceType.Nurse } } { 5,new List<PerformanceType>{ PerformanceType.ReferenceNurse } }
}; };
if (keyValues.ContainsKey(type)) if (keyValues.ContainsKey(type))
......
...@@ -31,9 +31,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp ...@@ -31,9 +31,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
{ {
Dictionary<PerformanceType, string> keyValues = new Dictionary<PerformanceType, string> Dictionary<PerformanceType, string> keyValues = new Dictionary<PerformanceType, string>
{ {
{ PerformanceType.Director, "临床科室主任"}, { PerformanceType.ReferenceDirector, "临床科室主任"},
{ PerformanceType.DeputyDirector, "临床科室副主任"}, { PerformanceType.DeputyDirector, "临床科室副主任"},
{ PerformanceType.Nurse, "临床科室护士长"}, { PerformanceType.ReferenceHeadNurse, "临床科室护士长"},
}; };
List<ComputeResult> computeList = new List<ComputeResult>(); List<ComputeResult> computeList = new List<ComputeResult>();
foreach (var key in keyValues.Keys) foreach (var key in keyValues.Keys)
...@@ -93,10 +93,19 @@ public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes) ...@@ -93,10 +93,19 @@ public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes)
{ {
var keyList = new[] 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 var groupList = from cp in computes
...@@ -126,13 +135,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_ ...@@ -126,13 +135,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
{ {
PerformanceType.ReferenceDirector, PerformanceType.ReferenceDirector,
PerformanceType.ReferenceDirectorAvg, PerformanceType.ReferenceDirectorAvg,
PerformanceType.ReferenceNurseAvg95, PerformanceType.ReferenceNurse,
PerformanceType.ReferenceHeadNurse, PerformanceType.ReferenceHeadNurse,
PerformanceType.Null, PerformanceType.Null,
}; };
PerformanceType[] yearTypes = new PerformanceType[] PerformanceType[] yearTypes = new PerformanceType[]
{ {
PerformanceType.ReferenceNurseAvg95, PerformanceType.ReferenceNurse,
PerformanceType.ReferenceHeadNurse, PerformanceType.ReferenceHeadNurse,
PerformanceType.Null, PerformanceType.Null,
}; };
...@@ -153,7 +162,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_ ...@@ -153,7 +162,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
FitPeople = item.FitPeople, FitPeople = item.FitPeople,
Grant = item.Grant, Grant = item.Grant,
WorkTime = item.WorkTime, WorkTime = item.WorkTime,
BaiscNormValue = baiscnorm, BaiscNormValue = baiscnorm * (item.FitPeopleRatio ?? 1), //添加参数计算
PostCoefficient = item.PostCoefficient, PostCoefficient = item.PostCoefficient,
Attendance = item.Attendance, Attendance = item.Attendance,
ScoreAverageRate = item.ScoreAverageRate, 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