|
|
@@ -1223,57 +1223,6 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- #region 此逻辑是处理按每周几送货实现,先屏蔽
|
|
|
- /*foreach (var pr in moPrlist)
|
|
|
- {
|
|
|
- var pur = purchaselist.Find(s => s.icitem_id == pr.icitem_id && s.supplier_id == pr.pr_purchaseid);
|
|
|
- if (pur != null)
|
|
|
- {
|
|
|
- if (pur.is_week)
|
|
|
- {
|
|
|
- var prDtos = prWeekDtos.Where(s => s.icitem_id == pr.icitem_id && s.pr_purchaseid == pr.pr_purchaseid).ToList();
|
|
|
- if (!prDtos.Any())
|
|
|
- {
|
|
|
- prDtos = AnalysisIntervalData(pur.is_days, pr);
|
|
|
- prWeekDtos.AddRange(prDtos);
|
|
|
- }
|
|
|
-
|
|
|
- //判断当前PR属于哪个区间
|
|
|
- if (prDtos.Any())
|
|
|
- {
|
|
|
- foreach (var dto in prDtos)
|
|
|
- {
|
|
|
- int wk = (int)pr.pr_rarrive_date.GetValueOrDefault().DayOfWeek;
|
|
|
- wk = wk == 0 ? 7 : wk;
|
|
|
- if (dto.weekList.Contains(wk))
|
|
|
- {
|
|
|
- if (wk >= dto.week)
|
|
|
- {
|
|
|
- pr.pr_rarrive_date = pr.pr_rarrive_date.GetValueOrDefault().Date.AddDays(dto.week - wk);
|
|
|
- }
|
|
|
- else {
|
|
|
- //wk 2 week 5
|
|
|
- pr.pr_rarrive_date = pr.pr_rarrive_date.GetValueOrDefault().Date.AddDays(0 - wk - (7 - dto.week));
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
- //如果没有则还是需要处理
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //如果此物料没有设置周期送货,则所有数据合并为一个PR,转成一个PO
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
- #endregion
|
|
|
-
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
{
|
|
|
try
|
|
|
@@ -3369,24 +3318,29 @@ 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 == workord.ItemNum && x.ComponentItem == structure.item_number);
|
|
|
- WorkOrdDetail woDetail = new WorkOrdDetail();
|
|
|
+ var caleList = returnList.Where(x => x.item_number == caleNumber).ToList();
|
|
|
+
|
|
|
+ //添加工单的物料信息
|
|
|
woDetail = new WorkOrdDetail();
|
|
|
- woDetail.Domain = param.factoryId.ToString();
|
|
|
+ woDetail.Domain = workord.Domain;
|
|
|
woDetail.WorkOrd = workord.WorkOrd;
|
|
|
- woDetail.Op = structure.Op;
|
|
|
- woDetail.ItemNum = structure.item_number;
|
|
|
- woDetail.QtyRequired = structure.needCount;
|
|
|
+ woDetail.Op = caleList.Max(f => f.Op);
|
|
|
+ woDetail.ItemNum = caleNumber;
|
|
|
woDetail.QtyPosted = 0m;
|
|
|
woDetail.QtyReturned = 0m;
|
|
|
- woDetail.FrozenBOMQty = structure.qty;
|
|
|
woDetail.Status = "";
|
|
|
woDetail.IsActive = true;
|
|
|
woDetail.CreateTime = DateTime.Now;
|
|
|
+ woDetail.QtyRequired = caleList.Sum(c => c.needCount);
|
|
|
woDetail.WorkOrdMasterRecID = workord.RecID;
|
|
|
- woDetail.Yield = psm == null ? 0 : psm.Scrap;
|
|
|
+ if (workord.QtyOrded != 0)
|
|
|
+ {
|
|
|
+ woDetail.FrozenBOMQty = Math.Round(woDetail.QtyRequired / workord.QtyOrded, 10);
|
|
|
+ }
|
|
|
workOrdDetails.Add(woDetail);
|
|
|
}
|
|
|
}
|