出库单计划:发运清单

物料清单:发运单
数据对应完成,交由客户测试
This commit is contained in:
赵正易 2024-03-28 15:36:38 +08:00
parent d78f810f42
commit de15bc289a
3 changed files with 17 additions and 13 deletions

View File

@ -13,7 +13,7 @@ namespace ZR.Admin.WebApi.Controllers
/// <summary>
/// 出库货物记录表
/// </summary>
[Verify]
// [Verify]
[Route("/mes/wm/WmGoodsOutProduction")]
public class WmGoodsOutProductionController : BaseController
{

View File

@ -29,12 +29,11 @@ namespace ZR.Service.mes.wms
{
int total = 0;
var predicate = Expressionable.Create<WmGoodsOutRecord>()
.AndIF(!string.IsNullOrEmpty(parm.Partnumber),it=>it.Partnumber.Contains(parm.Partnumber))
.AndIF(!string.IsNullOrEmpty(parm.PackageCodeClient),it=>it.PackageCodeClient.Contains(parm.PackageCodeClient))
.AndIF(!string.IsNullOrEmpty(parm.LocationCode),it=>it.LocationCode.Contains(parm.LocationCode))
.AndIF(!string.IsNullOrEmpty(parm.FkOutOrderId),it=>it.FkOutOrderId.Contains(parm.FkOutOrderId))
.AndIF(!string.IsNullOrEmpty(parm.Partnumber), wgo => wgo.Partnumber.Contains(parm.Partnumber))
.AndIF(!string.IsNullOrEmpty(parm.PackageCodeClient), wgo => wgo.PackageCodeClient.Contains(parm.PackageCodeClient))
.AndIF(!string.IsNullOrEmpty(parm.LocationCode), wgo => wgo.LocationCode.Contains(parm.LocationCode))
.AndIF(!string.IsNullOrEmpty(parm.FkOutOrderId), wgo => wgo.FkOutOrderId.Contains(parm.FkOutOrderId))
;
var response = Queryable()
.LeftJoin<WmMaterial>((wgo, wml) => wgo.Partnumber == wml.Partnumber)
.Where(predicate.ToExpression())

View File

@ -275,7 +275,7 @@ namespace ZR.Service.mes.wms
//现有零件数
int? num = Context.Queryable<WmGoodsNowProduction>()
.Where(it => it.Partnumber == stock.Partnumber)
.Sum(it => it.GoodsNumLogic);
.Sum(it => it.GoodsNumAction);
stock.ItemNum = num ?? 0;
}
}
@ -311,14 +311,18 @@ namespace ZR.Service.mes.wms
// 该物料下 ,现有货物列表,零件号相同,根据批次号从小到大排序
List<WmGoodsNowProduction> wmGoodsNowsList = Context.Queryable<WmGoodsNowProduction>()
.Where(it => it.Partnumber == partnumber)
.OrderByDescending(it => it.PackageCodeClient)
.OrderBy(it => it.PackageCodeClient)
.ToList();
// 计算批次零件总数
//int totalPartnumberNum = Context.Queryable<WmGoodsNowProduction>()
//.Where(it => it.Partnumber == partnumber)
//.Sum(it => it.GoodsNumAction) ?? 0;
// 判断要出多少批次的货
List<WmOutOrderPlan> wmOutOrderPlans = new List<WmOutOrderPlan>();
// 当前累计批次货物总数
int accumulation_num = 0;
foreach (var witem in wmGoodsNowsList)
{
// 当前累计批次货物总数
int accumulation_num = 0;
if (require_num >= accumulation_num)
{
WmOutOrderPlan orderPlan = new WmOutOrderPlan();
@ -328,7 +332,8 @@ namespace ZR.Service.mes.wms
orderPlan.MaterialCode = witem.Partnumber;
orderPlan.WarehouseCode = witem.LocationCode;
orderPlan.PackageNum = material.PackageNum;
orderPlan.PartnumberNum = material.ItemNum;
// 获得批次的总零件数
orderPlan.PartnumberNum = witem.GoodsNumAction;
orderPlan.RequireNum = require_num;
orderPlan.Patchtime = Resolution_bath(witem.PackageCodeOriginal);
wmOutOrderPlans.Add(orderPlan);
@ -344,12 +349,12 @@ namespace ZR.Service.mes.wms
WmOutOrderPlan
{
FkOutOrderId = g.Max(p => p.FkOutOrderId),
Patchcode = g.Max(p => p.Patchcode),
Patchcode = g.Max(p => p.Patchcode_short),
Patchcode_short = g.Max(p => p.Patchcode_short),
WarehouseCode = g.Max(p => p.WarehouseCode),
MaterialCode = g.Max(p => p.MaterialCode),
PackageNum = g.Count(),
PartnumberNum = g.Max(p => p.PartnumberNum),
PartnumberNum = g.Sum(p=>p.PartnumberNum),
RequireNum = g.Max(p => p.RequireNum),
Patchtime = g.Max(p => p.Patchtime),
}).ToList();