查询载具返回结果接口代码优化
This commit is contained in:
@@ -71,38 +71,29 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(a => a.carry_code == input.carry_code && a.status == 1);
|
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);
|
if (carry.IsNull()) throw new AppFriendlyException($"编号{input.carry_code},对应载具不存在或被禁用", 500);
|
||||||
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();
|
||||||
|
var mIds = carryDsLst.Select(it => it.membercarry_id).ToList();
|
||||||
|
Expression<Func<WmsCarryCode, bool>> 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<WmsCarryCode>().LeftJoin<WmsInstockH>((a, b) => a.carry_id == b.carry_id)
|
||||||
|
.Where(whereExp)
|
||||||
|
.Select((a, b) => new WmsCarryCode
|
||||||
|
{
|
||||||
|
is_check = SqlFunc.Subqueryable<WmsCarryH>().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)
|
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryDsLst?.Count > 0)
|
||||||
{
|
{
|
||||||
var mIds = carryDsLst.Select(it => it.membercarry_id).ToList();
|
|
||||||
carryCodes = await _db.Queryable<WmsCarryCode>().LeftJoin<WmsInstockH>((a, b) => a.carry_id == b.carry_id)
|
|
||||||
.Where(a => mIds.Contains(a.carry_id))
|
|
||||||
.Select((a, b) => new WmsCarryCode
|
|
||||||
{
|
|
||||||
is_check = SqlFunc.Subqueryable<WmsCarryH>().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);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
carryCodes = await _db.Queryable<WmsCarryCode>().LeftJoin<WmsInstockH>((a, b) => a.carry_id == b.carry_id)
|
|
||||||
.Where(a => a.carry_id == carry.id)
|
|
||||||
.Select((a, b) => new WmsCarryCode
|
|
||||||
{
|
|
||||||
is_check = SqlFunc.Subqueryable<WmsCarryH>().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<CarryQueryOutput>();
|
data = carry.Adapt<CarryQueryOutput>();
|
||||||
data.wmsCarryCodes = carryCodes.Adapt<List<CarryCodeQueryOutput>>();
|
data.wmsCarryCodes = carryCodes.Adapt<List<CarryCodeQueryOutput>>();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user