فهرست منبع

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

heteng 2 سال پیش
والد
کامیت
f4e28ef21b

+ 22 - 0
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -3529,6 +3529,28 @@ namespace Business.Replenishment
                 });
                 priority++;
             }
+            //发布计划订单产生的工单
+            List<mes_morder> planMo = _mysql_mes_morder.GetListAsync(a => idList.Contains(a.Id) && string.IsNullOrEmpty(a.morder_state) && a.factory_id.ToString() == factoryid).Result;
+            if (planMo != null)
+            {
+                List<mes_morder> mes_Morders_child = _mysql_mes_morder.GetListAsync(a => planMo.Select(p => p.Id).ToList().Contains(a.parent_id.GetValueOrDefault()) && a.factory_id.ToString() == factoryid).Result;
+                if (mes_Morders_child != null && mes_Morders_child.Count > 0)
+                {
+                    planMo.AddRange(mes_Morders_child);
+                }
+                List<WorkOrdMaster> planwork = _workOrdMaster.Select(a => planMo.Select(m => m.morder_no).ToList().Contains(a.WorkOrd) && a.Domain == factoryid);
+                planMo.ForEach(c =>
+                {
+                    c.morder_state = MorderEnum.Initial_state;
+                });
+                planwork.ForEach(b =>
+                {
+                    b.Status = "p";
+                });
+                workMasters.AddRange(planwork);
+                mes_Morders.AddRange(planMo);
+            }
+
             _workOrdMaster.Update(workMasters);
             await _businessDbContext.BulkUpdateAsync(mes_Morders);
             await _businessDbContext.BulkUpdateAsync(weekPlan);

+ 1 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -321,7 +321,7 @@ namespace Business.ResourceExamineManagement
                                 Quantity = level1Dto.make_qty,
                                 morder_type = morder_type,
                                 work_order_type = MorderEnum.CgMorder,
-                                morder_state = MorderEnum.Initial_state,
+                                morder_state = "",//MorderEnum.Initial_state,按要求,变成未发布工单,在周计划发布那里发布工单
                                 bang_id = bangid,
                                 morder_no = order_mo
                             };

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

@@ -4477,7 +4477,7 @@ namespace Business.ResourceExamineManagement
                 workOrd.QtyOrded = item.need_number.GetValueOrDefault();
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "p";
+                workOrd.Status = "";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 var curItem = itemMasters.FirstOrDefault(p => p.ItemNum == item.product_code);
@@ -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)
@@ -5771,7 +5783,21 @@ namespace Business.ResourceExamineManagement
                                 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.QtyOrd-q.QtyRec);
-                                itemds.locqty = itemListStock.Where(a=>a.MATNR==d.ItemNum).Sum(a=>a.LABST+a.INSME);
+                                //库存需要做扣减
+                                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);