diff --git a/Src/Dlhis.Middle/Packs/SqlSugarPack.cs b/Src/Dlhis.Middle/Packs/SqlSugarPack.cs index 54fe458d..89e24c61 100644 --- a/Src/Dlhis.Middle/Packs/SqlSugarPack.cs +++ b/Src/Dlhis.Middle/Packs/SqlSugarPack.cs @@ -139,12 +139,12 @@ public class SqlSugarPack : BaseAppPack public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) { - // using var scope = app.ApplicationServices.CreateScope(); - // var db = scope.ServiceProvider.GetService(); - // - // db.Client.DbMaintenance.CreateDatabase(); - // db.Client.CodeFirst.InitTables(); - // db.Client.CodeFirst.InitTables(); - // db.Client.CodeFirst.InitTables(); + using var scope = app.ApplicationServices.CreateScope(); + var db = scope.ServiceProvider.GetService(); + + db.Client.DbMaintenance.CreateDatabase(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); } } \ No newline at end of file diff --git a/Src/Dlhis.Middle/Services/Implements/DataDownloadService.cs b/Src/Dlhis.Middle/Services/Implements/DataDownloadService.cs index cafa3607..c9498000 100644 --- a/Src/Dlhis.Middle/Services/Implements/DataDownloadService.cs +++ b/Src/Dlhis.Middle/Services/Implements/DataDownloadService.cs @@ -39,48 +39,58 @@ public class DataDownloadService : IDataDownloadService var factories = factory.Split(','); - await TruncateAsync(); - - foreach (var item in factories) + await _dbContext.Client.Ado.BeginTranAsync(); + try { - _logger.LogInformation("正在下载{factory}", item); - if (!await _dbContext.Queryable().AnyAsync()) + await TruncateAsync(); + + foreach (var item in factories) { - await DownloadAsync(item); - } - - await DownloadAsync(item); - await DownloadAsync(item); - - await DownloadAsync(item); - await DownloadAsync(item); - await DownloadAsync(item); - await DownloadAsync(item); - - if (!await _dbContext.Queryable().Where(x => x.Factory == item).AnyAsync()) - { - await DownloadAsync(item); - } - - if (!await _dbContext.Queryable().AnyAsync()) - { - foreach (var currentItem in factories) + _logger.LogInformation("正在下载{factory}", item); + if (!await _dbContext.Queryable().AnyAsync()) { - await DownloadAsync(currentItem); + await DownloadAsync(item); + } + + await DownloadAsync(item); + await DownloadAsync(item); + + await DownloadAsync(item); + await DownloadAsync(item); + await DownloadAsync(item); + await DownloadAsync(item); + + if (!await _dbContext.Queryable().Where(x => x.Factory == item).AnyAsync()) + { + await DownloadAsync(item); + } + + if (!await _dbContext.Queryable().AnyAsync()) + { + foreach (var currentItem in factories) + { + await DownloadAsync(currentItem); + } } } - } - _logger.LogInformation("部门{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("设备{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("设备注册信息{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("营业点{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("营业点餐别{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("营业点餐别对照{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("营业点餐别餐次对照{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("档案{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("余额{count}", await _dbContext.Queryable().CountAsync()); - _logger.LogInformation("下载完成"); + _logger.LogInformation("部门{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("设备{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("设备注册信息{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("营业点{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("营业点餐别{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("营业点餐别对照{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("营业点餐别餐次对照{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("档案{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("余额{count}", await _dbContext.Queryable().CountAsync()); + _logger.LogInformation("下载完成"); + await _dbContext.Client.Ado.CommitTranAsync(); + } + catch (Exception e) + { + await _dbContext.Client.Ado.RollbackTranAsync(); + throw; + } } public async Task DownloadAsync(string factory) where T : class, new()