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; }
}
}
......@@ -78,6 +78,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<cof_drugtype> cof_drugtype { get; set; }
/// <summary> 药占比支出费用列头名称 </summary>
public virtual DbSet<cof_drugtype_disburse> cof_drugtype_disburse { get; set; }
/// <summary> 药占比费用列头名称系数 </summary>
public virtual DbSet<cof_drugtype_factor> cof_drugtype_factor { get; set; }
/// <summary> 保底科室配置 </summary>
public virtual DbSet<cof_guarantee> cof_guarantee { get; set; }
/// <summary> </summary>
......
//-----------------------------------------------------------------------
// <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;
}
......@@ -967,7 +983,24 @@ public void Copy(per_allot allot)
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