导入报表数据

parent 26ddecb1
......@@ -612,6 +612,7 @@ private List<ex_result> QueryData(sys_hospitalconfig config, per_allot allot, st
/// <param name="configs"></param>
private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
{
logger.LogDebug($"从HIS抽取报表数据");
Dictionary<string, object> pairs = new Dictionary<string, object>
{
{ "@allotid", allot.ID },
......@@ -622,14 +623,19 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
var imports = repimportconfigRepository.GetEntities(w => w.ScriptType == 1);
if (imports == null || !imports.Any()) return;
logger.LogDebug($"imports {JsonHelper.Serialize(imports)}");
foreach (var import in imports)
{
var conf = configs.FirstOrDefault(w => w.HospitalId == allot.HospitalId && w.Id == import.ConfigId);
if (conf != null)
{
logger.LogDebug($"conf {JsonHelper.Serialize(conf)}");
var timeRanges = import.TimeRange.SplitRemoveEmpty(",");
if (timeRanges == null || !timeRanges.Any()) continue;
logger.LogDebug($" timeRanges {JsonHelper.Serialize(timeRanges)}");
foreach (var item in timeRanges)
{
if (item == "1")
......@@ -649,11 +655,21 @@ private void ImportData(per_allot allot, List<sys_hospitalconfig> configs)
}
try
{
logger.LogDebug($" pairs {JsonHelper.Serialize(pairs)}");
DatabaseType type = (DatabaseType)conf.DataBaseType;
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} -- {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);
}
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