From 2aa66d8d64fa0a5d2e7d19587be5c57232082744 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 13 Nov 2023 14:14:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8F=B7=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 44 ++++++++++ .../IService/ISerialNumberService.cs | 2 + .../Services/SerialNumberService.cs | 84 +++++++++++++++++++ .../Values/SerialNumberOperateType.cs | 25 ++++++ 4 files changed, 155 insertions(+) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 6775dda9..7f51f88b 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1875,6 +1875,9 @@ 出库 + + 入库 + 序列号操作记录 @@ -3570,6 +3573,13 @@ + + + 出库单类型转化序列号记录类型 + + + + 序列号操作记录日志 @@ -3578,6 +3588,15 @@ + + + 入库 + + + + + + 盘点单服务 @@ -3998,6 +4017,31 @@ 组装拆卸出库 + + + 采购入库 + + + + + 其他入库 + + + + + 直接调拨入库 + + + + + 分步式入库 + + + + + 组装拆卸入库 + + 非采购上架方式 diff --git a/src/WMS.Web.Domain/IService/ISerialNumberService.cs b/src/WMS.Web.Domain/IService/ISerialNumberService.cs index 93600f7f..93d45628 100644 --- a/src/WMS.Web.Domain/IService/ISerialNumberService.cs +++ b/src/WMS.Web.Domain/IService/ISerialNumberService.cs @@ -20,6 +20,8 @@ namespace WMS.Web.Domain.IService Task MoveBox(MoveBoxRecord moveBoxRecord, LoginInDto loginInfo, bool isTransaction = true); /// 出库 Task OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true); + /// 入库 + Task InStock(InStock inStock, LoginInDto loginInfo, bool isTransaction = true); /// /// 序列号操作记录 /// diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index ae3548a0..a6e44aa0 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -252,6 +252,29 @@ namespace WMS.Web.Domain.Services return SerialNumberOperateType.StktransferInst_Out; } } + /// + /// 出库单类型转化序列号记录类型 + /// + /// + /// + private SerialNumberOperateType InStockTypeConvert(InstockType type) + { + switch (type) + { + case InstockType.Purchase: + return SerialNumberOperateType.Purchase_In; + case InstockType.Assembled: + return SerialNumberOperateType.Assembled_In; + case InstockType.Miscellaneous: + return SerialNumberOperateType.Miscellaneous_In; + case InstockType.Stkdirecttransfers: + return SerialNumberOperateType.Stkdirecttransfers_In; + case InstockType.StktransferInst: + return SerialNumberOperateType.StktransferInst_In; + default: + return SerialNumberOperateType.StktransferInst_In; + } + } /// /// 序列号操作记录日志 @@ -265,5 +288,66 @@ namespace WMS.Web.Domain.Services if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReSuccess(); } + /// + /// 入库 + /// + /// + /// + /// + /// + public async Task InStock(InStock inStock, LoginInDto loginInfo, bool isTransaction = true) + { + //获取序列号信息 + var serialNumbers = new List();// inStock.Details.SelectMany(s => s.SerialNumbers).ToList(); + var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); + var boxIds = entityList.Select(s => s.BoxId).ToList(); + var boxList = await _boxRepositories.GetEntityList(boxIds); + 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) + { + var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId); + //修改序列号和箱绑定关系 + entity.InStock(inStock.BillNo); + + //记录序列号操作日志 + SerialNumberOperate op = new SerialNumberOperate() + { + MaterialId = entity.MaterialId, + SerialNumber = entity.SerialNumber, + OrgId = box.OrgId, + SupplierId = box.SupplierId, + OperateTime = DateTime.Now, + OperateType = InStockTypeConvert(inStock.Type), + OperateUser = userName, + Remark = "来源单号:" + inStock.Details.First().SourceBillNo + + "\r\n" + "入库单号:" + inStock.BillNo + + "\r\n" + "仓位号:" + "" + }; + 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(); + } } } diff --git a/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs b/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs index 83e30ac1..17c69ce4 100644 --- a/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs +++ b/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs @@ -58,5 +58,30 @@ namespace WMS.Web.Domain.Values /// [EnumRemark("组装拆卸出库")] Assembled_Out = 9, + /// + /// 采购入库 + /// + [EnumRemark("采购入库")] + Purchase_In = 10, + /// + /// 其他入库 + /// + [EnumRemark("其他入库")] + Miscellaneous_In = 11, + /// + /// 直接调拨入库 + /// + [EnumRemark("直接调拨入库")] + Stkdirecttransfers_In = 12, + /// + /// 分步式入库 + /// + [EnumRemark("分步式入库")] + StktransferInst_In = 13, + /// + /// 组装拆卸入库 + /// + [EnumRemark("组装拆卸入库")] + Assembled_In = 14, } }