From 49687c0f50f98cbf562e88929d87a8675e8b6032 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 3 Sep 2024 10:04:03 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=A1=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/Dlhis.Middle/Packs/SqlSugarPack.cs | 14 ++-- .../Implements/DataDownloadService.cs | 82 +++++++++++-------- 2 files changed, 53 insertions(+), 43 deletions(-) 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()