PDA-出库,添加出库计划查看功能

This commit is contained in:
2024-04-25 17:35:01 +08:00
parent f88c6826c1
commit cae2643a41
4 changed files with 172 additions and 11 deletions

View File

@@ -39,6 +39,13 @@ namespace ZR.Service.mes.wms.IService
bool OverOutorderplan(string shipment_num);
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
List<WmOutPlanAndGoodsOutProductionNumDto> GetOutOrderPlanAndOutProductionNum(string shipment_num, string partnumber);
// 检查是否可出库
string CheckProductionOut(string parnumber,string production_packcode, string shipment_num);

View File

@@ -17,6 +17,7 @@ using Infrastructure.Model;
using ZR.Service;
using ZR.Service.Utils;
using Aliyun.OSS;
using Microsoft.AspNetCore.Hosting.Server;
namespace ZR.Service.mes.wms
{
@@ -553,6 +554,79 @@ namespace ZR.Service.mes.wms
}
return resultionPackage.ProductionTime;
}
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
public List<WmOutPlanAndGoodsOutProductionNumDto> GetOutOrderPlanAndOutProductionNum(string shipment_num, string partnumber)
{
try
{
List<WmOutPlanAndGoodsOutProductionNumDto> result = new();
// 当前工单出库计划
var exp = Expressionable.Create<WmOutOrderPlan>()
.And(it => it.FkOutOrderId == shipment_num)
.AndIF(!string.IsNullOrEmpty(partnumber),it => it.MaterialCode == partnumber)
.ToExpression();
List<WmOutOrderPlan> wmOutOrderPlan = Context.Queryable<WmOutOrderPlan>()
.Where(exp)
.OrderBy(it => it.Outorder)
.ToList();
// 查询每个计划具体出库数据
foreach (WmOutOrderPlan item in wmOutOrderPlan)
{
// 库存记录
List<WmGoodsNowProduction> nowProductionList = Context.Queryable<WmGoodsNowProduction>()
.Where(it => it.PackageCodeClient.Contains(item.Patchcode))
.ToList();
int nowPackageNum = 0;
int nowPartnumberNum = 0;
foreach (WmGoodsNowProduction outItem in nowProductionList)
{
nowPackageNum += 1;
nowPartnumberNum += (int)outItem.GoodsNumAction;
}
// 出库记录
List<WmGoodsOutRecord> outPackageList = Context.Queryable<WmGoodsOutRecord>()
.Where(it => it.PackageCodeClient.Contains(item.Patchcode))
.ToList();
int outPackageNum = 0;
int outPartnumberNum = 0;
foreach (WmGoodsOutRecord outItem in outPackageList)
{
outPackageNum += 1;
outPartnumberNum += (int)outItem.GoodsNumAction;
}
WmMaterial material = Context.Queryable<WmMaterial>()
.Where(it => it.Partnumber.Contains(item.MaterialCode))
.First();
WmOutPlanAndGoodsOutProductionNumDto newItem = new()
{
OutOrder = (int)item.Outorder,
PackageCode = item.Patchcode,
Partnumber = item.MaterialCode,
Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName,
WarehouseCode = item.WarehouseCode,
RequireNum = (int)item.RequireNum,
PackageNum = (int)nowPackageNum,
PartnumberNum = (int)nowPartnumberNum,
PackagePlanNum = (int)item.PackageNum,
PartnumberPlanNum = (int)item.PartnumberNum,
OutPackageNum = outPackageNum,
OutPartnumberNum = outPartnumberNum,
IsError = (nowPartnumberNum + outPartnumberNum) != item.PartnumberNum,
IsOver = outPartnumberNum == item.PartnumberNum
};
result.Add(newItem);
}
return result;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 检查是否可出库
@@ -669,7 +743,6 @@ namespace ZR.Service.mes.wms
return result;
}
}
}