优化WmsFeedingService 代码
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using JNPF.DependencyInjection;
|
||||
@@ -40,41 +41,29 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
dicMaterial = await _db.Queryable<BasMaterial>().ToDictionaryAsync(x => x.id, x => x.name);
|
||||
}
|
||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it=>it.id == carryId);
|
||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
||||
List<CarryCodeDetailOutput> items = new();
|
||||
List<string> carryMIds = new();
|
||||
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
|
||||
{
|
||||
var carryDs = await _db.Queryable<WmsCarryD>().Where(it=>it.carry_id == carryId).ToListAsync();
|
||||
var carryMIds = carryDs.Select(x=>x.membercarry_id).ToList();
|
||||
items = await _db.Queryable<WmsCarryCode>().Where(a => carryMIds.Contains(a.carry_id))
|
||||
.Select(a => new CarryCodeDetailOutput
|
||||
{
|
||||
barcode = a.barcode,
|
||||
code_batch = a.code_batch!,
|
||||
codeqty = a.codeqty,
|
||||
material_code = a.material_code,
|
||||
material_id = a.material_id,
|
||||
unit_id = a.unit_id,
|
||||
})
|
||||
.Mapper(it => it.material_name = dicMaterial.ContainsKey(it.material_id) ? dicMaterial[it.material_id].ToString()! : "")
|
||||
.ToListAsync();
|
||||
var carryDs = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == carryId).ToListAsync();
|
||||
carryMIds = carryDs.Select(x => x.membercarry_id).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
items = await _db.Queryable<WmsCarryCode>().Where(a => a.carry_id == carryId)
|
||||
.Select(a => new CarryCodeDetailOutput
|
||||
{
|
||||
barcode = a.barcode,
|
||||
code_batch = a.code_batch!,
|
||||
codeqty = a.codeqty,
|
||||
material_code = a.material_code,
|
||||
material_id = a.material_id,
|
||||
unit_id = a.unit_id,
|
||||
})
|
||||
.Mapper(it => it.material_name = dicMaterial.ContainsKey(it.material_id) ? dicMaterial[it.material_id].ToString()! : "")
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
Expression<Func<WmsCarryCode, bool>> whereExp = carryMIds?.Count > 0 ? a => carryMIds.Contains(a.carry_id) : a => a.carry_id == carryId;
|
||||
items = await _db.Queryable<WmsCarryCode>().Where(whereExp)
|
||||
.Select(a => new CarryCodeDetailOutput
|
||||
{
|
||||
barcode = a.barcode,
|
||||
code_batch = a.code_batch!,
|
||||
codeqty = a.codeqty,
|
||||
material_code = a.material_code,
|
||||
material_id = a.material_id,
|
||||
unit_id = a.unit_id,
|
||||
})
|
||||
.Mapper(it => it.material_name = (it.material_id != null && dicMaterial.ContainsKey(it.material_id)) ? dicMaterial[it.material_id].ToString() : "")
|
||||
.ToListAsync();
|
||||
|
||||
|
||||
return items ?? Enumerable.Empty<dynamic>();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user