Commit 9e926eac by lcx

新增items

parent 852368db
......@@ -1715,6 +1715,11 @@
是否开启药占比系数 1 启用 2 禁用
</summary>
</member>
<member name="P:Performance.DtoModels.HospitalRequest.IsShowManage">
<summary>
是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
</summary>
</member>
<member name="P:Performance.DtoModels.IncomeRequest.SheetNameKeyword">
<summary>
关键字匹配
......@@ -2081,6 +2086,16 @@
3 提取数据
</summary>
</member>
<member name="P:Performance.DtoModels.AllotResponse.Generate">
<summary>
1、人事科提交重新生成
</summary>
</member>
<member name="P:Performance.DtoModels.AllotResponse.ShowFormula">
<summary>
0 不显示 1 显示
</summary>
</member>
<member name="P:Performance.DtoModels.AssessDataResponse.AssessID">
<summary>
考核类别ID
......@@ -2307,6 +2322,9 @@
<member name="P:Performance.DtoModels.DeptDataDetails.Detail">
<summary> 收入明细 </summary>
</member>
<member name="P:Performance.DtoModels.DeptDataDetails.ShowFormula">
<summary> 0 不显示 1 显示 </summary>
</member>
<member name="P:Performance.DtoModels.DetailDtos.ItemName">
<summary> 收入项名称 </summary>
</member>
......
......@@ -91,6 +91,21 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_workyear">
<summary> 工龄对应绩效系数配置 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_item">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_module">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_result">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_script">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_type">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.hos_personfee">
<summary> </summary>
</member>
......@@ -1370,6 +1385,196 @@
绩效系数
</summary>
</member>
<member name="T:Performance.EntityModels.ex_item">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.ModuleId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.ItemName">
<summary>
绩效考核项
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.FactorValue1">
<summary>
默认系数或医生系数
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.FactorValue2">
<summary>
护理系数
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.FactorValue3">
<summary>
医技系数
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.TypeId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="P:Performance.EntityModels.ex_item.ReadOnly">
<summary>
只读 0、否 1、是
</summary>
</member>
<member name="T:Performance.EntityModels.ex_module">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.SheetType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.ModuleName">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.Description">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.TypeId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.ConfigId">
<summary>
数据库地址
</summary>
</member>
<member name="P:Performance.EntityModels.ex_module.ReadOnly">
<summary>
只读 0、否 1、是
</summary>
</member>
<member name="T:Performance.EntityModels.ex_result">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Category">
<summary>
费用类型
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Fee">
<summary>
费用
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Source">
<summary>
来源
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.DatabaseType">
<summary>
数据库类型1、Sql Server 2、Orcale
</summary>
</member>
<member name="T:Performance.EntityModels.ex_script">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.ExecScript">
<summary>
执行sql
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.DatabaseType">
<summary>
数据库类型1、Sql Server 2、Orcale
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.TypeId">
<summary>
ExTypeId
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.IsEnable">
<summary>
是否可用 1 可用 2 不可用
</summary>
</member>
<member name="T:Performance.EntityModels.ex_type">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_type.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.ex_type.HospitalId">
<summary>
医院Id
</summary>
</member>
<member name="P:Performance.EntityModels.ex_type.EName">
<summary>
名称
</summary>
</member>
<member name="P:Performance.EntityModels.ex_type.Description">
<summary>
描述
</summary>
</member>
<member name="P:Performance.EntityModels.ex_type.Source">
<summary>
来源
</summary>
</member>
<member name="T:Performance.EntityModels.hos_personfee">
<summary>
......@@ -2497,7 +2702,12 @@
</member>
<member name="P:Performance.EntityModels.per_allot.Generate">
<summary>
1、人事科提交重新生成 2、生成成功
1、人事科提交重新生成
</summary>
</member>
<member name="P:Performance.EntityModels.per_allot.ShowFormula">
<summary>
0 不显示 1 显示
</summary>
</member>
<member name="T:Performance.EntityModels.per_budget_amount">
......@@ -4015,6 +4225,11 @@
是否开启规模/效率绩效 1 启用 2 禁用
</summary>
</member>
<member name="P:Performance.EntityModels.sys_hospital.IsShowManage">
<summary>
是否显示绩效合计 1 显示绩效合计 2 显示管理绩效
</summary>
</member>
<member name="T:Performance.EntityModels.sys_hospitalconfig">
<summary>
......
......@@ -5,6 +5,7 @@
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
......@@ -337,6 +338,7 @@ public void AddItems(int moduleId)
logger.LogInformation("添加默认收费项时,医院配置信息未设置");
return;
}
QueryAndAddItem(new List<sys_hospitalconfig> { hospitalConfig }, sqlconfig.Content, module);
}
else
{
......@@ -348,13 +350,14 @@ public void AddItems(int moduleId)
return;
}
string sql = "SELECT ITEM_TYPE FROM DIC_FEE GROUP BY ITEM_TYPE ORDER BY ITEM_TYPE";
QueryAndAddItem(hospitalConfigs, sql, module);
}
}
private bool QueryAndAddItem(List<sys_hospitalconfig> hospitalconfigs, string sql)
private bool QueryAndAddItem(List<sys_hospitalconfig> hospitalconfigs, string sql, ex_module module)
{
logger.LogInformation("创建数据库连接");
List<string> itemNames = new List<string>();
foreach (var hospitalConfig in hospitalconfigs)
{
var connection = ConnectionBuilder.Create((DatabaseType)hospitalConfig.DataBaseType, hospitalConfig.DbSource, hospitalConfig.DbName, hospitalConfig.DbUser, hospitalConfig.DbPassword);
......@@ -362,23 +365,122 @@ private bool QueryAndAddItem(List<sys_hospitalconfig> hospitalconfigs, string sq
var dataList = extractRepository.ExecuteScript(connection, sql, null);
logger.LogInformation($"获取数据{dataList?.Count ?? 0}条");
if (dataList != null && dataList.Any())
itemNames.AddRange(dataList.Select(t => t.Value.ToString()));
}
var items = exitemRepository.GetEntities(t => t.ModuleId == module.Id);
if (items == null && (itemNames == null || !itemNames.Any()))
return true;
if (itemNames != null && itemNames.Any())
{
if (items != null)
itemNames = itemNames.Except(items.Select(t => t.ItemName)).ToList();
logger.LogInformation($"添加默认收费项 去重后数据有{itemNames.Distinct().Count()}");
var itemList = itemNames.Distinct().Select(t => new ex_item
{
var itemList = dataList.Select(t => new ex_item
{
ItemName = t.Value.ToString(),
FactorValue1 = 0m,
FactorValue2 = 0m,
FactorValue3 = 0m,
ModuleId = module.Id,
TypeId = module.TypeId,
ReadOnly = 1
});
logger.LogInformation($"添加默认收费项 受影响行数{itemList.Count()}");
exitemRepository.AddRange(itemList.ToArray());
exmoduleRepository.Update(module);
}
ItemName = t,
FactorValue1 = 0m,
FactorValue2 = 0m,
FactorValue3 = 0m,
ModuleId = module.Id,
TypeId = module.TypeId,
ReadOnly = 1
});
logger.LogInformation($"添加默认收费项 受影响行数{itemList.Count()}");
return exitemRepository.AddRange(itemList.ToArray());
}
return true;
}
/// <summary>
/// 特殊科室人均
/// </summary>
/// <returns></returns>
public List<TitleValue> PerforType()
{
var list = EnumHelper.GetItems<PerforType>();
var result = list.Select(t => new TitleValue
{
Title = t.Description,
Value = t.Description
});
return result.ToList();
}
/// <summary>
/// 获取抽取的配置
/// </summary>
/// <param name="hospitalId"></param>
/// <returns></returns>
public List<sys_hospitalconfig> GetHospitalconfigs(int hospitalId)
{
var configs = hospitalconfigRepository.GetEntities(t => t.HospitalId == hospitalId);
return configs;
}
/// <summary>
/// 绩效数据抽取模板
/// </summary>
/// <returns></returns>
public List<TitleValue> ExtractScheme(int hospitalId, List<int> executeType)
{
var titlevalue = new List<TitleValue>();
var list = extypeRepository.GetEntities(t => new List<int> { 0, hospitalId }.Contains(t.HospitalId) && executeType.Contains(t.Source));
if (list != null && list.Any())
{
var scripts = exscriptRepository.GetEntities(t => list.Select(w => w.Id).Contains(t.TypeId));
titlevalue = list.Where(t => scripts.Select(w => w.TypeId).Contains(t.Id)).Select(t => new TitleValue
{
Title = string.IsNullOrEmpty(t.Description) ? t.EName : $"{t.EName}({t.Description})",
Value = t.Id.ToString()
}).OrderBy(t => t.Title).ToList();
}
return false;
return titlevalue;
}
/// <summary>
/// 费用类型
/// </summary>
/// <returns></returns>
public List<TitleValue> FeeType()
{
var titlevalue = new List<TitleValue>();
var type = EnumHelper.GetItems<SheetType>().Where(t => new List<int> { (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, (int)SheetType.Workload, (int)SheetType.SpecialUnit }.Contains(t.Value));
if (type != null && type.Any())
{
titlevalue = type.Select(t => new TitleValue
{
Title = t.Description,
Value = t.Value.ToString()
}).ToList();
}
return titlevalue;
}
public enum ExtractResultClassify
{
[Description("门诊开单")]
OutIncome = 1,
[Description("门诊执行")]
OutExecIncome = 2,
[Description("住院开单")]
InpatIncome = 3,
[Description("住院执行")]
InpatExecIncome = 4,
[Description("额外收入")]
OtherIncome = 5,
[Description("支出")]
Expend = 6,
[Description("医生工作量")]
DoctorWorkload = 7,
[Description("护理工作量")]
NurseWorkload = 8,
[Description("特殊核算科室")]
SpecialUnit = 7,
}
}
}
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