出库单业务逻辑修改

This commit is contained in:
2024-04-30 13:22:56 +08:00
parent 4a66ac854e
commit d0b7dae857

View File

@@ -18,6 +18,7 @@ using ZR.Service;
using ZR.Service.Utils; using ZR.Service.Utils;
using Aliyun.OSS; using Aliyun.OSS;
using Microsoft.AspNetCore.Hosting.Server; using Microsoft.AspNetCore.Hosting.Server;
using System.Numerics;
namespace ZR.Service.mes.wms namespace ZR.Service.mes.wms
{ {
@@ -687,7 +688,7 @@ namespace ZR.Service.mes.wms
// 5. 确保出最早批次 // 5. 确保出最早批次
string short_path = resultionPackage.PatchCode.Split('_')[0]; string short_path = resultionPackage.PatchCode.Split('_')[0];
// 严格规则 // 严格规则
return CheckRuleJudgmentFirstInFirstOut(shipment_num, short_path); return CheckRuleJudgmentFirstInFirstOut(shipment_num, short_path,parnumber);
/*WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>() /*WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
.Where(it => it.FkOutOrderId == shipment_num) .Where(it => it.FkOutOrderId == shipment_num)
.Where(it => it.Patchcode == short_path) .Where(it => it.Patchcode == short_path)
@@ -764,7 +765,7 @@ namespace ZR.Service.mes.wms
/// <param name="shortPackageCode">短批次号</param> /// <param name="shortPackageCode">短批次号</param>
/// <returns> "ok" 代表通过,其余返回错误提示</returns> /// <returns> "ok" 代表通过,其余返回错误提示</returns>
/// <exception cref="NotImplementedException"></exception> /// <exception cref="NotImplementedException"></exception>
public string CheckRuleJudgmentFirstInFirstOut(string shipment_num, string shortPackageCode) public string CheckRuleJudgmentFirstInFirstOut(string shipment_num, string shortPackageCode,string parnumber)
{ {
// 1.检查是否有记录 // 1.检查是否有记录
var exp1 = Expressionable.Create<WmOutOrderPlan>() var exp1 = Expressionable.Create<WmOutOrderPlan>()
@@ -779,6 +780,8 @@ namespace ZR.Service.mes.wms
return "此批次号不在出库单计划中!"; return "此批次号不在出库单计划中!";
} }
// 1.取出出库单计划 // 1.取出出库单计划
List<WmOutOrderPlan> plans = Context.Queryable<WmOutOrderPlan>() List<WmOutOrderPlan> plans = Context.Queryable<WmOutOrderPlan>()
.Where(it => it.FkOutOrderId == shipment_num) .Where(it => it.FkOutOrderId == shipment_num)
@@ -786,6 +789,11 @@ namespace ZR.Service.mes.wms
.ToList(); .ToList();
foreach (WmOutOrderPlan plan in plans) foreach (WmOutOrderPlan plan in plans)
{ {
// 不是同零件号的跳过
if (plan.MaterialCode != parnumber)
{
continue;
}
// 2.此出库单下的批次号的已出库记录 // 2.此出库单下的批次号的已出库记录
var exp2 = Expressionable.Create<WmGoodsOutRecord>() var exp2 = Expressionable.Create<WmGoodsOutRecord>()
.And(it => it.PackageCodeClient.Contains(plan.Patchcode)) .And(it => it.PackageCodeClient.Contains(plan.Patchcode))
@@ -804,6 +812,7 @@ namespace ZR.Service.mes.wms
// 按顺序检查是否出完 // 按顺序检查是否出完
if (plan.Patchcode != shortPackageCode) if (plan.Patchcode != shortPackageCode)
{ {
// 检查此批次是否出完 // 检查此批次是否出完
if (outPartnumberNum >= plan.RequireNum) if (outPartnumberNum >= plan.RequireNum)
{ {