Bladeren bron

Merge branch 'dev' of http://123.60.180.165:4647/ZZYDOP/DOPCore into dev

tangdi 2 jaren geleden
bovenliggende
commit
7fc6767b04

+ 3 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -402,7 +402,8 @@ namespace Business.ResourceExamineManagement
                         sumTimes = CalcTimeMins(curRecord.StartTime, scheTime, item.ProdLine);
                     }
                 }
-                else {
+                else if(curOp.Last != null)
+                {
                     //工单有报工记录,取最新报工时间到当前时间的有效时长
                     sumTimes = CalcTimeMins(curOp.Last.GetValueOrDefault(), scheTime, item.ProdLine);
                 }
@@ -908,7 +909,7 @@ namespace Business.ResourceExamineManagement
                                 sumWorkTimes = CalcTimeMins(curRecord.StartTime, workStartTime, item.ProdLine);
                             }
                         }
-                        else
+                        else if(curOp.Last != null)
                         {
                             //工单有报工记录,取最新报工时间到当前时间的有效时长
                             sumWorkTimes = CalcTimeMins(curOp.Last.GetValueOrDefault(), workStartTime, item.ProdLine);

+ 30 - 3
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -5725,7 +5725,18 @@ namespace Business.ResourceExamineManagement
                 }
                 var itemListStock = _SAPInv.Select(a => examines.Select(e => e.item_number).Distinct().ToList().Contains(a.MATNR) && locationList.Contains(a.LGORT) && a.WERKS == domain);
                 List<ic_demandschedule> ds = new List<ic_demandschedule>();
-                for(int i=0;i<4;i++)
+                Dictionary<string, decimal> weekStockQty = new Dictionary<string, decimal>();
+                foreach(var item in itemListStock)
+                {
+                    if(!weekStockQty.ContainsKey(item.MATNR))
+                    {
+                        weekStockQty.Add(item.MATNR, item.LABST + item.INSME);
+                    }else
+                    {
+                        weekStockQty[item.MATNR] += (item.LABST + item.INSME);
+                    }
+                }
+                for (int i=0;i<4;i++)
                 {
                     var itemBegin = beginTime.AddDays(i*7);
                     var itemEnd = endTime.AddDays(7 * i-21);
@@ -5756,6 +5767,7 @@ namespace Business.ResourceExamineManagement
 
                         }
                         var requestdate = workItem.Min(a => a.OrdDate);
+ 
                         if(itemQty.Count>0)
                         {
                             foreach (var d in itemQty)
@@ -5769,8 +5781,23 @@ namespace Business.ResourceExamineManagement
                                 itemds.requestdate = requestdate.GetValueOrDefault();
                                 itemds.arrivaldate = requestdate.GetValueOrDefault().AddDays(-1).AddDays(-itemNum.InsLT).AddDays(-(int)Math.Ceiling(itemNum.MFGMTTR));
                                 itemds.shortqty =d.LackQty;
-                                itemds.mesqty =d.NeedQty- pickBills.Where(a=> workItem.Select(s=>s.WorkOrd).Contains(a.WorkOrd) && a.ItemNum== d.ItemNum).Sum(q=>q.QtyRec);
-                                itemds.locqty = itemListStock.Where(a=>a.MATNR==d.ItemNum).Sum(a=>a.LABST+a.INSME);
+                                //工单需求+已下达工单领料单待发料
+                                itemds.mesqty =d.NeedQty + pickBills.Where(a=> workItem.Select(s=>s.WorkOrd).Contains(a.WorkOrd) && a.ItemNum== d.ItemNum).Sum(q=>q.QtyOrd-q.QtyRec);
+                                //库存需要做扣减
+                                if(weekStockQty.ContainsKey(d.ItemNum))
+                                {
+                                    itemds.locqty = weekStockQty[d.ItemNum];
+                                    if(itemds.mesqty>= itemds.locqty)
+                                    {
+                                        weekStockQty[d.ItemNum] = 0;
+                                    }else
+                                    {
+                                        weekStockQty[d.ItemNum] -= itemds.mesqty;
+                                    }
+                                }else
+                                {
+                                    itemds.locqty = 0;
+                                }
                                 //累计在途数量
                                 itemds.sechedqty = dsList.Where(a => a.requestdate<itemds.arrivaldate && a.itemnum==d.ItemNum).Sum(a=>a.schedqty-a.sentqty);
                                 itemds.tosechedqty = itemds.mesqty-(itemds.locqty + itemds.sechedqty);

+ 1 - 1
MicroServices/Business/Business.Application/SystemJobManagement/SystemJobAppService.cs

@@ -1331,7 +1331,7 @@ namespace Business.SystemJobManagement
                         var occ = occupy.Find(x => x.icitem_number == dtl.ItemNum);
                         if (occ != null)
                         {
-                            occ.quantity = dtl.QtyOrd.GetValueOrDefault();
+                            occ.quantity = dtl.QtyOrd;
                             decimal differ = occ.quantity - dtl.QtyFrom.GetValueOrDefault();
                             if (differ > 0)
                             {

+ 1 - 1
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/NbrDetail.cs

@@ -78,7 +78,7 @@ namespace Business.Domain
         /// 订单数量
         /// </summary>
         [Comment("订单数量")]
-        public decimal? QtyOrd { get; set; }
+        public decimal QtyOrd { get; set; }
 
         /// <summary>
         /// 工单需求数量