Commit 11df8604 by 钟博

新增支出费用类别配置

parent 2e0dbf1c
......@@ -303,6 +303,61 @@ public ApiResponse DrugtypeDelete([CustomizeValidator(RuleSet = "Delete"), FromB
}
#endregion
#region drugtype_disburse
/// <summary>
/// 获取 药占比支出类型信息列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("drugdisburselist")]
[HttpPost]
public ApiResponse GetDrugtypeDisburseList([CustomizeValidator(RuleSet = "Select"), FromBody] DrugpropRequest request)
{
var list = _configService.GetDrugtypeDisburseList(request.HospitalId, request.AllotID);
return new ApiResponse(ResponseType.OK, "ok", list);
}
/// <summary>
/// 新增药占比支出类型
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("drugdisburseinsert")]
[HttpPost]
public ApiResponse DrugtypeDisburseInsert([CustomizeValidator(RuleSet = "Insert"), FromBody] DrugpropRequest request)
{
var drugprop = _configService.DrugtypeDisburseInsert(request);
return new ApiResponse(ResponseType.OK, drugprop);
}
/// <summary>
/// 修改药占比支出类型
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("drugdisburseupdate")]
[HttpPost]
public ApiResponse DrugtypeDisburseUpdate([CustomizeValidator(RuleSet = "Update"), FromBody] DrugpropRequest request)
{
var drugprop = _configService.DrugtypeDisburseUpdate(request);
return new ApiResponse(ResponseType.OK, drugprop);
}
/// <summary>
/// 删除药占比支出类型
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("drugdisbursedelete")]
[HttpPost]
public ApiResponse DrugtypeDisburseDelete([CustomizeValidator(RuleSet = "Delete"), FromBody] DrugpropRequest request)
{
if (!_configService.DrugtypeDisburseDelete(request))
return new ApiResponse(ResponseType.Fail);
return new ApiResponse(ResponseType.OK);
}
#endregion
#region cofagain
/// <summary>
/// 获取二次绩效配置列表
......
......@@ -537,6 +537,34 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDrugtypeDisburseList(Performance.DtoModels.DrugpropRequest)">
<summary>
获取 药占比支出类型信息列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DrugtypeDisburseInsert(Performance.DtoModels.DrugpropRequest)">
<summary>
新增药占比支出类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DrugtypeDisburseUpdate(Performance.DtoModels.DrugpropRequest)">
<summary>
修改药占比支出类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DrugtypeDisburseDelete(Performance.DtoModels.DrugpropRequest)">
<summary>
删除药占比支出类型
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetAgainList(Performance.DtoModels.CofAgainRequest)">
<summary>
获取二次绩效配置列表
......
......@@ -179,6 +179,12 @@
<member name="F:Performance.DtoModels.DataFormat.小数">
<summary> 小数 </summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.小数1">
<summary> 小数 </summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.整数">
<summary> 整数 </summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.货币">
<summary> 货币 </summary>
</member>
......@@ -836,6 +842,9 @@
<member name="F:Performance.DtoModels.SheetType.Assess">
<summary> 考核 </summary>
</member>
<member name="F:Performance.DtoModels.SheetType.DoctorIncome">
<summary> 医生收入 </summary>
</member>
<member name="F:Performance.DtoModels.SheetType.Custom">
<summary> 自定义抽取模板 </summary>
</member>
......
......@@ -100,6 +100,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype">
<summary> 药占比费用列头名称 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_disburse">
<summary> 药占比支出费用列头名称 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_guarantee">
<summary> 保底科室配置 </summary>
</member>
......@@ -1859,6 +1862,31 @@
费用类别
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_disburse.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_disburse.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_disburse.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_disburse.Charge">
<summary>
费用名称
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_disburse.ChargeType">
<summary>
费用类别
</summary>
</member>
<member name="T:Performance.EntityModels.cof_guarantee">
<summary>
保底科室配置
......
......@@ -77,6 +77,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<cof_drugprop> cof_drugprop { get; set; }
/// <summary> 药占比费用列头名称 </summary>
public virtual DbSet<cof_drugtype> cof_drugtype { get; set; }
/// <summary> 药占比支出费用列头名称 </summary>
public virtual DbSet<cof_drugtype_disburse> cof_drugtype_disburse { get; set; }
/// <summary> 保底科室配置 </summary>
public virtual DbSet<cof_guarantee> cof_guarantee { get; set; }
/// <summary> </summary>
......
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace Performance.EntityModels
{
[Table("cof_drugtype_disburse")]
public class cof_drugtype_disburse
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> HospitalId { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> AllotID { get; set; }
/// <summary>
/// 费用名称
/// </summary>
public string Charge { get; set; }
/// <summary>
/// 费用类别
/// </summary>
public string ChargeType { get; set; }
}
}
using Performance.EntityModels;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Repository.Repository
{
public partial class PerforCofdrugtypeDisburseRepository : PerforRepository<cof_drugtype_disburse>
{
public PerforCofdrugtypeDisburseRepository(PerformanceDbContext context) : base(context)
{
}
}
}
......@@ -442,7 +442,8 @@ public void Generate(per_allot allot)
perforCofdirectorRepository.SupplementaryData(allot.ID);
// 验证科室核算单元、工号
AccoungtingVerify(allot.ID);
//补全支出费用类别
configService.SaveDrugtypeDisburse(allot.ID);
//logManageService.WriteMsg("正在生成报表数据", "正在生成报表数据", 1, allot.ID, "ReceiveMessage", true);
//var res = reportService.ImportData(allot);
//var flag = reportService.UpdateData(allot);
......
......@@ -27,12 +27,14 @@ public class ConfigService : IAutoInjection
private readonly PerforHospitalRepository perforHospitalRepository;
private readonly PerforPersheetRepository perforPersheetRepository;
private readonly PerforImheaderRepository perforImheaderRepository;
private readonly PerforImdataRepository imdataRepository;
private readonly PerforCofdepttypeRepository perforCofdepttypeRepository;
private readonly PerforPerapramountRepository perapramountRepository;
//private readonly PerforCofcmiRepository perforCofcmiRepository;
private readonly PerforCofHrpDeptRepository perforCofHrpDeptRepository;
private readonly PerforCofaliasRepository perforCofaliasRepository;
private readonly PerforCofaccountingRepository cofaccountingRepository;
private readonly PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository;
private readonly PersonService personService;
private readonly LogManageService logManageService;
private readonly ILogger<ConfigService> logger;
......@@ -46,12 +48,14 @@ public class ConfigService : IAutoInjection
PerforCofworkitemRepository workitemRepository,
PerforPersheetRepository perforPersheetRepository,
PerforImheaderRepository perforImheaderRepository,
PerforImdataRepository imdataRepository,
PerforCofdepttypeRepository perforCofdepttypeRepository,
PerforPerapramountRepository perapramountRepository,
//PerforCofcmiRepository perforCofcmiRepository,
PerforCofHrpDeptRepository perforCofHrpDeptRepository,
PerforCofaliasRepository perforCofaliasRepository,
PerforCofaccountingRepository cofaccountingRepository,
PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository,
PersonService personService,
LogManageService logManageService,
ILogger<ConfigService> logger)
......@@ -65,12 +69,14 @@ public class ConfigService : IAutoInjection
this.perforHospitalRepository = perforHospitalRepository;
this.perforPersheetRepository = perforPersheetRepository;
this.perforImheaderRepository = perforImheaderRepository;
this.imdataRepository = imdataRepository;
this.perforCofdepttypeRepository = perforCofdepttypeRepository;
this.perapramountRepository = perapramountRepository;
//this.perforCofcmiRepository = perforCofcmiRepository;
this.perforCofHrpDeptRepository = perforCofHrpDeptRepository;
this.perforCofaliasRepository = perforCofaliasRepository;
this.cofaccountingRepository = cofaccountingRepository;
this.drugtypeDisburseRepository = drugtypeDisburseRepository;
this.personService = personService;
this.logManageService = logManageService;
this.logger = logger;
......@@ -386,6 +392,91 @@ public bool DrugtypeDelete(DrugpropRequest request)
#endregion
#region cof_drugtype_disburse 药占比支出类别配置
/// <summary>
/// 获取cof_drugprop列表
/// </summary>
/// <returns></returns>
public List<cof_drugtype_disburse> GetDrugtypeDisburseList(int HospitalId, int allotId)
{
var list = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId && t.HospitalId == HospitalId);
return list;
}
/// <summary>
/// 添加数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public cof_drugtype_disburse DrugtypeDisburseInsert(DrugpropRequest request)
{
var entity = new cof_drugtype_disburse
{
HospitalId = request.HospitalId,
AllotID = request.AllotID,
Charge = request.Charge,
ChargeType = request.ChargeType
};
if (!drugtypeDisburseRepository.Add(entity))
throw new PerformanceException("保存失败");
return entity;
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public cof_drugtype_disburse DrugtypeDisburseUpdate(DrugpropRequest request)
{
var entity = drugtypeDisburseRepository.GetEntity(t => t.ID == request.ID);
if (null == entity)
throw new PerformanceException($"ID不存在 :{request.ID}");
entity.Charge = request.Charge;
entity.ChargeType = request.ChargeType;
if (!drugtypeDisburseRepository.Update(entity))
throw new PerformanceException("保存失败");
return entity;
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public bool DrugtypeDisburseDelete(DrugpropRequest request)
{
var entity = drugtypeDisburseRepository.GetEntity(t => t.ID == request.ID);
if (null == entity)
throw new PerformanceException($"ID不存在 :{request.ID}");
return drugtypeDisburseRepository.Remove(entity);
}
public void SaveDrugtypeDisburse(int allotId)
{
var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId);
var perSheet = perforPersheetRepository.GetEntities(t => t.AllotID == allotId && t.SheetType == (int)SheetType.Expend);
var TypeNames = imdataRepository.GetEntities(t => perSheet.Select(c => c.ID).Contains(t.SheetID.Value)).Select(t => t.TypeName).Distinct().ToList();
var except = Disburse.Select(t => t.Charge).Distinct().Intersect(TypeNames);
if (except != null || !except.Any())
{
foreach (var item in except)
{
TypeNames.Remove(item);
}
}
var drugDis = TypeNames?.Select(t => new cof_drugtype_disburse { HospitalId = Disburse.FirstOrDefault().HospitalId, AllotID = allotId, Charge = t, ChargeType = "" });
drugtypeDisburseRepository.AddRange(drugDis.ToArray());
}
#endregion
#region cof_workitem 工作量绩效
/// <summary>
......@@ -862,6 +953,18 @@ public void Copy(per_allot allot)
_drugtypeRepository.AddRange(newAgains.ToArray());
}
logger.LogInformation($"cofDrugtypeDisburse");
var cofDrugtypeDisburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allot.ID);
if (cofDrugtypeDisburse == null || cofDrugtypeDisburse.Count == 0)
{
var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId)
?? drugtypeDisburseRepository.GetEntities(t => t.AllotID == -1);
var newAgains = Disburse.Select(t => new cof_drugtype_disburse { HospitalId = allot.HospitalId, AllotID = allot.ID, Charge = t.Charge, ChargeType = t.ChargeType });
drugtypeDisburseRepository.AddRange(newAgains.ToArray());
}
logger.LogInformation($"cofDepttype");
var cofDepttype = perforCofdepttypeRepository.GetEntities(t => t.AllotID == allot.ID);
if (cofDepttype == null || cofDepttype.Count == 0)
......
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