// 分组汇总后校验库存数量
var listEntrySum = from p in dto.FEntity
group p by new { FStockOrgNumber = p.FStockOrgId.FNumber, FSotckNumber = p.FStockId.FNumber, FMaterialNumber = p.FMaterialID.FNumber } into g
select new
{
FStockOrgNumber = g.Key.FStockOrgNumber,
FSotckNumber = g.Key.FSotckNumber,
FMaterialNumber = g.Key.FMaterialNumber,
FQty = g.Sum(a => a.FQty)
};
//分类汇总库存
var listInventorySum = from p in kDInventoryDtos
where p.FSTOCKSTATUSNUMBER.Equals("KCZT09_SYS") || p.FSTOCKSTATUSNUMBER.Equals("KCZT01_SYS")
group p by new
{
FStockOrgNumber = p.FSTOCKORGNUMBER,
FSotckNumber = p.FSTOCKNUMBER,
FKeepNumber = p.FKEEPERNUMBER,
FOwnerNumber = p.FOWNERNUMBER,
FMaterialNumber = p.FMATERIALNUMBER
} into g
select new
{
FStockOrgNumber = g.Key.FStockOrgNumber,
FOwnerNumber = g.Key.FOwnerNumber,
FKeepNumber = g.Key.FKeepNumber,
FSotckNumber = g.Key.FSotckNumber,
FMaterialNumber = g.Key.FMaterialNumber,
FQty = g.Sum(a => a.FAVBQTY)
};
//比较数量
var listResult = from a in listEntrySum
join b in listInventorySum on
new { FStockOrgNumber = a.FStockOrgNumber, FKeepNumber= a.FStockOrgNumber, FOwnerNumber = a.FStockOrgNumber, FSotckNumber = a.FSotckNumber, FMaterialNumber = a.FMaterialNumber }
equals new { FStockOrgNumber = b.FStockOrgNumber, FKeepNumber=b.FKeepNumber, FOwnerNumber=b.FOwnerNumber, FSotckNumber = b.FSotckNumber, FMaterialNumber = b.FMaterialNumber }
where a.FQty > b.FQty
select a;