diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index bacba7be..b840e9b4 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -510,6 +510,17 @@ namespace WMS.Web.Api.Controllers _logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 查询状态 {serialStatus}"); var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0); if (res == null) return Result.ReFailure(ResultCodes.MateriaNoData); + /* + 以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功; + 不存在的序列号提示:产品信息不存在 + 非采购上架 改箱 (非激活的或者(激活被冻结)) 1 + 出库回退上架 (激活被冻结) 2 + */ + if (serialStatus == 1 || serialStatus == 2) + { + if (res.IsDelete != true) + return Result.ReFailure(ResultCodes.SerialNumbersIsShelf); + } _logger.LogInformation($"请求序列号信息结果:{res.MaterialNumber}"); return Result.ReSuccess(res); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 3729ffa6..9c04f3e0 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4419,6 +4419,16 @@ 是否是老Ops条码 + + + 是否冻结 + + + + + 是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活) + + 物料对应的仓位有哪些 diff --git a/src/WMS.Web.Core/Dto/MaterialResponse.cs b/src/WMS.Web.Core/Dto/MaterialResponse.cs index 28f39480..35794cf7 100644 --- a/src/WMS.Web.Core/Dto/MaterialResponse.cs +++ b/src/WMS.Web.Core/Dto/MaterialResponse.cs @@ -53,5 +53,13 @@ namespace WMS.Web.Core.Dto /// 是否是老Ops条码 /// public bool IsOldOps { get; set; } = false; + /// + /// 是否冻结 + /// + public bool? IsDelete { get; set; } = false; + /// + /// 是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活) + /// + public bool? IsActivate { get; set; } = false; } } diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 4bf79e8b..c8cdf1a6 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -87,6 +87,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple TakeStockStockError = (610001, "一次不能盘多个仓库"); public static ValueTuple TakeStockErpSubStockError = (610005, "HD或GD仓时子仓库必填"); public static ValueTuple TakeStockBoxError = (610004, "一次只能盘一个箱"); + public static ValueTuple SerialNumbersIsShelf = (610006, "序列号已上架入库"); public static ValueTuple SubscribeNotificationNoData = (700001, "订阅通知信息不存在"); } diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index 2ab150d5..97ee310f 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -250,10 +250,11 @@ namespace WMS.Web.Repositories .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) .Where(w => serialNumber.Equals(w.serial.SerialNumber)); //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); + //因为要 1和2的情况 要区分提示 所以条件扩大 然后根据具体的情况提示 + //if (serialStatus == 1) + // res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true)); + if (serialStatus == 2) + res = res.Where(w => w.serial.IsActivate == true); else if (serialStatus == 3) res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true); @@ -271,6 +272,8 @@ namespace WMS.Web.Repositories response.SubStockCode = entity?.boxInventory?.SubStockCode ?? ""; response.StockCode = entity?.boxInventory?.StockCode ?? ""; response.SerialNumber = entity.serial.SerialNumber; + response.IsDelete = entity.serial.IsDelete; + response.IsActivate = entity.serial.IsActivate; response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber); response.MaterialNumber = entity.serial.MaterialNumber; response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber); @@ -301,10 +304,11 @@ namespace WMS.Web.Repositories .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) .Where(w => serialNumber.Equals(w.serial.SerialNumber)); //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); + //因为要 1和2的情况 要区分提示 所以条件扩大 然后根据具体的情况提示 + //if (serialStatus == 1) + // res = res.Where(w => w.serial.IsActivate != true || (w.serial.IsActivate == true && w.serial.IsDelete == true)); + if (serialStatus == 2) + res = res.Where(w => w.serial.IsActivate == true); else if (serialStatus == 3) res = res.Where(w => w.serial.IsActivate == true && w.serial.IsDelete != true); var entity = await res.FirstOrDefaultAsync(); @@ -316,6 +320,8 @@ namespace WMS.Web.Repositories response.SubStockCode = entity?.boxInventory?.SubStockCode ?? ""; response.StockCode = entity?.boxInventory?.StockCode ?? ""; response.SerialNumber = entity.serial.SerialNumber; + response.IsDelete = entity.serial.IsDelete; + response.IsActivate = entity.serial.IsActivate; response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber); response.MaterialNumber = entity.serial.MaterialNumber; response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber);