diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index 3f0ac29f..c4cc0ca1 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/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs
index 1fcf9347..2b517e8e 100644
--- a/src/WMS.Web.Api/Controllers/SysConfigController.cs
+++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs
@@ -489,17 +489,18 @@ namespace WMS.Web.Api.Controllers
/// 序列号或规格型号或物料编码
/// 组织编码
/// 是否需要支持老ops条码查询
+ /// 出库回退上架 true 其他false或不传
///
[HttpGet]
[Route("GetMaterial")]
- public async Task> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false)
+ public async Task> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false, [FromQuery] bool IsIncludeDelete = false)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
_logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode}");
- var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode,IsOps);
+ var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode,IsOps, IsIncludeDelete);
if (res == null) return Result.ReFailure(ResultCodes.MateriaNoData);
_logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}");
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index 76086fa6..cfb253b0 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -670,13 +670,14 @@
必填
-
+
根据序列号或规格型号,物料编码搜索物料信息-PDA
序列号或规格型号或物料编码
组织编码
是否需要支持老ops条码查询
+ 出库回退上架 true 其他false或不传
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index eb50a7fb..64256bad 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -2117,9 +2117,9 @@
收货客户
-
+
- 是否出库
+ 是否删除
@@ -2145,6 +2145,24 @@
出库单号
+
+
+ 移箱
+
+
+
+
+
+ 出入库回退
+
+
+
+
+
+
+ 盘点
+
+
老ops序列码
@@ -2215,7 +2233,7 @@
收货客户
-
+
是否出库
diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
index f9d4f4ea..db93541f 100644
--- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
+++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
@@ -93,10 +93,10 @@ namespace WMS.Web.Domain.Entitys
[Column("CustomerId")]
public int CustomerId { get; set; } = 0;
///
- /// 是否出库
+ /// 是否删除
///
- [Column("IsOutStock")]
- public bool? IsOutStock { get; set; } = false;
+ [Column("IsDelete")]
+ public bool? IsDelete { get; set; } = false;
///
/// 操作(绑定箱信息)
@@ -132,7 +132,7 @@ namespace WMS.Web.Domain.Entitys
this.OutStockTime = DateTime.Now;
}
//标识出库
- this.IsOutStock = true;
+ this.IsDelete = true;
}
///
/// 入库
@@ -146,5 +146,44 @@ namespace WMS.Web.Domain.Entitys
this.InStockTime = DateTime.Now;
}
}
+ ///
+ /// 移箱
+ ///
+ ///
+ public void MoveBox(MoveBoxType type)
+ {
+ //拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效
+ //盘点, 整箱移货上架, 出库回退上架----序列号正常可用
+ this.IsDelete = type == MoveBoxType.Up ? false : true;
+ }
+
+ ///
+ /// 出入库回退
+ ///
+ ///
+ ///
+ public void BackRecord(BackRecordType type, int boxId)
+ {
+ //拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效
+ //盘点, 整箱移货上架, 出库回退上架----序列号正常可用
+ if (BackRecordType.OutstockOn == type)
+ {
+ this.BoxId = boxId;
+ this.IsDelete = false;
+ }
+ else
+ this.IsDelete = true;
+ }
+ ///
+ /// 盘点
+ ///
+ public void TakeStock(int boxId)
+ {
+ //拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效
+ //盘点, 整箱移货上架, 出库回退上架----序列号正常可用
+ this.BoxId = boxId;
+ this.IsDelete = false;
+ }
+
}
}
diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs
index b58de8f2..6f9ed9b5 100644
--- a/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs
+++ b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs
@@ -84,7 +84,7 @@ namespace WMS.Web.Domain.Entitys
///
/// 是否出库
///
- [Column("IsOutStock")]
- public bool? IsOutStock { get; set; } = false;
+ [Column("IsDelete")]
+ public bool? IsDelete { get; set; } = false;
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
index 6574dd2b..8ccbbf66 100644
--- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
@@ -21,7 +21,7 @@ namespace WMS.Web.Domain.Infrastructure
///
Task AddRange(List entitys, bool isTransaction = true);
//根据序列号模糊搜索信息
- Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false);
+ Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool IsIncludeDelete = false);
//根据序列号搜索信息
Task Get(string serialNumber);
/// 查询实体集合
diff --git a/src/WMS.Web.Domain/Mappers/BoxMapper.cs b/src/WMS.Web.Domain/Mappers/BoxMapper.cs
index bb8d777b..91ec5bab 100644
--- a/src/WMS.Web.Domain/Mappers/BoxMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/BoxMapper.cs
@@ -16,8 +16,7 @@ namespace WMS.Web.Domain.Mappers
{
public BoxMapper()
{
- CreateMap();
- CreateMap();
+
CreateMap();
CreateMap();
diff --git a/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs b/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs
index 660f05b7..b282b4b7 100644
--- a/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs
@@ -10,7 +10,10 @@ namespace WMS.Web.Domain.Mappers
{
public SerialNumbersMapper()
{
+ CreateMap();
+ CreateMap();
CreateMap().ReverseMap();
+ CreateMap();
}
}
}
diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs
index e12bc08a..70218b5b 100644
--- a/src/WMS.Web.Domain/Services/SerialNumberService.cs
+++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs
@@ -130,7 +130,7 @@ namespace WMS.Web.Domain.Services
var moveBoxRecord = moveBoxRecords.FirstOrDefault(f => f.BoxId == entity.BoxId);
//修改序列号和箱绑定关系
//entity.Bind(moveBoxRecord.BoxId);
-
+ entity.MoveBox(moveBoxRecord.Type);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
@@ -392,11 +392,13 @@ namespace WMS.Web.Domain.Services
if (box == null) continue;
//if (backRecord.Type == BackRecordType.InstockOff)
// entity.UnBind();
- if (backRecord.Type == BackRecordType.OutstockOn)
- {
- entity.Bind(detail.BoxId, box.CompleteCartonTime);
- entity.IsOutStock = false;//标识出库状态
- }
+
+ entity.BackRecord(backRecord.Type, detail.BoxId);
+ //if (backRecord.Type == BackRecordType.OutstockOn)
+ //{
+ // entity.Bind(detail.BoxId, box.CompleteCartonTime);
+ // entity.IsDelete = false;//解冻
+ //}
//记录序列号操作日志
@@ -477,8 +479,8 @@ namespace WMS.Web.Domain.Services
}
else
{
+ s_entity.TakeStock(takeStockDetail.BoxId);
if (s_entity.BoxId == takeStockDetail.BoxId) continue;
- s_entity.BoxId = takeStockDetail.BoxId;
var takeStock = takeStocks.FirstOrDefault(w => w.Details.FirstOrDefault(w => w.SerialNumbers.Contains(s)) != null);
//记录序列号操作日志
diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
index b2cc4aae..64afbc15 100644
--- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
+++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
@@ -224,7 +224,7 @@ namespace WMS.Web.Repositories
///
///
///
- public async Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false)
+ public async Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool IsIncludeDelete = false)
{
MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial();
@@ -243,16 +243,18 @@ namespace WMS.Web.Repositories
response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber);
return response;
}
- var entity = await _context.SerialNumbers
+ var res = _context.SerialNumbers
.GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory })
.SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory })
.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
- .FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber) && w.serial.IsOutStock != true);
+ .Where(w => serialNumber.Equals(w.serial.SerialNumber));
+ if (IsIncludeDelete == false) res = res.Where(w => w.serial.IsDelete != true);
+ var entity = await res.FirstOrDefaultAsync();
if (entity == null || entity.serial == null)
{
if (IsOps)
- return await GetSerialNumber_Ops(serialNumber);
+ return await GetSerialNumber_Ops(serialNumber, IsIncludeDelete);
else
return null;
}
@@ -276,7 +278,7 @@ namespace WMS.Web.Repositories
///
///
///
- private async Task GetSerialNumber_Ops(string serialNumber)
+ private async Task GetSerialNumber_Ops(string serialNumber, bool IsIncludeDelete = false)
{
MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial();
@@ -284,12 +286,14 @@ namespace WMS.Web.Repositories
return response;
var materials = materials_result.Data.ToList();
- var entity = await _context.SerialNumbers_Ops
+ var res = _context.SerialNumbers_Ops
//.GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory })
//.SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory })
//.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
//.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
- .FirstOrDefaultAsync(w => serialNumber.Equals(w.SerialNumber) && w.IsOutStock != true);
+ .Where(w => serialNumber.Equals(w.SerialNumber));
+ if (IsIncludeDelete == false) res = res.Where(w => w.IsDelete != true);
+ var entity = await res.FirstOrDefaultAsync();
if (entity == null) return null;
response.IsOldOps = true;
response.IsBoxInventory = true;//如果是老ops序列号 默认有库存