Commit 8d45a787 by ruyun.zhang@suvalue.com

Merge branch 'feature/医院其他绩效097' into develop

parents b47369b6 65dbd843
......@@ -395,21 +395,5 @@ public ApiResponse<res_baiscnorm> EditHospitalAvg([FromBody] ComputerAvgRequest
}
#endregion
#region 其他绩效统计
/// <summary>
/// 其他医院绩效统计
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[Route("OtherPerStats/{allotId}")]
[HttpPost]
public ApiResponse OtherPerStats(int allotId)
{
var relust = _employeeService.GetOtherPerStats(allotId);
return new ApiResponse(ResponseType.OK, relust);
}
#endregion
}
}
\ No newline at end of file
......@@ -509,13 +509,6 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ComputeController.OtherPerStats(System.Int32)">
<summary>
其他医院绩效统计
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeList(Performance.DtoModels.DrugpropRequest)">
<summary>
获取 药占比类型信息列表
......@@ -795,14 +788,14 @@
<param name="allotid"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.EntityModels.per_apr_amount)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.DtoModels.AllotIdRequest)">
<summary>
获取人员补充绩效列表
获取医院其他绩效列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprGroupList(Performance.EntityModels.per_apr_amount)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprGroupList(Performance.DtoModels.AllotIdRequest)">
<summary>
医院其他绩效审核
</summary>
......@@ -818,21 +811,21 @@
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.InsertApr(Performance.EntityModels.per_apr_amount)">
<summary>
新增人员补充绩效
新增医院其他绩效
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.UpdateApr(Performance.EntityModels.per_apr_amount)">
<summary>
修改人员补充绩效
修改医院其他绩效
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.DeleteApr(Performance.EntityModels.per_apr_amount)">
<member name="M:Performance.Api.Controllers.EmployeeController.DeleteApr(Performance.DtoModels.IdRequest)">
<summary>
删除人员补充绩效
删除医院其他绩效
</summary>
<param name="request"></param>
<returns></returns>
......@@ -845,11 +838,25 @@
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.Import(Microsoft.AspNetCore.Http.IFormCollection)">
<summary>
上传人员绩效文件
上传医院其他绩效文件
</summary>
<param name="form"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetPerforTypeDict(System.Int32)">
<summary>
绩效类型字典
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.AprOverview(System.Int32)">
<summary>
医院其他绩效统计
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetEmployeeMessage(Performance.EntityModels.per_apr_amount)">
<summary>
自动获取人员信息
......@@ -867,17 +874,79 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetPerforTypeDict(System.Int32)">
<member name="M:Performance.Api.Controllers.EmployeeController.GetDeptAssessment(System.Int32)">
<summary>
绩效类型字典
材料科室考核
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprHideList(Performance.DtoModels.AllotIdRequest)">
<summary>
获取不公示其他绩效列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprHideGroupList(Performance.DtoModels.AllotIdRequest)">
<summary>
不公示其他绩效审核
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetAprHideDetail(Performance.EntityModels.per_apr_amount)">
<summary>
不公示其他绩效审核详情
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.InsertAprHide(Performance.EntityModels.per_apr_amount_hide)">
<summary>
新增不公示其他绩效
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.UpdateAprHide(Performance.EntityModels.per_apr_amount_hide)">
<summary>
修改不公示其他绩效
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.DeleteAprHide(Performance.DtoModels.IdRequest)">
<summary>
删除不公示其他绩效
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.AuditResultHide(Performance.DtoModels.AprAmountAuditRequest)">
<summary>
不公示其他绩效审核;驳回、成功
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.ImportAprHide(Microsoft.AspNetCore.Http.IFormCollection)">
<summary>
上传不公示其他绩效
</summary>
<param name="form"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetPerforTypeDictHide(System.Int32)">
<summary>
不公示其他绩效类型字典
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.EmployeeController.GetDeptAssessment(System.Int32)">
<member name="M:Performance.Api.Controllers.EmployeeController.AprHideOverview(System.Int32)">
<summary>
材料科室考核
不公示其他绩效统计
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ExConfigController.Extract(Performance.DtoModels.ModModuleRequest)">
......
......@@ -220,6 +220,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount_hide">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_budget_amount">
<summary> 预算管理金额 </summary>
</member>
......@@ -4411,6 +4414,86 @@
验证失败描述
</summary>
</member>
<member name="T:Performance.EntityModels.per_apr_amount_hide">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.AllotId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.PersonnelNumber">
<summary>
人员工号
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.DoctorName">
<summary>
医生姓名
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.PerforType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.Amount">
<summary>
金额
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.TypeInDepartment">
<summary>
录入科室
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.Status">
<summary>
状态 1 未提交 2 等待审核 3 审核通过 4 驳回
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.AuditTime">
<summary>
审核时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.AuditUser">
<summary>
审核人
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.CreateDate">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.CreateUser">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.IsVerify">
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member name="P:Performance.EntityModels.per_apr_amount_hide.VerifyMessage">
<summary>
验证失败描述
</summary>
</member>
<member name="T:Performance.EntityModels.per_budget_amount">
<summary>
预算管理金额
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class AllotIdRequest
{
public int AllotId { get; set; }
}
public class IdRequest
{
public int Id { get; set; }
}
}
......@@ -158,6 +158,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<per_allot> per_allot { get; set; }
/// <summary> </summary>
public virtual DbSet<per_apr_amount> per_apr_amount { get; set; }
/// <summary> </summary>
public virtual DbSet<per_apr_amount_hide> per_apr_amount_hide { get; set; }
/// <summary> 预算管理金额 </summary>
public virtual DbSet<per_budget_amount> per_budget_amount { get; set; }
/// <summary> 预算管理占比 </summary>
......
......@@ -7,45 +7,45 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("per_apr_amount")]
public class per_apr_amount
public class per_apr_amount
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
/// <summary>
///
/// </summary>
public string PerforType { get; set; }
/// <summary>
/// 金额
/// </summary>
public Nullable<decimal> Amount { get; set; }
/// <summary>
/// 录入科室
/// </summary>
......@@ -60,27 +60,27 @@ public class per_apr_amount
/// 状态 1 未提交 2 等待审核 3 审核通过 4 驳回
/// </summary>
public Nullable<int> Status { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public Nullable<DateTime> AuditTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public Nullable<int> AuditUser { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> CreateUser { get; set; }
/// <summary>
/// 备注
/// </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" per_apr_amount_hide.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("per_apr_amount_hide")]
public class per_apr_amount_hide
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
/// <summary>
///
/// </summary>
public string PerforType { get; set; }
/// <summary>
/// 金额
/// </summary>
public Nullable<decimal> Amount { get; set; }
/// <summary>
/// 录入科室
/// </summary>
public string TypeInDepartment { get; set; }
/// <summary>
/// 状态 1 未提交 2 等待审核 3 审核通过 4 驳回
/// </summary>
public Nullable<int> Status { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public Nullable<DateTime> AuditTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public Nullable<int> AuditUser { get; set; }
/// <summary>
///
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> CreateUser { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 0 未通过验证 1 通过验证
/// </summary>
public int? IsVerify { get; set; }
/// <summary>
/// 验证失败描述
/// </summary>
public string VerifyMessage { get; set; }
}
}
......@@ -14,35 +14,36 @@ namespace Performance.Repository
/// per_apr_amount Repository
/// </summary>
public partial class PerforPerapramountRepository : PerforRepository<per_apr_amount>
{
{
public List<view_per_apr_amount> GetFullAmount(Func<per_apr_amount, bool> predicate)
{
var employees = this.context.Set<per_employee>().AsEnumerable();
var amounts = this.context.Set<per_apr_amount>().Where(predicate);
var res = amounts.Join(employees,
outer => new { outer.AllotId, outer.PersonnelNumber },
inner => new { AllotId = inner.AllotId ?? 0, inner.PersonnelNumber },
(outer, inner) => new view_per_apr_amount
{
Id = outer.Id,
AllotId = outer.AllotId,
PersonnelNumber = outer.PersonnelNumber,
DoctorName = outer.DoctorName,
PerforType = outer.PerforType,
Amount = outer.Amount,
AccountingUnit = inner.AccountingUnit,
UnitType = inner.UnitType,
TypeInDepartment = outer.TypeInDepartment,
Status = outer.Status,
AuditTime = outer.AuditTime,
AuditUser = outer.AuditUser,
CreateDate = outer.CreateDate,
CreateUser = outer.CreateUser,
Remark = outer.Remark,
IsVerify = outer.IsVerify,
VerifyMessage = outer.VerifyMessage,
});
var res = from outer in amounts
join inner in employees
on new { outer.AllotId, outer.PersonnelNumber } equals new { AllotId = inner.AllotId ?? 0, inner.PersonnelNumber } into temp
from tt in temp.DefaultIfEmpty()
select new view_per_apr_amount
{
Id = outer.Id,
AllotId = outer.AllotId,
PersonnelNumber = outer.PersonnelNumber,
DoctorName = outer.DoctorName,
PerforType = outer.PerforType,
Amount = outer.Amount,
AccountingUnit = tt?.AccountingUnit ?? "",
UnitType = tt?.UnitType ?? "",
TypeInDepartment = outer.TypeInDepartment,
Status = outer.Status,
AuditTime = outer.AuditTime,
AuditUser = outer.AuditUser,
CreateDate = outer.CreateDate,
CreateUser = outer.CreateUser,
Remark = outer.Remark,
IsVerify = outer.IsVerify,
VerifyMessage = outer.VerifyMessage,
};
return res.ToList() ?? new List<view_per_apr_amount>();
}
}
......
//-----------------------------------------------------------------------
// <copyright file=" per_apr_amount.cs">
// * FileName: per_apr_amount.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_apr_amount Repository
/// </summary>
public partial class PerforPerapramounthideRepository : PerforRepository<per_apr_amount_hide>
{
public List<view_per_apr_amount> GetFullAmount(Func<per_apr_amount_hide, bool> predicate)
{
var employees = this.context.Set<per_employee>().AsEnumerable();
var amounts = this.context.Set<per_apr_amount_hide>().Where(predicate);
var res = from outer in amounts
join inner in employees
on new { outer.AllotId, outer.PersonnelNumber } equals new { AllotId = inner.AllotId ?? 0, inner.PersonnelNumber } into temp
from tt in temp.DefaultIfEmpty()
select new view_per_apr_amount
{
Id = outer.Id,
AllotId = outer.AllotId,
PersonnelNumber = outer.PersonnelNumber,
DoctorName = outer.DoctorName,
PerforType = outer.PerforType,
Amount = outer.Amount,
AccountingUnit = tt?.AccountingUnit ?? "",
UnitType = tt?.UnitType ?? "",
TypeInDepartment = outer.TypeInDepartment,
Status = outer.Status,
AuditTime = outer.AuditTime,
AuditUser = outer.AuditUser,
CreateDate = outer.CreateDate,
CreateUser = outer.CreateUser,
Remark = outer.Remark,
IsVerify = outer.IsVerify,
VerifyMessage = outer.VerifyMessage,
};
return res.ToList() ?? new List<view_per_apr_amount>();
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_apr_amount.cs">
// * FileName: per_apr_amount.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_apr_amount Repository
/// </summary>
public partial class PerforPerapramounthideRepository : PerforRepository<per_apr_amount_hide>
{
public PerforPerapramounthideRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using Performance.Repository;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
namespace Performance.Services
{
public class AprAmountService : IAutoInjection
{
private readonly PerforPeremployeeRepository _peremployeeRepository;
private readonly PerforPerapramountRepository _perapramountRepository;
//namespace Performance.Services
//{
// public class AprAmountService : IAutoInjection
// {
// private readonly PerforPeremployeeRepository _peremployeeRepository;
// private readonly PerforPerapramountRepository _perapramountRepository;
public AprAmountService(
PerforPeremployeeRepository peremployeeRepository,
PerforPerapramountRepository perapramountRepository)
{
_peremployeeRepository = peremployeeRepository;
_perapramountRepository = perapramountRepository;
}
// public AprAmountService(
// PerforPeremployeeRepository peremployeeRepository,
// PerforPerapramountRepository perapramountRepository)
// {
// _peremployeeRepository = peremployeeRepository;
// _perapramountRepository = perapramountRepository;
// }
/// <summary>
/// 获取医院其他绩效 默认审核通过 status = 3
/// 科室及核算组别使用人员字典
/// </summary>
/// <param name="allotId"></param>
/// <param name="status"></param>
/// <returns></returns>
public List<AprAmount> GetAprAmount(int allotId, int status = 3)
{
var perapramounts = _perapramountRepository.GetEntities(t => t.AllotId == allotId && t.Status == status);
var employees = _peremployeeRepository.GetEntities(t => t.AllotId == allotId);
// /// <summary>
// /// 获取医院其他绩效 默认审核通过 status = 3
// /// 科室及核算组别使用人员字典
// /// </summary>
// /// <param name="allotId"></param>
// /// <param name="status"></param>
// /// <returns></returns>
// public List<AprAmount> GetAprAmount(int allotId, int status = 3)
// {
// var perapramounts = _perapramountRepository.GetEntities(t => t.AllotId == allotId && t.Status == status);
// var employees = _peremployeeRepository.GetEntities(t => t.AllotId == allotId);
var result = perapramounts.Join(employees, amt => amt.PersonnelNumber, epy => epy.PersonnelNumber,
(amt, epy) => new AprAmount
{
AccountingUnit = epy.AccountingUnit,
UnitType = epy.UnitType,
PersonnelNumber = amt.PersonnelNumber,
DoctorName = amt.DoctorName,
PerforType = amt.PerforType,
Amount = amt.Amount
});
return result?.ToList() ?? new List<AprAmount>();
}
}
// var result = perapramounts.Join(employees, amt => amt.PersonnelNumber, epy => epy.PersonnelNumber,
// (amt, epy) => new AprAmount
// {
// AccountingUnit = epy.AccountingUnit,
// UnitType = epy.UnitType,
// PersonnelNumber = amt.PersonnelNumber,
// DoctorName = amt.DoctorName,
// PerforType = amt.PerforType,
// Amount = amt.Amount
// });
// return result?.ToList() ?? new List<AprAmount>();
// }
// }
public class AprAmount
{
/// <summary>
/// 核算单元
/// </summary>
public string UnitType { get; set; }
// public class AprAmount
// {
// /// <summary>
// /// 核算单元
// /// </summary>
// public string UnitType { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
// /// <summary>
// /// 人员工号
// /// </summary>
// public string PersonnelNumber { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
// /// <summary>
// /// 医生姓名
// /// </summary>
// public string DoctorName { get; set; }
/// <summary>
///
/// </summary>
public string PerforType { get; set; }
// /// <summary>
// ///
// /// </summary>
// public string PerforType { get; set; }
/// <summary>
/// 金额
/// </summary>
public Nullable<decimal> Amount { get; set; }
// /// <summary>
// /// 金额
// /// </summary>
// public Nullable<decimal> Amount { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
}
}
// /// <summary>
// /// 核算单元
// /// </summary>
// public string AccountingUnit { get; set; }
// }
//}
......@@ -32,9 +32,11 @@ public class ComputeService : IAutoInjection
private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforPerapramountRepository perapramountRepository;
private readonly PerforPeremployeeRepository perforPeremployeeRepository;
private readonly PerforPerapramounthideRepository _hideRepository;
private readonly PerforCofworkitemRepository cofworkitemRepository;
public ComputeService(PerforResaccountRepository perforResaccountRepository,
public ComputeService(
PerforResaccountRepository perforResaccountRepository,
PerforPersheetRepository perforPerSheetRepository,
PerforImdataRepository perforImDataRepository,
PerforImheaderRepository perforImheaderRepository,
......@@ -49,6 +51,7 @@ public class ComputeService : IAutoInjection
PerforHospitalRepository hospitalRepository,
PerforPerapramountRepository perapramountRepository,
PerforPeremployeeRepository perforPeremployeeRepository,
PerforPerapramounthideRepository hideRepository,
PerforCofworkitemRepository cofworkitemRepository)
{
this.perforResaccountRepository = perforResaccountRepository;
......@@ -66,6 +69,7 @@ public class ComputeService : IAutoInjection
this.hospitalRepository = hospitalRepository;
this.perapramountRepository = perapramountRepository;
this.perforPeremployeeRepository = perforPeremployeeRepository;
_hideRepository = hideRepository;
this.cofworkitemRepository = cofworkitemRepository;
}
......@@ -589,8 +593,8 @@ public List<DeptResponse> GetAdminPerformance(int allotId)
result.AddRange(officeResult);
// 获取各科室 医院其他绩效
var amounts = perapramountRepository.GetFullAmount(t => t.AllotId == allotId && t.Status == 3);
var otherPerformances = amounts
var fullAmounts = GetTotalAmount(allotId); ;
var otherPerformances = fullAmounts
?.GroupBy(t => new { t.AccountingUnit, t.UnitType })
.Select(t => new view_per_total_amount
{
......@@ -748,7 +752,7 @@ public List<ComputeResponse> AllCompute(int allotId, int hospitalId, int isShowM
// 人员字典
var employees = perforPeremployeeRepository.GetEntities(w => w.AllotId == allotId);
// 获取医院其他绩效汇总结果
var totalAmounts = GetTotalAmount(allotId);
var fullAmounts = GetTotalAmount(allotId);
// 获取一次绩效结果
var one = GetAllotPerformance(allotId, hospitalId, isShowManage);
// 获取二次绩效结果
......@@ -760,6 +764,18 @@ public List<ComputeResponse> AllCompute(int allotId, int hospitalId, int isShowM
if (two != null)
response.AddRange(two);
// 其他绩效汇总
var totalAmounts = fullAmounts
?.GroupBy(w => new { w.AccountingUnit, w.UnitType, w.PersonnelNumber })
.Select(w => new view_per_total_amount
{
AccountingUnit = w.Key.AccountingUnit,
UnitType = w.Key.UnitType,
PersonnelNumber = w.Key.PersonnelNumber,
Amount = w.Sum(t => t.Amount) ?? 0,
Use = false,
})?.ToList();
// 补充医院其他绩效
AddAprAmount(response, totalAmounts);
......@@ -824,26 +840,24 @@ public List<ComputeResponse> AllCompute(int allotId, int hospitalId, int isShowM
}
/// <summary>
/// 获取医院其他绩效汇总结果
/// 合并医院其他绩效、不公示其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
private List<view_per_total_amount> GetTotalAmount(int allotId)
private List<view_per_apr_amount> GetTotalAmount(int allotId)
{
var fullAmounts = perapramountRepository.GetFullAmount(t => t.AllotId == allotId && t.Status == 3);
var fullAmounts1 = perapramountRepository.GetFullAmount(t => t.AllotId == allotId && t.Status == 3) ?? new List<view_per_apr_amount>();
var totalAmounts = fullAmounts
?.GroupBy(w => new { w.AccountingUnit, w.UnitType, w.PersonnelNumber })
.Select(w => new view_per_total_amount
{
AccountingUnit = w.Key.AccountingUnit,
UnitType = w.Key.UnitType,
PersonnelNumber = w.Key.PersonnelNumber,
Amount = w.Sum(t => t.Amount) ?? 0,
Use = false,
});
var fullAmounts2 = _hideRepository.GetFullAmount(t => t.AllotId == allotId && t.Status == 3) ?? new List<view_per_apr_amount>();
var fullAmounts = new List<view_per_apr_amount>();
if (fullAmounts1 != null && fullAmounts1.Any())
fullAmounts.AddRange(fullAmounts1);
if (fullAmounts2 != null && fullAmounts2.Any())
fullAmounts.AddRange(fullAmounts2);
return totalAmounts?.ToList() ?? new List<view_per_total_amount>();
return fullAmounts;
}
/// <summary>
......
......@@ -959,37 +959,37 @@ public List<TitleValue> WorkHeader(int allotId)
return null;
}
/// <summary>
/// 人员绩效额外金额
/// </summary>
private void CopyAprData(int prevAllotId, int allotId)
{
if (prevAllotId == 0) return;
var list = perapramountRepository.GetEntities(t => new List<int> { prevAllotId, allotId }.Contains(t.AllotId));
if (list == null || !list.Any(t => t.AllotId == prevAllotId)) return;
///// <summary>
///// 人员绩效额外金额
///// </summary>
//private void CopyAprData(int prevAllotId, int allotId)
//{
// if (prevAllotId == 0) return;
// var list = perapramountRepository.GetEntities(t => new List<int> { prevAllotId, allotId }.Contains(t.AllotId));
// if (list == null || !list.Any(t => t.AllotId == prevAllotId)) return;
if (list.Any(t => t.AllotId == allotId))
{
var prevData = list.Where(t => t.AllotId == prevAllotId);
var existData = list.Where(t => t.AllotId == allotId);
if (existData != null && existData.Any())
list = prevData.Where(t => !existData.Select(w => w.PersonnelNumber).Contains(t.PersonnelNumber)).ToList();
}
if (list.Any())
{
var data = list.Select(t => new per_apr_amount
{
Status = 2,
AllotId = allotId,
PersonnelNumber = t.PersonnelNumber,
DoctorName = t.DoctorName,
PerforType = t.PerforType,
Amount = t.Amount,
CreateDate = DateTime.Now
});
perapramountRepository.AddRange(data.ToArray());
}
}
// if (list.Any(t => t.AllotId == allotId))
// {
// var prevData = list.Where(t => t.AllotId == prevAllotId);
// var existData = list.Where(t => t.AllotId == allotId);
// if (existData != null && existData.Any())
// list = prevData.Where(t => !existData.Select(w => w.PersonnelNumber).Contains(t.PersonnelNumber)).ToList();
// }
// if (list.Any())
// {
// var data = list.Select(t => new per_apr_amount
// {
// Status = 2,
// AllotId = allotId,
// PersonnelNumber = t.PersonnelNumber,
// DoctorName = t.DoctorName,
// PerforType = t.PerforType,
// Amount = t.Amount,
// CreateDate = DateTime.Now
// });
// perapramountRepository.AddRange(data.ToArray());
// }
//}
#region HRP人员科室
......
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