Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2023-08-22 14:59:55 +08:00

View File

@@ -72,9 +72,10 @@ namespace Tnb.WarehouseMgr
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(a => a.carry_code == input.carry_code && a.status == 1);
if (carry.IsNull()) throw new AppFriendlyException($"编号{input.carry_code},对应载具不存在或被禁用", 500);
var carryDsLst = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == carry.id).ToListAsync();
var mIds = carryDsLst.Select(it => it.membercarry_id).ToList();
var mCarryIdDic = carryDsLst.ToDictionary(x => x.membercarry_id, x => x.membercarry_code);
//var mIds = mCarryIdDic.Keys;
Expression<Func<WmsCarryCode, bool>> whereExp = carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0
? a => mIds.Contains(a.carry_id)
? a => mCarryIdDic.Keys.Contains(a.carry_id)
: a => a.carry_id == carry.id;
var carryCodes = await _db.Queryable<WmsCarryCode>().LeftJoin<WmsInstockH>((a, b) => a.carry_id == b.carry_id)
@@ -88,11 +89,17 @@ namespace Tnb.WarehouseMgr
.ToListAsync();
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0)
{
if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空", 500);
for (int i = 0, cnt = mIds.Count; i < cnt; i++)
if (carryCodes.Count < mCarryIdDic.Keys.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空", 500);
var i = 0;
foreach (var (_, v) in mCarryIdDic)
{
carryCodes[i].member_carrycode = carryDsLst.Find(x => x.membercarry_id == mIds[i])?.membercarry_code ?? string.Empty;
carryCodes[i].member_carrycode = v ?? string.Empty;
i++;
}
//for (int i = 0, cnt = mCarryIdDic.Keys.Count; i < cnt; i++)
//{
// carryCodes[i].member_carrycode = carryDsLst.Find(x => x.membercarry_id == mIds[i])?.membercarry_code ?? string.Empty;
//}
}
data = carry.Adapt<CarryQueryOutput>();
data.wmsCarryCodes = carryCodes.Adapt<List<CarryCodeQueryOutput>>();