diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index 1fcf9347..70fc9855 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -489,10 +489,11 @@ 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 IsOutBackRecord = false) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 76086fa6..ba77e729 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.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 6574dd2b..a730c2a7 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 isOutBackRecord = false); //根据序列号搜索信息 Task Get(string serialNumber); /// 查询实体集合 diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index b2cc4aae..d2ac4997 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 isOutBackRecord = 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 (isOutBackRecord == false) res = res.Where(w => w.serial.IsOutStock != true); + var entity = await res.FirstOrDefaultAsync(); if (entity == null || entity.serial == null) { if (IsOps) - return await GetSerialNumber_Ops(serialNumber); + return await GetSerialNumber_Ops(serialNumber, isOutBackRecord); 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 isOutBackRecord = 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 (isOutBackRecord == false) res = res.Where(w => w.IsOutStock != true); + var entity = await res.FirstOrDefaultAsync(); if (entity == null) return null; response.IsOldOps = true; response.IsBoxInventory = true;//如果是老ops序列号 默认有库存