Explorar o código

物料需求计划兼容处理

Murphy %!s(int64=2) %!d(string=hai) anos
pai
achega
c7513fc858

+ 46 - 43
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -6096,61 +6096,64 @@ namespace Business.ResourceExamineManagement
                         foreach (var item in pickbillItems)
                         foreach (var item in pickbillItems)
                         {
                         {
                             var itemNum = itemList.Find(a => a.ItemNum == item);
                             var itemNum = itemList.Find(a => a.ItemNum == item);
-                            ic_demandschedule itemds = new ic_demandschedule();
-                            itemds.GenerateNewId(help.NextId());
-                            itemds.itemnum = item;
-                            itemds.fversion = itemNum.Rev;
-                            itemds.drawing = itemNum.Drawing;
-                            itemds.requestdate = itemBegin;
-                            itemds.arrivaldate = itemBegin.AddDays(-1).AddDays(-itemNum.InsLT).AddDays(-(int)Math.Ceiling(itemNum.MFGMTTR));
-                            itemds.shortqty = 0;
-                            itemds.mesqty = pickBills.Where(a => a.ItemNum == item).Sum(q => q.QtyOrd - q.QtyRec);
-                            //库存扣减量
-                            decimal stockDeduction = 0;
-                            if (weekStockQty.ContainsKey(item))
+                            if (itemNum != null)
                             {
                             {
-                                itemds.locqty = weekStockQty[item];
-                                if (itemds.mesqty >= itemds.locqty)
+                                ic_demandschedule itemds = new ic_demandschedule();
+                                itemds.GenerateNewId(help.NextId());
+                                itemds.itemnum = item;
+                                itemds.fversion = itemNum.Rev;
+                                itemds.drawing = itemNum.Drawing;
+                                itemds.requestdate = itemBegin;
+                                itemds.arrivaldate = itemBegin.AddDays(-1).AddDays(-itemNum.InsLT).AddDays(-(int)Math.Ceiling(itemNum.MFGMTTR));
+                                itemds.shortqty = 0;
+                                itemds.mesqty = pickBills.Where(a => a.ItemNum == item).Sum(q => q.QtyOrd - q.QtyRec);
+                                //库存扣减量
+                                decimal stockDeduction = 0;
+                                if (weekStockQty.ContainsKey(item))
                                 {
                                 {
-                                    weekStockQty[item] = 0;
-                                    stockDeduction = itemds.locqty;
+                                    itemds.locqty = weekStockQty[item];
+                                    if (itemds.mesqty >= itemds.locqty)
+                                    {
+                                        weekStockQty[item] = 0;
+                                        stockDeduction = itemds.locqty;
+                                    }
+                                    else
+                                    {
+                                        weekStockQty[item] -= itemds.mesqty;
+                                        stockDeduction = itemds.mesqty;
+                                    }
                                 }
                                 }
                                 else
                                 else
                                 {
                                 {
-                                    weekStockQty[item] -= itemds.mesqty;
-                                    stockDeduction = itemds.mesqty;
+                                    itemds.locqty = 0;
                                 }
                                 }
-                            }
-                            else
-                            {
-                                itemds.locqty = 0;
-                            }
-                            if (weekdsQty.ContainsKey(item))
-                            {
-                                itemds.sechedqty = weekdsQty[item];
-                                //优先扣减库存,库存不够扣减交货单在途
-                                if (itemds.mesqty - stockDeduction - itemds.sechedqty >= 0)
+                                if (weekdsQty.ContainsKey(item))
                                 {
                                 {
-                                    weekdsQty[item] = 0;
+                                    itemds.sechedqty = weekdsQty[item];
+                                    //优先扣减库存,库存不够扣减交货单在途
+                                    if (itemds.mesqty - stockDeduction - itemds.sechedqty >= 0)
+                                    {
+                                        weekdsQty[item] = 0;
+                                    }
+                                    else
+                                    {
+                                        weekdsQty[item] -= itemds.mesqty - stockDeduction;
+                                    }
                                 }
                                 }
                                 else
                                 else
                                 {
                                 {
-                                    weekdsQty[item] -= itemds.mesqty - stockDeduction;
+                                    itemds.sechedqty = 0;
                                 }
                                 }
+                                itemds.tosechedqty = itemds.mesqty - (itemds.locqty + itemds.sechedqty);
+                                itemds.status = "";
+                                itemds.remarks = "";
+                                itemds.tenant_id = examines.Count > 0 ? examines[0].tenant_id : 1000;
+                                itemds.company_id = examines.Count > 0 ? examines[0].company_id : 1000;
+                                itemds.factory_id = examines.Count > 0 ? examines[0].factory_id : 8010;
+                                itemds.create_time = DateTime.Now;
+                                itemds.update_time = DateTime.Now;
+                                ds.Add(itemds);
                             }
                             }
-                            else
-                            {
-                                itemds.sechedqty = 0;
-                            }
-                            itemds.tosechedqty = itemds.mesqty - (itemds.locqty + itemds.sechedqty);
-                            itemds.status = "";
-                            itemds.remarks = "";
-                            itemds.tenant_id = examines.Count > 0 ? examines[0].tenant_id : 1000;
-                            itemds.company_id = examines.Count > 0 ? examines[0].company_id : 1000;
-                            itemds.factory_id = examines.Count > 0 ? examines[0].factory_id : 8010;
-                            itemds.create_time = DateTime.Now;
-                            itemds.update_time = DateTime.Now;
-                            ds.Add(itemds);
                         }
                         }
                     }
                     }
                 }
                 }