diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs index 6d53f73c0..448fdb114 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs @@ -332,13 +332,13 @@ public abstract class SfsCrudWithDetailsAppServiceBase [HttpPost("import")] [Consumes("multipart/form-data")] - [UnitOfWork] + //[UnitOfWork] public virtual async Task ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) { using var ms = new MemoryStream(); await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); var inputFileBytes = ms.GetAllBytes(); - var result = await ImportInternalAsync(requestInput, inputFileBytes); + var result = await ImportInternalAsync(requestInput, inputFileBytes).ConfigureAwait(false); var bytes = result.FileContents; result.FileContents = null; @@ -511,7 +511,7 @@ public abstract class SfsCrudWithDetailsAppServiceBase /// 导入数据具体实现,可重写 /// - [UnitOfWork] + //[UnitOfWork] protected virtual async Task ImportInternalAsync(SfsImportRequestInput requestInput, byte[] inputFileBytes) { IList modelList = null; @@ -684,12 +684,23 @@ public abstract class SfsCrudWithDetailsAppServiceBase p.Value == EntityState.Added).Select(p => p.Key).ToList(); - await context.BulkInsertOrUpdateAsync(addList, bulkConfig).ConfigureAwait(false); - await context.BulkInsertAsync(list).ConfigureAwait(false); + try + { + await context.BulkInsertOrUpdateAsync(addList, bulkConfig).ConfigureAwait(false); + await context.BulkInsertAsync(list).ConfigureAwait(false); + + //await _repository.InsertManyAsync(addList).ConfigureAwait(true); + //await _repository.UpdateManyAsync(dict.Where(p => p.Value == EntityState.Modified).Select(p => p.Key)).ConfigureAwait(false); + await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData>(addList), false).ConfigureAwait(false); + } + catch (Exception ex) + { + await context.Database.RollbackTransactionAsync().ConfigureAwait(false); + Logger.LogDebug($"{typeof(TEntity).Name} Created Event:{ex.Message}", null); + Console.WriteLine(ex.Source); + throw; + } - //await _repository.InsertManyAsync(addList).ConfigureAwait(true); - //await _repository.UpdateManyAsync(dict.Where(p => p.Value == EntityState.Modified).Select(p => p.Key)).ConfigureAwait(false); - await PublishCreatedAsync(addList).ConfigureAwait(false); } }