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,
}
}