Commit 0a00dad4 by lcx

全院绩效发放进行标记

parent 4ad7fbc0
...@@ -310,10 +310,10 @@ public ApiResponse AllComputeByPM([FromBody] ComputerRequest request) ...@@ -310,10 +310,10 @@ public ApiResponse AllComputeByPM([FromBody] ComputerRequest request)
RealGiveFee = t.Sum(s => s.RealGiveFee), RealGiveFee = t.Sum(s => s.RealGiveFee),
ReservedRatio = t.Sum(s => s.ReservedRatio), ReservedRatio = t.Sum(s => s.ReservedRatio),
ReservedRatioFee = t.Sum(s => s.ReservedRatioFee), ReservedRatioFee = t.Sum(s => s.ReservedRatioFee),
BankCard = t.FirstOrDefault(s=>s.JobNumber==t.Key.JobNumber)?.BankCard, BankCard = t.FirstOrDefault(s => s.JobNumber == t.Key.JobNumber)?.BankCard,
JobCategory=t.FirstOrDefault(s=>s.JobNumber==t.Key.JobNumber)?.JobCategory, JobCategory = t.FirstOrDefault(s => s.JobNumber == t.Key.JobNumber)?.JobCategory,
Duty=t.FirstOrDefault(s=>s.JobNumber==t.Key.JobNumber)?.Duty, Duty = t.FirstOrDefault(s => s.JobNumber == t.Key.JobNumber)?.Duty,
TitlePosition=t.FirstOrDefault(s=>s.JobNumber==t.Key.JobNumber)?.TitlePosition TitlePosition = t.FirstOrDefault(s => s.JobNumber == t.Key.JobNumber)?.TitlePosition
}).OrderBy(t => }).OrderBy(t =>
{ {
string value = t.JobNumber; string value = t.JobNumber;
...@@ -410,7 +410,20 @@ public ApiResponse<res_baiscnorm> EditHospitalAvg([FromBody] ComputerAvgRequest ...@@ -410,7 +410,20 @@ public ApiResponse<res_baiscnorm> EditHospitalAvg([FromBody] ComputerAvgRequest
public ApiResponse CustomColumnHeaders([FromBody] ComputerAliasRequest request) public ApiResponse CustomColumnHeaders([FromBody] ComputerAliasRequest request)
{ {
var result = _computeService.CustomColumnHeaders(request); var result = _computeService.CustomColumnHeaders(request);
return new ApiResponse(ResponseType.OK,result); return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 全院绩效进行批次标记
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("allcompute/batch")]
[HttpPost]
public ApiResponse Batch([FromBody] BatchRequest request)
{
var result = _computeService.Batch(request);
return result ? new ApiResponse(ResponseType.OK, "操作成功") : new ApiResponse(ResponseType.Fail, "操作失败");
} }
} }
} }
\ No newline at end of file
...@@ -522,6 +522,13 @@ ...@@ -522,6 +522,13 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ComputeController.Batch(Performance.DtoModels.Request.BatchRequest)">
<summary>
全院绩效进行批次标记
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeList(Performance.DtoModels.DrugpropRequest)"> <member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeList(Performance.DtoModels.DrugpropRequest)">
<summary> <summary>
获取 药占比类型信息列表 获取 药占比类型信息列表
......
...@@ -1918,6 +1918,26 @@ ...@@ -1918,6 +1918,26 @@
<member name="P:Performance.DtoModels.AprAmountAuditRequest.Remark"> <member name="P:Performance.DtoModels.AprAmountAuditRequest.Remark">
<summary> 备注 </summary> <summary> 备注 </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.BatchDetail.UnitType">
<summary>
核算单元分类
</summary>
</member>
<member name="P:Performance.DtoModels.Request.BatchDetail.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.Request.BatchDetail.EmployeeName">
<summary>
人员姓名
</summary>
</member>
<member name="P:Performance.DtoModels.Request.BatchDetail.JobNumber">
<summary>
工号
</summary>
</member>
<member name="P:Performance.DtoModels.Request.ComputerAvgRequest.PositionName"> <member name="P:Performance.DtoModels.Request.ComputerAvgRequest.PositionName">
<summary> <summary>
绩效核算人群 绩效核算人群
...@@ -2988,6 +3008,11 @@ ...@@ -2988,6 +3008,11 @@
职称 职称
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.ComputeResponse.Batch">
<summary>
批号
</summary>
</member>
<member name="P:Performance.DtoModels.CostTransferResponse.AllotId"> <member name="P:Performance.DtoModels.CostTransferResponse.AllotId">
<summary> <summary>
......
...@@ -235,6 +235,9 @@ ...@@ -235,6 +235,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount_hide"> <member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount_hide">
<summary> </summary> <summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_batch">
<summary> 分批发放记录 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_budget_amount"> <member name="P:Performance.EntityModels.PerformanceDbContext.per_budget_amount">
<summary> 预算管理金额 </summary> <summary> 预算管理金额 </summary>
</member> </member>
...@@ -4737,6 +4740,56 @@ ...@@ -4737,6 +4740,56 @@
验证失败描述 验证失败描述
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.per_batch">
<summary>
分批发放记录
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.AllotId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.Batch">
<summary>
批次
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.BatchDate">
<summary>
批次日期
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.UnitType">
<summary>
核算单元分类
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.PersonnelName">
<summary>
人员姓名
</summary>
</member>
<member name="P:Performance.EntityModels.per_batch.PersonnelNumber">
<summary>
工号
</summary>
</member>
<member name="T:Performance.EntityModels.per_budget_amount"> <member name="T:Performance.EntityModels.per_budget_amount">
<summary> <summary>
预算管理金额 预算管理金额
......
using System.Collections.Generic;
namespace Performance.DtoModels.Request
{
public class BatchRequest
{
public int HospitalId { get; set; }
public int AllotId { get; set; }
public List<BatchDetail> Details { get; set; }
}
public class BatchDetail
{
/// <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>
/// 批次
/// </summary>
public string Batch { get; set; }
}
}
...@@ -113,18 +113,25 @@ public ComputeResponse(string source, string accountingUnit, string employeeName ...@@ -113,18 +113,25 @@ public ComputeResponse(string source, string accountingUnit, string employeeName
/// 银行卡号 /// 银行卡号
/// </summary> /// </summary>
public string BankCard { get; set; } public string BankCard { get; set; }
/// <summary> /// <summary>
/// 正式/临聘 /// 正式/临聘
/// </summary> /// </summary>
public string JobCategory { get; set; } public string JobCategory { get; set; }
/// <summary> /// <summary>
/// 职务 /// 职务
/// </summary> /// </summary>
public string Duty { get; set; } public string Duty { get; set; }
/// <summary> /// <summary>
/// 职称 /// 职称
/// </summary> /// </summary>
public string TitlePosition { get; set; } public string TitlePosition { get; set; }
/// <summary>
/// 批号
/// </summary>
public string Batch { get; set; }
} }
} }
...@@ -165,6 +165,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -165,6 +165,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<per_apr_amount> per_apr_amount { get; set; } public virtual DbSet<per_apr_amount> per_apr_amount { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<per_apr_amount_hide> per_apr_amount_hide { get; set; } public virtual DbSet<per_apr_amount_hide> per_apr_amount_hide { get; set; }
/// <summary> 分批发放记录 </summary>
public virtual DbSet<per_batch> per_batch { get; set; }
/// <summary> 预算管理金额 </summary> /// <summary> 预算管理金额 </summary>
public virtual DbSet<per_budget_amount> per_budget_amount { get; set; } public virtual DbSet<per_budget_amount> per_budget_amount { get; set; }
/// <summary> 预算管理占比 </summary> /// <summary> 预算管理占比 </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" per_batch.cs">
// * FileName: 分批发放记录.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 分批发放记录
/// </summary>
[Table("per_batch")]
public class per_batch
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int HospitalId { get; set; }
/// <summary>
///
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 批次
/// </summary>
public string Batch { get; set; }
/// <summary>
/// 批次日期
/// </summary>
public DateTime BatchDate { get; set; }
/// <summary>
/// 核算单元分类
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 人员姓名
/// </summary>
public string PersonnelName { get; set; }
/// <summary>
/// 工号
/// </summary>
public string PersonnelNumber { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_batch.cs">
// * FileName: per_batch.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_batch Repository
/// </summary>
public partial class PerforPerbatchRepository : PerforRepository<per_batch>
{
public PerforPerbatchRepository(PerformanceDbContext context) : base(context)
{
}
}
}
...@@ -29,6 +29,7 @@ public class ComputeService : IAutoInjection ...@@ -29,6 +29,7 @@ public class ComputeService : IAutoInjection
private readonly PerforImemployeeclinicRepository _perforImemployeeclinicRepository; private readonly PerforImemployeeclinicRepository _perforImemployeeclinicRepository;
private readonly PerforImemployeeRepository _perforImemployeeRepository; private readonly PerforImemployeeRepository _perforImemployeeRepository;
private readonly PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforPerbatchRepository perforPerbatchRepository;
private readonly PerforHospitalRepository hospitalRepository; private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforPerapramountRepository perapramountRepository; private readonly PerforPerapramountRepository perapramountRepository;
private readonly PerforPeremployeeRepository perforPeremployeeRepository; private readonly PerforPeremployeeRepository perforPeremployeeRepository;
...@@ -49,6 +50,7 @@ public class ComputeService : IAutoInjection ...@@ -49,6 +50,7 @@ public class ComputeService : IAutoInjection
PerforImemployeeclinicRepository perforImemployeeclinicRepository, PerforImemployeeclinicRepository perforImemployeeclinicRepository,
PerforImemployeeRepository perforImemployeeRepository, PerforImemployeeRepository perforImemployeeRepository,
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforPerbatchRepository perforPerbatchRepository,
PerforHospitalRepository hospitalRepository, PerforHospitalRepository hospitalRepository,
PerforPerapramountRepository perapramountRepository, PerforPerapramountRepository perapramountRepository,
PerforPeremployeeRepository perforPeremployeeRepository, PerforPeremployeeRepository perforPeremployeeRepository,
...@@ -68,6 +70,7 @@ public class ComputeService : IAutoInjection ...@@ -68,6 +70,7 @@ public class ComputeService : IAutoInjection
this._perforImemployeeclinicRepository = perforImemployeeclinicRepository; this._perforImemployeeclinicRepository = perforImemployeeclinicRepository;
this._perforImemployeeRepository = perforImemployeeRepository; this._perforImemployeeRepository = perforImemployeeRepository;
this.perforPerallotRepository = perforPerallotRepository; this.perforPerallotRepository = perforPerallotRepository;
this.perforPerbatchRepository = perforPerbatchRepository;
this.hospitalRepository = hospitalRepository; this.hospitalRepository = hospitalRepository;
this.perapramountRepository = perapramountRepository; this.perapramountRepository = perapramountRepository;
this.perforPeremployeeRepository = perforPeremployeeRepository; this.perforPeremployeeRepository = perforPeremployeeRepository;
...@@ -912,6 +915,20 @@ public List<ComputeResponse> AllCompute(int allotId, int hospitalId, int isShowM ...@@ -912,6 +915,20 @@ public List<ComputeResponse> AllCompute(int allotId, int hospitalId, int isShowM
} }
} }
response.RemoveAll(w => w.PerforSumFee == 0 && w.PerforManagementFee == 0 && w.ShouldGiveFee == 0 && w.OthePerfor == 0 && w.HideOtherPerfor == 0 && w.RealGiveFee == 0); response.RemoveAll(w => w.PerforSumFee == 0 && w.PerforManagementFee == 0 && w.ShouldGiveFee == 0 && w.OthePerfor == 0 && w.HideOtherPerfor == 0 && w.RealGiveFee == 0);
if (response == null || !response.Any())
return new List<ComputeResponse>();
var batchs = perforPerbatchRepository.GetEntities(t => t.AllotId == allotId);
if (batchs != null && batchs.Any())
{
response.ForEach(t =>
{
var batch = batchs.FirstOrDefault(b => b.UnitType.NoBlank() == t.UnitType.NoBlank() && b.AccountingUnit.NoBlank() == t.AccountingUnit.NoBlank() && b.PersonnelName.NoBlank() == t.EmployeeName.NoBlank() && b.PersonnelNumber.NoBlank() == t.JobNumber.NoBlank());
if (batch != null)
t.Batch = batch.Batch;
});
}
return response?.OrderByDescending(t => t.AccountingUnit).ToList(); return response?.OrderByDescending(t => t.AccountingUnit).ToList();
} }
...@@ -966,7 +983,7 @@ private List<ComputeResponse> GetAllotPerformance(int allotId, int hospitalId, i ...@@ -966,7 +983,7 @@ private List<ComputeResponse> GetAllotPerformance(int allotId, int hospitalId, i
return allot?.Select(t => return allot?.Select(t =>
{ {
var comp = new ComputeResponse("一次绩效", t.AccountingUnit, t.EmployeeName, t.JobNumber, t.JobTitle??""); var comp = new ComputeResponse("一次绩效", t.AccountingUnit, t.EmployeeName, t.JobNumber, t.JobTitle ?? "");
comp.UnitType = t.AccountType; comp.UnitType = t.AccountType;
comp.Adjust = t.Adjust; comp.Adjust = t.Adjust;
comp.AdjustLaterOtherFee = t.AdjustLaterOtherFee; comp.AdjustLaterOtherFee = t.AdjustLaterOtherFee;
...@@ -1029,7 +1046,7 @@ private List<ComputeResponse> GetSecondPerformance(int allotId) ...@@ -1029,7 +1046,7 @@ private List<ComputeResponse> GetSecondPerformance(int allotId)
.GroupBy(t => new { t.UnitType, t.Department, t.WorkPost, t.JobNumber, t.PersonName }) .GroupBy(t => new { t.UnitType, t.Department, t.WorkPost, t.JobNumber, t.PersonName })
.Select(t => .Select(t =>
{ {
var comp = new ComputeResponse("二次绩效", t.Key.Department, t.Key.PersonName, t.Key.JobNumber, t.Key.WorkPost??""); var comp = new ComputeResponse("二次绩效", t.Key.Department, t.Key.PersonName, t.Key.JobNumber, t.Key.WorkPost ?? "");
comp.UnitType = t.Key.UnitType; comp.UnitType = t.Key.UnitType;
comp.PerforSumFee = t.Sum(g => g.PerforSumFee); comp.PerforSumFee = t.Sum(g => g.PerforSumFee);
comp.NightWorkPerfor = t.Sum(g => g.NightWorkPerfor); comp.NightWorkPerfor = t.Sum(g => g.NightWorkPerfor);
...@@ -1927,5 +1944,29 @@ public List<cof_alias> CustomColumnHeaders(ComputerAliasRequest request) ...@@ -1927,5 +1944,29 @@ public List<cof_alias> CustomColumnHeaders(ComputerAliasRequest request)
if (result == null || !result.Any()) return new List<cof_alias>(); if (result == null || !result.Any()) return new List<cof_alias>();
return result; return result;
} }
public bool Batch(BatchRequest request)
{
if (request == null || request.Details == null || !request.Details.Any())
throw new PerformanceException("参数错误");
if (request.Details.Any(t => !string.IsNullOrEmpty(t.Batch)))
throw new PerformanceException("包含已标记数据");
DateTime dateTime = DateTime.Now;
string batch = DateTime.Now.ToString("yyyyMMddfff");
var data = request.Details.Select(t => new per_batch
{
HospitalId = request.HospitalId,
AllotId = request.AllotId,
Batch = batch,
BatchDate = dateTime,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
PersonnelNumber = t.JobNumber,
PersonnelName = t.EmployeeName
});
return perforPerbatchRepository.AddRange(data.ToArray());
}
} }
} }
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