Commit 0ec71472 by ruyun.zhang@suvalue.com

Merge branch '东方需求' into v20201230yubei

parents 5e592fc4 56261cca
...@@ -194,58 +194,58 @@ public ConfigController(ConfigService configService, AllotService allotService) ...@@ -194,58 +194,58 @@ public ConfigController(ConfigService configService, AllotService allotService)
#endregion #endregion
#region drugprop #region drugprop
/// <summary> ///// <summary>
/// 获取 药占比配置信息列表 ///// 获取 药占比配置信息列表
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("drugproplist")] //[Route("drugproplist")]
[HttpPost] //[HttpPost]
public ApiResponse<List<DrugpropResponse>> GetDrugList([CustomizeValidator(RuleSet = "Select"), FromBody] DrugpropRequest request) //public ApiResponse<List<DrugpropResponse>> GetDrugList([CustomizeValidator(RuleSet = "Select"), FromBody] DrugpropRequest request)
{ //{
var list = _configService.GetDrugList(request.AllotID); // var list = _configService.GetDrugList(request.AllotID);
return new ApiResponse<List<DrugpropResponse>>(ResponseType.OK, "ok", list); // return new ApiResponse<List<DrugpropResponse>>(ResponseType.OK, "ok", list);
} //}
/// <summary> ///// <summary>
/// 新增药占比配置 ///// 新增药占比配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("druginsert")] //[Route("druginsert")]
[HttpPost] //[HttpPost]
public ApiResponse<DrugpropResponse> DrugInsert([CustomizeValidator(RuleSet = "Insert"), FromBody] DrugpropRequest request) //public ApiResponse<DrugpropResponse> DrugInsert([CustomizeValidator(RuleSet = "Insert"), FromBody] DrugpropRequest request)
{ //{
var drugprop = _configService.DrugInsert(request); // var drugprop = _configService.DrugInsert(request);
return new ApiResponse<DrugpropResponse>(ResponseType.OK, drugprop); // return new ApiResponse<DrugpropResponse>(ResponseType.OK, drugprop);
} //}
/// <summary> ///// <summary>
/// 修改药占比配置 ///// 修改药占比配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("drugupdate")] //[Route("drugupdate")]
[HttpPost] //[HttpPost]
public ApiResponse<DrugpropResponse> Update([CustomizeValidator(RuleSet = "Update"), FromBody] DrugpropRequest request) //public ApiResponse<DrugpropResponse> Update([CustomizeValidator(RuleSet = "Update"), FromBody] DrugpropRequest request)
{ //{
var drugprop = _configService.DrugUpdate(request); // var drugprop = _configService.DrugUpdate(request);
return new ApiResponse<DrugpropResponse>(ResponseType.OK, drugprop); // return new ApiResponse<DrugpropResponse>(ResponseType.OK, drugprop);
} //}
/// <summary> ///// <summary>
/// 删除药占比配置 ///// 删除药占比配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("drugdelete")] //[Route("drugdelete")]
[HttpPost] //[HttpPost]
public ApiResponse Delete([CustomizeValidator(RuleSet = "Delete"), FromBody] DrugpropRequest request) //public ApiResponse Delete([CustomizeValidator(RuleSet = "Delete"), FromBody] DrugpropRequest request)
{ //{
if (!_configService.DrugDelete(request)) // if (!_configService.DrugDelete(request))
return new ApiResponse(ResponseType.Fail); // return new ApiResponse(ResponseType.Fail);
return new ApiResponse(ResponseType.OK); // return new ApiResponse(ResponseType.OK);
} //}
#endregion #endregion
#region drugtype #region drugtype
...@@ -469,58 +469,58 @@ public ApiResponse DepttypeDelete([CustomizeValidator(RuleSet = "Delete"), FromB ...@@ -469,58 +469,58 @@ public ApiResponse DepttypeDelete([CustomizeValidator(RuleSet = "Delete"), FromB
#endregion #endregion
#region cmi #region cmi
/// <summary> ///// <summary>
/// 获取 CMI配置信息 ///// 获取 CMI配置信息
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("cmilist")] //[Route("cmilist")]
[HttpPost] //[HttpPost]
public ApiResponse GetHosCMIList([FromBody] cof_cmi request) //public ApiResponse GetHosCMIList([FromBody] cof_cmi request)
{ //{
var list = _configService.GetCMIList(request.AllotId); // var list = _configService.GetCMIList(request.AllotId);
return new ApiResponse(ResponseType.OK, "ok", list); // return new ApiResponse(ResponseType.OK, "ok", list);
} //}
/// <summary> ///// <summary>
/// 新增 CMI配置 ///// 新增 CMI配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("cmiinsert")] //[Route("cmiinsert")]
[HttpPost] //[HttpPost]
public ApiResponse HosCMIInsert([FromBody] cof_cmi request) //public ApiResponse HosCMIInsert([FromBody] cof_cmi request)
{ //{
var drugprop = _configService.HosCMIInsert(request); // var drugprop = _configService.HosCMIInsert(request);
return new ApiResponse(ResponseType.OK, drugprop); // return new ApiResponse(ResponseType.OK, drugprop);
} //}
/// <summary> ///// <summary>
/// 修改 CMI配置 ///// 修改 CMI配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("cmiupdate")] //[Route("cmiupdate")]
[HttpPost] //[HttpPost]
public ApiResponse HosCMIUpdate([FromBody] cof_cmi request) //public ApiResponse HosCMIUpdate([FromBody] cof_cmi request)
{ //{
var drugprop = _configService.HosCMIUpdate(request); // var drugprop = _configService.HosCMIUpdate(request);
return new ApiResponse(ResponseType.OK, drugprop); // return new ApiResponse(ResponseType.OK, drugprop);
} //}
/// <summary> ///// <summary>
/// 删除 CMI配置 ///// 删除 CMI配置
/// </summary> ///// </summary>
/// <param name="request"></param> ///// <param name="request"></param>
/// <returns></returns> ///// <returns></returns>
[Route("cmidelete")] //[Route("cmidelete")]
[HttpPost] //[HttpPost]
public ApiResponse HosCMIDelete([FromBody] cof_cmi request) //public ApiResponse HosCMIDelete([FromBody] cof_cmi request)
{ //{
if (!_configService.HosCMIDelete(request)) // if (!_configService.HosCMIDelete(request))
return new ApiResponse(ResponseType.Fail); // return new ApiResponse(ResponseType.Fail);
return new ApiResponse(ResponseType.OK); // return new ApiResponse(ResponseType.OK);
} //}
#endregion #endregion
/// <summary> /// <summary>
......
...@@ -426,34 +426,6 @@ ...@@ -426,34 +426,6 @@
<param name="computeId"></param> <param name="computeId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ConfigController.GetDrugList(Performance.DtoModels.DrugpropRequest)">
<summary>
获取 药占比配置信息列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.DrugInsert(Performance.DtoModels.DrugpropRequest)">
<summary>
新增药占比配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.Update(Performance.DtoModels.DrugpropRequest)">
<summary>
修改药占比配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.Delete(Performance.DtoModels.DrugpropRequest)">
<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>
获取 药占比类型信息列表 获取 药占比类型信息列表
...@@ -566,34 +538,6 @@ ...@@ -566,34 +538,6 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ConfigController.GetHosCMIList(Performance.EntityModels.cof_cmi)">
<summary>
获取 CMI配置信息
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.HosCMIInsert(Performance.EntityModels.cof_cmi)">
<summary>
新增 CMI配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.HosCMIUpdate(Performance.EntityModels.cof_cmi)">
<summary>
修改 CMI配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.HosCMIDelete(Performance.EntityModels.cof_cmi)">
<summary>
删除 CMI配置
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)"> <member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)">
<summary> <summary>
获取工作量绩效列头 获取工作量绩效列头
......
...@@ -396,11 +396,6 @@ ...@@ -396,11 +396,6 @@
门诊药占比分值 门诊药占比分值
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.CofDrugProp.Prop">
<summary>
占比
</summary>
</member>
<member name="P:Performance.DtoModels.CofDrugProp.Factor"> <member name="P:Performance.DtoModels.CofDrugProp.Factor">
<summary> <summary>
分值 分值
...@@ -804,6 +799,15 @@ ...@@ -804,6 +799,15 @@
<member name="F:Performance.DtoModels.SheetType.PersonPostCoefficient"> <member name="F:Performance.DtoModels.SheetType.PersonPostCoefficient">
<summary> 个人岗位系数 </summary> <summary> 个人岗位系数 </summary>
</member> </member>
<member name="F:Performance.DtoModels.SheetType.WorkloadMedicineProp">
<summary> 药占比系数 </summary>
</member>
<member name="F:Performance.DtoModels.SheetType.WorkloadCMI">
<summary> CMI系数 </summary>
</member>
<member name="F:Performance.DtoModels.SheetType.WorkloadIncline">
<summary> 工作量倾斜系数 </summary>
</member>
<member name="T:Performance.DtoModels.AccountUnitType"> <member name="T:Performance.DtoModels.AccountUnitType">
<summary> <summary>
核算单元类型 核算单元类型
...@@ -1042,11 +1046,6 @@ ...@@ -1042,11 +1046,6 @@
其他管理绩效 其他管理绩效
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.PerDataAccountBaisc.MedicineFactor">
<summary>
药占比系数
</summary>
</member>
<member name="P:Performance.DtoModels.PerDataAccountBaisc.Income"> <member name="P:Performance.DtoModels.PerDataAccountBaisc.Income">
<summary> <summary>
科室业绩 科室业绩
...@@ -2787,6 +2786,9 @@ ...@@ -2787,6 +2786,9 @@
<member name="P:Performance.DtoModels.DetailModule.CMIFactor"> <member name="P:Performance.DtoModels.DetailModule.CMIFactor">
<summary> CMI系数 </summary> <summary> CMI系数 </summary>
</member> </member>
<member name="P:Performance.DtoModels.DetailModule.InclineFactor">
<summary> 工作量倾斜系数 </summary>
</member>
<member name="P:Performance.DtoModels.DetailModule.ItemValue"> <member name="P:Performance.DtoModels.DetailModule.ItemValue">
<summary> 结算值 </summary> <summary> 结算值 </summary>
</member> </member>
......
...@@ -67,18 +67,12 @@ ...@@ -67,18 +67,12 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_check"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_check">
<summary> 上传excel文件校验配置 </summary> <summary> 上传excel文件校验配置 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_cmi">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_depttype"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_depttype">
<summary> 科室类型 </summary> <summary> 科室类型 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_director"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_director">
<summary> 规模绩效、效率绩效计算系数配置 </summary> <summary> 规模绩效、效率绩效计算系数配置 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugprop">
<summary> 工作量门诊药占比系数 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype">
<summary> 药占比费用列头名称 </summary> <summary> 药占比费用列头名称 </summary>
</member> </member>
...@@ -1271,36 +1265,6 @@ ...@@ -1271,36 +1265,6 @@
单元格列头名称 单元格列头名称
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.cof_cmi">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_cmi.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_cmi.AllotId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_cmi.UnitType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_cmi.AccountingUnit">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_cmi.Value">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.cof_depttype"> <member name="T:Performance.EntityModels.cof_depttype">
<summary> <summary>
科室类型 科室类型
...@@ -1361,36 +1325,6 @@ ...@@ -1361,36 +1325,6 @@
绩效系数 绩效系数
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.cof_drugprop">
<summary>
工作量门诊药占比系数
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugprop.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugprop.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugprop.MaxRange">
<summary>
药占比最大范围(小于)
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugprop.MinRange">
<summary>
药占比最小范围(大于等于)
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugprop.Value">
<summary>
药占比对应系数
</summary>
</member>
<member name="T:Performance.EntityModels.cof_drugtype"> <member name="T:Performance.EntityModels.cof_drugtype">
<summary> <summary>
药占比费用列头名称 药占比费用列头名称
......
...@@ -9,11 +9,13 @@ namespace Performance.DtoModels ...@@ -9,11 +9,13 @@ namespace Performance.DtoModels
/// </summary> /// </summary>
public class CofDrugProp public class CofDrugProp
{ {
public string AccoutingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> public string UnitType { get; set; }
/// 占比 //public string AccoutingUnit { get; set; }
/// </summary> ///// <summary>
public decimal Prop { get; set; } ///// 占比
///// </summary>
//public decimal Prop { get; set; }
/// <summary> /// <summary>
/// 分值 /// 分值
/// </summary> /// </summary>
......
...@@ -148,6 +148,17 @@ public enum SheetType ...@@ -148,6 +148,17 @@ public enum SheetType
/// <summary> 个人岗位系数 </summary> /// <summary> 个人岗位系数 </summary>
[Description("个人岗位系数")] [Description("个人岗位系数")]
PersonPostCoefficient = 34, PersonPostCoefficient = 34,
/// <summary> 药占比系数 </summary>
[Description("药占比系数")]
WorkloadMedicineProp = 35,
/// <summary> CMI系数 </summary>
[Description("CMI系数")]
WorkloadCMI = 36,
/// <summary> 工作量倾斜系数 </summary>
[Description("工作量倾斜系数")]
WorkloadIncline = 37,
} }
/// <summary> /// <summary>
......
...@@ -72,6 +72,6 @@ public class PerData : IPerData ...@@ -72,6 +72,6 @@ public class PerData : IPerData
public int PointCell { get; set; } public int PointCell { get; set; }
public string SignID { get; set; } public string SignID { get; set; }
public decimal? MedicineFactor { get; set; } //public decimal? MedicineFactor { get; set; }
} }
} }
...@@ -182,10 +182,10 @@ public class PerDataAccountBaisc : IPerData ...@@ -182,10 +182,10 @@ public class PerDataAccountBaisc : IPerData
#region 由计算得出 #region 由计算得出
/// <summary> ///// <summary>
/// 药占比系数 ///// 药占比系数
/// </summary> ///// </summary>
public Nullable<decimal> MedicineFactor { get; set; } //public Nullable<decimal> MedicineFactor { get; set; }
///// <summary> ///// <summary>
///// 保底绩效金额 ///// 保底绩效金额
......
...@@ -85,6 +85,9 @@ public class DetailModule ...@@ -85,6 +85,9 @@ public class DetailModule
/// <summary> CMI系数 </summary> /// <summary> CMI系数 </summary>
public decimal? CMIFactor { get; set; } public decimal? CMIFactor { get; set; }
/// <summary> 工作量倾斜系数 </summary>
public decimal? InclineFactor { get; set; }
/// <summary> 结算值 </summary> /// <summary> 结算值 </summary>
public decimal? ItemValue { get; set; } public decimal? ItemValue { get; set; }
} }
......
...@@ -74,8 +74,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -74,8 +74,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> 上传excel文件校验配置 </summary> /// <summary> 上传excel文件校验配置 </summary>
public virtual DbSet<cof_check> cof_check { get; set; } public virtual DbSet<cof_check> cof_check { get; set; }
/// <summary> </summary> ///// <summary> </summary>
public virtual DbSet<cof_cmi> cof_cmi { get; set; } //public virtual DbSet<cof_cmi> cof_cmi { get; set; }
/// <summary> 科室类型 </summary> /// <summary> 科室类型 </summary>
public virtual DbSet<cof_depttype> cof_depttype { get; set; } public virtual DbSet<cof_depttype> cof_depttype { get; set; }
...@@ -83,8 +83,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -83,8 +83,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> 规模绩效、效率绩效计算系数配置 </summary> /// <summary> 规模绩效、效率绩效计算系数配置 </summary>
public virtual DbSet<cof_director> cof_director { get; set; } public virtual DbSet<cof_director> cof_director { get; set; }
/// <summary> 工作量门诊药占比系数 </summary> ///// <summary> 工作量门诊药占比系数 </summary>
public virtual DbSet<cof_drugprop> cof_drugprop { get; set; } //public virtual DbSet<cof_drugprop> cof_drugprop { get; set; }
/// <summary> 药占比费用列头名称 </summary> /// <summary> 药占比费用列头名称 </summary>
public virtual DbSet<cof_drugtype> cof_drugtype { get; set; } public virtual DbSet<cof_drugtype> cof_drugtype { get; set; }
......
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" cof_cmi.cs"> //// <copyright file=" cof_cmi.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("cof_cmi")] // [Table("cof_cmi")]
public class cof_cmi // public class cof_cmi
{ // {
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
[Key] // [Key]
public int Id { get; set; } // public int Id { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public int AllotId { get; set; } // public int AllotId { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public int UnitType { get; set; } // public int UnitType { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public string AccountingUnit { get; set; } // public string AccountingUnit { get; set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public Nullable<decimal> Value { get; set; } // public Nullable<decimal> Value { get; set; }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" cof_drugprop.cs"> //// <copyright file=" cof_drugprop.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("cof_drugprop")] // [Table("cof_drugprop")]
public class cof_drugprop // public class cof_drugprop
{ // {
/// <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<decimal> MaxRange { get; set; } // public Nullable<decimal> MaxRange { get; set; }
/// <summary> // /// <summary>
/// 药占比最小范围(大于等于) // /// 药占比最小范围(大于等于)
/// </summary> // /// </summary>
public Nullable<decimal> MinRange { get; set; } // public Nullable<decimal> MinRange { get; set; }
/// <summary> // /// <summary>
/// 药占比对应系数 // /// 药占比对应系数
/// </summary> // /// </summary>
public Nullable<decimal> Value { get; set; } // public Nullable<decimal> Value { get; set; }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" cof_cmi.cs"> //// <copyright file=" cof_cmi.cs">
// * FileName: cof_cmi.cs //// * FileName: cof_cmi.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using System; //using System;
using Performance.EntityModels; //using Performance.EntityModels;
namespace Performance.Repository //namespace Performance.Repository
{ //{
/// <summary> // /// <summary>
/// cof_cmi Repository // /// cof_cmi Repository
/// </summary> // /// </summary>
public partial class PerforCofcmiRepository : PerforRepository<cof_cmi> // public partial class PerforCofcmiRepository : PerforRepository<cof_cmi>
{ // {
public PerforCofcmiRepository(PerformanceDbContext context) : base(context) // public PerforCofcmiRepository(PerformanceDbContext context) : base(context)
{ // {
} // }
} // }
} //}
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
// <copyright file=" cof_drugprop.cs"> //// <copyright file=" cof_drugprop.cs">
// * FileName: cof_drugprop.cs //// * FileName: cof_drugprop.cs
// </copyright> //// </copyright>
//----------------------------------------------------------------------- ////-----------------------------------------------------------------------
using System; //using System;
using Performance.EntityModels; //using Performance.EntityModels;
namespace Performance.Repository //namespace Performance.Repository
{ //{
/// <summary> // /// <summary>
/// cof_drugprop Repository // /// cof_drugprop Repository
/// </summary> // /// </summary>
public partial class PerforCofdrugpropRepository : PerforRepository<cof_drugprop> // public partial class PerforCofdrugpropRepository : PerforRepository<cof_drugprop>
{ // {
public PerforCofdrugpropRepository(PerformanceDbContext context) : base(context) // public PerforCofdrugpropRepository(PerformanceDbContext context) : base(context)
{ // {
} // }
} // }
} //}
using AutoMapper; using AutoMapper;
using NPOI.SS.Formula.Functions;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure; using Performance.Infrastructure;
...@@ -29,7 +28,6 @@ public class ComputeService : IAutoInjection ...@@ -29,7 +28,6 @@ public class ComputeService : IAutoInjection
private readonly PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforHospitalRepository hospitalRepository; private readonly PerforHospitalRepository hospitalRepository;
private readonly PerforPerapramountRepository perapramountRepository; private readonly PerforPerapramountRepository perapramountRepository;
private readonly PerforCofcmiRepository cofcmiRepository;
private readonly PerforPeremployeeRepository perforPeremployeeRepository; private readonly PerforPeremployeeRepository perforPeremployeeRepository;
private readonly PerforCofworkitemRepository cofworkitemRepository; private readonly PerforCofworkitemRepository cofworkitemRepository;
...@@ -47,7 +45,6 @@ public class ComputeService : IAutoInjection ...@@ -47,7 +45,6 @@ public class ComputeService : IAutoInjection
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforHospitalRepository hospitalRepository, PerforHospitalRepository hospitalRepository,
PerforPerapramountRepository perapramountRepository, PerforPerapramountRepository perapramountRepository,
PerforCofcmiRepository cofcmiRepository,
PerforPeremployeeRepository perforPeremployeeRepository, PerforPeremployeeRepository perforPeremployeeRepository,
PerforCofworkitemRepository cofworkitemRepository) PerforCofworkitemRepository cofworkitemRepository)
{ {
...@@ -65,7 +62,6 @@ public class ComputeService : IAutoInjection ...@@ -65,7 +62,6 @@ public class ComputeService : IAutoInjection
this.perforPerallotRepository = perforPerallotRepository; this.perforPerallotRepository = perforPerallotRepository;
this.hospitalRepository = hospitalRepository; this.hospitalRepository = hospitalRepository;
this.perapramountRepository = perapramountRepository; this.perapramountRepository = perapramountRepository;
this.cofcmiRepository = cofcmiRepository;
this.perforPeremployeeRepository = perforPeremployeeRepository; this.perforPeremployeeRepository = perforPeremployeeRepository;
this.cofworkitemRepository = cofworkitemRepository; this.cofworkitemRepository = cofworkitemRepository;
} }
...@@ -812,7 +808,7 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId) ...@@ -812,7 +808,7 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId)
{ {
(int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, (int)SheetType.Workload, (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, (int)SheetType.Workload,
(int)SheetType.AccountExtra,(int)SheetType.AccountDrugAssess, (int)SheetType.AccountMaterialsAssess, (int)SheetType.AccountScoreAverage, (int)SheetType.AccountExtra,(int)SheetType.AccountDrugAssess, (int)SheetType.AccountMaterialsAssess, (int)SheetType.AccountScoreAverage,
(int)SheetType.AccountAdjustLaterOtherFee, (int)SheetType.BudgetRatio, (int)SheetType.AssessBeforeOtherFee (int)SheetType.AccountAdjustLaterOtherFee, (int)SheetType.BudgetRatio, (int)SheetType.AssessBeforeOtherFee,
}; };
int groupbasis = 1; string single = ""; int groupbasis = 1; string single = "";
...@@ -840,15 +836,20 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId) ...@@ -840,15 +836,20 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId)
continue; continue;
var workitems = cofworkitemRepository.GetEntities(t => t.AllotID == account.AllotID); var workitems = cofworkitemRepository.GetEntities(t => t.AllotID == account.AllotID);
var allotCmi = cofcmiRepository.GetEntity(t => t.AllotId == account.AllotID && t.UnitType == account.UnitType && t.AccountingUnit == account.AccountingUnit); //var allotCmi = cofcmiRepository.GetEntity(t => t.AllotId == account.AllotID && t.UnitType == account.UnitType && t.AccountingUnit == account.AccountingUnit);
var medicineFactor = GetFactors(persheet, basicData, type, SheetType.WorkloadMedicineProp);
var cmiFactor = GetFactors(persheet, basicData, type, SheetType.WorkloadCMI);
var inclineFactor = GetFactors(persheet, basicData, type, SheetType.WorkloadIncline);
foreach (var dto in items) foreach (var dto in items)
{ {
if (workitems != null && workitems.Any(a => a.Type == 1 && a.Item == dto.ItemName)) if (workitems != null && workitems.Any(a => a.Type == 1 && a.Item == dto.ItemName) && medicineFactor != null)
dto.MediFactor = account.MedicineFactor; dto.MediFactor = medicineFactor;
if (workitems != null && workitems.Any(a => a.Type == 2 && a.Item == dto.ItemName) && allotCmi != null) if (workitems != null && workitems.Any(a => a.Type == 2 && a.Item == dto.ItemName) && cmiFactor != null)
dto.CMIFactor = allotCmi.Value; dto.CMIFactor = cmiFactor;
dto.ItemValue = dto.ItemValue * (dto.MediFactor ?? 1) * (dto.CMIFactor ?? 1); if (workitems != null && workitems.Any(a => a.Type == 3 && a.Item == dto.ItemName) && inclineFactor != null)
dto.InclineFactor = inclineFactor;
dto.ItemValue = dto.ItemValue * (dto.MediFactor ?? 1) * (dto.CMIFactor ?? 1) * (dto.InclineFactor ?? 1);
} }
} }
...@@ -867,6 +868,12 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId) ...@@ -867,6 +868,12 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId)
//return deptDetails; //return deptDetails;
} }
private decimal? GetFactors(List<per_sheet> persheet, List<im_data> basicData, UnitType type, SheetType sheetType)
{
var sheet = persheet.FirstOrDefault(w => w.SheetType == (int)sheetType);
return basicData.FirstOrDefault(t => t.SheetID == sheet.ID && t.UnitType == (int)type && t.IsTotal == 1)?.CellValue;
}
private (int sheettype, decimal amount) ClinicDepartmentDetail(List<per_sheet> persheet, res_account account, List<im_data> basicData, per_sheet sheet, UnitType type, string sheetName) private (int sheettype, decimal amount) ClinicDepartmentDetail(List<per_sheet> persheet, res_account account, List<im_data> basicData, per_sheet sheet, UnitType type, string sheetName)
{ {
var sheettype = 1; var sheettype = 1;
...@@ -928,7 +935,7 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId) ...@@ -928,7 +935,7 @@ public DeptDataDetails<DetailModuleExtend> DeptDetail(int accountId)
SheetType[] pairs = new SheetType[] SheetType[] pairs = new SheetType[]
{ {
SheetType.AccountExtra, SheetType.AccountDrugAssess, SheetType.AccountMaterialsAssess, SheetType.AccountScoreAverage, SheetType.AccountAdjustLaterOtherFee, SheetType.AccountExtra, SheetType.AccountDrugAssess, SheetType.AccountMaterialsAssess, SheetType.AccountScoreAverage, SheetType.AccountAdjustLaterOtherFee,
SheetType.AssessBeforeOtherFee, SheetType.BudgetRatio SheetType.AssessBeforeOtherFee, SheetType.BudgetRatio,
}; };
if (pairs.Contains((SheetType)sheet.SheetType)) if (pairs.Contains((SheetType)sheet.SheetType))
{ {
...@@ -1047,6 +1054,7 @@ private DeptDataDetails<DetailModuleExtend> MergeDetails(DeptDataDetails details ...@@ -1047,6 +1054,7 @@ private DeptDataDetails<DetailModuleExtend> MergeDetails(DeptDataDetails details
Factor = t.Factor, Factor = t.Factor,
MediFactor = t.MediFactor, MediFactor = t.MediFactor,
CMIFactor = t.CMIFactor, CMIFactor = t.CMIFactor,
InclineFactor = t.InclineFactor,
}).ToList(); }).ToList();
} }
} }
......
...@@ -101,6 +101,16 @@ public static IPerSheetDataRead GetDataRead(SheetType sheetType, bool isnew = fa ...@@ -101,6 +101,16 @@ public static IPerSheetDataRead GetDataRead(SheetType sheetType, bool isnew = fa
case SheetType.PersonPostCoefficient: case SheetType.PersonPostCoefficient:
dataread = new PerSheetDataReadPersonExtra(); // 个人岗位系数 dataread = new PerSheetDataReadPersonExtra(); // 个人岗位系数
break; break;
case SheetType.WorkloadMedicineProp:
dataread = new PerSheetDataReadAccountExtra(); // 药占比系数
break;
case SheetType.WorkloadCMI:
dataread = new PerSheetDataReadAccountExtra(); // CMI系数
break;
case SheetType.WorkloadIncline:
dataread = new PerSheetDataReadAccountExtra(); // 工作量倾斜系数
break;
} }
return dataread; return dataread;
} }
......
...@@ -14,14 +14,14 @@ namespace Performance.Services ...@@ -14,14 +14,14 @@ namespace Performance.Services
public class PerSheetService : IAutoInjection public class PerSheetService : IAutoInjection
{ {
private PerHeaderService _perHeader; private PerHeaderService _perHeader;
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;
_perforCofdrugpropRepository = perforCofdrugpropRepository; //_perforCofdrugpropRepository = perforCofdrugpropRepository;
_perforCofdrugtypeRepository = perforCofdrugtypeRepository; _perforCofdrugtypeRepository = perforCofdrugtypeRepository;
} }
/// <summary> /// <summary>
...@@ -113,6 +113,14 @@ public SheetType GetSheetType(string sheetName) ...@@ -113,6 +113,14 @@ public SheetType GetSheetType(string sheetName)
return SheetType.PersonAdjustLaterOtherManagePerforFee; return SheetType.PersonAdjustLaterOtherManagePerforFee;
else if (sheetName.StartsWith("6.11")) // 个人岗位系数 else if (sheetName.StartsWith("6.11")) // 个人岗位系数
return SheetType.PersonPostCoefficient; return SheetType.PersonPostCoefficient;
else if (sheetName.StartsWith("6.12")) // 药占比系数
return SheetType.WorkloadMedicineProp;
else if (sheetName.StartsWith("6.13")) // CMI系数
return SheetType.WorkloadCMI;
else if (sheetName.StartsWith("6.14")) // 工作量倾斜系数
return SheetType.WorkloadIncline;
else if (sheetName.StartsWith("6.1")) else if (sheetName.StartsWith("6.1"))
return SheetType.AccountScoreAverage; return SheetType.AccountScoreAverage;
else if (sheetName.StartsWith("6.2")) else if (sheetName.StartsWith("6.2"))
......
...@@ -84,7 +84,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -84,7 +84,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
var value = group.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue); var value = group.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue);
if (header.CellValue == "门急诊工作量") if (header.CellValue == "门急诊工作量")
{ {
var factor = confs.FirstOrDefault(t => t.AccoutingUnit == group.Key)?.Factor ?? 0; var factor = confs.FirstOrDefault(t => t.AccountingUnit == group.Key)?.Factor ?? 0;
value = value * factor; value = value * factor;
} }
...@@ -99,7 +99,8 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -99,7 +99,8 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
/// </summary> /// </summary>
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <returns></returns> /// <returns></returns>
public (PerSheet Sheet, List<PerData> PerData) TwiceCompute(PerSheet sheet, sys_hospital hospital, List<CofDrugProp> confs = null, List<cof_cmi> cmis = null, List<cof_workitem> workitems = null, bool isDoctor = false) public (PerSheet Sheet, List<PerData> PerData) TwiceCompute(PerSheet sheet, sys_hospital hospital,
IEnumerable<cof_workitem> workitems, IEnumerable<CofDrugProp> medicineProps, IEnumerable<CofDrugProp> cmis, IEnumerable<CofDrugProp> inclines, bool isDoctor = false)
{ {
//获取最大列坐标位置 //获取最大列坐标位置
int thiscell = sheet.PerHeader.OrderByDescending(t => t.PointCell).FirstOrDefault().PointCell + 1; int thiscell = sheet.PerHeader.OrderByDescending(t => t.PointCell).FirstOrDefault().PointCell + 1;
...@@ -115,7 +116,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -115,7 +116,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
{ {
var ds = group.Select(t => var ds = group.Select(t =>
{ {
var (cellvalue, factor) = ComputValue(group, hospital, confs, cmis, workitems, isDoctor); var cellvalue = ComputValue(group, hospital, workitems, medicineProps, cmis, inclines, isDoctor);
var dto = new PerData var dto = new PerData
{ {
...@@ -123,7 +124,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -123,7 +124,7 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
AccountingUnit = group.Key.AccountingUnit, AccountingUnit = group.Key.AccountingUnit,
//CellValue = group.Sum(s => s.CellValue), //CellValue = group.Sum(s => s.CellValue),
CellValue = cellvalue, CellValue = cellvalue,
MedicineFactor = factor, //MedicineFactor = factor,
TypeName = group.Key.UnitType, TypeName = group.Key.UnitType,
RowNumber = group.FirstOrDefault()?.RowNumber ?? 0, RowNumber = group.FirstOrDefault()?.RowNumber ?? 0,
IsTotal = 1, IsTotal = 1,
...@@ -140,45 +141,32 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null) ...@@ -140,45 +141,32 @@ public PerSheet OnceCompute(PerSheet sheet, List<CofDrugProp> confs = null)
return (sheet, perDataList); return (sheet, perDataList);
} }
private (decimal?, decimal?) ComputValue(IGrouping<object, PerData> group, sys_hospital hospital, List<CofDrugProp> confs = null, List<cof_cmi> cmis = null, List<cof_workitem> workitems = null, bool isDoctor = false) private decimal? ComputValue(IGrouping<object, PerData> group, sys_hospital hospital,
IEnumerable<cof_workitem> workitems, IEnumerable<CofDrugProp> medicineProps, IEnumerable<CofDrugProp> cmis, IEnumerable<CofDrugProp> inclines, bool isDoctor = false)
{ {
var unittype = isDoctor ? new List<int> { (int)UnitType.医生组, (int)UnitType.医技组, (int)UnitType.专家组, (int)UnitType.其他医生组, (int)UnitType.其他医技组, (int)UnitType.特殊核算组 } : new List<int> { (int)UnitType.护理组, (int)UnitType.其他护理组 }; var unittype = isDoctor
? new List<string> { UnitType.医生组.ToString(), UnitType.医技组.ToString(), UnitType.专家组.ToString(), UnitType.其他医生组.ToString(), UnitType.其他医技组.ToString(), UnitType.特殊核算组.ToString() }
: new List<string> { UnitType.护理组.ToString(), UnitType.其他护理组.ToString() };
if ((medicineProps == null && cmis == null && inclines == null) || workitems == null)
return group.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue);
if ((confs == null && cmis == null) || workitems == null) decimal medicinefactor = medicineProps?.FirstOrDefault(t => t.AccountingUnit == group.First().AccountingUnit && unittype.Contains(t.UnitType))?.Factor ?? 1;
return (group.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue), null); decimal cmifactor = cmis?.FirstOrDefault(t => t.AccountingUnit == group.First().AccountingUnit && unittype.Contains(t.UnitType))?.Factor ?? 1;
else decimal inclinefactor = inclines?.FirstOrDefault(t => t.AccountingUnit == group.First().AccountingUnit && unittype.Contains(t.UnitType))?.Factor ?? 1;
{
var factor = hospital.IsOpenDrugprop == 2 ? 1 : (confs?.FirstOrDefault(t => t.AccoutingUnit == group.First().AccountingUnit)?.Factor ?? 1);
var cmifactor = hospital.IsOpenCMIPercent == 2 ? 1 : (cmis?.FirstOrDefault(t => t.AccountingUnit == group.First().AccountingUnit && unittype.Contains(t.UnitType))?.Value ?? 1);
//需要乘系数的项
var fgroup = group.Where(t => workitems.Select(s => s.Item).Contains(t.TypeName));
//需要乘系数的项
var ngroup = group.Where(t => !workitems.Select(s => s.Item).Contains(t.TypeName));
//var value = fgroup.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue) * factor;
//value += ngroup.Sum(s => s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue);
var value = fgroup.Sum(s =>
{
var cellvalue = s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue;
if (workitems.Any(w => w.Type == 2) && workitems.Where(w => w.Type == 2).Select(q => q.Item).Contains(s.TypeName))
{
cellvalue = cmifactor * cellvalue;
}
return cellvalue;
});
value += ngroup.Sum(s => var value = group.Sum(s =>
{ {
var cellvalue = s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue; var cellvalue = s.IsFactor ? s.CellValue * s.FactorValue : s.CellValue;
if (workitems.Any(w => w.Type == 1) && workitems.Where(w => w.Type == 1).Select(q => q.Item).Contains(s.TypeName)) if (workitems.Any(w => w.Type == 3 && w.Item == s.TypeName))
{ cellvalue = cellvalue * inclinefactor;
cellvalue = factor * cellvalue; if (workitems.Any(w => w.Type == 2 && w.Item == s.TypeName))
} cellvalue = cellvalue * cmifactor;
return cellvalue; if (workitems.Any(w => w.Type == 1 && w.Item == s.TypeName))
}); cellvalue = cellvalue * medicinefactor;
return (value, factor); return cellvalue;
} });
return value;
} }
#endregion #endregion
} }
......
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