Commit 91ced9f1 by 钟博

Merge branch 'feature/个人绩效查询' into feature/个人账号登陆查询绩效

parents 87d8d98c 3cb09656
...@@ -458,70 +458,8 @@ public ApiResponse Reserved([FromBody] ReservedRequest request) ...@@ -458,70 +458,8 @@ public ApiResponse Reserved([FromBody] ReservedRequest request)
return new ApiResponse(ResponseType.ParameterError, "绩效信息无效"); return new ApiResponse(ResponseType.ParameterError, "绩效信息无效");
var userid = _claim.GetUserId(); var userid = _claim.GetUserId();
var reserveds = _allotService.GetReserved(request.HospitalId, request.Year, userid); var reserveds = _allotService.GetReserved(request.HospitalId, request.Year, userid);
return new ApiResponse(ResponseType.OK, reserveds);
#region 格式转换
var result = reserveds?.Select(w => new
{
w.HospitalId,
w.Year,
w.UnitType,
w.AccountingUnit,
w.EmployeeName,
w.JobNumber,
JanReseFee = w.JanFee * w.JanRatio,
JanGiveFee = w.JanFee * (1 - w.JanRatio),
FebReseFee = w.FebFee * w.FebRatio,
FebGiveFee = w.FebFee * (1 - w.FebRatio),
MarReseFee = w.MarFee * w.MarRatio,
MarGiveFee = w.MarFee * (1 - w.MarRatio),
AprReseFee = w.AprFee * w.AprRatio,
AprGiveFee = w.AprFee * (1 - w.AprRatio),
MayReseFee = w.MayFee * w.MayRatio,
MayGiveFee = w.MayFee * (1 - w.MayRatio),
JunReseFee = w.JunFee * w.JunRatio,
JunGiveFee = w.JunFee * (1 - w.JunRatio),
JulReseFee = w.JulFee * w.JulRatio,
JulGiveFee = w.JulFee * (1 - w.JulRatio),
AugReseFee = w.AugFee * w.AugRatio,
AugGiveFee = w.AugFee * (1 - w.AugRatio),
SepReseFee = w.SepFee * w.SepRatio,
SepGiveFee = w.SepFee * (1 - w.SepRatio),
OctReseFee = w.OctFee * w.OctRatio,
OctGiveFee = w.OctFee * (1 - w.OctRatio),
NovReseFee = w.NovFee * w.NovRatio,
NovGiveFee = w.NovFee * (1 - w.NovRatio),
DecReseFee = w.DecFee * w.DecRatio,
DecGiveFee = w.DecFee * (1 - w.DecRatio),
TotalReseFee = (w.JanFee * w.JanRatio ?? 0) + (w.FebFee * w.FebRatio ?? 0) + (w.MarFee * w.MarRatio ?? 0)
+ (w.AprFee * w.AprRatio ?? 0) + (w.MayFee * w.MayRatio ?? 0) + (w.JunFee * w.JunRatio ?? 0)
+ (w.JulFee * w.JulRatio ?? 0) + (w.AugFee * w.AugRatio ?? 0) + (w.SepFee * w.SepRatio ?? 0)
+ (w.OctFee * w.OctRatio ?? 0) + (w.NovFee * w.NovRatio ?? 0) + (w.DecFee * w.DecRatio ?? 0),
TotalGiveFee = (w.JanFee * (1 - w.JanRatio) ?? 0) + (w.FebFee * (1 - w.FebRatio) ?? 0) + (w.MarFee * (1 - w.MarRatio) ?? 0)
+ (w.AprFee * (1 - w.AprRatio) ?? 0) + (w.MayFee * (1 - w.MayRatio) ?? 0) + (w.JunFee * (1 - w.JunRatio) ?? 0)
+ (w.JulFee * (1 - w.JulRatio) ?? 0) + (w.AugFee * (1 - w.AugRatio) ?? 0) + (w.SepFee * (1 - w.SepRatio) ?? 0)
+ (w.OctFee * (1 - w.OctRatio) ?? 0) + (w.NovFee * (1 - w.NovRatio) ?? 0) + (w.DecFee * (1 - w.DecRatio) ?? 0),
});
#endregion 格式转换
return new ApiResponse(ResponseType.OK, result);
} }
/// <summary> /// <summary>
...@@ -555,5 +493,18 @@ public IActionResult DownloadCurrentCalculationTable(int allotid) ...@@ -555,5 +493,18 @@ public IActionResult DownloadCurrentCalculationTable(int allotid)
var memi = provider.Mappings[".xlsx"]; var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name)); return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
} }
/// <summary>
/// 查询个人绩效
/// </summary>
/// <returns></returns>
[Route("owner/query")]
[HttpGet]
public ApiResponse GetOwnerPerformance()
{
var userid = _claim.GetUserId();
var res = _allotService.GetOwnerPerformance(userid);
return new ApiResponse(ResponseType.OK, res);
}
} }
} }
...@@ -384,10 +384,10 @@ public ApiResponse AuditResult([FromBody] SecondAuditRequest request) ...@@ -384,10 +384,10 @@ public ApiResponse AuditResult([FromBody] SecondAuditRequest request)
{ {
var userid = claimService.GetUserId(); var userid = claimService.GetUserId();
var result = secondAllotService.ConfirmAudit(userid, request); var result = secondAllotService.ConfirmAudit(userid, request);
if (request.IsPass == 1) //if (request.IsPass == 1)
{ //{
resultComputeService.SaveSecondReserved(request.SecondId); // resultComputeService.SaveSecondReserved(request.SecondId);
} //}
return result ? new ApiResponse(ResponseType.OK, "操作成功") : new ApiResponse(ResponseType.Fail, "操作失败"); return result ? new ApiResponse(ResponseType.OK, "操作成功") : new ApiResponse(ResponseType.Fail, "操作失败");
} }
......
...@@ -308,6 +308,12 @@ ...@@ -308,6 +308,12 @@
<param name="allotid"></param> <param name="allotid"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AllotController.GetOwnerPerformance">
<summary>
查询个人绩效
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)"> <member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)">
<summary> <summary>
预算管理查询(包含金额、占比) 预算管理查询(包含金额、占比)
......
...@@ -3294,6 +3294,101 @@ ...@@ -3294,6 +3294,101 @@
药占比对应系数 药占比对应系数
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.Year">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.UnitType">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.EmployeeName">
<summary>
人员姓名
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.JobNumber">
<summary>
工号
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.JanReseFee">
<summary>
1月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.FebReseFee">
<summary>
2月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.MarReseFee">
<summary>
3月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.AprReseFee">
<summary>
4月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.MayReseFee">
<summary>
5月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.JunReseFee">
<summary>
6月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.JulReseFee">
<summary>
7月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.AugReseFee">
<summary>
8月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.SepReseFee">
<summary>
9月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.OctReseFee">
<summary>
10月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.NovReseFee">
<summary>
11月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.DecReseFee">
<summary>
12月
</summary>
</member>
<member name="P:Performance.DtoModels.EmployeeReservedDto.TotalReseFee">
<summary>
汇总
</summary>
</member>
<member name="P:Performance.DtoModels.GuaranteeResponse.AllotId"> <member name="P:Performance.DtoModels.GuaranteeResponse.AllotId">
<summary> <summary>
...@@ -3379,6 +3474,26 @@ ...@@ -3379,6 +3474,26 @@
菜单状态 1 启用 2禁用 菜单状态 1 启用 2禁用
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.OwnerPerformanceDto.ShouldGiveFee">
<summary>
应发绩效
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerPerformanceDto.ReservedRatio">
<summary>
预留比例
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerPerformanceDto.ReservedRatioFee">
<summary>
预留金额
</summary>
</member>
<member name="P:Performance.DtoModels.OwnerPerformanceDto.RealGiveFee">
<summary>
实发绩效
</summary>
</member>
<member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime"> <member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime">
<summary> <summary>
参加工作时间 参加工作时间
......
...@@ -295,21 +295,12 @@ ...@@ -295,21 +295,12 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.res_account"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_account">
<summary> 科室核算结果 </summary> <summary> 科室核算结果 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_accountdoctor">
<summary> 医生科室核算结果 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_accountnurse">
<summary> 护理科室核算结果 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm">
<summary> 核算基础标准 </summary> <summary> 核算基础标准 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_compute"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_compute">
<summary> </summary> <summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_reserved">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_specialunit"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_specialunit">
<summary> </summary> <summary> </summary>
</member> </member>
...@@ -6376,221 +6367,6 @@ ...@@ -6376,221 +6367,6 @@
夜班绩效 夜班绩效
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.res_accountdoctor">
<summary>
医生科室核算结果
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.SheetID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.ManagerNumber">
<summary>
科主任/护士长数量
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.Number">
<summary>
核算单元医生数量
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.BasicFactor">
<summary>
医生基础系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.SlopeFactor">
<summary>
倾斜系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.OtherPerfor1">
<summary>
其他绩效1
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.OtherPerfor2">
<summary>
其他绩效2
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.Extra">
<summary>
医院奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.ScoringAverage">
<summary>
考核对分率
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.AdjustFactor">
<summary>
调节系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.Income">
<summary>
科室业绩
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.PerforFee">
<summary>
业绩绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.WorkloadFee">
<summary>
工作量绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.PerforTotal">
<summary>
绩效合计
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.Avg">
<summary>
人均绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.RealGiveFee">
<summary>
实发绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountdoctor.ChangeLog">
<summary>
变更日志
</summary>
</member>
<member name="T:Performance.EntityModels.res_accountnurse">
<summary>
护理科室核算结果
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.SheetID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.ManagerNumber">
<summary>
科主任/护士长数量
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.Number">
<summary>
护士人数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.BasicFactor">
<summary>
护理基础系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.SlopeFactor">
<summary>
倾斜系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.OtherPerfor1">
<summary>
其他绩效1
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.OtherPerfor2">
<summary>
其他绩效2
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.Extra">
<summary>
医院奖罚
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.ScoringAverage">
<summary>
考核对分率
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.AdjustFactor">
<summary>
调节系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.Income">
<summary>
科室业绩
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.PerforFee">
<summary>
业绩绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.WorkloadFee">
<summary>
工作量绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.PerforTotal">
<summary>
绩效合计
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.Avg">
<summary>
人均绩效
</summary>
</member>
<member name="P:Performance.EntityModels.res_accountnurse.RealGiveFee">
<summary>
实发绩效
</summary>
</member>
<member name="T:Performance.EntityModels.res_baiscnorm"> <member name="T:Performance.EntityModels.res_baiscnorm">
<summary> <summary>
核算基础标准 核算基础标准
...@@ -6876,166 +6652,6 @@ ...@@ -6876,166 +6652,6 @@
考核后管理绩效 考核后管理绩效
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.res_reserved">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.Year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.UnitType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.EmployeeName">
<summary>
人员姓名
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JobNumber">
<summary>
工号
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JanFee">
<summary>
一月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JanRatio">
<summary>
一月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.FebFee">
<summary>
二月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.FebRatio">
<summary>
二月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.MarFee">
<summary>
三月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.MarRatio">
<summary>
三月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.AprFee">
<summary>
四月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.AprRatio">
<summary>
四月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.MayFee">
<summary>
五月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.MayRatio">
<summary>
五月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JunFee">
<summary>
六月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JunRatio">
<summary>
六月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JulFee">
<summary>
七月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.JulRatio">
<summary>
七月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.AugFee">
<summary>
八月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.AugRatio">
<summary>
八月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.SepFee">
<summary>
九月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.SepRatio">
<summary>
九月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.OctFee">
<summary>
十月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.OctRatio">
<summary>
十月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.NovFee">
<summary>
十一月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.NovRatio">
<summary>
十一月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.DecFee">
<summary>
十二月
</summary>
</member>
<member name="P:Performance.EntityModels.res_reserved.DecRatio">
<summary>
十二月
</summary>
</member>
<member name="T:Performance.EntityModels.res_specialunit"> <member name="T:Performance.EntityModels.res_specialunit">
<summary> <summary>
...@@ -7796,5 +7412,40 @@ ...@@ -7796,5 +7412,40 @@
统计的HIS的原始科室名称 统计的HIS的原始科室名称
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.view_allot_result.Source">
<summary>
来源
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.PerforSumFee">
<summary>
业绩绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.PerforManagementFee">
<summary>
管理绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.NightWorkPerfor">
<summary>
夜班绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.AdjustLaterOtherFee">
<summary>
调节后其他绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.OtherPerfor">
<summary>
医院其他绩效
</summary>
</member>
<member name="P:Performance.DtoModels.view_allot_result.HideOtherPerfor">
<summary>
不公示其他绩效
</summary>
</member>
</members> </members>
</doc> </doc>
...@@ -244,6 +244,9 @@ public AutoMapperConfigs() ...@@ -244,6 +244,9 @@ public AutoMapperConfigs()
CreateMap<ag_headsource, SecPrintHeaderResponse>() CreateMap<ag_headsource, SecPrintHeaderResponse>()
.ForMember(dest => dest.TheTotalAllocationOfPerformanceResults, opt => opt.MapFrom(src => src.TotalDeptReward)) .ForMember(dest => dest.TheTotalAllocationOfPerformanceResults, opt => opt.MapFrom(src => src.TotalDeptReward))
.ReverseMap(); .ReverseMap();
CreateMap<view_allot_result, OwnerPerformanceDto>()
.ReverseMap();
} }
} }
} }
...@@ -114,4 +114,20 @@ public enum DataFormat ...@@ -114,4 +114,20 @@ public enum DataFormat
/// <summary> 日期 </summary> /// <summary> 日期 </summary>
日期 日期
} }
public enum Role
{
绩效管理员 = 1,
医院管理员 = 2,
护士长 = 3,
科主任 = 4,
绩效核算办 = 5,
院领导 = 6,
财务科 = 7,
人事科 = 8,
特殊科室 = 9,
行政科室 = 10,
数据收集 = 11,
绩效查询 = 12,
}
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class EmployeeReservedDto
{
/// <summary>
///
/// </summary>
public int HospitalId { get; set; }
/// <summary>
///
/// </summary>
public int Year { get; set; }
/// <summary>
///
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 人员姓名
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// 工号
/// </summary>
public string JobNumber { get; set; }
/// <summary>
/// 1月
/// </summary>
public Nullable<decimal> JanReseFee { get; set; }
public Nullable<decimal> JanGiveFee { get; set; }
/// <summary>
/// 2月
/// </summary>
public Nullable<decimal> FebReseFee { get; set; }
public Nullable<decimal> FebGiveFee { get; set; }
/// <summary>
/// 3月
/// </summary>
public Nullable<decimal> MarReseFee { get; set; }
public Nullable<decimal> MarGiveFee { get; set; }
/// <summary>
/// 4月
/// </summary>
public Nullable<decimal> AprReseFee { get; set; }
public Nullable<decimal> AprGiveFee { get; set; }
/// <summary>
/// 5月
/// </summary>
public Nullable<decimal> MayReseFee { get; set; }
public Nullable<decimal> MayGiveFee { get; set; }
/// <summary>
/// 6月
/// </summary>
public Nullable<decimal> JunReseFee { get; set; }
public Nullable<decimal> JunGiveFee { get; set; }
/// <summary>
/// 7月
/// </summary>
public Nullable<decimal> JulReseFee { get; set; }
public Nullable<decimal> JulGiveFee { get; set; }
/// <summary>
/// 8月
/// </summary>
public Nullable<decimal> AugReseFee { get; set; }
public Nullable<decimal> AugGiveFee { get; set; }
/// <summary>
/// 9月
/// </summary>
public Nullable<decimal> SepReseFee { get; set; }
public Nullable<decimal> SepGiveFee { get; set; }
/// <summary>
/// 10月
/// </summary>
public Nullable<decimal> OctReseFee { get; set; }
public Nullable<decimal> OctGiveFee { get; set; }
/// <summary>
/// 11月
/// </summary>
public Nullable<decimal> NovReseFee { get; set; }
public Nullable<decimal> NovGiveFee { get; set; }
/// <summary>
/// 12月
/// </summary>
public Nullable<decimal> DecReseFee { get; set; }
public Nullable<decimal> DecGiveFee { get; set; }
/// <summary>
/// 汇总
/// </summary>
public Nullable<decimal> TotalReseFee { get; set; }
public Nullable<decimal> TotalGiveFee { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class OwnerPerformanceDto : view_allot_result
{
public IEnumerable<OwnerPerformanceDto> Detail { get; set; }
/// <summary>
/// 应发绩效
/// </summary>
public decimal? ShouldGiveFee { get; set; }
/// <summary>
/// 预留比例
/// </summary>
public decimal? ReservedRatio { get; set; }
/// <summary>
/// 预留金额
/// </summary>
public decimal? ReservedRatioFee { get; set; }
/// <summary>
/// 实发绩效
/// </summary>
public decimal RealGiveFee { get; set; }
}
}
...@@ -205,16 +205,16 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -205,16 +205,16 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<report_performance_tags> report_performance_tags { get; set; } public virtual DbSet<report_performance_tags> report_performance_tags { get; set; }
/// <summary> 科室核算结果 </summary> /// <summary> 科室核算结果 </summary>
public virtual DbSet<res_account> res_account { get; set; } public virtual DbSet<res_account> res_account { get; set; }
/// <summary> 医生科室核算结果 </summary> ///// <summary> 医生科室核算结果 </summary>
public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; } //public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; }
/// <summary> 护理科室核算结果 </summary> ///// <summary> 护理科室核算结果 </summary>
public virtual DbSet<res_accountnurse> res_accountnurse { get; set; } //public virtual DbSet<res_accountnurse> res_accountnurse { get; set; }
/// <summary> 核算基础标准 </summary> /// <summary> 核算基础标准 </summary>
public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; } public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<res_compute> res_compute { get; set; } public virtual DbSet<res_compute> res_compute { get; set; }
/// <summary> </summary> ///// <summary> </summary>
public virtual DbSet<res_reserved> res_reserved { get; set; } //public virtual DbSet<res_reserved> res_reserved { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<res_specialunit> res_specialunit { get; set; } public virtual DbSet<res_specialunit> res_specialunit { get; set; }
/// <summary> 医院数据提取脚本 </summary> /// <summary> 医院数据提取脚本 </summary>
......
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_accountdoctor.cs"> //// <copyright file=" res_accountdoctor.cs">
// * FileName: 医生科室核算结果.cs //// * FileName: 医生科室核算结果.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using System; //using System;
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("res_accountdoctor")] // [Table("res_accountdoctor")]
public class res_accountdoctor // public class res_accountdoctor
{ // {
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
[Key] // [Key]
public int ID { get; set; } // public int ID { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public Nullable<int> AllotID { get; set; } // public Nullable<int> AllotID { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public Nullable<int> SheetID { get; set; } // public Nullable<int> SheetID { get; set; }
/// <summary> // /// <summary>
/// 核算单元 // /// 核算单元
/// </summary> // /// </summary>
public string AccountingUnit { get; set; } // public string AccountingUnit { get; set; }
/// <summary> // /// <summary>
/// 科室 // /// 科室
/// </summary> // /// </summary>
public string Department { get; set; } // public string Department { get; set; }
/// <summary> // /// <summary>
/// 科主任/护士长数量 // /// 科主任/护士长数量
/// </summary> // /// </summary>
public Nullable<int> ManagerNumber { get; set; } // public Nullable<int> ManagerNumber { get; set; }
/// <summary> // /// <summary>
/// 核算单元医生数量 // /// 核算单元医生数量
/// </summary> // /// </summary>
public Nullable<decimal> Number { get; set; } // public Nullable<decimal> Number { get; set; }
/// <summary> // /// <summary>
/// 医生基础系数 // /// 医生基础系数
/// </summary> // /// </summary>
public Nullable<decimal> BasicFactor { get; set; } // public Nullable<decimal> BasicFactor { get; set; }
/// <summary> // /// <summary>
/// 倾斜系数 // /// 倾斜系数
/// </summary> // /// </summary>
public Nullable<decimal> SlopeFactor { get; set; } // public Nullable<decimal> SlopeFactor { get; set; }
/// <summary> // /// <summary>
/// 其他绩效1 // /// 其他绩效1
/// </summary> // /// </summary>
public Nullable<decimal> OtherPerfor1 { get; set; } // public Nullable<decimal> OtherPerfor1 { get; set; }
/// <summary> // /// <summary>
/// 其他绩效2 // /// 其他绩效2
/// </summary> // /// </summary>
public Nullable<decimal> OtherPerfor2 { get; set; } // public Nullable<decimal> OtherPerfor2 { get; set; }
/// <summary> // /// <summary>
/// 医院奖罚 // /// 医院奖罚
/// </summary> // /// </summary>
public Nullable<decimal> Extra { get; set; } // public Nullable<decimal> Extra { get; set; }
/// <summary> // /// <summary>
/// 考核对分率 // /// 考核对分率
/// </summary> // /// </summary>
public Nullable<decimal> ScoringAverage { get; set; } // public Nullable<decimal> ScoringAverage { get; set; }
/// <summary> // /// <summary>
/// 调节系数 // /// 调节系数
/// </summary> // /// </summary>
public Nullable<decimal> AdjustFactor { get; set; } // public Nullable<decimal> AdjustFactor { get; set; }
/// <summary> // /// <summary>
/// 科室业绩 // /// 科室业绩
/// </summary> // /// </summary>
public Nullable<decimal> Income { get; set; } // public Nullable<decimal> Income { get; set; }
/// <summary> // /// <summary>
/// 业绩绩效 // /// 业绩绩效
/// </summary> // /// </summary>
public Nullable<decimal> PerforFee { get; set; } // public Nullable<decimal> PerforFee { get; set; }
/// <summary> // /// <summary>
/// 工作量绩效 // /// 工作量绩效
/// </summary> // /// </summary>
public Nullable<decimal> WorkloadFee { get; set; } // public Nullable<decimal> WorkloadFee { get; set; }
/// <summary> // /// <summary>
/// 绩效合计 // /// 绩效合计
/// </summary> // /// </summary>
public Nullable<decimal> PerforTotal { get; set; } // public Nullable<decimal> PerforTotal { get; set; }
/// <summary> // /// <summary>
/// 人均绩效 // /// 人均绩效
/// </summary> // /// </summary>
public Nullable<decimal> Avg { get; set; } // public Nullable<decimal> Avg { get; set; }
/// <summary> // /// <summary>
/// 实发绩效 // /// 实发绩效
/// </summary> // /// </summary>
public Nullable<decimal> RealGiveFee { get; set; } // public Nullable<decimal> RealGiveFee { get; set; }
/// <summary> // /// <summary>
/// 变更日志 // /// 变更日志
/// </summary> // /// </summary>
public string ChangeLog { get; set; } // public string ChangeLog { get; set; }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_accountnurse.cs"> //// <copyright file=" res_accountnurse.cs">
// * FileName: 护理科室核算结果.cs //// * FileName: 护理科室核算结果.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using System; //using System;
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("res_accountnurse")] // [Table("res_accountnurse")]
public class res_accountnurse // public class res_accountnurse
{ // {
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
[Key] // [Key]
public int ID { get; set; } // public int ID { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public Nullable<int> AllotID { get; set; } // public Nullable<int> AllotID { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public Nullable<int> SheetID { get; set; } // public Nullable<int> SheetID { get; set; }
/// <summary> // /// <summary>
/// 核算单元 // /// 核算单元
/// </summary> // /// </summary>
public string AccountingUnit { get; set; } // public string AccountingUnit { get; set; }
/// <summary> // /// <summary>
/// 科室 // /// 科室
/// </summary> // /// </summary>
public string Department { get; set; } // public string Department { get; set; }
/// <summary> // /// <summary>
/// 科主任/护士长数量 // /// 科主任/护士长数量
/// </summary> // /// </summary>
public Nullable<int> ManagerNumber { get; set; } // public Nullable<int> ManagerNumber { get; set; }
/// <summary> // /// <summary>
/// 护士人数 // /// 护士人数
/// </summary> // /// </summary>
public Nullable<decimal> Number { get; set; } // public Nullable<decimal> Number { get; set; }
/// <summary> // /// <summary>
/// 护理基础系数 // /// 护理基础系数
/// </summary> // /// </summary>
public Nullable<decimal> BasicFactor { get; set; } // public Nullable<decimal> BasicFactor { get; set; }
/// <summary> // /// <summary>
/// 倾斜系数 // /// 倾斜系数
/// </summary> // /// </summary>
public Nullable<decimal> SlopeFactor { get; set; } // public Nullable<decimal> SlopeFactor { get; set; }
/// <summary> // /// <summary>
/// 其他绩效1 // /// 其他绩效1
/// </summary> // /// </summary>
public Nullable<decimal> OtherPerfor1 { get; set; } // public Nullable<decimal> OtherPerfor1 { get; set; }
/// <summary> // /// <summary>
/// 其他绩效2 // /// 其他绩效2
/// </summary> // /// </summary>
public Nullable<decimal> OtherPerfor2 { get; set; } // public Nullable<decimal> OtherPerfor2 { get; set; }
/// <summary> // /// <summary>
/// 医院奖罚 // /// 医院奖罚
/// </summary> // /// </summary>
public Nullable<decimal> Extra { get; set; } // public Nullable<decimal> Extra { get; set; }
/// <summary> // /// <summary>
/// 考核对分率 // /// 考核对分率
/// </summary> // /// </summary>
public Nullable<decimal> ScoringAverage { get; set; } // public Nullable<decimal> ScoringAverage { get; set; }
/// <summary> // /// <summary>
/// 调节系数 // /// 调节系数
/// </summary> // /// </summary>
public Nullable<decimal> AdjustFactor { get; set; } // public Nullable<decimal> AdjustFactor { get; set; }
/// <summary> // /// <summary>
/// 科室业绩 // /// 科室业绩
/// </summary> // /// </summary>
public Nullable<decimal> Income { get; set; } // public Nullable<decimal> Income { get; set; }
/// <summary> // /// <summary>
/// 业绩绩效 // /// 业绩绩效
/// </summary> // /// </summary>
public Nullable<decimal> PerforFee { get; set; } // public Nullable<decimal> PerforFee { get; set; }
/// <summary> // /// <summary>
/// 工作量绩效 // /// 工作量绩效
/// </summary> // /// </summary>
public Nullable<decimal> WorkloadFee { get; set; } // public Nullable<decimal> WorkloadFee { get; set; }
/// <summary> // /// <summary>
/// 绩效合计 // /// 绩效合计
/// </summary> // /// </summary>
public Nullable<decimal> PerforTotal { get; set; } // public Nullable<decimal> PerforTotal { get; set; }
/// <summary> // /// <summary>
/// 人均绩效 // /// 人均绩效
/// </summary> // /// </summary>
public Nullable<decimal> Avg { get; set; } // public Nullable<decimal> Avg { get; set; }
/// <summary> // /// <summary>
/// 实发绩效 // /// 实发绩效
/// </summary> // /// </summary>
public Nullable<decimal> RealGiveFee { get; set; } // public Nullable<decimal> RealGiveFee { get; set; }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_reserved.cs"> //// <copyright file=" res_reserved.cs">
// * FileName: .cs //// * FileName: .cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using System; //using System;
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("res_reserved")] // [Table("res_reserved")]
public class res_reserved // public class res_reserved
{ // {
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
[Key] // [Key]
public int Id { get; set; } // public int Id { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public int HospitalId { get; set; } // public int HospitalId { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public int Year { get; set; } // public int Year { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public string UnitType { get; set; } // public string UnitType { get; set; }
/// <summary> // /// <summary>
/// 核算单元 // /// 核算单元
/// </summary> // /// </summary>
public string AccountingUnit { get; set; } // public string AccountingUnit { get; set; }
/// <summary> // /// <summary>
/// 人员姓名 // /// 人员姓名
/// </summary> // /// </summary>
public string EmployeeName { get; set; } // public string EmployeeName { get; set; }
/// <summary> // /// <summary>
/// 工号 // /// 工号
/// </summary> // /// </summary>
public string JobNumber { get; set; } // public string JobNumber { get; set; }
/// <summary> // /// <summary>
/// 一月 // /// 一月
/// </summary> // /// </summary>
public Nullable<decimal> JanFee { get; set; } // public Nullable<decimal> JanFee { get; set; }
/// <summary> // /// <summary>
/// 一月 // /// 一月
/// </summary> // /// </summary>
public Nullable<decimal> JanRatio { get; set; } // public Nullable<decimal> JanRatio { get; set; }
/// <summary> // /// <summary>
/// 二月 // /// 二月
/// </summary> // /// </summary>
public Nullable<decimal> FebFee { get; set; } // public Nullable<decimal> FebFee { get; set; }
/// <summary> // /// <summary>
/// 二月 // /// 二月
/// </summary> // /// </summary>
public Nullable<decimal> FebRatio { get; set; } // public Nullable<decimal> FebRatio { get; set; }
/// <summary> // /// <summary>
/// 三月 // /// 三月
/// </summary> // /// </summary>
public Nullable<decimal> MarFee { get; set; } // public Nullable<decimal> MarFee { get; set; }
/// <summary> // /// <summary>
/// 三月 // /// 三月
/// </summary> // /// </summary>
public Nullable<decimal> MarRatio { get; set; } // public Nullable<decimal> MarRatio { get; set; }
/// <summary> // /// <summary>
/// 四月 // /// 四月
/// </summary> // /// </summary>
public Nullable<decimal> AprFee { get; set; } // public Nullable<decimal> AprFee { get; set; }
/// <summary> // /// <summary>
/// 四月 // /// 四月
/// </summary> // /// </summary>
public Nullable<decimal> AprRatio { get; set; } // public Nullable<decimal> AprRatio { get; set; }
/// <summary> // /// <summary>
/// 五月 // /// 五月
/// </summary> // /// </summary>
public Nullable<decimal> MayFee { get; set; } // public Nullable<decimal> MayFee { get; set; }
/// <summary> // /// <summary>
/// 五月 // /// 五月
/// </summary> // /// </summary>
public Nullable<decimal> MayRatio { get; set; } // public Nullable<decimal> MayRatio { get; set; }
/// <summary> // /// <summary>
/// 六月 // /// 六月
/// </summary> // /// </summary>
public Nullable<decimal> JunFee { get; set; } // public Nullable<decimal> JunFee { get; set; }
/// <summary> // /// <summary>
/// 六月 // /// 六月
/// </summary> // /// </summary>
public Nullable<decimal> JunRatio { get; set; } // public Nullable<decimal> JunRatio { get; set; }
/// <summary> // /// <summary>
/// 七月 // /// 七月
/// </summary> // /// </summary>
public Nullable<decimal> JulFee { get; set; } // public Nullable<decimal> JulFee { get; set; }
/// <summary> // /// <summary>
/// 七月 // /// 七月
/// </summary> // /// </summary>
public Nullable<decimal> JulRatio { get; set; } // public Nullable<decimal> JulRatio { get; set; }
/// <summary> // /// <summary>
/// 八月 // /// 八月
/// </summary> // /// </summary>
public Nullable<decimal> AugFee { get; set; } // public Nullable<decimal> AugFee { get; set; }
/// <summary> // /// <summary>
/// 八月 // /// 八月
/// </summary> // /// </summary>
public Nullable<decimal> AugRatio { get; set; } // public Nullable<decimal> AugRatio { get; set; }
/// <summary> // /// <summary>
/// 九月 // /// 九月
/// </summary> // /// </summary>
public Nullable<decimal> SepFee { get; set; } // public Nullable<decimal> SepFee { get; set; }
/// <summary> // /// <summary>
/// 九月 // /// 九月
/// </summary> // /// </summary>
public Nullable<decimal> SepRatio { get; set; } // public Nullable<decimal> SepRatio { get; set; }
/// <summary> // /// <summary>
/// 十月 // /// 十月
/// </summary> // /// </summary>
public Nullable<decimal> OctFee { get; set; } // public Nullable<decimal> OctFee { get; set; }
/// <summary> // /// <summary>
/// 十月 // /// 十月
/// </summary> // /// </summary>
public Nullable<decimal> OctRatio { get; set; } // public Nullable<decimal> OctRatio { get; set; }
/// <summary> // /// <summary>
/// 十一月 // /// 十一月
/// </summary> // /// </summary>
public Nullable<decimal> NovFee { get; set; } // public Nullable<decimal> NovFee { get; set; }
/// <summary> // /// <summary>
/// 十一月 // /// 十一月
/// </summary> // /// </summary>
public Nullable<decimal> NovRatio { get; set; } // public Nullable<decimal> NovRatio { get; set; }
/// <summary> // /// <summary>
/// 十二月 // /// 十二月
/// </summary> // /// </summary>
public Nullable<decimal> DecFee { get; set; } // public Nullable<decimal> DecFee { get; set; }
/// <summary> // /// <summary>
/// 十二月 // /// 十二月
/// </summary> // /// </summary>
public Nullable<decimal> DecRatio { get; set; } // public Nullable<decimal> DecRatio { get; set; }
} // }
} //}
namespace Performance.DtoModels
{
public class view_allot_result
{
public int HospitalID { get; set; }
public int Year { get; set; }
public int Month { get; set; }
/// <summary>
/// 来源
/// </summary>
public string Source { get; set; }
public int AllotId { get; set; }
public int? SecondId { get; set; }
public string UnitType { get; set; }
public string AccountingUnit { get; set; }
public int? IsShowManage { get; set; }
public string EmployeeName { get; set; }
public string JobNumber { get; set; }
public string JobTitle { get; set; }
/// <summary>
/// 业绩绩效
/// </summary>
public decimal? PerforSumFee { get; set; }
/// <summary>
/// 管理绩效
/// </summary>
public decimal? PerforManagementFee { get; set; }
/// <summary>
/// 夜班绩效
/// </summary>
public decimal? NightWorkPerfor { get; set; }
/// <summary>
/// 调节后其他绩效
/// </summary>
public decimal? AdjustLaterOtherFee { get; set; }
/// <summary>
/// 医院其他绩效
/// </summary>
public decimal? OtherPerfor { get; set; }
/// <summary>
/// 不公示其他绩效
/// </summary>
public decimal? HideOtherPerfor { get; set; }
public decimal? RealPerformance { get; set; }
}
}
using Performance.DtoModels; using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -370,5 +371,23 @@ public List<PerReport> NurseAvg(ReportRequest request) ...@@ -370,5 +371,23 @@ public List<PerReport> NurseAvg(ReportRequest request)
return DapperQuery(sql, new { hospitalId = request.HospitalId }).ToList(); return DapperQuery(sql, new { hospitalId = request.HospitalId }).ToList();
} }
#endregion #endregion
/// <summary>
/// 获取医院预留绩效
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="year"></param>
/// <returns></returns>
public List<EmployeeReservedDto> GetEmployeeReserved(int hospitalId, int year)
{
string sql = "SELECT * FROM view_allot_result_report WHERE HospitalID=@HospitalID AND Year=@Year";
return DapperQuery<EmployeeReservedDto>(sql, new { HospitalID = hospitalId, Year = year })?.ToList();
}
public List<view_allot_result> GetOwnerPerformance(List<int> hospitalId, string jobNumber)
{
string sql = "SELECT * FROM view_allot_result WHERE HospitalID IN @HospitalID AND JobNumber=@JobNumber";
return DapperQuery<view_allot_result>(sql, new { HospitalID = hospitalId, JobNumber = jobNumber })?.ToList();
}
} }
} }
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_accountdoctor.cs"> //// <copyright file=" res_accountdoctor.cs">
// * FileName: res_accountdoctor.cs //// * FileName: res_accountdoctor.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using Performance.EntityModels; //using Performance.EntityModels;
namespace Performance.Repository //namespace Performance.Repository
{ //{
/// <summary> // /// <summary>
/// res_accountdoctor Repository // /// res_accountdoctor Repository
/// </summary> // /// </summary>
public partial class PerforResaccountdoctorRepository : PerforRepository<res_accountdoctor> // public partial class PerforResaccountdoctorRepository : PerforRepository<res_accountdoctor>
{ // {
public PerforResaccountdoctorRepository(PerformanceDbContext context) : base(context) // public PerforResaccountdoctorRepository(PerformanceDbContext context) : base(context)
{ // {
} // }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_accountnurse.cs"> //// <copyright file=" res_accountnurse.cs">
// * FileName: res_accountnurse.cs //// * FileName: res_accountnurse.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using Performance.EntityModels; //using Performance.EntityModels;
namespace Performance.Repository //namespace Performance.Repository
{ //{
/// <summary> // /// <summary>
/// res_accountnurse Repository // /// res_accountnurse Repository
/// </summary> // /// </summary>
public partial class PerforResaccountnurseRepository : PerforRepository<res_accountnurse> // public partial class PerforResaccountnurseRepository : PerforRepository<res_accountnurse>
{ // {
public PerforResaccountnurseRepository(PerformanceDbContext context) : base(context) // public PerforResaccountnurseRepository(PerformanceDbContext context) : base(context)
{ // {
} // }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" res_reserved.cs"> //// <copyright file=" res_reserved.cs">
// * FileName: res_reserved.cs //// * FileName: res_reserved.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using Performance.EntityModels; //using Performance.EntityModels;
namespace Performance.Repository //namespace Performance.Repository
{ //{
/// <summary> // /// <summary>
/// res_reserved Repository // /// res_reserved Repository
/// </summary> // /// </summary>
public partial class PerforResreservedRepository : PerforRepository<res_reserved> // public partial class PerforResreservedRepository : PerforRepository<res_reserved>
{ // {
public PerforResreservedRepository(PerformanceDbContext context) : base(context) // public PerforResreservedRepository(PerformanceDbContext context) : base(context)
{ // {
} // }
} // }
} //}
...@@ -23,7 +23,6 @@ public class ResultComputeService : IAutoInjection ...@@ -23,7 +23,6 @@ public class ResultComputeService : IAutoInjection
private readonly PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforAgcomputeRepository perforAgcomputeRepository; private readonly PerforAgcomputeRepository perforAgcomputeRepository;
private readonly PerforAgsecondallotRepository perforAgsecondallotRepository; private readonly PerforAgsecondallotRepository perforAgsecondallotRepository;
private readonly PerforResreservedRepository perforresreservedRepository;
private readonly PerforHospitalRepository hospitalRepository; private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforImemployeeRepository perforImEmployeeRepository; private readonly PerforImemployeeRepository perforImEmployeeRepository;
private readonly PerforRescomputeRepository perforRescomputeRepository; private readonly PerforRescomputeRepository perforRescomputeRepository;
...@@ -50,7 +49,6 @@ public class ResultComputeService : IAutoInjection ...@@ -50,7 +49,6 @@ public class ResultComputeService : IAutoInjection
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforAgcomputeRepository perforAgcomputeRepository, PerforAgcomputeRepository perforAgcomputeRepository,
PerforAgsecondallotRepository perforAgsecondallotRepository, PerforAgsecondallotRepository perforAgsecondallotRepository,
PerforResreservedRepository perforresreservedRepository,
PerforImemployeeclinicRepository perforImemployeeclinicRepository, PerforImemployeeclinicRepository perforImemployeeclinicRepository,
PerforImemployeelogisticsRepository perforImemployeelogisticsRepository, PerforImemployeelogisticsRepository perforImemployeelogisticsRepository,
ILogger<ResultComputeService> logger) ILogger<ResultComputeService> logger)
...@@ -70,7 +68,6 @@ public class ResultComputeService : IAutoInjection ...@@ -70,7 +68,6 @@ public class ResultComputeService : IAutoInjection
this.perforPerallotRepository = perforPerallotRepository; this.perforPerallotRepository = perforPerallotRepository;
this.perforAgcomputeRepository = perforAgcomputeRepository; this.perforAgcomputeRepository = perforAgcomputeRepository;
this.perforAgsecondallotRepository = perforAgsecondallotRepository; this.perforAgsecondallotRepository = perforAgsecondallotRepository;
this.perforresreservedRepository = perforresreservedRepository;
this.perforImemployeeclinicRepository = perforImemployeeclinicRepository; this.perforImemployeeclinicRepository = perforImemployeeclinicRepository;
this.perforImemployeelogisticsRepository = perforImemployeelogisticsRepository; this.perforImemployeelogisticsRepository = perforImemployeelogisticsRepository;
this.logger = logger; this.logger = logger;
...@@ -351,172 +348,172 @@ private IEnumerable<PerDataSpecialUnit> CalculateSpecialUnit(PerSheet specialUni ...@@ -351,172 +348,172 @@ private IEnumerable<PerDataSpecialUnit> CalculateSpecialUnit(PerSheet specialUni
#region 预留金额 #region 预留金额
/// <summary> ///// <summary>
/// 二次绩效审核通过后修改绩效预留金额 ///// 二次绩效审核通过后修改绩效预留金额
/// </summary> ///// </summary>
/// <param name="secondId"></param> ///// <param name="secondId"></param>
public void SaveSecondReserved(int secondId) //public void SaveSecondReserved(int secondId)
{ //{
var second = perforAgsecondallotRepository.GetEntity(t => t.Id == secondId); // var second = perforAgsecondallotRepository.GetEntity(t => t.Id == secondId);
if (second == null) // if (second == null)
throw new PerformanceException("参数信息无效"); // throw new PerformanceException("参数信息无效");
var allot = perforPerallotRepository.GetEntity(t => t.ID == second.AllotId); // var allot = perforPerallotRepository.GetEntity(t => t.ID == second.AllotId);
if (allot == null) // if (allot == null)
throw new PerformanceException("参数信息无效"); // throw new PerformanceException("参数信息无效");
var again = perforAgcomputeRepository.GetEntities(t => t.AllotId == allot.ID); // var again = perforAgcomputeRepository.GetEntities(t => t.AllotId == allot.ID);
if (again != null && again.Any()) // if (again != null && again.Any())
{ // {
var empDic = perforPeremployeeRepository.GetEntities(w => w.AllotId == allot.ID); // var empDic = perforPeremployeeRepository.GetEntities(w => w.AllotId == allot.ID);
var group = again.GroupBy(t => new { t.Department, t.JobNumber, t.PersonName }) // var group = again.GroupBy(t => new { t.Department, t.JobNumber, t.PersonName })
.Select(t => new ComputeResponse // .Select(t => new ComputeResponse
{ // {
UnitType = second.UnitType, // UnitType = second.UnitType,
AccountingUnit = t.Key.Department, // AccountingUnit = t.Key.Department,
JobNumber = t.Key.JobNumber, // JobNumber = t.Key.JobNumber,
EmployeeName = t.Key.PersonName, // EmployeeName = t.Key.PersonName,
RealGiveFee = t.Sum(g => g.RealGiveFee) // RealGiveFee = t.Sum(g => g.RealGiveFee)
}); // });
AddOrUpdate(allot, empDic, group); // AddOrUpdate(allot, empDic, group);
} // }
} //}
/// <summary> ///// <summary>
/// 绩效生成完成后修改绩效预留金额 ///// 绩效生成完成后修改绩效预留金额
/// </summary> ///// </summary>
/// <param name="allot"></param> ///// <param name="allot"></param>
public void SaveReserved(per_allot allot, int hospitalId) //public void SaveReserved(per_allot allot, int hospitalId)
{ //{
var mTypes = new List<string> { AccountUnitType.行政中层.ToString(), AccountUnitType.行政高层.ToString(), AccountUnitType.行政工勤.ToString() }; // var mTypes = new List<string> { AccountUnitType.行政中层.ToString(), AccountUnitType.行政高层.ToString(), AccountUnitType.行政工勤.ToString() };
var hospital = hospitalRepository.GetEntity(w => w.ID == hospitalId); // var hospital = hospitalRepository.GetEntity(w => w.ID == hospitalId);
if (hospital?.IsShowManage == 1) // if (hospital?.IsShowManage == 1)
mTypes.AddRange(new List<string> { AccountUnitType.护士长.ToString(), AccountUnitType.科主任.ToString() }); // mTypes.AddRange(new List<string> { AccountUnitType.护士长.ToString(), AccountUnitType.科主任.ToString() });
var resComputes = perforRescomputeRepository // var resComputes = perforRescomputeRepository
.GetEntities(t => t.AllotID == allot.ID && mTypes.Contains(t.AccountType) && (string.IsNullOrEmpty(t.NeedSecondAllot) || t.NeedSecondAllot == "否")) // .GetEntities(t => t.AllotID == allot.ID && mTypes.Contains(t.AccountType) && (string.IsNullOrEmpty(t.NeedSecondAllot) || t.NeedSecondAllot == "否"))
?.OrderByDescending(t => t.AccountingUnit); // ?.OrderByDescending(t => t.AccountingUnit);
if (resComputes != null && resComputes.Any()) // if (resComputes != null && resComputes.Any())
{ // {
var empDic = perforPeremployeeRepository.GetEntities(w => w.AllotId == allot.ID); // var empDic = perforPeremployeeRepository.GetEntities(w => w.AllotId == allot.ID);
var group = resComputes.GroupBy(t => new { t.UnitType, t.AccountingUnit, t.EmployeeName, t.JobNumber }) // var group = resComputes.GroupBy(t => new { t.UnitType, t.AccountingUnit, t.EmployeeName, t.JobNumber })
.Select(t => new ComputeResponse // .Select(t => new ComputeResponse
{ // {
UnitType = t.Key.UnitType, // UnitType = t.Key.UnitType,
AccountingUnit = t.Key.AccountingUnit, // AccountingUnit = t.Key.AccountingUnit,
EmployeeName = t.Key.EmployeeName, // EmployeeName = t.Key.EmployeeName,
JobNumber = t.Key.JobNumber, // JobNumber = t.Key.JobNumber,
RealGiveFee = t.Sum(g => g.RealGiveFee) // RealGiveFee = t.Sum(g => g.RealGiveFee)
}); // });
AddOrUpdate(allot, empDic, group); // AddOrUpdate(allot, empDic, group);
} // }
} //}
private void AddOrUpdate(per_allot allot, List<per_employee> empDic, IEnumerable<ComputeResponse> group) //private void AddOrUpdate(per_allot allot, List<per_employee> empDic, IEnumerable<ComputeResponse> group)
{ //{
var reserveds = perforresreservedRepository.GetEntities(w => w.HospitalId == allot.HospitalId && w.Year == allot.Year); // var reserveds = perforresreservedRepository.GetEntities(w => w.HospitalId == allot.HospitalId && w.Year == allot.Year);
List<res_reserved> updates = new List<res_reserved>(), inserts = new List<res_reserved>(); // List<res_reserved> updates = new List<res_reserved>(), inserts = new List<res_reserved>();
foreach (var item in group) // foreach (var item in group)
{ // {
var ratio = empDic?.FirstOrDefault(w => w.PersonnelNumber == item.JobNumber)?.ReservedRatio ?? 0; // var ratio = empDic?.FirstOrDefault(w => w.PersonnelNumber == item.JobNumber)?.ReservedRatio ?? 0;
var reserved = reserveds?.FirstOrDefault(w => w.AccountingUnit == item.AccountingUnit && w.JobNumber == item.JobNumber); // var reserved = reserveds?.FirstOrDefault(w => w.AccountingUnit == item.AccountingUnit && w.JobNumber == item.JobNumber);
if (reserved == null) // if (reserved == null)
{ // {
reserved = new res_reserved // reserved = new res_reserved
{ // {
UnitType = item.UnitType, // UnitType = item.UnitType,
HospitalId = allot.HospitalId, // HospitalId = allot.HospitalId,
Year = allot.Year, // Year = allot.Year,
AccountingUnit = item.AccountingUnit, // AccountingUnit = item.AccountingUnit,
JobNumber = item.JobNumber, // JobNumber = item.JobNumber,
EmployeeName = item.EmployeeName, // EmployeeName = item.EmployeeName,
}; // };
inserts.Add(reserved); // inserts.Add(reserved);
} // }
else // else
updates.Add(reserved); // updates.Add(reserved);
ChangeRealGiveFee(reserved, allot, item.RealGiveFee ?? 0, ratio); // ChangeRealGiveFee(reserved, allot, item.RealGiveFee ?? 0, ratio);
} // }
perforresreservedRepository.AddRange(inserts.ToArray()); // perforresreservedRepository.AddRange(inserts.ToArray());
perforresreservedRepository.UpdateRange(updates.ToArray()); // perforresreservedRepository.UpdateRange(updates.ToArray());
} //}
/// <summary> ///// <summary>
/// 修改绩效金额 ///// 修改绩效金额
/// </summary> ///// </summary>
/// <param name="reserved"></param> ///// <param name="reserved"></param>
/// <param name="allot"></param> ///// <param name="allot"></param>
/// <param name="realGiveFee"></param> ///// <param name="realGiveFee"></param>
/// <param name="ratio"></param> ///// <param name="ratio"></param>
private void ChangeRealGiveFee(res_reserved reserved, per_allot allot, decimal realGiveFee, decimal ratio) //private void ChangeRealGiveFee(res_reserved reserved, per_allot allot, decimal realGiveFee, decimal ratio)
{ //{
if (allot.Month == 1) // if (allot.Month == 1)
{ // {
reserved.JanFee = realGiveFee; // reserved.JanFee = realGiveFee;
reserved.JanRatio = ratio; // reserved.JanRatio = ratio;
} // }
else if (allot.Month == 2) // else if (allot.Month == 2)
{ // {
reserved.FebFee = realGiveFee; // reserved.FebFee = realGiveFee;
reserved.FebRatio = ratio; // reserved.FebRatio = ratio;
} // }
else if (allot.Month == 3) // else if (allot.Month == 3)
{ // {
reserved.MarFee = realGiveFee; // reserved.MarFee = realGiveFee;
reserved.MarRatio = ratio; // reserved.MarRatio = ratio;
} // }
else if (allot.Month == 4) // else if (allot.Month == 4)
{ // {
reserved.AprFee = realGiveFee; // reserved.AprFee = realGiveFee;
reserved.AprRatio = ratio; // reserved.AprRatio = ratio;
} // }
else if (allot.Month == 5) // else if (allot.Month == 5)
{ // {
reserved.MayFee = realGiveFee; // reserved.MayFee = realGiveFee;
reserved.MayRatio = ratio; // reserved.MayRatio = ratio;
} // }
else if (allot.Month == 6) // else if (allot.Month == 6)
{ // {
reserved.JunFee = realGiveFee; // reserved.JunFee = realGiveFee;
reserved.JunRatio = ratio; // reserved.JunRatio = ratio;
} // }
else if (allot.Month == 7) // else if (allot.Month == 7)
{ // {
reserved.JulFee = realGiveFee; // reserved.JulFee = realGiveFee;
reserved.JulRatio = ratio; // reserved.JulRatio = ratio;
} // }
else if (allot.Month == 8) // else if (allot.Month == 8)
{ // {
reserved.AugFee = realGiveFee; // reserved.AugFee = realGiveFee;
reserved.AugRatio = ratio; // reserved.AugRatio = ratio;
} // }
else if (allot.Month == 9) // else if (allot.Month == 9)
{ // {
reserved.SepFee = realGiveFee; // reserved.SepFee = realGiveFee;
reserved.SepRatio = ratio; // reserved.SepRatio = ratio;
} // }
else if (allot.Month == 10) // else if (allot.Month == 10)
{ // {
reserved.OctFee = realGiveFee; // reserved.OctFee = realGiveFee;
reserved.OctRatio = ratio; // reserved.OctRatio = ratio;
} // }
else if (allot.Month == 11) // else if (allot.Month == 11)
{ // {
reserved.NovFee = realGiveFee; // reserved.NovFee = realGiveFee;
reserved.NovRatio = ratio; // reserved.NovRatio = ratio;
} // }
else if (allot.Month == 12) // else if (allot.Month == 12)
{ // {
reserved.DecFee = realGiveFee; // reserved.DecFee = realGiveFee;
reserved.DecRatio = ratio; // reserved.DecRatio = ratio;
} // }
} //}
#endregion 预留金额 #endregion 预留金额
......
...@@ -26,7 +26,6 @@ public class AllotService : IAutoInjection ...@@ -26,7 +26,6 @@ public class AllotService : IAutoInjection
private ProcessComputService processComputService; private ProcessComputService processComputService;
private ResultComputeService resultComputeService; private ResultComputeService resultComputeService;
private PerforLogdbugRepository logdbug; private PerforLogdbugRepository logdbug;
private readonly PerforResreservedRepository perforresreservedRepository;
private ConfigService configService; private ConfigService configService;
private IHostingEnvironment _evn; private IHostingEnvironment _evn;
private ILogger<AllotService> _logger; private ILogger<AllotService> _logger;
...@@ -44,6 +43,8 @@ public class AllotService : IAutoInjection ...@@ -44,6 +43,8 @@ public class AllotService : IAutoInjection
private readonly RoleService roleService; private readonly RoleService roleService;
private readonly UserService userService; private readonly UserService userService;
private PerforCofdirectorRepository perforCofdirectorRepository; private PerforCofdirectorRepository perforCofdirectorRepository;
private readonly PerforReportRepository _reportRepository;
private readonly PerforPeremployeeRepository _perforPeremployeeRepository;
//private readonly IHubContext<AllotLogHub> hubContext; //private readonly IHubContext<AllotLogHub> hubContext;
private readonly LogManageService logManageService; private readonly LogManageService logManageService;
...@@ -51,33 +52,35 @@ public class AllotService : IAutoInjection ...@@ -51,33 +52,35 @@ public class AllotService : IAutoInjection
private readonly ReportService reportService; private readonly ReportService reportService;
private readonly QueryDataService queryDataService; private readonly QueryDataService queryDataService;
public AllotService(PerforPerallotRepository allotRepository, public AllotService(
BaiscNormService baiscNormService, PerforPerallotRepository allotRepository,
CheckDataService checkDataService, BaiscNormService baiscNormService,
ImportDataService importDataService, CheckDataService checkDataService,
ProcessComputService processComputService, ImportDataService importDataService,
ResultComputeService resultComputeService, ProcessComputService processComputService,
ConfigService configService, ResultComputeService resultComputeService,
PerforLogdbugRepository logdbug, ConfigService configService,
PerforResreservedRepository perforresreservedRepository, PerforLogdbugRepository logdbug,
IHostingEnvironment evn, ILogger<AllotService> logger, IHostingEnvironment evn, ILogger<AllotService> logger,
IEmailService emailService, IEmailService emailService,
IOptions<Application> options, IOptions<Application> options,
ComputeDirector computeDirector, ComputeDirector computeDirector,
PerforRescomputeRepository perforRescomputeRepository, PerforRescomputeRepository perforRescomputeRepository,
PerforImemployeeRepository perforImEmployeeRepository, PerforImemployeeRepository perforImEmployeeRepository,
PerforPeragainallotRepository againallotRepository, PerforPeragainallotRepository againallotRepository,
PerforLogcheckRepository perforLogcheckRepository, PerforLogcheckRepository perforLogcheckRepository,
PerforHospitalRepository perforHospitalRepository, PerforHospitalRepository perforHospitalRepository,
PerforResbaiscnormRepository perforResbaiscnormRepository, PerforResbaiscnormRepository perforResbaiscnormRepository,
PerforHospitalconfigRepository perforHospitalconfigRepository, PerforHospitalconfigRepository perforHospitalconfigRepository,
//IHubContext<AllotLogHub> hubContext //IHubContext<AllotLogHub> hubContext
RoleService roleService, RoleService roleService,
UserService userService, UserService userService,
LogManageService logManageService, LogManageService logManageService,
ReportService reportService, ReportService reportService,
PerforCofdirectorRepository perforCofdirectorRepository, PerforCofdirectorRepository perforCofdirectorRepository,
QueryDataService queryDataService) PerforReportRepository reportRepository,
PerforPeremployeeRepository perforPeremployeeRepository,
QueryDataService queryDataService)
{ {
_allotRepository = allotRepository; _allotRepository = allotRepository;
_againallotRepository = againallotRepository; _againallotRepository = againallotRepository;
...@@ -95,7 +98,6 @@ public class AllotService : IAutoInjection ...@@ -95,7 +98,6 @@ public class AllotService : IAutoInjection
_perforImEmployeeRepository = perforImEmployeeRepository; _perforImEmployeeRepository = perforImEmployeeRepository;
this.configService = configService; this.configService = configService;
this.logdbug = logdbug; this.logdbug = logdbug;
this.perforresreservedRepository = perforresreservedRepository;
this.perforLogcheckRepository = perforLogcheckRepository; this.perforLogcheckRepository = perforLogcheckRepository;
this.perforHospitalRepository = perforHospitalRepository; this.perforHospitalRepository = perforHospitalRepository;
this.perforResbaiscnormRepository = perforResbaiscnormRepository; this.perforResbaiscnormRepository = perforResbaiscnormRepository;
...@@ -106,6 +108,8 @@ public class AllotService : IAutoInjection ...@@ -106,6 +108,8 @@ public class AllotService : IAutoInjection
this.logManageService = logManageService; this.logManageService = logManageService;
this.reportService = reportService; this.reportService = reportService;
this.perforCofdirectorRepository = perforCofdirectorRepository; this.perforCofdirectorRepository = perforCofdirectorRepository;
_reportRepository = reportRepository;
_perforPeremployeeRepository = perforPeremployeeRepository;
this.queryDataService = queryDataService; this.queryDataService = queryDataService;
} }
...@@ -431,9 +435,9 @@ public void Generate(per_allot allot) ...@@ -431,9 +435,9 @@ public void Generate(per_allot allot)
logManageService.WriteMsg("正在生成绩效", "保存绩效人均参考标准", 1, allot.ID, "ReceiveMessage", true); logManageService.WriteMsg("正在生成绩效", "保存绩效人均参考标准", 1, allot.ID, "ReceiveMessage", true);
perforResbaiscnormRepository.AddRange(baiscnormList.ToArray()); perforResbaiscnormRepository.AddRange(baiscnormList.ToArray());
// 保存预留绩效 //// 保存预留绩效
logManageService.WriteMsg("正在生成绩效", "保存预留绩效金额", 1, allot.ID, "ReceiveMessage", true); //logManageService.WriteMsg("正在生成绩效", "保存预留绩效金额", 1, allot.ID, "ReceiveMessage", true);
resultComputeService.SaveReserved(allot, allot.HospitalId); //resultComputeService.SaveReserved(allot, allot.HospitalId);
// 科室下发 // 科室下发
resultComputeService.GenerateSecondAllot(allot); resultComputeService.GenerateSecondAllot(allot);
...@@ -625,7 +629,14 @@ public List<log_dbug> AllotLog(per_allot allot, int type) ...@@ -625,7 +629,14 @@ public List<log_dbug> AllotLog(per_allot allot, int type)
return list; return list;
} }
public List<res_reserved> GetReserved(int hospitalId, int year, int userid) /// <summary>
/// 获取医院预留绩效
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="year"></param>
/// <param name="userid"></param>
/// <returns></returns>
public List<EmployeeReservedDto> GetReserved(int hospitalId, int year, int userid)
{ {
var user = userService.GetUser(userid); var user = userService.GetUser(userid);
if (user == null) if (user == null)
...@@ -635,23 +646,96 @@ public List<res_reserved> GetReserved(int hospitalId, int year, int userid) ...@@ -635,23 +646,96 @@ public List<res_reserved> GetReserved(int hospitalId, int year, int userid)
if (!role.HasValue) if (!role.HasValue)
throw new PerformanceException("用户信息错误"); throw new PerformanceException("用户信息错误");
var roleTypes = new[] { options.Value.NurseRole, options.Value.DirectorRole, options.Value.SpecialRole, options.Value.OfficeRole }; var reserveds = _reportRepository.GetEmployeeReserved(hospitalId, year);
var reserveds = perforresreservedRepository.GetEntities(w => w.HospitalId == hospitalId && w.Year == year);
if (reserveds != null && reserveds.Any()) if (reserveds != null && reserveds.Any())
{ {
if (role.Value == options.Value.NurseRole) if (role.Value == options.Value.NurseRole)
reserveds = reserveds.Where(w => !string.IsNullOrEmpty(w.UnitType) && w.UnitType.Contains(UnitType.护理组.ToString()) && w.AccountingUnit == user.Department)?.ToList(); reserveds = reserveds.Where(w => UnitTypeUtil.Is(w.UnitType, UnitType.护理组, UnitType.其他护理组) && w.AccountingUnit == user.Department)?.ToList();
else if (role.Value == options.Value.DirectorRole) else if (role.Value == options.Value.DirectorRole)
reserveds = reserveds.Where(w => !string.IsNullOrEmpty(w.UnitType) && (w.UnitType.Contains(UnitType.医生组.ToString()) || w.UnitType.Contains(UnitType.医技组.ToString())) && w.AccountingUnit == user.Department)?.ToList(); reserveds = reserveds.Where(w => UnitTypeUtil.Is(w.UnitType, UnitType.医生组, UnitType.其他医生组, UnitType.医技组, UnitType.其他医技组) && w.AccountingUnit == user.Department)?.ToList();
else if (role.Value == options.Value.SpecialRole) else if (role.Value == options.Value.SpecialRole)
reserveds = reserveds.Where(w => !string.IsNullOrEmpty(w.UnitType) && w.UnitType.Contains(UnitType.特殊核算组.ToString()) && w.AccountingUnit == user.Department)?.ToList(); reserveds = reserveds.Where(w => UnitTypeUtil.Is(w.UnitType, UnitType.特殊核算组) && w.AccountingUnit == user.Department)?.ToList();
else if (role.Value == options.Value.OfficeRole) else if (role.Value == options.Value.OfficeRole)
reserveds = reserveds.Where(w => !string.IsNullOrEmpty(w.UnitType) && (w.UnitType.Contains(UnitType.行政中层.ToString()) || w.UnitType.Contains(UnitType.行政后勤.ToString())) && w.AccountingUnit == user.Department)?.ToList(); reserveds = reserveds.Where(w => UnitTypeUtil.Is(w.UnitType, UnitType.行政中层, UnitType.行政后勤) && w.AccountingUnit == user.Department)?.ToList();
} }
return reserveds; return reserveds;
} }
/// <summary>
/// 查询个人绩效
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public List<OwnerPerformanceDto> GetOwnerPerformance(int userid)
{
var user = userService.GetUser(userid);
if (user == null)
throw new PerformanceException("用户信息错误");
var roleType = roleService.GetUserRole(userid)?.FirstOrDefault()?.Type;
if (!roleType.HasValue)
throw new PerformanceException("用户信息错误");
if (roleType != (int)Role.绩效查询)
throw new PerformanceException("当前用户暂不支持绩效查询");
var hospitals = userService.GetUserHospital(userid);
string jobNumber = user.Login;
var owner = _reportRepository.GetOwnerPerformance(hospitals, jobNumber);
if (owner == null || !owner.Any())
return new List<OwnerPerformanceDto>();
var employees = _perforPeremployeeRepository.GetEntities(w => w.PersonnelNumber == jobNumber);
var res = owner
.GroupBy(w => new { w.AllotId, w.Year, w.Month, w.JobNumber })
.Select(w => new OwnerPerformanceDto
{
AllotId = w.Key.AllotId,
Year = w.Key.Year,
Month = w.Key.Month,
JobNumber = w.Key.JobNumber,
PerforSumFee = Math.Round(w.Sum(p => p.PerforSumFee) ?? 0, 2, MidpointRounding.AwayFromZero), // 业绩绩效
PerforManagementFee = Math.Round(w.Sum(p => p.PerforManagementFee) ?? 0, 2, MidpointRounding.AwayFromZero),// 管理绩效
NightWorkPerfor = Math.Round(w.Sum(p => p.NightWorkPerfor) ?? 0, 2, MidpointRounding.AwayFromZero),// 夜班绩效
AdjustLaterOtherFee = Math.Round(w.Sum(p => p.AdjustLaterOtherFee) ?? 0, 2, MidpointRounding.AwayFromZero), // 调节后其他绩效
OtherPerfor = Math.Round(w.Sum(p => p.OtherPerfor) ?? 0, 2, MidpointRounding.AwayFromZero), // 医院其他绩效
HideOtherPerfor = Math.Round(w.Sum(p => p.HideOtherPerfor) ?? 0, 2, MidpointRounding.AwayFromZero),// 不公示其他绩效
RealPerformance = Math.Round(w.Sum(p => p.RealPerformance) ?? 0, 2, MidpointRounding.AwayFromZero),// 中转使用: 业绩绩效+管理绩效+调节后其他绩效
Detail = w
.Where(p => p.Year == w.Key.Year && p.Month == w.Key.Month && p.JobNumber == w.Key.JobNumber)
.Select(detial =>
{
var dto = Mapper.Map<OwnerPerformanceDto>(detial);
// 应发绩效
dto.ShouldGiveFee = Math.Round((dto.RealPerformance ?? 0) + (dto.OtherPerfor ?? 0) + (dto.HideOtherPerfor ?? 0) + (dto.NightWorkPerfor ?? 0), 2, MidpointRounding.AwayFromZero);
dto.ReservedRatio = employees?.FirstOrDefault(emp => emp.AllotId == dto.AllotId && emp.PersonnelNumber == jobNumber)?.ReservedRatio ?? 0; // 预留比例
dto.ReservedRatioFee = Math.Round((dto.RealPerformance ?? 0) * (dto.ReservedRatio ?? 0), 2, MidpointRounding.AwayFromZero); // 预留绩效
dto.RealGiveFee = Math.Round(dto.ShouldGiveFee - (dto.ReservedRatioFee ?? 0) ?? 0, 2, MidpointRounding.AwayFromZero); // 实发绩效
return dto;
}),
})
.ToList();
foreach (var item in res)
{
item.UnitType = employees?.FirstOrDefault(w => w.AllotId == item.AllotId && w.PersonnelNumber == jobNumber)?.UnitType ?? "";
item.AccountingUnit = employees?.FirstOrDefault(w => w.AllotId == item.AllotId && w.PersonnelNumber == jobNumber)?.AccountingUnit ?? "";
item.EmployeeName = employees?.FirstOrDefault(w => w.AllotId == item.AllotId && w.PersonnelNumber == jobNumber)?.DoctorName ?? "";
// 全部是0的记录不显示
item.Detail = item.Detail.Where(w => !(w.PerforSumFee == 0 && w.PerforManagementFee == 0 && w.ShouldGiveFee == 0 && w.OtherPerfor == 0 && w.HideOtherPerfor == 0 && w.RealGiveFee == 0));
// 为了保证总额一致
item.ShouldGiveFee = Math.Round(item.Detail?.Sum(w => w.ShouldGiveFee) ?? 0, 2, MidpointRounding.AwayFromZero); // 应发绩效
item.ReservedRatio = employees?.FirstOrDefault(w => w.AllotId == item.AllotId && w.PersonnelNumber == jobNumber)?.ReservedRatio ?? 0; // 预留比例
item.ReservedRatioFee = Math.Round(item.Detail?.Sum(w => w.ReservedRatioFee) ?? 0, 2, MidpointRounding.AwayFromZero); // 预留绩效
item.RealGiveFee = Math.Round(item.Detail?.Sum(w => w.RealGiveFee) ?? 0, 2, MidpointRounding.AwayFromZero); // 实发绩效
}
return res?.OrderByDescending(w => w.Year).ThenByDescending(w => w.Month).ToList();
}
} }
} }
...@@ -898,7 +898,7 @@ public void Copy(per_allot allot) ...@@ -898,7 +898,7 @@ public void Copy(per_allot allot)
var index = list.IndexOf(list.First(t => t.ID == allot.ID)); var index = list.IndexOf(list.First(t => t.ID == allot.ID));
// 先取上一个月的绩效Id,若没有取最后一个月的绩效Id,若都不存在则获取allotId为-1的数据 // 先取上一个月的绩效Id,若没有取最后一个月的绩效Id,若都不存在则获取allotId为-1的数据
int allotId = index == list.Count - 1 ? list.First().ID : list[index - 1].ID; int allotId = index + 1 < list.Count ? list[index + 1].ID : list.First().ID;
if (allotId == allot.ID) allotId = -1; if (allotId == allot.ID) allotId = -1;
#region 弃用 #region 弃用
......
...@@ -17,7 +17,7 @@ public class PerSheetService : IAutoInjection ...@@ -17,7 +17,7 @@ public class PerSheetService : IAutoInjection
//private PerforCofdrugpropRepository _perforCofdrugpropRepository; //private PerforCofdrugpropRepository _perforCofdrugpropRepository;
private PerforCofdrugtypeRepository _perforCofdrugtypeRepository; private PerforCofdrugtypeRepository _perforCofdrugtypeRepository;
public PerSheetService(PerHeaderService perHeader, public PerSheetService(PerHeaderService perHeader,
//PerforCofdrugpropRepository perforCofdrugpropRepository, //PerforCofdrugpropRepository perforCofdrugpropRepository,
PerforCofdrugtypeRepository perforCofdrugtypeRepository) PerforCofdrugtypeRepository perforCofdrugtypeRepository)
{ {
_perHeader = perHeader; _perHeader = perHeader;
...@@ -83,7 +83,7 @@ public SheetType GetSheetType(string sheetName) ...@@ -83,7 +83,7 @@ public SheetType GetSheetType(string sheetName)
return SheetType.Employee; return SheetType.Employee;
else if (sheetName.StartsWith("业务中层")) else if (sheetName.StartsWith("业务中层"))
return SheetType.ClinicEmployee; return SheetType.ClinicEmployee;
else if (sheetName.StartsWith("行政后勤")) else if (sheetName.StartsWith("行政后勤") || sheetName.StartsWith("行政后勤-"))
return SheetType.LogisticsEmployee; return SheetType.LogisticsEmployee;
else if (sheetName.StartsWith("1.0")) else if (sheetName.StartsWith("1.0"))
return SheetType.OtherIncome; return SheetType.OtherIncome;
......
...@@ -1615,7 +1615,7 @@ public bool AuditSubmit(ag_secondallot second, int userId) ...@@ -1615,7 +1615,7 @@ public bool AuditSubmit(ag_secondallot second, int userId)
bool VerifySubmissioAmount(decimal? leftAmount, decimal? rightAmount) bool VerifySubmissioAmount(decimal? leftAmount, decimal? rightAmount)
{ {
decimal floatValue = 0.1m; decimal floatValue = 0m;
return Math.Abs((rightAmount ?? 0) - (leftAmount ?? 0)) <= floatValue; return Math.Abs((rightAmount ?? 0) - (leftAmount ?? 0)) <= floatValue;
} }
......
using Performance.DtoModels; using Performance.DtoModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
namespace Performance.Services namespace Performance.Services
...@@ -30,10 +31,16 @@ public static bool IsOffice(string unit) ...@@ -30,10 +31,16 @@ public static bool IsOffice(string unit)
/// 核算单元类型是否相同 /// 核算单元类型是否相同
/// </summary> /// </summary>
/// <param name="left"></param> /// <param name="left"></param>
/// <param name="right"></param>
/// <returns></returns> /// <returns></returns>
public static bool IsEqualsUnitType(string left, string right) public static bool IsEqualsUnitType(string left, string right)
{ {
return left?.Replace("行政后勤", "行政工勤") == right?.Replace("行政后勤", "行政工勤"); return left?.Replace("行政后勤", "行政工勤") == right?.Replace("行政后勤", "行政工勤");
} }
public static bool Is(string unit, params UnitType[] types)
{
return !string.IsNullOrEmpty(unit) && types.Any(w => IsEqualsUnitType(w.ToString(), unit));
}
} }
} }
...@@ -129,6 +129,14 @@ public sys_role GetUserFirstRole(int userId) ...@@ -129,6 +129,14 @@ public sys_role GetUserFirstRole(int userId)
return role; return role;
} }
public List<int> GetUserHospital(int userId)
{
var userHospital = _userhospitalRepository.GetEntities(t => t.UserID == userId);
if (userHospital != null && userHospital.Any(w => w.HospitalID.HasValue))
return userHospital.Where(w => w.HospitalID.HasValue).Select(w => w.HospitalID.Value).ToList();
return new List<int>();
}
/// <summary> /// <summary>
/// 查询用户列表 /// 查询用户列表
/// </summary> /// </summary>
......
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