通过开关控制是否使用HIS提取数据

parent d7507cd9
......@@ -3684,6 +3684,11 @@
语句执行完成所需时间
</summary>
</member>
<member name="P:Performance.EntityModels.ex_script.IsOrgDepartment">
<summary>
是否使用原始科室 1 是 2 否
</summary>
</member>
<member name="T:Performance.EntityModels.ex_special">
<summary>
......
......@@ -59,5 +59,10 @@ public class ex_script
/// 语句执行完成所需时间
/// </summary>
public decimal TimeConsuming { get; set; } = 0;
/// <summary>
/// 是否使用原始科室 1 是 2 否
/// </summary>
public int IsOrgDepartment { get; set; }
}
}
......@@ -79,10 +79,11 @@ public void Execute()
if (allot == null || allot.ID == 0) continue;
var dict = new Dictionary<ExDataDict, object>();
var scripts = new List<ex_script>();
var isSingle = hospital.IsSingleProject == 1;
dictionaryService.Handler(hospital.ID, allot, "", isSingle);
var data = queryService.Handler(hospital.ID, allot, "", isSingle, ref dict);
var data = queryService.Handler(hospital.ID, allot, "", isSingle, ref dict, ref scripts);
}
catch (Exception ex)
{
......
......@@ -97,6 +97,7 @@ public string Main(int allotId, int hospitalId, string email, string groupName,
allot = allots.First(t => t.ID == allotId);
var dict = new Dictionary<ExDataDict, object>();
var scripts = new List<ex_script>();
logService.ReturnTheLog(allotId, groupName, 3, "", 5, 1, isSingle);
......@@ -106,8 +107,8 @@ public string Main(int allotId, int hospitalId, string email, string groupName,
employeeService.SyncDataToResult(allotId);
var data = exresultRepository.GetEntities(t => t.AllotId == allotId);
data.AddRange(queryService.Handler(hospitalId, allot, groupName, isSingle, ref dict));
var standData = StandDataFormat(hospitalId, data);
data.AddRange(queryService.Handler(hospitalId, allot, groupName, isSingle, ref dict, ref scripts));
var standData = StandDataFormat(hospitalId, scripts, data);
dictionaryService.Handler(hospitalId, allot, groupName, isSingle);
......@@ -278,7 +279,7 @@ private object GetDataBySheetType(int hospitalId, SheetType sheetType, List<Extr
/// <param name="hospitalId"></param>
/// <param name="results"></param>
/// <returns></returns>
private List<ExtractTransDto> StandDataFormat(int hospitalId, List<ex_result> results)
private List<ExtractTransDto> StandDataFormat(int hospitalId, List<ex_script> scripts, List<ex_result> results)
{
if (results == null || !results.Any()) return new List<ExtractTransDto>();
......@@ -308,10 +309,14 @@ private List<ExtractTransDto> StandDataFormat(int hospitalId, List<ex_result> re
t.Department = WriteDataHelper.HasValue(t.Department, t.HISDeptName);
});
var data = results.GroupJoin(dict, outer => new { Department = outer.Department }, inner => new { Department = inner.HISDeptName }, (outer, inner) => new { outer, inner })
var data = results
.GroupJoin(dict, outer => new { Department = outer.Department }, inner => new { Department = inner.HISDeptName }, (outer, inner) => new { outer, inner })
.Select(t =>
{
var dept = !string.IsNullOrEmpty(t.inner.FirstOrDefault()?.Department) ? t.inner.FirstOrDefault()?.Department : t.outer.Department;
if (scripts.Any(w => w.TypeId == t.outer.TypeId && w.IsOrgDepartment == 1))
dept = t.outer.Department;
return new ExtractTransDto
{
SheetName = t.outer.Source,
......
......@@ -75,7 +75,7 @@ public void ClearConnectionPools()
/// <param name="hospitalId"></param>
/// <param name="allot"></param>
/// <returns></returns>
public List<ex_result> Handler(int hospitalId, per_allot allot, string groupName, bool isSingle, ref Dictionary<ExDataDict, object> dict)
public List<ex_result> Handler(int hospitalId, per_allot allot, string groupName, bool isSingle, ref Dictionary<ExDataDict, object> dict, ref List<ex_script> scripts)
{
try
{
......@@ -94,7 +94,7 @@ public List<ex_result> Handler(int hospitalId, per_allot allot, string groupName
logService.ReturnTheLog(allot.ID, groupName, 2, "提取数据", $"开始提取数据", isSingle: isSingle);
var scripts = exscriptRepository.GetEntities(t => extypeIds.Contains(t.TypeId));
scripts = exscriptRepository.GetEntities(t => extypeIds.Contains(t.TypeId));
if (scripts != null && scripts.Any())
{
var allmodules = dict[ExDataDict.ExModule] as List<ex_module>;
......
......@@ -453,7 +453,7 @@ Deptdic GetDeptdic(List<per_dept_dic> dics, string department, string hISDeptNam
CreateTime = t.Max(group => group.CreateTime),
IsVerify = t.Min(w => w.IsVerify) ?? 1,
});
return result.OrderBy(w => w.IsVerify).ThenByDescending(t => t.CreateTime).ThenBy(t => t.Department);
}
......
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