tangdi 2 жил өмнө
parent
commit
4c1b3fc8db

+ 14 - 60
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -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);
                         }
                     }