载具查询接口,新增判空条件判断
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="$(SolutionDir)\common.props" />
|
<Import Project="$(SolutionDir)\common.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -70,13 +70,14 @@ namespace Tnb.WarehouseMgr
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.carry_code == input.carry_code);
|
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.carry_code == input.carry_code);
|
||||||
|
if (carry.IsNull()) throw new AppFriendlyException($"编号{input.carry_code},对应载具不存在", 500);
|
||||||
List<WmsCarryCode> carryCodes = new();
|
List<WmsCarryCode> carryCodes = new();
|
||||||
var carryDsLst = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == carry.id).ToListAsync();
|
var carryDsLst = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == carry.id).ToListAsync();
|
||||||
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0)
|
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0)
|
||||||
{
|
{
|
||||||
var mIds = carryDsLst.Select(it => it.membercarry_id).ToList();
|
var mIds = carryDsLst.Select(it => it.membercarry_id).ToList();
|
||||||
carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => mIds.Contains(it.carry_id)).ToListAsync();
|
carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => mIds.Contains(it.carry_id)).ToListAsync();
|
||||||
if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空",500);
|
if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空", 500);
|
||||||
for (int i = 0, cnt = mIds.Count; i < cnt; i++)
|
for (int i = 0, cnt = mIds.Count; i < cnt; i++)
|
||||||
{
|
{
|
||||||
carryCodes[i].member_carrycode = carryDsLst.Find(x => x.membercarry_id == mIds[i])?.membercarry_code ?? string.Empty;
|
carryCodes[i].member_carrycode = carryDsLst.Find(x => x.membercarry_id == mIds[i])?.membercarry_code ?? string.Empty;
|
||||||
@@ -92,7 +93,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
await _db.Ado.RollbackTranAsync();
|
await _db.Ado.RollbackTranAsync();
|
||||||
throw ;
|
throw;
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
if (details.Count > 0 && carryCodes.Count > 0)
|
if (details.Count > 0 && carryCodes.Count > 0)
|
||||||
{
|
{
|
||||||
var locTypes = new[] { ((int)EnumLocationType.出库库位).ToString(), ((int)EnumLocationType.出入库位).ToString() };
|
var locTypes = new[] { ((int)EnumLocationType.出库库位).ToString(), ((int)EnumLocationType.出入库位).ToString() };
|
||||||
var endLocs = await _db.Queryable<BasLocation>().Where(it => it.wh_id == input.data[nameof(WmsCheckstockH.warehouse_id)].ToString() && locTypes.Contains(it.is_type)).ToListAsync();
|
var endLocs = await _db.Queryable<BasLocation>().Where(it => it.wh_id == input.data[nameof(WmsCheckstockH.warehouse_id)].ToString() && locTypes.Contains(it.is_type)).ToArrayAsync();
|
||||||
var randomIndex = new Random().Next(0, endLocs.Count - 1);
|
var randomIndex = new Random().Next(0, endLocs.GetUpperBound(0));
|
||||||
var carrys = await _db.Queryable<WmsCarryH>().Where(it => carryCodes.Select(x => x.carry_id).Distinct().Contains(it.id)).ToListAsync();
|
var carrys = await _db.Queryable<WmsCarryH>().Where(it => carryCodes.Select(x => x.carry_id).Distinct().Contains(it.id)).ToListAsync();
|
||||||
var curDetails = details.DistinctBy(x => x.carry_id).ToList();
|
var curDetails = details.DistinctBy(x => x.carry_id).ToList();
|
||||||
var curCarryCodes = carryCodes.FindAll(x => curDetails.Select(d => d.carry_id).Contains(x.carry_id));
|
var curCarryCodes = carryCodes.FindAll(x => curDetails.Select(d => d.carry_id).Contains(x.carry_id));
|
||||||
|
|||||||
Reference in New Issue
Block a user