优化WmsFeedingService 代码
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using JNPF.DependencyInjection;
|
using JNPF.DependencyInjection;
|
||||||
@@ -40,40 +41,28 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
dicMaterial = await _db.Queryable<BasMaterial>().ToDictionaryAsync(x => x.id, x => x.name);
|
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<CarryCodeDetailOutput> items = new();
|
||||||
|
List<string> carryMIds = new();
|
||||||
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
|
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
|
||||||
{
|
{
|
||||||
var carryDs = await _db.Queryable<WmsCarryD>().Where(it=>it.carry_id == carryId).ToListAsync();
|
var carryDs = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == carryId).ToListAsync();
|
||||||
var carryMIds = carryDs.Select(x=>x.membercarry_id).ToList();
|
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();
|
|
||||||
}
|
|
||||||
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>();
|
return items ?? Enumerable.Empty<dynamic>();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user