调整序列码状态
This commit is contained in:
@@ -491,18 +491,24 @@ namespace WMS.Web.Api.Controllers
|
|||||||
/// <param name="serialNumber">序列号或规格型号或物料编码</param>
|
/// <param name="serialNumber">序列号或规格型号或物料编码</param>
|
||||||
/// <param name="orgCode">组织编码</param>
|
/// <param name="orgCode">组织编码</param>
|
||||||
/// <param name="IsOps">是否需要支持老ops条码查询</param>
|
/// <param name="IsOps">是否需要支持老ops条码查询</param>
|
||||||
/// <param name="IsIncludeDelete">出库回退上架 true 其他false或不传</param>
|
/// <param name="serialStatus">
|
||||||
|
/// 盘点 所有的序列号 0或者不传
|
||||||
|
/// 非采购上架 改箱 (非激活的或者(激活被冻结)) 1
|
||||||
|
/// 出库回退上架 (激活被冻结) 2
|
||||||
|
/// 入库回退下架 (激活非冻结) 3
|
||||||
|
/// 出库 (激活非冻结) 3
|
||||||
|
/// </param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("GetMaterial")]
|
[Route("GetMaterial")]
|
||||||
public async Task<Result<MaterialResponse>> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false, [FromQuery] bool IsIncludeDelete = false)
|
public async Task<Result<MaterialResponse>> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false, [FromQuery] int? serialStatus = 0)
|
||||||
{
|
{
|
||||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
return Result<MaterialResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
return Result<MaterialResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
|
|
||||||
_logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 是否包含冻结 {IsIncludeDelete}");
|
_logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 查询状态 {serialStatus}");
|
||||||
var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, IsIncludeDelete);
|
var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0);
|
||||||
if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||||
|
|
||||||
_logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}");
|
_logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}");
|
||||||
|
|||||||
@@ -670,14 +670,20 @@
|
|||||||
<param name="boxBillNo">必填</param>
|
<param name="boxBillNo">必填</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterial(System.String,System.String,System.Boolean,System.Boolean)">
|
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterial(System.String,System.String,System.Boolean,System.Nullable{System.Int32})">
|
||||||
<summary>
|
<summary>
|
||||||
根据序列号或规格型号,物料编码搜索物料信息-PDA
|
根据序列号或规格型号,物料编码搜索物料信息-PDA
|
||||||
</summary>
|
</summary>
|
||||||
<param name="serialNumber">序列号或规格型号或物料编码</param>
|
<param name="serialNumber">序列号或规格型号或物料编码</param>
|
||||||
<param name="orgCode">组织编码</param>
|
<param name="orgCode">组织编码</param>
|
||||||
<param name="IsOps">是否需要支持老ops条码查询</param>
|
<param name="IsOps">是否需要支持老ops条码查询</param>
|
||||||
<param name="IsIncludeDelete">出库回退上架 true 其他false或不传</param>
|
<param name="serialStatus">
|
||||||
|
盘点 所有的序列号 0或者不传
|
||||||
|
非采购上架 改箱 (非激活的或者(激活被冻结)) 1
|
||||||
|
出库回退上架 (激活被冻结) 2
|
||||||
|
入库回退下架 (激活非冻结) 3
|
||||||
|
出库 (激活非冻结) 3
|
||||||
|
</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterialList(System.String)">
|
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterialList(System.String)">
|
||||||
|
|||||||
@@ -2142,6 +2142,11 @@
|
|||||||
是否删除
|
是否删除
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers.IsActivate">
|
||||||
|
<summary>
|
||||||
|
是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.Bind(System.Int32,System.DateTime)">
|
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.Bind(System.Int32,System.DateTime)">
|
||||||
<summary>
|
<summary>
|
||||||
操作(绑定箱信息)
|
操作(绑定箱信息)
|
||||||
@@ -2178,7 +2183,7 @@
|
|||||||
<param name="type"></param>
|
<param name="type"></param>
|
||||||
<param name="boxId"></param>
|
<param name="boxId"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.TakeStock(System.Int32)">
|
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.TakeStock(System.Int32,WMS.Web.Domain.Values.TakeStockType)">
|
||||||
<summary>
|
<summary>
|
||||||
盘点
|
盘点
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2258,6 +2263,11 @@
|
|||||||
是否出库
|
是否出库
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.IsActivate">
|
||||||
|
<summary>
|
||||||
|
是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Entitys.SubscribeNotification">
|
<member name="T:WMS.Web.Domain.Entitys.SubscribeNotification">
|
||||||
<summary>
|
<summary>
|
||||||
订阅通知信息
|
订阅通知信息
|
||||||
|
|||||||
@@ -97,6 +97,11 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
///</summary>
|
///</summary>
|
||||||
[Column("IsDelete")]
|
[Column("IsDelete")]
|
||||||
public bool? IsDelete { get; set; } = false;
|
public bool? IsDelete { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活)
|
||||||
|
///</summary>
|
||||||
|
[Column("IsActivate")]
|
||||||
|
public bool? IsActivate { get; set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 操作(绑定箱信息)
|
/// 操作(绑定箱信息)
|
||||||
@@ -140,6 +145,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// <param name="inStockBillNo">出库单号</param>
|
/// <param name="inStockBillNo">出库单号</param>
|
||||||
public void InStock(string inStockBillNo, InstockType type)
|
public void InStock(string inStockBillNo, InstockType type)
|
||||||
{
|
{
|
||||||
|
this.IsActivate = true;
|
||||||
if (type == InstockType.Purchase)
|
if (type == InstockType.Purchase)
|
||||||
{
|
{
|
||||||
this.PurchaseBillNo = inStockBillNo;
|
this.PurchaseBillNo = inStockBillNo;
|
||||||
@@ -168,6 +174,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
//盘点, 整箱移货上架, 出库回退上架----序列号正常可用
|
//盘点, 整箱移货上架, 出库回退上架----序列号正常可用
|
||||||
if (BackRecordType.OutstockOn == type)
|
if (BackRecordType.OutstockOn == type)
|
||||||
{
|
{
|
||||||
|
this.IsActivate = true;
|
||||||
this.BoxId = boxId;
|
this.BoxId = boxId;
|
||||||
this.IsDelete = false;
|
this.IsDelete = false;
|
||||||
}
|
}
|
||||||
@@ -177,12 +184,14 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 盘点
|
/// 盘点
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void TakeStock(int boxId)
|
public void TakeStock(int boxId, TakeStockType type)
|
||||||
{
|
{
|
||||||
//拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效
|
//拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效
|
||||||
//盘点, 整箱移货上架, 出库回退上架----序列号正常可用
|
//盘点, 整箱移货上架, 出库回退上架----序列号正常可用
|
||||||
this.BoxId = boxId;
|
this.BoxId = boxId;
|
||||||
this.IsDelete = false;
|
//盘亏被冻结 盘盈反冻结
|
||||||
|
this.IsDelete = type == TakeStockType.Profit ? true : false;
|
||||||
|
this.IsActivate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,5 +86,10 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
///</summary>
|
///</summary>
|
||||||
[Column("IsDelete")]
|
[Column("IsDelete")]
|
||||||
public bool? IsDelete { get; set; } = false;
|
public bool? IsDelete { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活)
|
||||||
|
///</summary>
|
||||||
|
[Column("IsActivate")]
|
||||||
|
public bool? IsActivate { get; set; } = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace WMS.Web.Domain.Infrastructure
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> AddRange(List<SerialNumbers> entitys, bool isTransaction = true);
|
Task<bool> AddRange(List<SerialNumbers> entitys, bool isTransaction = true);
|
||||||
//根据序列号模糊搜索信息
|
//根据序列号模糊搜索信息
|
||||||
Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool IsIncludeDelete = false);
|
Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0);
|
||||||
//根据序列号搜索信息
|
//根据序列号搜索信息
|
||||||
Task<SerialNumbersResponse> Get(string serialNumber);
|
Task<SerialNumbersResponse> Get(string serialNumber);
|
||||||
/// 查询实体集合
|
/// 查询实体集合
|
||||||
|
|||||||
@@ -461,7 +461,9 @@ namespace WMS.Web.Domain.Services
|
|||||||
foreach (var s in serialNumbers)
|
foreach (var s in serialNumbers)
|
||||||
{
|
{
|
||||||
var takeStockDetail = takeStocks.SelectMany(s => s.Details).FirstOrDefault(w => w.SerialNumbers.Contains(s));
|
var takeStockDetail = takeStocks.SelectMany(s => s.Details).FirstOrDefault(w => w.SerialNumbers.Contains(s));
|
||||||
|
|
||||||
if (takeStockDetail == null) continue;
|
if (takeStockDetail == null) continue;
|
||||||
|
|
||||||
var box = boxList.FirstOrDefault(f => f.Id == takeStockDetail.BoxId);
|
var box = boxList.FirstOrDefault(f => f.Id == takeStockDetail.BoxId);
|
||||||
var s_entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s));
|
var s_entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s));
|
||||||
if (box != null && box.Details.FirstOrDefault(f => f.MaterialNumber == takeStockDetail.MaterialNumber) == null)
|
if (box != null && box.Details.FirstOrDefault(f => f.MaterialNumber == takeStockDetail.MaterialNumber) == null)
|
||||||
@@ -479,10 +481,11 @@ namespace WMS.Web.Domain.Services
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s_entity.TakeStock(takeStockDetail.BoxId);
|
var takeStock = takeStocks.FirstOrDefault(w => w.Details.FirstOrDefault(w => w.SerialNumbers.Contains(s)) != null);
|
||||||
|
s_entity.TakeStock(takeStockDetail.BoxId, takeStock.ResultType);
|
||||||
if (s_entity.BoxId == takeStockDetail.BoxId) continue;
|
if (s_entity.BoxId == takeStockDetail.BoxId) continue;
|
||||||
|
|
||||||
var takeStock = takeStocks.FirstOrDefault(w => w.Details.FirstOrDefault(w => w.SerialNumbers.Contains(s)) != null);
|
|
||||||
//记录序列号操作日志
|
//记录序列号操作日志
|
||||||
SerialNumberOperate op = new SerialNumberOperate()
|
SerialNumberOperate op = new SerialNumberOperate()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="serialNumbers"></param>
|
/// <param name="serialNumbers"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool IsIncludeDelete = false)
|
public async Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0)
|
||||||
{
|
{
|
||||||
MaterialResponse response = new MaterialResponse();
|
MaterialResponse response = new MaterialResponse();
|
||||||
var materials_result = await _erpService.BillQueryForMaterial();
|
var materials_result = await _erpService.BillQueryForMaterial();
|
||||||
@@ -249,12 +249,19 @@ namespace WMS.Web.Repositories
|
|||||||
.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
|
.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 })
|
.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
|
||||||
.Where(w => serialNumber.Equals(w.serial.SerialNumber));
|
.Where(w => serialNumber.Equals(w.serial.SerialNumber));
|
||||||
if (IsIncludeDelete == false) res = res.Where(w => w.serial.IsDelete != true);
|
//0:所有 1 非激活的或者(激活被冻结) 2 激活被冻结 3 激活非冻结
|
||||||
|
if (serialStatus == 1)
|
||||||
|
res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true));
|
||||||
|
else if (serialStatus == 2)
|
||||||
|
res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete == true);
|
||||||
|
else if (serialStatus == 3)
|
||||||
|
res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true);
|
||||||
|
|
||||||
var entity = await res.FirstOrDefaultAsync();
|
var entity = await res.FirstOrDefaultAsync();
|
||||||
if (entity == null || entity.serial == null)
|
if (entity == null || entity.serial == null)
|
||||||
{
|
{
|
||||||
if (IsOps)
|
if (IsOps)
|
||||||
return await GetSerialNumber_Ops(serialNumber, IsIncludeDelete);
|
return await GetSerialNumber_Ops(serialNumber, serialStatus);
|
||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -279,7 +286,7 @@ namespace WMS.Web.Repositories
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="serialNumbers"></param>
|
/// <param name="serialNumbers"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<MaterialResponse> GetSerialNumber_Ops(string serialNumber, bool IsIncludeDelete = false)
|
private async Task<MaterialResponse> GetSerialNumber_Ops(string serialNumber, int serialStatus = 0)
|
||||||
{
|
{
|
||||||
MaterialResponse response = new MaterialResponse();
|
MaterialResponse response = new MaterialResponse();
|
||||||
var materials_result = await _erpService.BillQueryForMaterial();
|
var materials_result = await _erpService.BillQueryForMaterial();
|
||||||
@@ -293,7 +300,13 @@ namespace WMS.Web.Repositories
|
|||||||
.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
|
.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 })
|
.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
|
||||||
.Where(w => serialNumber.Equals(w.serial.SerialNumber));
|
.Where(w => serialNumber.Equals(w.serial.SerialNumber));
|
||||||
if (IsIncludeDelete == false) res = res.Where(w => w.serial.IsDelete != true);
|
//0:所有 1 非激活的或者(激活被冻结) 2 激活被冻结 3 激活非冻结
|
||||||
|
if (serialStatus == 1)
|
||||||
|
res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true));
|
||||||
|
else if (serialStatus == 2)
|
||||||
|
res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete == true);
|
||||||
|
else if (serialStatus == 3)
|
||||||
|
res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true);
|
||||||
var entity = await res.FirstOrDefaultAsync();
|
var entity = await res.FirstOrDefaultAsync();
|
||||||
if (entity == null) return null;
|
if (entity == null) return null;
|
||||||
response.IsOldOps = true;
|
response.IsOldOps = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user