diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index 06879f9e..b067329d 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/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 5911f79c..132599be 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -145,6 +145,11 @@
序列号集
+
+
+ 第二个序列号集
+
+
备注
@@ -746,6 +751,11 @@
序列号
+
+
+ 第二个序列号
+
+
所有枚举信息
@@ -6135,6 +6145,11 @@
序列号集
+
+
+ 第二个序列号集
+
+
箱长
@@ -6896,6 +6911,11 @@
序列号
+
+
+ 第二个序列号
+
+
备注
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 77847cee..2c741d43 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -113,6 +113,11 @@
序列号集
+
+
+ 序列号集
+
+
备注
diff --git a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs
index c4d0648b..51e38e4d 100644
--- a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs
+++ b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs
@@ -39,6 +39,13 @@ namespace WMS.Web.Core.Dto.BackRecord
///
[Required(ErrorMessage = "序列号不能为空")]
public List SerialNumbers { get; set; } = new List();
+
+ ///
+ /// 第二个序列号集
+ ///
+ //[Required(ErrorMessage = "序列号不能为空")]
+ public List TwoSerialNumbers { get; set; } = new List();
+
///
/// 备注
///
diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
index ec5c3b45..453bb16a 100644
--- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
+++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
@@ -75,5 +75,11 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
/// 序列号
///
public List SerialNumbers { get; set; } = new List();
+
+ ///
+ /// 第二个序列号
+ ///
+ public List TwoSerialNumbers { get; set; } = new List();
+
}
}
diff --git a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs
index f967a69a..869eec13 100644
--- a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs
+++ b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs
@@ -53,6 +53,11 @@ namespace WMS.Web.Core.Dto.OutStock
/// 序列号集
///
public List SerialNumbers { get; set; } = new List();
+ ///
+ /// 第二个序列号集
+ ///
+ public List TwoSerialNumbers { get; set; } = new List();
+
///
/// 箱长
///
diff --git a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs
index 1d01ea48..c319295a 100644
--- a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs
+++ b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs
@@ -64,6 +64,11 @@ namespace WMS.Web.Core.Dto.TakeStock
/// 序列号
///
public List SerialNumbers { get; set; } = new List();
+ ///
+ /// 第二个序列号
+ ///
+ public List TwoSerialNumbers { get; set; } = new List();
+
///
/// 备注
///
diff --git a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs
index 129cd0d8..cb13e535 100644
--- a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs
@@ -40,6 +40,12 @@ namespace WMS.Web.Domain.Entitys
/// 序列号集
///
public List SerialNumbers { get; set; } = new List();
+ ///
+ /// 序列号集
+ ///
+ [NotMapped]
+ public List TwoSerialNumbers { get; set; } = new List();
+
///
/// 备注
///
diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs
index 569219c6..bba0f4c0 100644
--- a/src/WMS.Web.Domain/Entitys/Box.cs
+++ b/src/WMS.Web.Domain/Entitys/Box.cs
@@ -66,13 +66,20 @@ namespace WMS.Web.Domain.Entitys
public List Details { get; set; } = new List();
//移出
- public Result Out(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list)
+ public Result Out(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list,string isNotCount)
{
foreach (var l in list)
{
+
var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber);
if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData);
- d.Qty = d.Qty - l.Qty;
+ if(isNotCount == "1")
+ {
+ }
+ else
+ {
+ d.Qty = d.Qty - l.Qty;
+ }
if (d.Qty <= 0) this.Details.Remove(d);
//foreach (var s in l.SerialNumbers) d.SerialNumbers.Remove(s);
}
@@ -80,7 +87,7 @@ namespace WMS.Web.Domain.Entitys
}
//移入
- public Result In(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list)
+ public Result In(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list,string isNotCount)
{
foreach (var l in list)
{
@@ -95,7 +102,13 @@ namespace WMS.Web.Domain.Entitys
});
continue;
}
- d.Qty = d.Qty + l.Qty;
+ if (isNotCount == "1")
+ {
+ }
+ else
+ {
+ d.Qty = d.Qty + l.Qty;
+ }
//d.SerialNumbers.AddRange(l.SerialNumbers);
}
return Result.ReSuccess();
diff --git a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs
index b257c377..a7a9b38c 100644
--- a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs
@@ -34,6 +34,13 @@ namespace WMS.Web.Domain.Entitys
///
[Column("SerialNumbers")]
public List SerialNumbers { get; set; } = new List();
+ /////
+ ///// 第二个序列号
+ /////
+ //[Column("TwoSerialNumbers")]
+ //public List TwoSerialNumbers { get; set; } = new List();
+
+
/////
///// 仓位
/////
diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
index 460e5479..ad8cffed 100644
--- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
+++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
@@ -97,6 +97,8 @@ namespace WMS.Web.Domain.Services
var destIds_boxs = await _boxInventoryRepositories.GetList(destIds);
var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList();
+ var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).ToList();
+ serialNumbers.AddRange(TwoserialNumbers);
var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
foreach (var d in dto)
{
@@ -145,14 +147,17 @@ namespace WMS.Web.Domain.Services
if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData);
foreach (var d in dto)
{
+
var l = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.SerialNumbers)).ToList();
+ var l2 = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.TwoSerialNumbers)).ToList();
var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId);
var destBox = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId);
//原箱移出
Result res;
if (srcBox != null)
{
- res = srcBox.Out(l);
+ res = srcBox.Out(l,"0");
+ res = srcBox.Out(l2,"1");
if (!res.IsSuccess) return res;
}
if (srcBox != null)
@@ -160,11 +165,35 @@ namespace WMS.Web.Domain.Services
//目标箱移入
if (!isAddBox)
{
- res = destBox.In(l);
+ res = destBox.In(l, "0");
+ res = destBox.In(l2, "1");
if (!res.IsSuccess) return res;
if (destBox != null)
boxList.Add(destBox);
}
+
+
+
+ // //var srcBox2 = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId);
+ //// var destBox2 = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId);
+ // //原箱移出
+ // Result res2;
+ // if (srcBox != null)
+ // {
+ // res2 = srcBox.Out(l2);
+ // if (!res2.IsSuccess) return res2;
+ // }
+ // if (srcBox != null)
+ // boxList.Add(srcBox);
+ // //目标箱移入
+ // if (!isAddBox)
+ // {
+ // res = destBox.In(l);
+ // if (!res.IsSuccess) return res;
+ // if (destBox != null)
+ // boxList.Add(destBox);
+ // }
+
}
List list = new List();
@@ -180,6 +209,7 @@ namespace WMS.Web.Domain.Services
foreach (var d in dt.Details)
{
ChangeBoxRecord entity = new ChangeBoxRecord();
+ d.SerialNumbers.AddRange(d.TwoSerialNumbers);
entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialNumber, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId);
//entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取
if (subStock_s != null)
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index 85e2593d..254e10a4 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -600,17 +600,27 @@ namespace WMS.Web.Domain.Services
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
}
- if (x.TwoSerialNumbers != null)
- {
- x.SerialNumbers.AddRange(x.TwoSerialNumbers);
- }
+ //if (x.TwoSerialNumbers != null)
+ //{
+ // x.SerialNumbers.AddRange(x.TwoSerialNumbers);
+ //}
});
}
+ else
+ {
+ entity.Details.ForEach(x =>
+ {
+ if (x.TwoSerialNumbers != null)
+ {
+ x.SerialNumbers.AddRange(x.TwoSerialNumbers);
+ }
+ });
+ }
- //5.1保存入库单信息
- entity = await _inStockRepositories.Add(entity, isTransaction);
+ //5.1保存入库单信息
+ entity = await _inStockRepositories.Add(entity, isTransaction);
if (entity == null)
return Result.ReFailure(ResultCodes.DateWriteError);
diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs
index 50cbcb05..c6200d73 100644
--- a/src/WMS.Web.Domain/Services/OutStockService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockService.cs
@@ -188,6 +188,7 @@ namespace WMS.Web.Domain.Services
outd.Qty = qty;
outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.SerialNumbers));
+ outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.TwoSerialNumbers));
entity.Details.Add(outd);
}
entity.Create(loginInfo.UserInfo.StaffId, outStockTask, dto.Method);
diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs
index 63ad8ee5..cfa4e788 100644
--- a/src/WMS.Web.Domain/Services/SerialNumberService.cs
+++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs
@@ -327,7 +327,7 @@ namespace WMS.Web.Domain.Services
//serialNumbers.AddRange(twoserialNumbers);
////add by yzh
var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
- var TwoentityList = await _serialNumbersRepositories.GetEntityList(TwoserialNumbers);
+ // var TwoentityList = await _serialNumbersRepositories.GetEntityList(TwoserialNumbers);
var boxIds = inStock.Details.Select(s => s.BoxId).ToList();
var boxList = await _boxRepositories.GetEntityList(boxIds);
var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId);
@@ -338,11 +338,11 @@ namespace WMS.Web.Domain.Services
bool isRollback = false;
bool isSuccess = true;
List sList = new List();
- // boxId = 0;
+ var boxId = 0;
foreach (var entity in entityList)
{
- int boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0;
+ boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0;
var box = boxList.FirstOrDefault(f => f.Id == boxId);
var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber);
var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode + inStock.StockCode + inStock.OrgCode);
@@ -372,7 +372,7 @@ namespace WMS.Web.Domain.Services
//{
// foreach (var entity in TwoentityList)
// {
- // var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0;
+ // //var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0;
// var box = boxList.FirstOrDefault(f => f.Id == boxId);
// var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber);
// var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode + inStock.StockCode + inStock.OrgCode);
@@ -429,6 +429,8 @@ namespace WMS.Web.Domain.Services
{
//获取序列号信息
var serialNumbers = backRecord.Details.SelectMany(s => s.SerialNumbers).ToList();
+ var TwoserialNumbers = backRecord.Details.SelectMany(s => s.TwoSerialNumbers).ToList();
+ serialNumbers.AddRange(TwoserialNumbers);
var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
var boxIds = backRecord.Details.Select(s => s.BoxId).ToList();
var boxList = await _boxRepositories.GetEntityList(boxIds);
@@ -442,7 +444,7 @@ namespace WMS.Web.Domain.Services
List sList = new List();
foreach (var entity in entityList)
{
- var detail = backRecord.Details.FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber));
+ var detail = backRecord.Details.FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber)||w.TwoSerialNumbers.Contains(entity.SerialNumber));
if (detail == null) continue;
var box = boxList.FirstOrDefault(f => f.Id == detail.BoxId);
if (box == null) continue;
diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs
index 80a2220e..813fd100 100644
--- a/src/WMS.Web.Domain/Services/TakeStockService.cs
+++ b/src/WMS.Web.Domain/Services/TakeStockService.cs
@@ -386,12 +386,14 @@ namespace WMS.Web.Domain.Services
{
List list = new List();
var sNs = dto.SelectMany(s => s.SerialNumbers).ToList();
+ //var TwosNs = dto.SelectMany(s => s.TwoSerialNumbers).ToList();
+ //sNs.AddRange(TwosNs);
var entityList = await _serialNumberRepositories.GetEntityList(sNs);
foreach (var s in sNs)
{
var entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s));
if (entity == null) continue;
- var d = dto.FirstOrDefault(f => f.SerialNumbers.Contains(s));
+ var d = dto.FirstOrDefault(f => f.SerialNumbers.Contains(s));
if (d.BoxId != entity.BoxId)
{
list.Add(new SerialNumbersBoxInventoryDto()
@@ -402,6 +404,29 @@ namespace WMS.Web.Domain.Services
});
}
}
+
+
+
+ var TwosNs = dto.SelectMany(s => s.TwoSerialNumbers).ToList();
+ var TwoentityList = await _serialNumberRepositories.GetEntityList(TwosNs);
+ foreach (var s in TwosNs)
+ {
+ var entity = entityList.FirstOrDefault(f => f.TwoSerialNumber.Contains(s));
+ if (entity == null) continue;
+ var d = dto.FirstOrDefault(f => f.TwoSerialNumbers.Contains(s));
+ if (d.BoxId != entity.BoxId)
+ {
+ list.Add(new SerialNumbersBoxInventoryDto()
+ {
+ BoxId = entity.BoxId,
+ MaterialNumber = d.MaterialNumber,
+ SerialNumber = s
+ });
+ }
+ }
+
+
+
return list;
}
///