Prechádzať zdrojové kódy

Merge branch 'master' of http://123.60.180.165:4647/ZZYDOP/DOPCore

zhengly 3 rokov pred
rodič
commit
c4c5f04ad8

+ 40 - 25
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -70,15 +70,22 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         private readonly ProductExamineAppService _productExamineAppService;
 
+        /// <summary>
+        /// 在途检查
+        /// </summary>
+        private readonly PurchaseOrderAppService _purchaseOrderAppService;
+
         /// <summary>
         /// 构造函数
         /// </summary>
         /// <param name="morderAppService"></param>
         public CalcBomViewAppService(MorderAppService morderAppService,
-            ProductExamineAppService productExamineAppService)
+            ProductExamineAppService productExamineAppService,
+            PurchaseOrderAppService purchaseOrderAppService)
         {
             _morderAppService = morderAppService;
             _productExamineAppService = productExamineAppService;
+            _purchaseOrderAppService = purchaseOrderAppService;
         }
 
 
@@ -504,32 +511,40 @@ namespace Business.ResourceExamineManagement
                 else if (item.erp_cls == 3)
                 {
                     //先找在途
-
-
-                    //采购申请
-                    var SRMPRDto = CreateSRMPR(item, input.tenantId, input.factoryId, bangid, item.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
-                    item.purchase_qty = item.lack_qty;
-                    item.purchase_list = new List<purchase>();
-                    if (SRMPRDto.srm_Pr_Main != null)
+                    var occoupylist =  _purchaseOrderAppService.CheckPurchaseOrder(sentrys, item.item_id, item.lack_qty, plan_date.GetValueOrDefault(), planList, bangid);
+                    if (occoupylist.Any())
                     {
-                        purchase pur = new purchase();
-                        pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
-                        pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
-                        pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
-                        pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
-                        pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
-                        pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
-                        pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
-                        pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
-                        pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
-                        pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
-                        pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
-                        pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
-                        pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
-                        item.purchase_list.Add(pur);
+                        decimal occqty = occoupylist.Sum(s => s.qty.GetValueOrDefault());
+                        item.purchase_occupy_qty = occqty;
+                        item.lack_qty -= occqty;
+                    }
+                    if (item.lack_qty > 0)
+                    {
+                        //采购申请
+                        var SRMPRDto = CreateSRMPR(item, input.tenantId, input.factoryId, bangid, item.erp_cls, leadTimeList, supplierList, planList, plan_date.Value);
+                        item.purchase_qty = item.lack_qty;
+                        item.purchase_list = new List<purchase>();
+                        if (SRMPRDto.srm_Pr_Main != null)
+                        {
+                            purchase pur = new purchase();
+                            pur.pr_billno = SRMPRDto.srm_Pr_Main.pr_billno;
+                            pur.pr_purchasenumber = SRMPRDto.srm_Pr_Main.pr_purchasenumber;
+                            pur.pr_purchasename = SRMPRDto.srm_Pr_Main.pr_purchasename;
+                            pur.pr_rqty = SRMPRDto.srm_Pr_Main.pr_rqty;
+                            pur.pr_aqty = SRMPRDto.srm_Pr_Main.pr_aqty;
+                            pur.pr_sqty = SRMPRDto.srm_Pr_Main.pr_sqty;
+                            pur.pr_parrive_date = SRMPRDto.srm_Pr_Main.pr_parrive_date;
+                            pur.pr_rarrive_date = SRMPRDto.srm_Pr_Main.pr_rarrive_date;
+                            pur.pr_pur_affirm_date = SRMPRDto.srm_Pr_Main.pr_pur_affirm_date;
+                            pur.pr_sysprice = SRMPRDto.srm_Pr_Main.pr_sysprice;
+                            pur.pr_orderprice = SRMPRDto.srm_Pr_Main.pr_orderprice;
+                            pur.pr_price = SRMPRDto.srm_Pr_Main.pr_price;
+                            pur.pr_rate = SRMPRDto.srm_Pr_Main.pr_rate;
+                            item.purchase_list.Add(pur);
+                        }
+                        item.kitting_time = SRMPRDto.lastStartTmie;
+                        SRMPRDtoList.Add(SRMPRDto);
                     }
-                    item.kitting_time = SRMPRDto.lastStartTmie;
-                    SRMPRDtoList.Add(SRMPRDto);
                 }
                 else if (item.erp_cls == 2)
                 {