From ac2ded7dbc8794226a7412d75c7b3ccd3ad4ae95 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 21 Aug 2023 17:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BD=BD=E5=85=B7=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=BB=93=E6=9E=9C=E6=8E=A5=E5=8F=A3=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WmsCarryQueryService.cs | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs index 16ddf2d2..4f2f562f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs @@ -71,38 +71,29 @@ namespace Tnb.WarehouseMgr { var carry = await _db.Queryable().FirstAsync(a => a.carry_code == input.carry_code && a.status == 1); if (carry.IsNull()) throw new AppFriendlyException($"编号{input.carry_code},对应载具不存在或被禁用", 500); - List carryCodes = new(); var carryDsLst = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync(); + var mIds = carryDsLst.Select(it => it.membercarry_id).ToList(); + Expression> whereExp = carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0 + ? a => mIds.Contains(a.carry_id) + : a => a.carry_id == carry.id; + + var carryCodes = await _db.Queryable().LeftJoin((a, b) => a.carry_id == b.carry_id) + .Where(whereExp) + .Select((a, b) => new WmsCarryCode + { + is_check = SqlFunc.Subqueryable().Where(it => it.id == a.carry_id).Select(it => it.is_check), + instock_time = b.create_time, + }, true) + .Mapper(a => a.check_conclusion = a.is_check == 1 ? "合格" : "不合格") + .ToListAsync(); if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0) { - var mIds = carryDsLst.Select(it => it.membercarry_id).ToList(); - carryCodes = await _db.Queryable().LeftJoin((a, b) => a.carry_id == b.carry_id) - .Where(a => mIds.Contains(a.carry_id)) - .Select((a, b) => new WmsCarryCode - { - is_check = SqlFunc.Subqueryable().Where(it => it.id == a.carry_id).Select(it=>it.is_check), - instock_time = b.create_time, - }, true) - .Mapper(a => a.check_conclusion = a.is_check == 1 ? "合格" : "不合格") - .ToListAsync(); if (carryCodes.Count < mIds.Count) throw new AppFriendlyException("载具条码数据异常,有料箱为空", 500); 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; } } - else - { - carryCodes = await _db.Queryable().LeftJoin((a, b) => a.carry_id == b.carry_id) - .Where(a => a.carry_id == carry.id) - .Select((a, b) => new WmsCarryCode - { - is_check = SqlFunc.Subqueryable().Where(it => it.id == a.carry_id).Select(it => it.is_check), - instock_time = b.create_time, - }, true) - .Mapper(a => a.check_conclusion = a.is_check == 1 ? "合格" : "不合格") - .ToListAsync(); - } data = carry.Adapt(); data.wmsCarryCodes = carryCodes.Adapt>(); }