Commit b8a7c1cd by lcx

费用类型及系数查询

parent 0cad6bfb
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.Caching.Memory;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
...@@ -713,5 +714,30 @@ public ApiResponse SaveSecondaryAlias([FromBody] SaveCollectData request) ...@@ -713,5 +714,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);
return new ApiResponse(ResponseType.OK, data);
}
[HttpPost("drugtype/factor/save")]
public ApiResponse SaveDrugtypeFactor([FromBody]int hospitalId)
{
var data = _configService.GetDrugtypeFactorConfig(hospitalId);
return new ApiResponse(ResponseType.OK, data);
}
#endregion
} }
} }
\ No newline at end of file
...@@ -179,6 +179,12 @@ ...@@ -179,6 +179,12 @@
<member name="F:Performance.DtoModels.DataFormat.小数"> <member name="F:Performance.DtoModels.DataFormat.小数">
<summary> 小数 </summary> <summary> 小数 </summary>
</member> </member>
<member name="F:Performance.DtoModels.DataFormat.小数1">
<summary> 小数 </summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.整数">
<summary> 整数 </summary>
</member>
<member name="F:Performance.DtoModels.DataFormat.货币"> <member name="F:Performance.DtoModels.DataFormat.货币">
<summary> 货币 </summary> <summary> 货币 </summary>
</member> </member>
...@@ -836,6 +842,9 @@ ...@@ -836,6 +842,9 @@
<member name="F:Performance.DtoModels.SheetType.Assess"> <member name="F:Performance.DtoModels.SheetType.Assess">
<summary> 考核 </summary> <summary> 考核 </summary>
</member> </member>
<member name="F:Performance.DtoModels.SheetType.DoctorIncome">
<summary> 医生收入 </summary>
</member>
<member name="F:Performance.DtoModels.SheetType.Custom"> <member name="F:Performance.DtoModels.SheetType.Custom">
<summary> 自定义抽取模板 </summary> <summary> 自定义抽取模板 </summary>
</member> </member>
......
...@@ -1859,6 +1859,56 @@ ...@@ -1859,6 +1859,56 @@
费用类别 费用类别
</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.ChargeType">
<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>
保底科室配置 保底科室配置
...@@ -7374,6 +7424,61 @@ ...@@ -7374,6 +7424,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; }
}
} }
//-----------------------------------------------------------------------
// <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 });
}
} }
} }
...@@ -35,7 +35,10 @@ public class ConfigService : IAutoInjection ...@@ -35,7 +35,10 @@ public class ConfigService : IAutoInjection
private readonly PerforCofaccountingRepository cofaccountingRepository; private readonly PerforCofaccountingRepository cofaccountingRepository;
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,
...@@ -54,7 +57,10 @@ public class ConfigService : IAutoInjection ...@@ -54,7 +57,10 @@ public class ConfigService : IAutoInjection
PerforCofaccountingRepository cofaccountingRepository, PerforCofaccountingRepository cofaccountingRepository,
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;
...@@ -73,7 +79,10 @@ public class ConfigService : IAutoInjection ...@@ -73,7 +79,10 @@ public class ConfigService : IAutoInjection
this.cofaccountingRepository = cofaccountingRepository; this.cofaccountingRepository = cofaccountingRepository;
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
...@@ -367,6 +376,13 @@ public cof_drugtype DrugtypeUpdate(DrugpropRequest request) ...@@ -367,6 +376,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;
} }
...@@ -1194,5 +1210,74 @@ public void SaveSecondaryAlias(SaveCollectData request) ...@@ -1194,5 +1210,74 @@ public void SaveSecondaryAlias(SaveCollectData request)
// perforCofcmiRepository.AddRange(data.ToArray()); // perforCofcmiRepository.AddRange(data.ToArray());
// } // }
//} //}
#region 费用类型系数
public List<view_dic_category_factor> GetDrugtypeFactor(AllotDeptRequest request)
{
return _directorRepository.QueryCategoryFactor(request.HospitalId, request.AllotId)?.ToList();
}
public HandsonTable GetDrugtypeFactorConfig(int hospitalId)
{
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 List<string> { UnitType.医生组.ToString(), UnitType.护理组.ToString(), UnitType.医技组.ToString() };
var mergeCells = new List<NestedHeader>
{
new NestedHeader("", 1),
new NestedHeader("", 1),
};
var cells = new List<string>
{
"项目小类(测算表)", "费用大类(大屏展示)",
};
var columns = new List<HandsonColumn>
{
new HandsonColumn("项目小类(测算表)", false),
new HandsonColumn("费用大类(大屏展示)", false),
};
foreach (var model in models)
{
mergeCells.Add(new NestedHeader(model.ModuleName, defaultColumns.Count));
cells.AddRange(defaultColumns);
columns.AddRange(defaultColumns.Select(t => new HandsonColumn(t, false, DataFormat.百分比)));
}
table.Columns = columns;
table.NestedHeadersArray = new object[] { mergeCells, cells };
table.ColHeaders = cells;
return table;
}
public void SaveDrugtypeFactor(List<object> nestedHeadersArray, string[][] data, int hospitalId)
{
if (data == null || !data.Any(t => t != null && t.Count() > 0 && !string.IsNullOrEmpty(t[0]))) return;
var charges = new List<view_dic_category_factor>();
if (nestedHeadersArray[0] is List<NestedHeader> modelHeaders && modelHeaders.Any(t => !string.IsNullOrEmpty(t.Label)))
{
var models = modelHeaders.Where(t => !string.IsNullOrEmpty(t.Label)).Select(t => t.Label);
var exmodels = perforExmoduleRepository.GetEntities(t => t.HospitalId == hospitalId && t.SheetType == (int)SheetType.Income);
if (exmodels == null || !exmodels.Any()) return;
foreach (var item in data.Where(t => t != null && t.Count() > 0 && !string.IsNullOrEmpty(t[0])))
{
}
}
}
#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