|
|
@@ -21,6 +21,7 @@ using MongoDB.Driver;
|
|
|
using MongoDB.Driver.Linq;
|
|
|
using Newtonsoft.Json;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
+using Org.BouncyCastle.Crypto.Generators;
|
|
|
using RazorEngine.Compilation.ImpromptuInterface.Optimization;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
@@ -1554,7 +1555,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
|
|
|
//获取订单行数据 progress == "2"已做检查但是未评审的订单行
|
|
|
- sentrys = sentrys.Where(s => s.progress == "2").ToList();
|
|
|
+ //sentrys = sentrys.Where(s => s.progress == "2").ToList();
|
|
|
if (!sentrys.Any())
|
|
|
{
|
|
|
new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "订单行数据不存在", _currentTenant.Id.ToString());
|
|
|
@@ -1740,7 +1741,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
if (po_occupy.Any())
|
|
|
{
|
|
|
- po_occupy.ForEach(s => { s.create_time = DateTime.Now; });
|
|
|
+ po_occupy.ForEach(s => { s.mysql_id = help.NextId(); s.create_time = DateTime.Now; });
|
|
|
var poOccupies = ObjectMapper.Map<List<mo_srm_po_occupy>, List<srm_po_occupy>>(po_occupy);
|
|
|
_businessDbContext.BulkInsert(poOccupies);
|
|
|
}
|
|
|
@@ -3844,7 +3845,7 @@ namespace Business.ResourceExamineManagement
|
|
|
LocationTo = LocationTo,//现在这几条线是同一线边仓,暂时不考虑多个线边仓
|
|
|
WorkOrd = workord.WorkOrd,
|
|
|
QtyOrd = a.QtyRequired,
|
|
|
- CurrQtyOpened = Math.Ceiling(a.QtyRequired * (1 + (a.Yield / 100))),
|
|
|
+ CurrQtyOpened = a.QtyRequired,
|
|
|
Line = i,
|
|
|
IsActive = true,
|
|
|
CreateTime = DateTime.Now,
|
|
|
@@ -3858,8 +3859,10 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).QtyOrd = itemComponent.QtyOrd + a.QtyRequired;
|
|
|
- nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).CurrQtyOpened = itemComponent.CurrQtyOpened + a.QtyRequired;
|
|
|
+ itemComponent.QtyOrd += a.QtyRequired;
|
|
|
+ itemComponent.CurrQtyOpened += a.QtyRequired;
|
|
|
+ //nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).QtyOrd = itemComponent.QtyOrd + a.QtyRequired;
|
|
|
+ //nbrDetailList.First(b => b.Nbr == Nbr && b.ItemNum == a.ItemNum).CurrQtyOpened = itemComponent.CurrQtyOpened + a.QtyRequired;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
@@ -4211,24 +4214,38 @@ namespace Business.ResourceExamineManagement
|
|
|
GetWorkDetalis(childs.Where(s => s.parent_id == child.fid).ToList(), returnList, childs);
|
|
|
if (returnList.Any())
|
|
|
{
|
|
|
- foreach (var structure in returnList)
|
|
|
+ WorkOrdDetail woDetail = null;
|
|
|
+ var calereturnList = returnList.Select(x => x.item_number).Distinct().ToList();
|
|
|
+ foreach (var caleNumber in calereturnList)
|
|
|
{
|
|
|
- var psm = productStructureMs.Find(x => x.ParentItem == item.morder_no && x.ComponentItem == structure.item_number);
|
|
|
- WorkOrdDetail woDetail = new WorkOrdDetail();
|
|
|
+ var caleList = returnList.Where(x => x.item_number == caleNumber).ToList();
|
|
|
+
|
|
|
//添加工单的物料信息
|
|
|
woDetail = new WorkOrdDetail();
|
|
|
woDetail.Domain = item.factory_id.ToString();
|
|
|
woDetail.WorkOrd = item.morder_no;
|
|
|
- woDetail.Op = structure.Op;
|
|
|
- woDetail.ItemNum = structure.item_number;
|
|
|
- woDetail.QtyRequired = structure.needCount.GetValueOrDefault();
|
|
|
+ woDetail.Op = caleList.Max(f => f.Op);
|
|
|
+ woDetail.ItemNum =caleNumber;
|
|
|
woDetail.QtyPosted = 0m;
|
|
|
woDetail.QtyReturned = 0m;
|
|
|
- woDetail.FrozenBOMQty = structure.qty.GetValueOrDefault();
|
|
|
woDetail.Status = "";
|
|
|
woDetail.IsActive = true;
|
|
|
woDetail.CreateTime = DateTime.Now;
|
|
|
- woDetail.Yield = psm == null ? 0 : psm.Scrap;
|
|
|
+ decimal needCount = caleList.Sum(c => c.needCount.GetValueOrDefault());
|
|
|
+ foreach (var structure in caleList)
|
|
|
+ {
|
|
|
+ if (woDetail.Op > structure.Op)
|
|
|
+ {
|
|
|
+ woDetail.Op = structure.Op;
|
|
|
+ }
|
|
|
+ var psm = productStructureMs.Find(x => x.ParentItem == item.morder_no && x.ComponentItem == structure.item_number);
|
|
|
+ woDetail.Yield = psm == null ? 0 : psm.Scrap / 100;
|
|
|
+ woDetail.QtyRequired += structure.needCount.GetValueOrDefault() * (1 + woDetail.Yield);
|
|
|
+ }
|
|
|
+ if (needCount != 0)
|
|
|
+ {
|
|
|
+ woDetail.FrozenBOMQty = woDetail.QtyRequired / needCount;
|
|
|
+ }
|
|
|
workOrdDetails.Add(woDetail);
|
|
|
}
|
|
|
}
|