修复bug

This commit is contained in:
18942506660
2024-04-07 16:12:57 +08:00
parent c21c98bf0f
commit 235ca654e8
4 changed files with 16 additions and 10 deletions

View File

@@ -489,10 +489,11 @@ 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="IsOutBackRecord">出库回退上架 true 其他false或不传</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) public async Task<Result<MaterialResponse>> 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"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)

View File

@@ -670,13 +670,14 @@
<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)"> <member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterial(System.String,System.String,System.Boolean,System.Boolean)">
<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="IsOutBackRecord">出库回退上架 true 其他false或不传</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)">

View File

@@ -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); Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool isOutBackRecord = false);
//根据序列号搜索信息 //根据序列号搜索信息
Task<SerialNumbersResponse> Get(string serialNumber); Task<SerialNumbersResponse> Get(string serialNumber);
/// 查询实体集合 /// 查询实体集合

View File

@@ -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) public async Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false, bool isOutBackRecord = false)
{ {
MaterialResponse response = new MaterialResponse(); MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
@@ -243,16 +243,18 @@ namespace WMS.Web.Repositories
response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber); response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, material.MaterialNumber);
return response; 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 }) .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 }) .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 }) .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 })
.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 (entity == null || entity.serial == null)
{ {
if (IsOps) if (IsOps)
return await GetSerialNumber_Ops(serialNumber); return await GetSerialNumber_Ops(serialNumber, isOutBackRecord);
else else
return null; return null;
} }
@@ -276,7 +278,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) private async Task<MaterialResponse> GetSerialNumber_Ops(string serialNumber, bool isOutBackRecord = false)
{ {
MaterialResponse response = new MaterialResponse(); MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
@@ -284,12 +286,14 @@ namespace WMS.Web.Repositories
return response; return response;
var materials = materials_result.Data.ToList(); 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 }) //.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 }) //.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 }) //.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 })
.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; if (entity == null) return null;
response.IsOldOps = true; response.IsOldOps = true;
response.IsBoxInventory = true;//如果是老ops序列号 默认有库存 response.IsBoxInventory = true;//如果是老ops序列号 默认有库存