导入报表数据

parent 26ddecb1
...@@ -612,6 +612,7 @@ private List<ex_result> QueryData(sys_hospitalconfig config, per_allot allot, st ...@@ -612,6 +612,7 @@ private List<ex_result> QueryData(sys_hospitalconfig config, per_allot allot, st
/// <param name="configs"></param> /// <param name="configs"></param>
private void ImportData(per_allot allot, List<sys_hospitalconfig> configs) private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
{ {
logger.LogDebug($"从HIS抽取报表数据");
Dictionary<string, object> pairs = new Dictionary<string, object> Dictionary<string, object> pairs = new Dictionary<string, object>
{ {
{ "@allotid", allot.ID }, { "@allotid", allot.ID },
...@@ -622,14 +623,19 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs) ...@@ -622,14 +623,19 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 1); var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 1);
if (imports == null || !imports.Any()) return; if (imports == null || !imports.Any()) return;
logger.LogDebug($"imports {JsonHelper.Serialize(imports)}");
foreach (var import in imports) foreach (var import in imports)
{ {
var conf = configs.FirstOrDefault(w => w.HospitalId == allot.HospitalId && w.Id == import.ConfigId); var conf = configs.FirstOrDefault(w => w.HospitalId == allot.HospitalId && w.Id == import.ConfigId);
if (conf != null) if (conf != null)
{ {
logger.LogDebug($"conf {JsonHelper.Serialize(conf)}");
var timeRanges = import.TimeRange.SplitRemoveEmpty(","); var timeRanges = import.TimeRange.SplitRemoveEmpty(",");
if (timeRanges == null || !timeRanges.Any()) continue; if (timeRanges == null || !timeRanges.Any()) continue;
logger.LogDebug($" timeRanges {JsonHelper.Serialize(timeRanges)}");
foreach (var item in timeRanges) foreach (var item in timeRanges)
{ {
if (item == "1") if (item == "1")
...@@ -649,11 +655,21 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs) ...@@ -649,11 +655,21 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
} }
try try
{ {
logger.LogDebug($" pairs {JsonHelper.Serialize(pairs)}");
DatabaseType type = (DatabaseType)conf.DataBaseType; DatabaseType type = (DatabaseType)conf.DataBaseType;
var connection = ConnectionBuilder.Create(type, conf.DbSource, conf.DbName, conf.DbUser, conf.DbPassword); var connection = ConnectionBuilder.Create(type, conf.DbSource, conf.DbName, conf.DbUser, conf.DbPassword);
var data = connection.Query(import.ImportScript, new DynamicParameters(pairs), commandTimeout: 60 * 60);
foreach (var key in pairs.Keys)
{
import.ImportScript = import.ImportScript.Replace(key, pairs[key].ToString());
}
logger.LogDebug($"执行导入报表SQL:{import.TableName} -- {import.ImportScript}"); logger.LogDebug($"执行导入报表SQL:{import.TableName} -- {import.ImportScript}");
logger.LogDebug($"执行导入报表SQL参数:{import.TableName} -- {JsonHelper.Serialize(pairs)}"); logger.LogDebug($"执行导入报表SQL参数:{import.TableName} -- {JsonHelper.Serialize(pairs)}");
var data = connection.Query(import.ImportScript, new DynamicParameters(pairs), commandTimeout: 60 * 60);
logger.LogDebug($"执行导入报表SQL查询完成 -- {data.Count()}");
perforPerallotRepository.ImportData(import, pairs, data); perforPerallotRepository.ImportData(import, pairs, data);
} }
catch (Exception ex) catch (Exception ex)
......
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