Commit 81ded827 by lcx

医院显示管理绩效/合计绩效,绩效基数人均绩效不保留小数位

parent 94a5b145
......@@ -164,7 +164,8 @@ public ApiResponse AllCompute([FromBody]ComputerRequest request)
var allot = _allotService.GetAllot(request.AllotId);
if (null == allot)
throw new PerformanceException("当前绩效记录不存在");
var list = _computeService.AllCompute(request.AllotId);
var isShowManage = _computeService.IsShowManage(request.AllotId);
var list = isShowManage == 1 ? _computeService.AllCompute(request.AllotId) : _computeService.AllManageCompute(request.AllotId);
return new ApiResponse(ResponseType.OK, "ok", list);
}
......
......@@ -51,6 +51,10 @@ public class HospitalRequest
///// 是否开启规模/效率绩效 1 启用 2 禁用
///// </summary>
//public Nullable<int> IsOpenDirector { get; set; }
/// <summary>
/// 是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
/// </summary>
public Nullable<int> IsShowManage { get; set; }
}
public class HospitalRequestValidator : AbstractValidator<HospitalRequest>
......
......@@ -18,5 +18,6 @@ public class HospitalResponse
public int IsOpenDrugprop { get; set; }
public int IsOpenIncome { get; set; }
public int IsOpenDirector { get; set; }
public int IsShowManage { get; set; }
}
}
......@@ -80,5 +80,10 @@ public class sys_hospital
/// 是否开启规模/效率绩效 1 启用 2 禁用
/// </summary>
public Nullable<int> IsOpenDirector { get; set; }
/// <summary>
/// 是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
/// </summary>
public Nullable<int> IsShowManage { get; set; }
}
}
......@@ -37,7 +37,7 @@ public List<res_baiscnorm> ComputeAvg(List<res_baiscnorm> baiscnormList, List<im
PositionName = EnumHelper.GetDescription(item.Reference),
TotelNumber = count,
TotelValue = dataList?.Sum(t => t.BaiscNormPerforTotal),
AvgValue = dataList?.Sum(t => t.BaiscNormPerforTotal) / count
AvgValue = Math.Round((dataList?.Sum(t => t.BaiscNormPerforTotal) / count) ?? 0)
};
baiscnormList.Add(baiscnorm);
}
......@@ -139,7 +139,7 @@ public List<res_baiscnorm> DocterNurseBaiscnorm(List<res_baiscnorm> baiscnormLis
PositionName = EnumHelper.GetDescription(info.PerforType),
TotelNumber = groupData.Sum(t => t.Number),
TotelValue = groupData.Sum(t => t.PerforTotal),
AvgValue = groupData.Sum(t => t.PerforTotal) / groupData.Sum(t => t.Number)
AvgValue = Math.Round(groupData.Sum(t => t.PerforTotal) / groupData.Sum(t => t.Number) ?? 0)
};
baiscnormList.Add(baiscnorm);
}
......
......@@ -31,6 +31,7 @@ public class ComputeService : IAutoInjection
private readonly PerforImemployeeclinicRepository _perforImemployeeclinicRepository;
private readonly PerforImemployeeRepository _perforImemployeeRepository;
private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforHospitalRepository hospitalRepository;
public ComputeService(PerforResaccountRepository perforResaccountRepository,
//PerforResaccountnurseRepository perforResAccountnurseRepository,
......@@ -48,7 +49,8 @@ public class ComputeService : IAutoInjection
PerforAgcomputeRepository perforAgcomputeRepository,
PerforImemployeeclinicRepository perforImemployeeclinicRepository,
PerforImemployeeRepository perforImemployeeRepository,
PerforPerallotRepository perforPerallotRepository)
PerforPerallotRepository perforPerallotRepository,
PerforHospitalRepository hospitalRepository)
{
this.perforResaccountRepository = perforResaccountRepository;
//this._perforResAccountnurseRepository = perforResAccountnurseRepository;
......@@ -67,6 +69,16 @@ public class ComputeService : IAutoInjection
this._perforImemployeeclinicRepository = perforImemployeeclinicRepository;
this._perforImemployeeRepository = perforImemployeeRepository;
this.perforPerallotRepository = perforPerallotRepository;
this.hospitalRepository = hospitalRepository;
}
public int IsShowManage(int allotId)
{
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
if (allot == null)
throw new PerformanceException("绩效信息无效");
return hospitalRepository.GetEntity(t => t.ID == allot.HospitalId)?.IsShowManage ?? 1;
}
/// <summary>
......@@ -96,6 +108,7 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
}
},
};
var isShowManage = IsShowManage(allotId);
if (pairs.Keys.Any(t => t == type))
{
......@@ -142,7 +155,20 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
}
}
data = Mapper.Map<List<ResComputeResponse>>(joinData);
data?.ForEach(t => t.WorkTime = string.IsNullOrEmpty(t.WorkTime) ? null : Convert.ToDateTime(t.WorkTime).ToString("yyyy-MM-dd"));
data?.ForEach(t =>
{
t.WorkTime = string.IsNullOrEmpty(t.WorkTime) ? null : Convert.ToDateTime(t.WorkTime).ToString("yyyy-MM-dd");
if (isShowManage == 2)
{
t.PerforSumFee = t.ShouldGiveFee;
var employee = employees.FirstOrDefault(e => e.DoctorName == t.EmployeeName && e.AccountingUnit == t.AccountingUnit);
var scoreAverageRate = t.ScoreAverageRate ?? employee.ScoreAverageRate ?? 0;
var attendance = t.Attendance ?? employee.Attendance ?? 0;
t.GiveFee = t.ShouldGiveFee * scoreAverageRate * attendance + t.OtherPerfor;
t.RealGiveFee = t.GiveFee * (t.Adjust ?? 1m);
t.BaiscNormValue = t.RealGiveFee;
}
});
return data?.OrderByDescending(t => t.AccountingUnit).ToList();
}
else
......
......@@ -132,6 +132,7 @@ public HospitalResponse Update(HospitalRequest request)
//hospital.IsOpenWorkYear = request.IsOpenWorkYear;
//hospital.IsOpenDirector = request.IsOpenDirector;
hospital.IsOpenDrugprop = request.IsOpenDrugprop;
hospital.IsShowManage = request.IsShowManage;
//hospital.IsOpenIncome = request.IsOpenIncome;
if (!_hospitalRepository.Update(hospital))
......
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