1111
This commit is contained in:
@@ -446,8 +446,11 @@ namespace ZR.Service.mes.wms
|
|||||||
{
|
{
|
||||||
foreach (var item in doMaterialOut.PatchCode)
|
foreach (var item in doMaterialOut.PatchCode)
|
||||||
{
|
{
|
||||||
//TODO 保证 同一出货单下 同一物料下最早批次
|
/*
|
||||||
|
*
|
||||||
|
* #region 保证 同一出货单下 同一物料下最早批次
|
||||||
// 取出同一出货单下 同一物料下 未满箱的最早批次
|
// 取出同一出货单下 同一物料下 未满箱的最早批次
|
||||||
|
|
||||||
string short_patch = item.Split("_")[0];
|
string short_patch = item.Split("_")[0];
|
||||||
WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
|
WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
|
||||||
.Where(it => it.FkOutOrderId == shipnumber)
|
.Where(it => it.FkOutOrderId == shipnumber)
|
||||||
@@ -467,58 +470,47 @@ namespace ZR.Service.mes.wms
|
|||||||
}
|
}
|
||||||
if (plan_earliest.Id == plan_item.Id)
|
if (plan_earliest.Id == plan_item.Id)
|
||||||
{
|
{
|
||||||
|
#endregion
|
||||||
|
|
||||||
// TODO 每次出库要出库计划累加
|
|
||||||
|
|
||||||
Context.Updateable<WmOutOrderPlan>()
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// TODO 每次出库要出库计划累加
|
||||||
|
|
||||||
|
Context.Updateable<WmOutOrderPlan>()
|
||||||
.SetColumns(it => it.ReceivedPackNum == it.ReceivedPackNum + 1)
|
.SetColumns(it => it.ReceivedPackNum == it.ReceivedPackNum + 1)
|
||||||
.Where(it => it.FkOutOrderId == shipnumber)
|
.Where(it => it.FkOutOrderId == shipnumber)
|
||||||
.Where(it => it.Patchcode == item)
|
.Where(it => it.Patchcode == item)
|
||||||
.ExecuteCommand();
|
.ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
WmGoodsOutRecord record = new WmGoodsOutRecord();
|
WmGoodsOutRecord record = new WmGoodsOutRecord();
|
||||||
record.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
record.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
||||||
|
|
||||||
WmGoodsNowProduction nowProduction = Context.Queryable<WmGoodsNowProduction>()
|
|
||||||
.Where(it => it.PackageCodeClient == item).First();
|
|
||||||
|
|
||||||
if (nowProduction != null)
|
|
||||||
{
|
|
||||||
record.FkNowProductionId = nowProduction.Id;
|
|
||||||
record.PackageCodeClient = nowProduction.PackageCodeClient;
|
|
||||||
record.PackageCode = nowProduction.PackageCode;
|
|
||||||
record.PackageCodeOriginal = nowProduction.PackageCodeOriginal;
|
|
||||||
record.LocationCode = nowProduction.LocationCode;
|
|
||||||
record.Partnumber = nowProduction.Partnumber;
|
|
||||||
record.GoodsNumLogic = nowProduction.GoodsNumLogic;
|
|
||||||
record.GoodsNumAction = nowProduction.GoodsNumAction;
|
|
||||||
record.EntryWarehouseTime = nowProduction.EntryWarehouseTime;
|
|
||||||
record.OutTime = DateTime.Now;
|
|
||||||
record.CreatedTime = DateTime.Now;
|
|
||||||
record.CreatedBy = Createby;
|
|
||||||
record.FkOutOrderId = shipnumber;
|
|
||||||
sum_insert = Context.Insertable(record).ExecuteCommand();
|
|
||||||
sum_delete += Context.Deleteable<WmGoodsNowProduction>()
|
|
||||||
.Where(it => it.PackageCodeClient == item)
|
|
||||||
.ExecuteCommand();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 不在最早批次内
|
|
||||||
return (200, 200);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
WmGoodsNowProduction nowProduction = Context.Queryable<WmGoodsNowProduction>()
|
||||||
|
.Where(it => it.PackageCodeClient == item).First();
|
||||||
|
|
||||||
|
if (nowProduction != null)
|
||||||
|
{
|
||||||
|
record.FkNowProductionId = nowProduction.Id;
|
||||||
|
record.PackageCodeClient = nowProduction.PackageCodeClient;
|
||||||
|
record.PackageCode = nowProduction.PackageCode;
|
||||||
|
record.PackageCodeOriginal = nowProduction.PackageCodeOriginal;
|
||||||
|
record.LocationCode = nowProduction.LocationCode;
|
||||||
|
record.Partnumber = nowProduction.Partnumber;
|
||||||
|
record.GoodsNumLogic = nowProduction.GoodsNumLogic;
|
||||||
|
record.GoodsNumAction = nowProduction.GoodsNumAction;
|
||||||
|
record.EntryWarehouseTime = nowProduction.EntryWarehouseTime;
|
||||||
|
record.OutTime = DateTime.Now;
|
||||||
|
record.CreatedTime = DateTime.Now;
|
||||||
|
record.CreatedBy = Createby;
|
||||||
|
record.FkOutOrderId = shipnumber;
|
||||||
|
sum_insert = Context.Insertable(record).ExecuteCommand();
|
||||||
|
sum_delete += Context.Deleteable<WmGoodsNowProduction>()
|
||||||
|
.Where(it => it.PackageCodeClient == item)
|
||||||
|
.ExecuteCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (sum_delete, sum_insert);
|
return (sum_delete, sum_insert);
|
||||||
@@ -600,13 +592,44 @@ namespace ZR.Service.mes.wms
|
|||||||
// 4.获取出库单号对应的出库计划
|
// 4.获取出库单号对应的出库计划
|
||||||
List<WmOutOrderPlan> orderPlans = Generate_outorderplan(shipment_num);
|
List<WmOutOrderPlan> orderPlans = Generate_outorderplan(shipment_num);
|
||||||
// 5.配对是否符合出库条件
|
// 5.配对是否符合出库条件
|
||||||
foreach (var orderPlan in orderPlans)
|
//foreach (var orderPlan in orderPlans)
|
||||||
|
//{
|
||||||
|
// // 存在匹配条件: 箱标签批次号包含计划短批次号
|
||||||
|
// if (orderPlan != null && resultionPackage.PatchCode.Contains(orderPlan.Patchcode_short))
|
||||||
|
// {
|
||||||
|
// return "ok";
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
// 5. 确保出最早批次
|
||||||
|
string short_path = resultionPackage.PatchCode.Split('_')[0];
|
||||||
|
|
||||||
|
WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
|
||||||
|
.Where(it => it.FkOutOrderId == shipment_num)
|
||||||
|
.Where(it => it.Patchcode == short_path)
|
||||||
|
.OrderBy(it => it.Outorder)
|
||||||
|
.First();
|
||||||
|
|
||||||
|
if (plan_item != null)
|
||||||
{
|
{
|
||||||
// 存在匹配条件: 箱标签批次号包含计划短批次号
|
var plan_earliest = Context.Queryable<WmOutOrderPlan>()
|
||||||
if (orderPlan != null && resultionPackage.PatchCode.Contains(orderPlan.Patchcode_short))
|
.Where(it => it.FkOutOrderId == shipment_num)
|
||||||
|
.Where(it => it.MaterialCode == plan_item.MaterialCode)
|
||||||
|
.Where(it => it.PackageNum > it.ReceivedPackNum)
|
||||||
|
.OrderBy(it => it.Outorder)
|
||||||
|
.First();
|
||||||
|
//已经出库完成,没有可以出库的了
|
||||||
|
if (plan_earliest == null)
|
||||||
|
{
|
||||||
|
return "此物料已经全部出库完成,无法继续出库";
|
||||||
|
}
|
||||||
|
if (plan_earliest.Id == plan_item.Id)
|
||||||
{
|
{
|
||||||
return "ok";
|
return "ok";
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "不是此物料最早批次,无法出库";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 6 .还差一个 数量超过要出库的箱子
|
// 6 .还差一个 数量超过要出库的箱子
|
||||||
return "此箱标签不可出库,批次号不在出库单计划内!请检查出库单计划!";
|
return "此箱标签不可出库,批次号不在出库单计划内!请检查出库单计划!";
|
||||||
|
|||||||
Reference in New Issue
Block a user