Commit e345c2de by lcx

Merge branch 'feature/费用类型系数' into release/v20210709功能分支合并

# Conflicts:
#	performance/Performance.Api/Controllers/ConfigController.cs
#	performance/Performance.Api/wwwroot/Performance.EntityModels.xml
#	performance/Performance.EntityModels/Context/PerformanceDbContext.cs
#	performance/Performance.Services/ConfigService.cs
parents a2b3955f 8138b430
using FluentValidation.AspNetCore; using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;
using Newtonsoft.Json.Linq;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure; using Performance.Infrastructure;
...@@ -784,5 +788,30 @@ public ApiResponse SaveSecondaryAlias([FromBody] SaveCollectData request) ...@@ -784,5 +788,30 @@ public ApiResponse SaveSecondaryAlias([FromBody] SaveCollectData request)
} }
#endregion #endregion
#region 费用类型系数
[HttpPost("drugtype/factor")]
public ApiResponse GetDrugtypeFactor([FromBody] AllotDeptRequest request)
{
var data = _configService.GetDrugtypeFactor(request);
return new ApiResponse(ResponseType.OK, data);
}
[HttpPost("drugtype/factor/config")]
public ApiResponse GetDrugtypeFactorConfig([FromBody] AllotDeptRequest request)
{
var data = _configService.GetDrugtypeFactorConfig(request.HospitalId, request.AllotId);
return new ApiResponse(ResponseType.OK, data);
}
[HttpPost("drugtype/factor/save")]
public ApiResponse SaveDrugtypeFactor([FromBody] DrugtypeFactorRequest request)
{
_configService.SaveDrugtypeFactor(request);
return new ApiResponse(ResponseType.OK, "保存成功!");
}
#endregion
} }
} }
\ No newline at end of file
...@@ -696,6 +696,7 @@ ...@@ -696,6 +696,7 @@
核算单元及组别批量添加 核算单元及组别批量添加
</summary> </summary>
<param name="allotId"></param> <param name="allotId"></param>
<param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)"> <member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)">
...@@ -717,7 +718,16 @@ ...@@ -717,7 +718,16 @@
<summary> <summary>
保存HRP人员科室 保存HRP人员科室
</summary> </summary>
<param name=""></param> <param name="hospitalId"></param>
<param name="allotId"></param>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.StandardHrpDept(System.Int32)">
<summary>
校正HRP人员的科室信息
</summary>
<param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ConfigController.GetSecondaryAlias"> <member name="M:Performance.Api.Controllers.ConfigController.GetSecondaryAlias">
......
...@@ -3702,6 +3702,61 @@ ...@@ -3702,6 +3702,61 @@
签字 签字
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.TotalPerformance">
<summary>
可分配绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.TotalDistPerformance">
<summary>
科室总绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.TheTotalAllocationOfPerformanceResults">
<summary>
科室单项奖励
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.DirectorBasisPerformance">
<summary>
主任基础绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.NightShiftWorkPerforTotal">
<summary>
夜班绩效总和
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.HosOtherPerformance">
<summary>
医院其他绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.SeniorityTitlesAccountedPerformance">
<summary>
年资职称绩效占比
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.SeniorityTitlesPerformance">
<summary>
年资职称绩效
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.Workload_Ratio_Default">
<summary>
工作量绩效占比
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.Workload_Amount_Default">
<summary>
工作量分配绩效金额
</summary>
</member>
<member name="P:Performance.DtoModels.SecPrintHeaderResponse.WorkloadTypes">
<summary>
其他工作量占比
</summary>
</member>
<member name="P:Performance.DtoModels.SheetExportResponse.SheetID"> <member name="P:Performance.DtoModels.SheetExportResponse.SheetID">
<summary> <summary>
sheetID sheetID
......
...@@ -103,6 +103,9 @@ ...@@ -103,6 +103,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_disburse"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_disburse">
<summary> 药占比支出费用列头名称 </summary> <summary> 药占比支出费用列头名称 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_factor">
<summary> 药占比费用列头名称系数 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_guarantee"> <member name="P:Performance.EntityModels.PerformanceDbContext.cof_guarantee">
<summary> 保底科室配置 </summary> <summary> 保底科室配置 </summary>
</member> </member>
...@@ -1887,6 +1890,51 @@ ...@@ -1887,6 +1890,51 @@
费用类别 费用类别
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.cof_drugtype_factor">
<summary>
药占比费用列头名称
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.Charge">
<summary>
费用名称
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.ExModuleId">
<summary>
收入类型
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.YSZ">
<summary>
医生组
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.HLZ">
<summary>
护理组
</summary>
</member>
<member name="P:Performance.EntityModels.cof_drugtype_factor.YJZ">
<summary>
医技组
</summary>
</member>
<member name="T:Performance.EntityModels.cof_guarantee"> <member name="T:Performance.EntityModels.cof_guarantee">
<summary> <summary>
保底科室配置 保底科室配置
...@@ -5107,24 +5155,29 @@ ...@@ -5107,24 +5155,29 @@
备注 备注
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_employee.CreateTime"> <member name="P:Performance.EntityModels.per_employee.IsVerify">
<summary> <summary>
0 未通过验证 1 通过验证
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_employee.CreateUser"> <member name="P:Performance.EntityModels.per_employee.VerifyMessage">
<summary> <summary>
验证失败描述
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_employee.IsVerify"> <member name="P:Performance.EntityModels.per_employee.IsHrpEmployee">
<summary> <summary>
0 未通过验证 1 通过验证 是否是hrp人员 0 不是 1 是
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.per_employee.VerifyMessage"> <member name="P:Performance.EntityModels.per_employee.CreateTime">
<summary> <summary>
验证失败描述
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateUser">
<summary>
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.per_first"> <member name="T:Performance.EntityModels.per_first">
...@@ -7407,6 +7460,61 @@ ...@@ -7407,6 +7460,61 @@
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.view_dic_category_factor">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.HospitalId">
<summary>
医院id
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.AllotID">
<summary>
绩效id
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.Charge">
<summary>
费用名称
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.ChargeType">
<summary>
费用类别
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.ExModuleId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.ModuleName">
<summary>
模块名称
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.YSZ">
<summary>
医生组系数
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.HLZ">
<summary>
护理组系数
</summary>
</member>
<member name="P:Performance.EntityModels.view_dic_category_factor.YJZ">
<summary>
医技组系数
</summary>
</member>
<member name="P:Performance.EntityModels.HisData.HisDepartment"> <member name="P:Performance.EntityModels.HisData.HisDepartment">
<summary> <summary>
His科室 His科室
......
...@@ -13,13 +13,13 @@ public HandsonTableBase() ...@@ -13,13 +13,13 @@ public HandsonTableBase()
ColHeaders = new List<string>(); ColHeaders = new List<string>();
Columns = new List<HandsonColumn>(); Columns = new List<HandsonColumn>();
Data = new List<Dictionary<string, object>>(); Data = new List<Dictionary<string, object>>();
NestedHeadersArray = new List<List<string>>(); NestedHeadersArray = new object[] { };
} }
public List<string> ColHeaders { get; set; } public List<string> ColHeaders { get; set; }
public List<Dictionary<string, object>> Data { get; set; } public List<Dictionary<string, object>> Data { get; set; }
public List<HandsonColumn> Columns { get; set; } public List<HandsonColumn> Columns { get; set; }
public List<List<string>> NestedHeadersArray { get; set; } public object[] NestedHeadersArray { get; set; }
} }
public class HandsonTable : HandsonTableBase public class HandsonTable : HandsonTableBase
...@@ -185,4 +185,17 @@ public HandsonCellData(string name, object value) ...@@ -185,4 +185,17 @@ public HandsonCellData(string name, object value)
public string Name { get; set; } public string Name { get; set; }
public object Value { get; set; } public object Value { get; set; }
} }
public class NestedHeader
{
public NestedHeader(string label, int colspan)
{
Label = label;
Colspan = colspan;
}
public string Label { get; set; }
public int Colspan { get; set; }
}
} }
using System.Collections.Generic;
namespace Performance.DtoModels
{
public class DrugtypeFactorRequest
{
public int HospitalId { get; set; }
public int AllotId { get; set; }
public List<Dictionary<string, object>> Data { get; set; }
}
}
...@@ -12,35 +12,35 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -12,35 +12,35 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
{ {
} }
/// <summary> 二次分配概览 </summary> /// <summary> 二次分配概览 </summary>
public virtual DbSet<ag_againsituation> ag_againsituation { get; set; } public virtual DbSet<ag_againsituation> ag_againsituation { get; set; }
/// <summary> 二次绩效保存数据 </summary> /// <summary> 二次绩效保存数据 </summary>
public virtual DbSet<ag_bodysource> ag_bodysource { get; set; } public virtual DbSet<ag_bodysource> ag_bodysource { get; set; }
/// <summary> 二次绩效结果表 </summary> /// <summary> 二次绩效结果表 </summary>
public virtual DbSet<ag_compute> ag_compute { get; set; } public virtual DbSet<ag_compute> ag_compute { get; set; }
/// <summary> 二次分配不固定数据 </summary> /// <summary> 二次分配不固定数据 </summary>
public virtual DbSet<ag_data> ag_data { get; set; } public virtual DbSet<ag_data> ag_data { get; set; }
/// <summary> 二次分配人员名单 </summary> /// <summary> 二次分配人员名单 </summary>
public virtual DbSet<ag_employee> ag_employee { get; set; } public virtual DbSet<ag_employee> ag_employee { get; set; }
/// <summary> 二次绩效固定项 </summary> /// <summary> 二次绩效固定项 </summary>
public virtual DbSet<ag_fixatitem> ag_fixatitem { get; set; } public virtual DbSet<ag_fixatitem> ag_fixatitem { get; set; }
/// <summary> 二次分配不固定列头数据 </summary> /// <summary> 二次分配不固定列头数据 </summary>
public virtual DbSet<ag_header> ag_header { get; set; } public virtual DbSet<ag_header> ag_header { get; set; }
/// <summary> 二次绩效顶部数据 </summary> /// <summary> 二次绩效顶部数据 </summary>
public virtual DbSet<ag_headsource> ag_headsource { get; set; } public virtual DbSet<ag_headsource> ag_headsource { get; set; }
/// <summary> 科室二次绩效录入内容 </summary> /// <summary> 科室二次绩效录入内容 </summary>
public virtual DbSet<ag_itemvalue> ag_itemvalue { get; set; } public virtual DbSet<ag_itemvalue> ag_itemvalue { get; set; }
/// <summary> 二次绩效其他绩效来源 </summary> /// <summary> 二次绩效其他绩效来源 </summary>
public virtual DbSet<ag_othersource> ag_othersource { get; set; } public virtual DbSet<ag_othersource> ag_othersource { get; set; }
/// <summary> 二次绩效列表 </summary> /// <summary> 二次绩效列表 </summary>
public virtual DbSet<ag_secondallot> ag_secondallot { get; set; } public virtual DbSet<ag_secondallot> ag_secondallot { get; set; }
/// <summary> 二次绩效模板 </summary> /// <summary> 二次绩效模板 </summary>
public virtual DbSet<ag_temp> ag_temp { get; set; } public virtual DbSet<ag_temp> ag_temp { get; set; }
/// <summary> 二次绩效模板项 </summary> /// <summary> 二次绩效模板项 </summary>
public virtual DbSet<ag_tempitem> ag_tempitem { get; set; } public virtual DbSet<ag_tempitem> ag_tempitem { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ag_usetemp> ag_usetemp { get; set; } public virtual DbSet<ag_usetemp> ag_usetemp { get; set; }
/// <summary> 二次绩效工作量绩效 </summary> /// <summary> 二次绩效工作量绩效 </summary>
public virtual DbSet<ag_workload> ag_workload { get; set; } public virtual DbSet<ag_workload> ag_workload { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ag_workload_source> ag_workload_source { get; set; } public virtual DbSet<ag_workload_source> ag_workload_source { get; set; }
...@@ -50,13 +50,13 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -50,13 +50,13 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<ag_worktype_source> ag_worktype_source { get; set; } public virtual DbSet<ag_worktype_source> ag_worktype_source { get; set; }
/// <summary> 考核类别 </summary> /// <summary> 考核类别 </summary>
public virtual DbSet<as_assess> as_assess { get; set; } public virtual DbSet<as_assess> as_assess { get; set; }
/// <summary> 考核列头 </summary> /// <summary> 考核列头 </summary>
public virtual DbSet<as_columns> as_columns { get; set; } public virtual DbSet<as_columns> as_columns { get; set; }
/// <summary> 考核数据 </summary> /// <summary> 考核数据 </summary>
public virtual DbSet<as_data> as_data { get; set; } public virtual DbSet<as_data> as_data { get; set; }
/// <summary> 考核类别 </summary> /// <summary> 考核类别 </summary>
public virtual DbSet<as_tempassess> as_tempassess { get; set; } public virtual DbSet<as_tempassess> as_tempassess { get; set; }
/// <summary> 考核列头 </summary> /// <summary> 考核列头 </summary>
public virtual DbSet<as_tempcolumns> as_tempcolumns { get; set; } public virtual DbSet<as_tempcolumns> as_tempcolumns { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<cof_accounting> cof_accounting { get; set; } public virtual DbSet<cof_accounting> cof_accounting { get; set; }
...@@ -66,174 +66,176 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -66,174 +66,176 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<cof_alias> cof_alias { get; set; } public virtual DbSet<cof_alias> cof_alias { get; set; }
/// <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; }
/// <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; }
/// <summary> 药占比支出费用列头名称 </summary> /// <summary> 药占比支出费用列头名称 </summary>
public virtual DbSet<cof_drugtype_disburse> cof_drugtype_disburse { get; set; } public virtual DbSet<cof_drugtype_disburse> cof_drugtype_disburse { get; set; }
/// <summary> 保底科室配置 </summary> /// <summary> 药占比费用列头名称系数 </summary>
public virtual DbSet<cof_drugtype_factor> cof_drugtype_factor { get; set; }
/// <summary> 保底科室配置 </summary>
public virtual DbSet<cof_guarantee> cof_guarantee { get; set; } public virtual DbSet<cof_guarantee> cof_guarantee { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<cof_hrp_department> cof_hrp_department { get; set; } public virtual DbSet<cof_hrp_department> cof_hrp_department { get; set; }
/// <summary> ICU医生护士有效收入汇总计算系数 </summary> /// <summary> ICU医生护士有效收入汇总计算系数 </summary>
public virtual DbSet<cof_income> cof_income { get; set; } public virtual DbSet<cof_income> cof_income { get; set; }
/// <summary> 特殊绩效项指标 </summary> /// <summary> 特殊绩效项指标 </summary>
public virtual DbSet<cof_singlefactor> cof_singlefactor { get; set; } public virtual DbSet<cof_singlefactor> cof_singlefactor { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<cof_workitem> cof_workitem { get; set; } public virtual DbSet<cof_workitem> cof_workitem { get; set; }
/// <summary> 工作量分类 </summary> /// <summary> 工作量分类 </summary>
public virtual DbSet<cof_workloadtype> cof_workloadtype { get; set; } public virtual DbSet<cof_workloadtype> cof_workloadtype { get; set; }
/// <summary> 工龄对应绩效系数配置 </summary> /// <summary> 工龄对应绩效系数配置 </summary>
public virtual DbSet<cof_workyear> cof_workyear { get; set; } public virtual DbSet<cof_workyear> cof_workyear { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<collect_data> collect_data { get; set; } public virtual DbSet<collect_data> collect_data { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<collect_permission> collect_permission { get; set; } public virtual DbSet<collect_permission> collect_permission { get; set; }
/// <summary> 自定义导出 </summary> /// <summary> 自定义导出 </summary>
public virtual DbSet<cust_script> cust_script { get; set; } public virtual DbSet<cust_script> cust_script { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_item> ex_item { get; set; } public virtual DbSet<ex_item> ex_item { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_module> ex_module { get; set; } public virtual DbSet<ex_module> ex_module { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_result> ex_result { get; set; } public virtual DbSet<ex_result> ex_result { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_script> ex_script { get; set; } public virtual DbSet<ex_script> ex_script { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_special> ex_special { get; set; } public virtual DbSet<ex_special> ex_special { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<ex_type> ex_type { get; set; } public virtual DbSet<ex_type> ex_type { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_data> his_data { get; set; } public virtual DbSet<his_data> his_data { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_import_account> his_import_account { get; set; } public virtual DbSet<his_import_account> his_import_account { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_import_baiscnorm> his_import_baiscnorm { get; set; } public virtual DbSet<his_import_baiscnorm> his_import_baiscnorm { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_import_clinic> his_import_clinic { get; set; } public virtual DbSet<his_import_clinic> his_import_clinic { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_importdata> his_importdata { get; set; } public virtual DbSet<his_importdata> his_importdata { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<his_script> his_script { get; set; } public virtual DbSet<his_script> his_script { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<hos_personfee> hos_personfee { get; set; } public virtual DbSet<hos_personfee> hos_personfee { get; set; }
/// <summary> 科室核算导入信息 </summary> /// <summary> 科室核算导入信息 </summary>
public virtual DbSet<im_accountbasic> im_accountbasic { get; set; } public virtual DbSet<im_accountbasic> im_accountbasic { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<im_data> im_data { get; set; } public virtual DbSet<im_data> im_data { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<im_employee> im_employee { get; set; } public virtual DbSet<im_employee> im_employee { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<im_employee_clinic> im_employee_clinic { get; set; } public virtual DbSet<im_employee_clinic> im_employee_clinic { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<im_employee_logistics> im_employee_logistics { get; set; } public virtual DbSet<im_employee_logistics> im_employee_logistics { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<im_header> im_header { get; set; } public virtual DbSet<im_header> im_header { get; set; }
/// <summary> 特殊科室核算 </summary> /// <summary> 特殊科室核算 </summary>
public virtual DbSet<im_specialunit> im_specialunit { get; set; } public virtual DbSet<im_specialunit> im_specialunit { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<log_check> log_check { get; set; } public virtual DbSet<log_check> log_check { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<log_dbug> log_dbug { get; set; } public virtual DbSet<log_dbug> log_dbug { get; set; }
/// <summary> 部分公共数据抽取SQL </summary> /// <summary> 部分公共数据抽取SQL </summary>
public virtual DbSet<mod_dic> mod_dic { get; set; } public virtual DbSet<mod_dic> mod_dic { get; set; }
/// <summary> 医院数据提取脚本 </summary> /// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<mod_extract> mod_extract { get; set; } public virtual DbSet<mod_extract> mod_extract { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<mod_item> mod_item { get; set; } public virtual DbSet<mod_item> mod_item { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<mod_module> mod_module { get; set; } public virtual DbSet<mod_module> mod_module { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<mod_special> mod_special { get; set; } public virtual DbSet<mod_special> mod_special { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<per_againallot> per_againallot { get; set; } public virtual DbSet<per_againallot> per_againallot { get; set; }
/// <summary> 医院绩效分配 </summary> /// <summary> 医院绩效分配 </summary>
public virtual DbSet<per_allot> per_allot { get; set; } public virtual DbSet<per_allot> per_allot { get; set; }
/// <summary> </summary> /// <summary> </summary>
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> /// <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>
public virtual DbSet<per_budget_ratio> per_budget_ratio { get; set; } public virtual DbSet<per_budget_ratio> per_budget_ratio { get; set; }
/// <summary> 预算控制年度合计 </summary> /// <summary> 预算控制年度合计 </summary>
public virtual DbSet<per_budget_result> per_budget_result { get; set; } public virtual DbSet<per_budget_result> per_budget_result { get; set; }
/// <summary> 科室字典表 </summary> /// <summary> 科室字典表 </summary>
public virtual DbSet<per_dept_dic> per_dept_dic { get; set; } public virtual DbSet<per_dept_dic> per_dept_dic { get; set; }
/// <summary> 绩效人员表 </summary> /// <summary> 绩效人员表 </summary>
public virtual DbSet<per_employee> per_employee { get; set; } public virtual DbSet<per_employee> per_employee { get; set; }
/// <summary> 首次上传文件地址(当医院存在标准库时,首次上传用户提交固定格式的excel,开发人员配置SQL脚本) </summary> /// <summary> 首次上传文件地址(当医院存在标准库时,首次上传用户提交固定格式的excel,开发人员配置SQL脚本) </summary>
public virtual DbSet<per_first> per_first { get; set; } public virtual DbSet<per_first> per_first { get; set; }
/// <summary> 上传数据解析 </summary> /// <summary> 上传数据解析 </summary>
public virtual DbSet<per_sheet> per_sheet { get; set; } public virtual DbSet<per_sheet> per_sheet { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<rep_group> rep_group { get; set; } public virtual DbSet<rep_group> rep_group { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<rep_group_selection> rep_group_selection { get; set; } public virtual DbSet<rep_group_selection> rep_group_selection { get; set; }
/// <summary> 导入报表SQL配置 </summary> /// <summary> 导入报表SQL配置 </summary>
public virtual DbSet<rep_importconfig> rep_importconfig { get; set; } public virtual DbSet<rep_importconfig> rep_importconfig { get; set; }
/// <summary> 报表配置表 </summary> /// <summary> 报表配置表 </summary>
public virtual DbSet<rep_report> rep_report { get; set; } public virtual DbSet<rep_report> rep_report { get; set; }
/// <summary> 条件表 </summary> /// <summary> 条件表 </summary>
public virtual DbSet<rep_selection> rep_selection { get; set; } public virtual DbSet<rep_selection> rep_selection { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_global> report_global { get; set; } public virtual DbSet<report_global> report_global { get; set; }
/// <summary> 医院门诊住院人次 </summary> /// <summary> 医院门诊住院人次 </summary>
public virtual DbSet<report_original_persontime> report_original_persontime { get; set; } public virtual DbSet<report_original_persontime> report_original_persontime { get; set; }
/// <summary> 医院门诊住院人次 </summary> /// <summary> 医院门诊住院人次 </summary>
public virtual DbSet<report_original_stays> report_original_stays { get; set; } public virtual DbSet<report_original_stays> report_original_stays { get; set; }
/// <summary> 医院手术人次 </summary> /// <summary> 医院手术人次 </summary>
public virtual DbSet<report_original_surgery> report_original_surgery { get; set; } public virtual DbSet<report_original_surgery> report_original_surgery { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_original_workload> report_original_workload { get; set; } public virtual DbSet<report_original_workload> report_original_workload { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_performance_person_tags> report_performance_person_tags { get; set; } public virtual DbSet<report_performance_person_tags> report_performance_person_tags { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_performance_tags> report_performance_tags { get; set; } public virtual DbSet<report_performance_tags> report_performance_tags { get; set; }
/// <summary> 科室核算结果 </summary> /// <summary> 科室核算结果 </summary>
public virtual DbSet<res_account> res_account { get; set; } public virtual DbSet<res_account> res_account { get; set; }
/// <summary> 医生科室核算结果 </summary> /// <summary> 医生科室核算结果 </summary>
public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; } public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; }
/// <summary> 护理科室核算结果 </summary> /// <summary> 护理科室核算结果 </summary>
public virtual DbSet<res_accountnurse> res_accountnurse { get; set; } public virtual DbSet<res_accountnurse> res_accountnurse { get; set; }
/// <summary> 核算基础标准 </summary> /// <summary> 核算基础标准 </summary>
public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; } public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<res_compute> res_compute { get; set; } public virtual DbSet<res_compute> res_compute { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<res_reserved> res_reserved { get; set; } public virtual DbSet<res_reserved> res_reserved { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<res_specialunit> res_specialunit { get; set; } public virtual DbSet<res_specialunit> res_specialunit { get; set; }
/// <summary> 医院数据提取脚本 </summary> /// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<sys_extract> sys_extract { get; set; } public virtual DbSet<sys_extract> sys_extract { get; set; }
/// <summary> 医院信息 </summary> /// <summary> 医院信息 </summary>
public virtual DbSet<sys_hospital> sys_hospital { get; set; } public virtual DbSet<sys_hospital> sys_hospital { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<sys_hospitalconfig> sys_hospitalconfig { get; set; } public virtual DbSet<sys_hospitalconfig> sys_hospitalconfig { get; set; }
/// <summary> 菜单表 </summary> /// <summary> 菜单表 </summary>
public virtual DbSet<sys_menu> sys_menu { get; set; } public virtual DbSet<sys_menu> sys_menu { get; set; }
/// <summary> 角色表 </summary> /// <summary> 角色表 </summary>
public virtual DbSet<sys_role> sys_role { get; set; } public virtual DbSet<sys_role> sys_role { get; set; }
/// <summary> 角色菜单关联表 </summary> /// <summary> 角色菜单关联表 </summary>
public virtual DbSet<sys_role_menu> sys_role_menu { get; set; } public virtual DbSet<sys_role_menu> sys_role_menu { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<sys_sms> sys_sms { get; set; } public virtual DbSet<sys_sms> sys_sms { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<sys_task> sys_task { get; set; } public virtual DbSet<sys_task> sys_task { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<sys_user> sys_user { get; set; } public virtual DbSet<sys_user> sys_user { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<sys_user_hospital> sys_user_hospital { get; set; } public virtual DbSet<sys_user_hospital> sys_user_hospital { get; set; }
/// <summary> 用户角色关联表 </summary> /// <summary> 用户角色关联表 </summary>
public virtual DbSet<sys_user_role> sys_user_role { get; set; } public virtual DbSet<sys_user_role> sys_user_role { get; set; }
} }
} }
//-----------------------------------------------------------------------
// <copyright file=" cof_drugtype_factor.cs">
// * FileName: 药占比费用列头名称.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 药占比费用列头名称
/// </summary>
[Table("cof_drugtype_factor")]
public class cof_drugtype_factor
{
/// <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 Nullable<int> ExModuleId { get; set; }
/// <summary>
/// 医生组
/// </summary>
public Nullable<decimal> YSZ { get; set; }
/// <summary>
/// 护理组
/// </summary>
public Nullable<decimal> HLZ { get; set; }
/// <summary>
/// 医技组
/// </summary>
public Nullable<decimal> YJZ { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" view_dic_category_factor.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("view_dic_category_factor")]
public class view_dic_category_factor
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// 医院id
/// </summary>
public int HospitalId { get; set; }
/// <summary>
/// 绩效id
/// </summary>
public int AllotID { get; set; }
/// <summary>
/// 费用名称
/// </summary>
public string Charge { get; set; }
/// <summary>
/// 费用类别
/// </summary>
public string ChargeType { get; set; }
/// <summary>
///
/// </summary>
public int ExModuleId { get; set; }
/// <summary>
/// 模块名称
/// </summary>
public string ModuleName { get; set; }
/// <summary>
/// 医生组系数
/// </summary>
public Nullable<decimal> YSZ { get; set; }
/// <summary>
/// 护理组系数
/// </summary>
public Nullable<decimal> HLZ { get; set; }
/// <summary>
/// 医技组系数
/// </summary>
public Nullable<decimal> YJZ { get; set; }
}
}
...@@ -219,5 +219,11 @@ union all ...@@ -219,5 +219,11 @@ union all
return flag; return flag;
} }
} }
public IEnumerable<view_dic_category_factor> QueryCategoryFactor(int hospitalId, int allotId)
{
return DapperQuery<view_dic_category_factor>("select * from view_dic_category_factor where hospitalid = @hospitalid and allotid = @allotid;", new { hospitalId, allotId });
}
} }
} }
//-----------------------------------------------------------------------
// <copyright file=" cof_drugtype_factor.cs">
// * FileName: cof_drugtype_factor.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// cof_drugtype_factor Repository
/// </summary>
public partial class PerforCofdrugtypefactorRepository : PerforRepository<cof_drugtype_factor>
{
public PerforCofdrugtypefactorRepository(PerformanceDbContext context) : base(context)
{
}
}
}
...@@ -36,7 +36,10 @@ public class ConfigService : IAutoInjection ...@@ -36,7 +36,10 @@ public class ConfigService : IAutoInjection
private readonly PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository; private readonly PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository;
private readonly PersonService personService; private readonly PersonService personService;
private readonly LogManageService logManageService; private readonly LogManageService logManageService;
private readonly ExConfigService exConfigService;
private readonly ILogger<ConfigService> logger; private readonly ILogger<ConfigService> logger;
private readonly PerforExmoduleRepository perforExmoduleRepository;
private readonly PerforCofdrugtypefactorRepository cofdrugtypefactorRepository;
public ConfigService(PerforCofdirectorRepository cofdirectorRepository, public ConfigService(PerforCofdirectorRepository cofdirectorRepository,
//PerforCofdrugpropRepository cofdrugpropRepository, //PerforCofdrugpropRepository cofdrugpropRepository,
...@@ -57,7 +60,10 @@ public class ConfigService : IAutoInjection ...@@ -57,7 +60,10 @@ public class ConfigService : IAutoInjection
PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository, PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository,
PersonService personService, PersonService personService,
LogManageService logManageService, LogManageService logManageService,
ILogger<ConfigService> logger) ILogger<ConfigService> logger,
ExConfigService exConfigService,
PerforExmoduleRepository perforExmoduleRepository,
PerforCofdrugtypefactorRepository cofdrugtypefactorRepository)
{ {
this._directorRepository = cofdirectorRepository; this._directorRepository = cofdirectorRepository;
//this._drugpropRepository = cofdrugpropRepository; //this._drugpropRepository = cofdrugpropRepository;
...@@ -78,7 +84,10 @@ public class ConfigService : IAutoInjection ...@@ -78,7 +84,10 @@ public class ConfigService : IAutoInjection
this.drugtypeDisburseRepository = drugtypeDisburseRepository; this.drugtypeDisburseRepository = drugtypeDisburseRepository;
this.personService = personService; this.personService = personService;
this.logManageService = logManageService; this.logManageService = logManageService;
this.exConfigService = exConfigService;
this.logger = logger; this.logger = logger;
this.perforExmoduleRepository = perforExmoduleRepository;
this.cofdrugtypefactorRepository = cofdrugtypefactorRepository;
} }
#endregion #endregion
...@@ -372,6 +381,13 @@ public cof_drugtype DrugtypeUpdate(DrugpropRequest request) ...@@ -372,6 +381,13 @@ public cof_drugtype DrugtypeUpdate(DrugpropRequest request)
if (!_drugtypeRepository.Update(entity)) if (!_drugtypeRepository.Update(entity))
throw new PerformanceException("保存失败"); throw new PerformanceException("保存失败");
//var factors = cofdrugtypefactorRepository.GetEntities(t => t.HospitalId == entity.HospitalId && t.AllotID == entity.AllotID && t.Charge == entity.Charge);
//if (factors != null && factors.Any())
//{
// factors.ForEach(t => t.Charge = request.Charge);
// cofdrugtypefactorRepository.UpdateRange(factors.ToArray());
//}
return entity; return entity;
} }
...@@ -456,7 +472,7 @@ public bool DrugtypeDisburseDelete(DrugpropRequest request) ...@@ -456,7 +472,7 @@ public bool DrugtypeDisburseDelete(DrugpropRequest request)
} }
public void SaveDrugtypeDisburse(int allotId) public void SaveDrugtypeDisburse(int allotId)
{ {
var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId); var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId);
if (Disburse == null || !Disburse.Any()) return; if (Disburse == null || !Disburse.Any()) return;
...@@ -962,12 +978,29 @@ public void Copy(per_allot allot) ...@@ -962,12 +978,29 @@ public void Copy(per_allot allot)
var cofDrugtypeDisburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allot.ID); var cofDrugtypeDisburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allot.ID);
if (cofDrugtypeDisburse == null || cofDrugtypeDisburse.Count == 0) if (cofDrugtypeDisburse == null || cofDrugtypeDisburse.Count == 0)
{ {
var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId) var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId)
?? drugtypeDisburseRepository.GetEntities(t => t.AllotID == -1); ?? 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 }); 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()); drugtypeDisburseRepository.AddRange(newAgains.ToArray());
}
logger.LogInformation($"cofDrugtypefactor");
var cofDrugtypeFactor = cofdrugtypefactorRepository.GetEntities(t => t.AllotID == allot.ID);
if (cofDrugtypeFactor == null || cofDrugtypeFactor.Count == 0)
{
var drugtypefactoe = cofdrugtypefactorRepository.GetEntities(t => t.AllotID == allotId) ?? cofdrugtypefactorRepository.GetEntities(t => t.AllotID == -1);
var newAgains = drugtypefactoe.Select(t => new cof_drugtype_factor
{
HospitalId = allot.HospitalId,
AllotID = allot.ID,
ExModuleId = t.ExModuleId,
Charge = t.Charge,
YSZ = t.YSZ,
HLZ = t.HLZ,
YJZ = t.YJZ,
});
cofdrugtypefactorRepository.AddRange(newAgains.ToArray());
} }
logger.LogInformation($"cofDepttype"); logger.LogInformation($"cofDepttype");
...@@ -1302,5 +1335,282 @@ public void SaveSecondaryAlias(SaveCollectData request) ...@@ -1302,5 +1335,282 @@ public void SaveSecondaryAlias(SaveCollectData request)
// perforCofcmiRepository.AddRange(data.ToArray()); // perforCofcmiRepository.AddRange(data.ToArray());
// } // }
//} //}
#region 费用类型系数
public SheetExportResponse GetDrugtypeFactor(AllotDeptRequest request)
{
SheetExportResponse sheet = new SheetExportResponse();
#region header
var models = perforExmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.SheetType == (int)SheetType.Income);
if (models == null || !models.Any())
{
exConfigService.DefaultModules(request.HospitalId);
models = perforExmoduleRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.SheetType == (int)SheetType.Income);
if (models == null || !models.Any()) return sheet;
}
var mergeCells = new List<Cell>
{
new Cell{ CellType = "header", CellValue = "", PointCell = 0, MergeRow = 1, MergeCell = 1 },
new Cell{ CellType = "header", CellValue = "", PointCell = 1, MergeRow = 1, MergeCell = 1 },
};
var cells = new List<Cell>
{
new Cell{ CellType = "header", CellValue = "项目小类(测算表)", PointCell = 0, MergeRow = 1, MergeCell = 1 },
new Cell{ CellType = "header", CellValue = "费用大类(大屏展示)", PointCell = 1, MergeRow = 1, MergeCell = 1 }
};
var defaultColumns = new Dictionary<string, string>
{
{ UnitType.医生组.ToString(), "ysz" },
{ UnitType.护理组.ToString(), "hlz" },
{ UnitType.医技组.ToString(), "yjz" }
};
int index = 0;
foreach (var model in models)
{
mergeCells.Add(new Cell { CellType = "header", CellValue = model.ModuleName, PointCell = 2 + index * 3, MergeRow = 1, MergeCell = defaultColumns.Count });
int i = 0;
cells.AddRange(defaultColumns.Select(t =>
{
i++;
return new Cell
{
CellType = "header",
CellValue = t.Key,
PointCell = 1 + index * 3 + i,
MergeRow = 1,
MergeCell = 1
};
}));
index++;
}
sheet.Header = new List<Row>
{
new Row(0){ Data = mergeCells },
new Row(1){ Data = cells }
};
#endregion
#region data
List<Row> rows = new List<Row>();
var querydata = _directorRepository.QueryCategoryFactor(request.HospitalId, request.AllotId)?.ToList();
if (querydata != null && querydata.Any())
{
var fields = new Dictionary<string, Func<view_dic_category_factor, object>>
{
{ "ysz", t => t.YSZ },
{ "hlz", t => t.HLZ },
{ "yjz", t => t.YJZ }
};
var charges = querydata.Select(t => new { t.Charge, t.ChargeType }).Distinct().OrderBy(t => t.Charge).ThenBy(t => t.ChargeType);
index = 0;
foreach (var charge in charges)
{
var rowcells = new List<Cell>
{
new Cell { CellType = "body", CellValue = charge.Charge, PointCell = 0, MergeRow = 1, MergeCell = 1 },
new Cell { CellType = "body", CellValue = charge.ChargeType, PointCell = 1, MergeRow = 1, MergeCell = 1 },
};
int i = 0;
foreach (var model in models)
{
var modeldata = querydata.FirstOrDefault(t => t.Charge == charge.Charge && t.ChargeType == charge.ChargeType && t.ExModuleId == model.Id);
int j = 1;
foreach (var column in defaultColumns)
{
rowcells.Add(new Cell
{
CellType = "body",
CellValue = modeldata == null ? null : fields[column.Value].Invoke(modeldata),
PointCell = 1 + i * 3 + j,
MergeRow = 1,
MergeCell = 1
});
j++;
}
i++;
}
rows.Add(new Row(index) { Data = rowcells });
index++;
}
}
sheet.Row = rows;
#endregion
return sheet;
}
public HandsonTable GetDrugtypeFactorConfig(int hospitalId, int allotId)
{
HandsonTable table = new HandsonTable((int)SheetType.Unidentifiable, new string[] { }, new List<collect_permission>());
var models = perforExmoduleRepository.GetEntities(t => t.HospitalId == hospitalId && t.SheetType == (int)SheetType.Income);
if (models == null || !models.Any())
{
exConfigService.DefaultModules(hospitalId);
models = perforExmoduleRepository.GetEntities(t => t.HospitalId == hospitalId && t.SheetType == (int)SheetType.Income);
if (models == null || !models.Any()) return table;
}
var defaultColumns = new Dictionary<string, string>
{
{ UnitType.医生组.ToString(), "ysz" },
{ UnitType.护理组.ToString(), "hlz" },
{ UnitType.医技组.ToString(), "yjz" }
};
var mergeCells = new List<NestedHeader>
{
new NestedHeader("", 1),
new NestedHeader("", 1),
};
var cells = new List<string>
{
"项目小类(测算表)", "费用大类(大屏展示)",
};
var columns = new List<HandsonColumn>
{
new HandsonColumn("charge", false),
new HandsonColumn("chargetype", false),
};
foreach (var model in models)
{
mergeCells.Add(new NestedHeader(model.ModuleName, defaultColumns.Count));
cells.AddRange(defaultColumns.Select(t => t.Key));
columns.AddRange(defaultColumns.Select(t => new HandsonColumn(t.Value + $"_{model.Id}", false, DataFormat.百分比)));
}
#region data
List<Dictionary<string, object>> data = new List<Dictionary<string, object>>();
var querydata = _directorRepository.QueryCategoryFactor(hospitalId, allotId)?.ToList();
if (querydata != null && querydata.Any())
{
var fields = new Dictionary<string, Func<view_dic_category_factor, object>>
{
{ "ysz", t => t.YSZ },
{ "hlz", t => t.HLZ },
{ "yjz", t => t.YJZ }
};
var charges = querydata.Select(t => new { t.Charge, t.ChargeType }).Distinct().OrderBy(t => t.Charge).ThenBy(t => t.ChargeType);
foreach (var charge in charges)
{
Dictionary<string, object> dict = new Dictionary<string, object>
{
{ "Charge", charge.Charge },
{ "ChargeType", charge.ChargeType }
};
foreach (var model in models)
{
var modeldata = querydata.FirstOrDefault(t => t.Charge == charge.Charge && t.ChargeType == charge.ChargeType && t.ExModuleId == model.Id);
foreach (var column in defaultColumns)
{
if (modeldata == null)
{
dict.Add(column.Value + $"_{model.Id}", null);
}
else
{
dict.Add(column.Value + $"_{model.Id}", fields[column.Value].Invoke(modeldata));
}
}
}
data.Add(dict);
}
}
#endregion
table.Columns = columns;
table.NestedHeadersArray = new object[] { mergeCells, cells };
table.ColHeaders = cells;
table.Data = data;
return table;
}
public void SaveDrugtypeFactor(DrugtypeFactorRequest request)
{
if (request.Data == null || !request.Data.Any()) return;
var moduleIds = request.Data.FirstOrDefault().Keys.Where(t => t.Contains("_")).Select(t => t.Split('_')[1]).Distinct();
var factors = new List<cof_drugtype_factor>();
var charges = new List<cof_drugtype>();
bool isHasChargeData = false;
foreach (var item in request.Data)
{
string charge = string.Empty; string chargeType = string.Empty;
if (item.ContainsKey("charge")) charge = item["charge"]?.ToString();
if (item.ContainsKey("chargetype")) chargeType = item["chargetype"]?.ToString();
if (string.IsNullOrEmpty(charge) && string.IsNullOrEmpty(chargeType)) continue;
isHasChargeData = true;
charges.Add(new cof_drugtype
{
HospitalId = request.HospitalId,
AllotID = request.AllotId,
Charge = charge,
ChargeType = chargeType,
});
foreach (var moduleId in moduleIds)
{
var data = item.Where(t => t.Key.EndsWith(moduleId));
factors.Add(new cof_drugtype_factor
{
HospitalId = request.HospitalId,
AllotID = request.AllotId,
Charge = charge,
ExModuleId = ConvertHelper.To<int>(moduleId),
YSZ = item.ContainsKey("ysz_" + moduleId) ? ConvertHelper.To<decimal?>(item["ysz_" + moduleId]) : null,
HLZ = item.ContainsKey("hlz_" + moduleId) ? ConvertHelper.To<decimal?>(item["hlz_" + moduleId]) : null,
YJZ = item.ContainsKey("yjz_" + moduleId) ? ConvertHelper.To<decimal?>(item["yjz_" + moduleId]) : null,
});
}
}
var savedData = cofdrugtypefactorRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.AllotID == request.AllotId);
if (savedData != null && savedData.Any())
{
cofdrugtypefactorRepository.RemoveRange(savedData.ToArray());
}
if (factors != null && factors.Any())
cofdrugtypefactorRepository.AddRange(factors.ToArray());
if (isHasChargeData)
{
var drugtypes = _drugtypeRepository.GetEntities(t => t.HospitalId == request.HospitalId && t.AllotID == request.AllotId);
if (drugtypes != null && drugtypes.Any())
{
_drugtypeRepository.RemoveRange(drugtypes.ToArray());
}
if (charges != null && charges.Any())
_drugtypeRepository.AddRange(charges.ToArray());
}
}
#endregion
} }
} }
...@@ -82,7 +82,7 @@ public List<ex_module> QueryModule(int hospitalId) ...@@ -82,7 +82,7 @@ public List<ex_module> QueryModule(int hospitalId)
return list; return list;
} }
private void DefaultModules(int hospitalId) public void DefaultModules(int hospitalId)
{ {
var moduleList = new ex_module[] var moduleList = new ex_module[]
{ {
......
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