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 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.EntityModels;
using Performance.Infrastructure;
......@@ -784,5 +788,30 @@ public ApiResponse SaveSecondaryAlias([FromBody] SaveCollectData request)
}
#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 @@
核算单元及组别批量添加
</summary>
<param name="allotId"></param>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.WorkHeader(Performance.DtoModels.WorkItemRequest)">
......@@ -717,7 +718,16 @@
<summary>
保存HRP人员科室
</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>
</member>
<member name="M:Performance.Api.Controllers.ConfigController.GetSecondaryAlias">
......
......@@ -3702,6 +3702,61 @@
签字
</summary>
</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">
<summary>
sheetID
......
......@@ -103,6 +103,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_disburse">
<summary> 药占比支出费用列头名称 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_drugtype_factor">
<summary> 药占比费用列头名称系数 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_guarantee">
<summary> 保底科室配置 </summary>
</member>
......@@ -1887,6 +1890,51 @@
费用类别
</summary>
</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">
<summary>
保底科室配置
......@@ -5107,24 +5155,29 @@
备注
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateTime">
<member name="P:Performance.EntityModels.per_employee.IsVerify">
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateUser">
<member name="P:Performance.EntityModels.per_employee.VerifyMessage">
<summary>
验证失败描述
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.IsVerify">
<member name="P:Performance.EntityModels.per_employee.IsHrpEmployee">
<summary>
0 未通过验证 1 通过验证
是否是hrp人员 0 不是 1 是
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.VerifyMessage">
<member name="P:Performance.EntityModels.per_employee.CreateTime">
<summary>
验证失败描述
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateUser">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.per_first">
......@@ -7407,6 +7460,61 @@
</summary>
</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">
<summary>
His科室
......
......@@ -13,13 +13,13 @@ public HandsonTableBase()
ColHeaders = new List<string>();
Columns = new List<HandsonColumn>();
Data = new List<Dictionary<string, object>>();
NestedHeadersArray = new List<List<string>>();
NestedHeadersArray = new object[] { };
}
public List<string> ColHeaders { get; set; }
public List<Dictionary<string, object>> Data { get; set; }
public List<HandsonColumn> Columns { get; set; }
public List<List<string>> NestedHeadersArray { get; set; }
public object[] NestedHeadersArray { get; set; }
}
public class HandsonTable : HandsonTableBase
......@@ -185,4 +185,17 @@ public HandsonCellData(string name, object value)
public string Name { 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)
{
}
/// <summary> 二次分配概览 </summary>
/// <summary> 二次分配概览 </summary>
public virtual DbSet<ag_againsituation> ag_againsituation { get; set; }
/// <summary> 二次绩效保存数据 </summary>
public virtual DbSet<ag_bodysource> ag_bodysource { get; set; }
/// <summary> 二次绩效结果表 </summary>
public virtual DbSet<ag_compute> ag_compute { get; set; }
/// <summary> 二次分配不固定数据 </summary>
/// <summary> 二次分配不固定数据 </summary>
public virtual DbSet<ag_data> ag_data { get; set; }
/// <summary> 二次分配人员名单 </summary>
/// <summary> 二次分配人员名单 </summary>
public virtual DbSet<ag_employee> ag_employee { get; set; }
/// <summary> 二次绩效固定项 </summary>
/// <summary> 二次绩效固定项 </summary>
public virtual DbSet<ag_fixatitem> ag_fixatitem { get; set; }
/// <summary> 二次分配不固定列头数据 </summary>
/// <summary> 二次分配不固定列头数据 </summary>
public virtual DbSet<ag_header> ag_header { get; set; }
/// <summary> 二次绩效顶部数据 </summary>
public virtual DbSet<ag_headsource> ag_headsource { get; set; }
/// <summary> 科室二次绩效录入内容 </summary>
public virtual DbSet<ag_itemvalue> ag_itemvalue { get; set; }
/// <summary> 二次绩效其他绩效来源 </summary>
/// <summary> 二次绩效其他绩效来源 </summary>
public virtual DbSet<ag_othersource> ag_othersource { get; set; }
/// <summary> 二次绩效列表 </summary>
/// <summary> 二次绩效列表 </summary>
public virtual DbSet<ag_secondallot> ag_secondallot { get; set; }
/// <summary> 二次绩效模板 </summary>
/// <summary> 二次绩效模板 </summary>
public virtual DbSet<ag_temp> ag_temp { get; set; }
/// <summary> 二次绩效模板项 </summary>
/// <summary> 二次绩效模板项 </summary>
public virtual DbSet<ag_tempitem> ag_tempitem { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ag_usetemp> ag_usetemp { get; set; }
/// <summary> 二次绩效工作量绩效 </summary>
/// <summary> 二次绩效工作量绩效 </summary>
public virtual DbSet<ag_workload> ag_workload { get; set; }
/// <summary> </summary>
public virtual DbSet<ag_workload_source> ag_workload_source { get; set; }
......@@ -50,13 +50,13 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<ag_worktype_source> ag_worktype_source { get; set; }
/// <summary> 考核类别 </summary>
public virtual DbSet<as_assess> as_assess { get; set; }
/// <summary> 考核列头 </summary>
/// <summary> 考核列头 </summary>
public virtual DbSet<as_columns> as_columns { get; set; }
/// <summary> 考核数据 </summary>
/// <summary> 考核数据 </summary>
public virtual DbSet<as_data> as_data { get; set; }
/// <summary> 考核类别 </summary>
/// <summary> 考核类别 </summary>
public virtual DbSet<as_tempassess> as_tempassess { get; set; }
/// <summary> 考核列头 </summary>
/// <summary> 考核列头 </summary>
public virtual DbSet<as_tempcolumns> as_tempcolumns { get; set; }
/// <summary> </summary>
public virtual DbSet<cof_accounting> cof_accounting { get; set; }
......@@ -66,174 +66,176 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<cof_alias> cof_alias { get; set; }
/// <summary> 上传excel文件校验配置 </summary>
public virtual DbSet<cof_check> cof_check { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<cof_cmi> cof_cmi { get; set; }
/// <summary> 科室类型 </summary>
/// <summary> 科室类型 </summary>
public virtual DbSet<cof_depttype> cof_depttype { get; set; }
/// <summary> 规模绩效、效率绩效计算系数配置 </summary>
/// <summary> 规模绩效、效率绩效计算系数配置 </summary>
public virtual DbSet<cof_director> cof_director { get; set; }
/// <summary> 工作量门诊药占比系数 </summary>
/// <summary> 工作量门诊药占比系数 </summary>
public virtual DbSet<cof_drugprop> cof_drugprop { get; set; }
/// <summary> 药占比费用列头名称 </summary>
/// <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>
/// <summary> 药占比费用列头名称系数 </summary>
public virtual DbSet<cof_drugtype_factor> cof_drugtype_factor { get; set; }
/// <summary> 保底科室配置 </summary>
public virtual DbSet<cof_guarantee> cof_guarantee { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> 特殊绩效项指标 </summary>
/// <summary> 特殊绩效项指标 </summary>
public virtual DbSet<cof_singlefactor> cof_singlefactor { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<cof_workitem> cof_workitem { get; set; }
/// <summary> 工作量分类 </summary>
/// <summary> 工作量分类 </summary>
public virtual DbSet<cof_workloadtype> cof_workloadtype { get; set; }
/// <summary> 工龄对应绩效系数配置 </summary>
/// <summary> 工龄对应绩效系数配置 </summary>
public virtual DbSet<cof_workyear> cof_workyear { get; set; }
/// <summary> </summary>
public virtual DbSet<collect_data> collect_data { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<collect_permission> collect_permission { get; set; }
/// <summary> 自定义导出 </summary>
/// <summary> 自定义导出 </summary>
public virtual DbSet<cust_script> cust_script { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_item> ex_item { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_module> ex_module { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_result> ex_result { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_script> ex_script { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_special> ex_special { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<ex_type> ex_type { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<his_data> his_data { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<his_import_clinic> his_import_clinic { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<his_importdata> his_importdata { get; set; }
/// <summary> </summary>
public virtual DbSet<his_script> his_script { get; set; }
/// <summary> </summary>
public virtual DbSet<hos_personfee> hos_personfee { get; set; }
/// <summary> 科室核算导入信息 </summary>
/// <summary> 科室核算导入信息 </summary>
public virtual DbSet<im_accountbasic> im_accountbasic { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_data> im_data { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_employee> im_employee { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<im_header> im_header { get; set; }
/// <summary> 特殊科室核算 </summary>
/// <summary> 特殊科室核算 </summary>
public virtual DbSet<im_specialunit> im_specialunit { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<log_check> log_check { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<log_dbug> log_dbug { get; set; }
/// <summary> 部分公共数据抽取SQL </summary>
/// <summary> 部分公共数据抽取SQL </summary>
public virtual DbSet<mod_dic> mod_dic { get; set; }
/// <summary> 医院数据提取脚本 </summary>
/// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<mod_extract> mod_extract { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<mod_item> mod_item { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<mod_module> mod_module { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<mod_special> mod_special { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<per_againallot> per_againallot { get; set; }
/// <summary> 医院绩效分配 </summary>
/// <summary> 医院绩效分配 </summary>
public virtual DbSet<per_allot> per_allot { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> 预算管理金额 </summary>
/// <summary> 预算管理金额 </summary>
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; }
/// <summary> 预算控制年度合计 </summary>
/// <summary> 预算控制年度合计 </summary>
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; }
/// <summary> 绩效人员表 </summary>
/// <summary> 绩效人员表 </summary>
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; }
/// <summary> 上传数据解析 </summary>
/// <summary> 上传数据解析 </summary>
public virtual DbSet<per_sheet> per_sheet { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<rep_group> rep_group { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> 报表配置表 </summary>
/// <summary> 报表配置表 </summary>
public virtual DbSet<rep_report> rep_report { get; set; }
/// <summary> 条件表 </summary>
/// <summary> 条件表 </summary>
public virtual DbSet<rep_selection> rep_selection { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<report_global> report_global { get; set; }
/// <summary> 医院门诊住院人次 </summary>
/// <summary> 医院门诊住院人次 </summary>
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; }
/// <summary> 医院手术人次 </summary>
/// <summary> 医院手术人次 </summary>
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; }
/// <summary> </summary>
/// <summary> </summary>
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; }
/// <summary> 科室核算结果 </summary>
/// <summary> 科室核算结果 </summary>
public virtual DbSet<res_account> res_account { get; set; }
/// <summary> 医生科室核算结果 </summary>
/// <summary> 医生科室核算结果 </summary>
public virtual DbSet<res_accountdoctor> res_accountdoctor { get; set; }
/// <summary> 护理科室核算结果 </summary>
/// <summary> 护理科室核算结果 </summary>
public virtual DbSet<res_accountnurse> res_accountnurse { get; set; }
/// <summary> 核算基础标准 </summary>
/// <summary> 核算基础标准 </summary>
public virtual DbSet<res_baiscnorm> res_baiscnorm { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<res_compute> res_compute { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<res_reserved> res_reserved { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<res_specialunit> res_specialunit { get; set; }
/// <summary> 医院数据提取脚本 </summary>
/// <summary> 医院数据提取脚本 </summary>
public virtual DbSet<sys_extract> sys_extract { get; set; }
/// <summary> 医院信息 </summary>
/// <summary> 医院信息 </summary>
public virtual DbSet<sys_hospital> sys_hospital { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_hospitalconfig> sys_hospitalconfig { get; set; }
/// <summary> 菜单表 </summary>
/// <summary> 菜单表 </summary>
public virtual DbSet<sys_menu> sys_menu { get; set; }
/// <summary> 角色表 </summary>
/// <summary> 角色表 </summary>
public virtual DbSet<sys_role> sys_role { get; set; }
/// <summary> 角色菜单关联表 </summary>
/// <summary> 角色菜单关联表 </summary>
public virtual DbSet<sys_role_menu> sys_role_menu { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_sms> sys_sms { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_task> sys_task { get; set; }
/// <summary> </summary>
/// <summary> </summary>
public virtual DbSet<sys_user> sys_user { get; set; }
/// <summary> </summary>
/// <summary> </summary>
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; }
}
}
//-----------------------------------------------------------------------
// <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
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
private readonly PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository;
private readonly PersonService personService;
private readonly LogManageService logManageService;
private readonly ExConfigService exConfigService;
private readonly ILogger<ConfigService> logger;
private readonly PerforExmoduleRepository perforExmoduleRepository;
private readonly PerforCofdrugtypefactorRepository cofdrugtypefactorRepository;
public ConfigService(PerforCofdirectorRepository cofdirectorRepository,
//PerforCofdrugpropRepository cofdrugpropRepository,
......@@ -57,7 +60,10 @@ public class ConfigService : IAutoInjection
PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository,
PersonService personService,
LogManageService logManageService,
ILogger<ConfigService> logger)
ILogger<ConfigService> logger,
ExConfigService exConfigService,
PerforExmoduleRepository perforExmoduleRepository,
PerforCofdrugtypefactorRepository cofdrugtypefactorRepository)
{
this._directorRepository = cofdirectorRepository;
//this._drugpropRepository = cofdrugpropRepository;
......@@ -78,7 +84,10 @@ public class ConfigService : IAutoInjection
this.drugtypeDisburseRepository = drugtypeDisburseRepository;
this.personService = personService;
this.logManageService = logManageService;
this.exConfigService = exConfigService;
this.logger = logger;
this.perforExmoduleRepository = perforExmoduleRepository;
this.cofdrugtypefactorRepository = cofdrugtypefactorRepository;
}
#endregion
......@@ -372,6 +381,13 @@ public cof_drugtype DrugtypeUpdate(DrugpropRequest request)
if (!_drugtypeRepository.Update(entity))
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;
}
......@@ -456,7 +472,7 @@ public bool DrugtypeDisburseDelete(DrugpropRequest request)
}
public void SaveDrugtypeDisburse(int allotId)
{
{
var Disburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allotId);
if (Disburse == null || !Disburse.Any()) return;
......@@ -962,12 +978,29 @@ public void Copy(per_allot allot)
var cofDrugtypeDisburse = drugtypeDisburseRepository.GetEntities(t => t.AllotID == allot.ID);
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);
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($"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");
......@@ -1302,5 +1335,282 @@ public void SaveSecondaryAlias(SaveCollectData request)
// 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)
return list;
}
private void DefaultModules(int hospitalId)
public void DefaultModules(int hospitalId)
{
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