From f889ac91dbcc6e98fdcf271b5d06ca051592577e Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Sat, 11 Nov 2023 16:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=A2=9E=E5=8A=A0=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8F=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 43 +++++++----- src/WMS.Web.Domain/Entitys/OutStockDetails.cs | 5 ++ .../IService/ISerialNumberService.cs | 17 ++--- .../ISerialNumbersRepositories.cs | 2 + .../Services/ChangeMoveBoxService.cs | 5 +- .../Services/OutStockService.cs | 6 +- .../Services/SerialNumberService.cs | 65 +++++++++++++++++-- .../SerialNumbersRepositories.cs | 9 +++ 8 files changed, 117 insertions(+), 35 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index cdfd9c08..2d27d07a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -831,6 +831,11 @@ 物料Id + + + 序列号 + + 仓库 @@ -1636,6 +1641,9 @@ 查询实体集合 + + 根据箱Id查询集合 + 修改实体集合 @@ -1804,19 +1812,13 @@ - - 操作序列号(移箱等) - - - - + 改箱 - - - 操作序列号(出库操作) - - 序列号 - + + 移箱 + + + 出库 @@ -3414,11 +3416,22 @@ - + - 操作序列号(出库操作) + 移箱 - + + + + + + + + 出库 + + + + diff --git a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs index cceb3b52..76c3a5e1 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs @@ -38,6 +38,11 @@ namespace WMS.Web.Domain.Entitys [Column("MaterialId")] public int MaterialId { get; set; } /// + /// 序列号 + /// + [Column("SerialNumbers")] + public List SerialNumbers { get; set; } = new List(); + /// /// 仓库 /// [Column("StockCode")] diff --git a/src/WMS.Web.Domain/IService/ISerialNumberService.cs b/src/WMS.Web.Domain/IService/ISerialNumberService.cs index f5d9fcdc..93600f7f 100644 --- a/src/WMS.Web.Domain/IService/ISerialNumberService.cs +++ b/src/WMS.Web.Domain/IService/ISerialNumberService.cs @@ -14,19 +14,12 @@ namespace WMS.Web.Domain.IService /// public interface ISerialNumberService { - /// - /// 操作序列号(移箱等) - /// - /// - /// - /// + /// 改箱 Task ChangeBox(List changeBoxRecords, LoginInDto loginInfo, bool isTransaction = true); - /// - /// 操作序列号(出库操作) - /// - /// 序列号 - /// - Task OutStock(List serialNumbers, bool isTransaction = true); + /// 移箱 + Task MoveBox(MoveBoxRecord moveBoxRecord, LoginInDto loginInfo, bool isTransaction = true); + /// 出库 + Task OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true); /// /// 序列号操作记录 /// diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 7ede98ee..3521118c 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -23,6 +23,8 @@ namespace WMS.Web.Domain.Infrastructure Task GetSerialNumber(string serialNumber); /// 查询实体集合 Task> GetEntityList(List serialNumbers); + /// 根据箱Id查询集合 + Task> GetEntityListByBoxId(int boxId); /// 修改实体集合 Task EditEntityList(List entitys, bool isTransaction = true); } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 438698b3..accb5e9b 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -89,7 +89,7 @@ namespace WMS.Web.Domain.Services isSuccess = await _changeBoxRecordRepositories.AddRange(list, false); if (!isSuccess) isRollback = true; var res_change = await _serialNumberService.ChangeBox(list, loginInfo, false); - if(!res_change.IsSuccess) isRollback = true; + if (!res_change.IsSuccess) isRollback = true; isSuccess = await _boxRepositories.EditEntityList(boxList, false); if (!isSuccess) isRollback = true; @@ -122,7 +122,8 @@ namespace WMS.Web.Domain.Services bool isSuccess = true; entity = await _moveBoxRecordRepositories.Add(entity, true); if (entity == null) isRollback = true; - + var res_change = await _serialNumberService.MoveBox(entity, loginInfo, false); + if (!res_change.IsSuccess) isRollback = true; //提交事务 isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); if (!isSuccess) diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 5e8fb87f..9b6b22ce 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -71,7 +71,8 @@ namespace WMS.Web.Domain.Services var outd = _mapper.Map(tDetail); - outd.Qty = outd.Qty + d.Qty; + outd.Qty = d.Qty; + outd.SerialNumbers = d.SerialNumbers; entity.Details.Add(outd); } @@ -85,7 +86,8 @@ namespace WMS.Web.Domain.Services entity = await _outStockRepositories.Add(entity, false); if (entity == null) isRollback = true; - + outStockTask = await _outStockTaskRepositories.Edit(outStockTask, false); + if (outStockTask == null) isRollback = true; //提交事务 isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); if (!isSuccess) diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index a744af2d..73adc4c5 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -94,15 +94,72 @@ namespace WMS.Web.Domain.Services return Result.ReSuccess(); } /// - /// 操作序列号(出库操作) + /// 移箱 /// - /// + /// + /// + /// /// - public Task OutStock(List serialNumbers, bool isTransaction = true) + public async Task MoveBox(MoveBoxRecord moveBoxRecord, LoginInDto loginInfo, bool isTransaction = true) + { + //获取序列号信息 + var entityList = await _serialNumbersRepositories.GetEntityListByBoxId(moveBoxRecord.BoxId); + var box = await _boxRepositories.Get(moveBoxRecord.BoxId); + var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId); + + IDbContextTransaction _transaction = null; + if (isTransaction) + _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isSuccess = true; + List sList = new List(); + foreach (var entity in entityList) + { + //修改序列号和箱绑定关系 + entity.Operate(moveBoxRecord.BoxId); + + //记录序列号操作日志 + SerialNumberOperate op = new SerialNumberOperate() + { + MaterialId = entity.MaterialId, + SerialNumber = entity.SerialNumber, + OrgId = box.OrgId, + SupplierId = box.SupplierId, + OperateTime = DateTime.Now, + OperateType = SerialNumberOperateType.MoveBox, + OperateUser = userName, + Remark = "箱号:" + box.BoxBillNo + }; + sList.Add(op); + } + isSuccess = await _serialNumbersRepositories.EditEntityList(entityList, false); + //序列号操作记录 + var res = await this.SerialNumberOperate(sList, false); + //提交事务 + if (isTransaction) + { + if (!isSuccess) isRollback = true; + if (!res.Success) isRollback = true; + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + } + if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); + if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + /// + /// 出库 + /// + /// + /// + /// + /// + public Task OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true) { throw new NotImplementedException(); } - /// /// 序列号操作记录日志 /// diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index a0e97928..4a3af79e 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -106,6 +106,15 @@ namespace WMS.Web.Repositories return res.Clone(); } + public async Task> GetEntityListByBoxId(int boxId) + { + var res = await _context.SerialNumbers + .Where(f => f.BoxId==boxId) + .ToListAsync(); + + return res.Clone(); + } + /// /// 根据序列号 ///