Commit c2e1679c by 钟博

提取前检查科室和费用类型

parent 4f68ede6
...@@ -55,5 +55,10 @@ public class ex_module ...@@ -55,5 +55,10 @@ public class ex_module
/// 只读 0、否 1、是 /// 只读 0、否 1、是
/// </summary> /// </summary>
public Nullable<int> ReadOnly { get; set; } public Nullable<int> ReadOnly { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> CheckScriptId { get; set; }
} }
} }
...@@ -31,6 +31,8 @@ public class ExConfigService : IAutoInjection ...@@ -31,6 +31,8 @@ public class ExConfigService : IAutoInjection
private readonly PerforModdicRepository moddicRepository; private readonly PerforModdicRepository moddicRepository;
private readonly QueryService queryService; private readonly QueryService queryService;
private readonly ILogger logger; private readonly ILogger logger;
private readonly PerforCofdrugtypeRepository cofdrugtypeRepository;
private readonly PerforPerdeptdicRepository perdeptdicRepository;
public ExConfigService(PerforExtypeRepository extypeRepository, public ExConfigService(PerforExtypeRepository extypeRepository,
PerforExscriptRepository exscriptRepository, PerforExscriptRepository exscriptRepository,
...@@ -45,7 +47,9 @@ public class ExConfigService : IAutoInjection ...@@ -45,7 +47,9 @@ public class ExConfigService : IAutoInjection
PerforExtractRepository extractRepository, PerforExtractRepository extractRepository,
PerforModdicRepository moddicRepository, PerforModdicRepository moddicRepository,
QueryService queryService, QueryService queryService,
ILogger<ExConfigService> logger ILogger<ExConfigService> logger,
PerforCofdrugtypeRepository cofdrugtypeRepository,
PerforPerdeptdicRepository perdeptdicRepository
) )
{ {
this.extypeRepository = extypeRepository; this.extypeRepository = extypeRepository;
...@@ -62,6 +66,8 @@ ILogger<ExConfigService> logger ...@@ -62,6 +66,8 @@ ILogger<ExConfigService> logger
this.moddicRepository = moddicRepository; this.moddicRepository = moddicRepository;
this.queryService = queryService; this.queryService = queryService;
this.logger = logger; this.logger = logger;
this.cofdrugtypeRepository = cofdrugtypeRepository;
this.perdeptdicRepository = perdeptdicRepository;
} }
#region Modules #region Modules
...@@ -689,6 +695,8 @@ public string Judge(int allotId, int hospitalId, int useTemplate, ref bool isSin ...@@ -689,6 +695,8 @@ public string Judge(int allotId, int hospitalId, int useTemplate, ref bool isSin
public Dictionary<string, object> CheckHasNewDepartmentOrCategory(int allotId) public Dictionary<string, object> CheckHasNewDepartmentOrCategory(int allotId)
{ {
#region 改正
/*
var allot = perallotRepository.GetEntity(t => t.ID == allotId); var allot = perallotRepository.GetEntity(t => t.ID == allotId);
var allotList = perallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId && new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive }.Contains(t.States)); var allotList = perallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId && new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive }.Contains(t.States));
...@@ -734,8 +742,99 @@ public string Judge(int allotId, int hospitalId, int useTemplate, ref bool isSin ...@@ -734,8 +742,99 @@ public string Judge(int allotId, int hospitalId, int useTemplate, ref bool isSin
if (noExistedTypename != null && noExistedTypename.Any()) if (noExistedTypename != null && noExistedTypename.Any())
stringBuilder.AppendLine($"新增费用类型:{string.Join(",", noExistedTypename)}"); stringBuilder.AppendLine($"新增费用类型:{string.Join(",", noExistedTypename)}");
paramtemers.Add(dic.Remark, stringBuilder.ToString()); paramtemers.Add(dic.Remark, stringBuilder.ToString());
} }
return paramtemers; */
#endregion
var allot = perallotRepository.GetEntity(t => t.ID == allotId);
var drugTypes = cofdrugtypeRepository.GetEntities(t => t.AllotID == allot.ID && t.HospitalId == allot.HospitalId);
var deptDic = perdeptdicRepository.GetEntities(t => t.HospitalId == allot.HospitalId);
var moduleSheet = exmoduleRepository.GetEntities(t => t.HospitalId == allot.HospitalId && t.SheetType == (int)SheetType.Income);
if (moduleSheet == null || !moduleSheet.Any()) return null;
var moduleScript = moduleSheet.Select(t => t.CheckScriptId);
var scripts = exscriptRepository.GetEntities(t => moduleScript.Contains(t.Id));
if (scripts == null || !scripts.Any()) return null;
var scriptConfig = scripts.Select(t => t.ConfigId);
var hosConfig = hospitalconfigRepository.GetEntities(t => scriptConfig.Contains(t.Id));
if (hosConfig == null) return null;
Dictionary<string, object> paramtemers = new Dictionary<string, object>();
StringBuilder stringBuilder = new StringBuilder();
List<string> deparmants = new List<string>();
List<string> drugs = new List<string>();
List<per_dept_dic> deptList = new List<per_dept_dic>();
List<cof_drugtype> drugTypeList = new List<cof_drugtype>();
string defaultSource = "住院", defauleUnittype = UnitType.医生组.ToString();
foreach (var conf in hosConfig)
{
foreach (var scr in scripts)
{
if (conf.Id != scr.ConfigId) continue;
var data = queryService.QueryData(conf, allot, scr.ExecScript);
if (data == null || !data.Any()) return null;
if (deptDic != null || deptDic.Any())
{
var source = moduleSheet.FirstOrDefault(t => t.CheckScriptId == scr.Id)?.ModuleName.Contains(defaultSource) == true ? "住院" : "门诊";
var deptDics = deptDic.Select(t => new { t.Department, t.Source });
var except = data.Where(c => deptDics.Select(t => t.Department).Distinct().Contains(c.Department) && deptDics.Select(t => t.Source).Distinct().Contains(source));
var noExistedDepartment = except.Select(t => t.Department+" "+source).Distinct();
if (!deptList.Any(t => noExistedDepartment.Contains(t.Department+" "+source) && t.Source == source))
{
var dept = noExistedDepartment.Select(t => new per_dept_dic
{
Department = t,
AccountingUnit = t,
UnitType = defauleUnittype,
Source = source,
HospitalId = allot.HospitalId,
IsVerify = 0,
VerifyMessage = "抽取前科室校验后补增科室",
CreateTime = DateTime.Now,
CreateUser = 1
});
deparmants.AddRange(noExistedDepartment);
deptList.AddRange(dept);
}
}
if (drugTypes != null || drugTypes.Any())
{
var typeNames = drugTypes.Select(t => t.Charge).Distinct();
var noExistedTypename = data.Select(t => t.Category).Distinct().Except(typeNames);
if (!drugTypeList.Any(t => noExistedTypename.Contains(t.Charge)))
{
var drugType = noExistedTypename.Select(t => new cof_drugtype
{
HospitalId = allot.HospitalId,
AllotID = allot.ID,
Charge = t
});
drugs.AddRange(noExistedTypename);
drugTypeList.AddRange(drugType);
}
}
}
}
if (deparmants != null && deparmants.Any())
{
perdeptdicRepository.AddRange(deptList.ToArray());
stringBuilder.AppendLine($"新增科室:{string.Join(",", deparmants)}");
}
if (drugs != null && drugs.Any())
{
cofdrugtypeRepository.AddRange(drugTypeList.ToArray());
stringBuilder.AppendLine($"新增费用类型:{string.Join(",", drugs)}");
}
paramtemers.Add("新增科室或费用类型", stringBuilder.ToString());
return paramtemers; return paramtemers;
} }
......
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