diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 0efbd29f..163dcc66 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/BarCodeController.cs b/src/WMS.Web.Api/Controllers/BarCodeController.cs index be8e0eff..822e0d46 100644 --- a/src/WMS.Web.Api/Controllers/BarCodeController.cs +++ b/src/WMS.Web.Api/Controllers/BarCodeController.cs @@ -76,7 +76,10 @@ namespace WMS.Web.Api.Controllers //找到需要删除的箱子 var deleteBoxIds = boxs.Where(w => !inBoxBillNo.Contains(w.BoxBillNo)).Select(s => s.Id).ToList(); if (deleteBoxIds.Count() == 0) return Result>.ReSuccess(inBoxBillNo); - var deleteBoxBillNos = boxs.Where(w => deleteBoxIds.Contains(w.Id)).Select(s => s.BoxBillNo).ToList(); + var deleteBoxs = boxs.Where(w => deleteBoxIds.Contains(w.Id)).ToList(); + //软删除 + deleteBoxs.ForEach(f => f.Delete()); + var deleteBoxBillNos = deleteBoxs.Select(s => s.BoxBillNo).ToList(); _logger.LogInformation($"重置的箱号:{JsonConvert.SerializeObject(deleteBoxBillNos)}"); //执行数据库 IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); @@ -88,7 +91,7 @@ namespace WMS.Web.Api.Controllers if (!res_Rollback) { //删除箱信息 - isSuccess = await _boxRepositories.DeleteEntityList(deleteBoxIds, false); + isSuccess = await _boxRepositories.EditEntityList(deleteBoxs, false); if (!isSuccess) res_Rollback = true; } isSuccess = _transactionRepositories.CommitTransaction(res_Rollback, _transaction); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 1b2a8316..96930288 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -168,6 +168,11 @@ 创建时间(对应老OPS的创建时间) + + + 是否删除 ops供应链重新装箱后软删除 + + 明细 @@ -204,6 +209,11 @@ + + + 软删除 + + 老ops箱信息明细 diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs index cee95ee5..569219c6 100644 --- a/src/WMS.Web.Domain/Entitys/Box.cs +++ b/src/WMS.Web.Domain/Entitys/Box.cs @@ -55,6 +55,10 @@ namespace WMS.Web.Domain.Entitys /// 创建时间(对应老OPS的创建时间) /// public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 是否删除 ops供应链重新装箱后软删除 + /// + public bool? IsDelete { get; set; } = false; /// /// 明细 @@ -191,5 +195,13 @@ namespace WMS.Web.Domain.Entitys return Result.ReSuccess(); } + /// + /// 软删除 + /// + public void Delete() + { + this.IsDelete = true; + this.Details.Clear(); + } } } diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs index bc88b741..2b1575e5 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs @@ -33,7 +33,5 @@ namespace WMS.Web.Domain.Infrastructure Task> GetEntityList(List ids); Task> GetEntityListByNos(List billNos); - //批量删除 - Task DeleteEntityList(List boxIds, bool isTransaction = true); } } diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs index 02c5aab0..ec3206a2 100644 --- a/src/WMS.Web.Repositories/BoxRepositories.cs +++ b/src/WMS.Web.Repositories/BoxRepositories.cs @@ -77,7 +77,7 @@ namespace WMS.Web.Repositories public async Task Get(int id) { var entity = await _context.Box.Include(x => x.Details) - .FirstOrDefaultAsync(f => f.Id.Equals(id)); + .FirstOrDefaultAsync(f => f.Id.Equals(id) && f.IsDelete != true); return entity.Clone(); } @@ -88,7 +88,7 @@ namespace WMS.Web.Repositories /// public async Task> GetBox(List BoxBillNos) { - var list = await _context.Box.Include(x => x.Details).Where(f => BoxBillNos.Contains(f.BoxBillNo.ToLower())).ToListAsync(); + var list = await _context.Box.Include(x => x.Details).Where(f => BoxBillNos.Contains(f.BoxBillNo.ToLower()) && f.IsDelete != true).ToListAsync(); var resList = _mapper.Map>(list); var materials_result = await _erpService.BillQueryForMaterial(); @@ -153,14 +153,14 @@ namespace WMS.Web.Repositories public async Task GetByNo(string billNo) { var entity = await _context.Box.Include(x => x.Details) - .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(billNo)); + .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(billNo) && f.IsDelete != true); return entity.Clone(); } public async Task> GetEntityListByNos(List billNos) { var entity = await _context.Box.Include(x => x.Details) - .Where(f => billNos.Contains(f.BoxBillNo)).ToListAsync(); + .Where(f => billNos.Contains(f.BoxBillNo) && f.IsDelete != true).ToListAsync(); return entity.Clone(); } @@ -168,7 +168,7 @@ namespace WMS.Web.Repositories public async Task> GetByNos(List billNos) { return await _context.Box - .Where(w => billNos.Contains(w.BoxBillNo)).Select(s => s.BoxBillNo).ToListAsync(); + .Where(w => billNos.Contains(w.BoxBillNo) && w.IsDelete != true).Select(s => s.BoxBillNo).ToListAsync(); } public async Task AddRange(List entitys, bool isTransaction = true) @@ -203,41 +203,11 @@ namespace WMS.Web.Repositories { var res = await _context.Box .Include(s => s.Details) - .Where(f => ids.Contains(f.Id)) + .Where(f => ids.Contains(f.Id) && f.IsDelete != true) .ToListAsync(); return res.Clone(); } - /// - /// 批量删除 - /// - /// - /// - /// - /// - public async Task DeleteEntityList(List boxIds, bool isTransaction = true) - { - IDbContextTransaction _transaction = null; - if (isTransaction) - _transaction = _context.Database.BeginTransaction(); - try - { - var res = await _context.Box - .Include(s => s.Details) - .Where(f => boxIds.Contains(f.Id)).ToListAsync(); - - _context.Box.RemoveRange(res); - await _context.SaveChangesAsync(); - if (_transaction != null) - _transaction.Commit(); - } - catch (Exception ex) - { - if (_transaction != null) - _transaction.Rollback(); - return false; - } - return true; - } + } }