From 3fea7b751b0fe095dd05ce772f364e55bf1f7fdb Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期一, 28 十二月 2020 17:41:19 +0800
Subject: [PATCH] 代码上传

---
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs |   47 +++++++++++++++++++++--------------------------
 1 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index 75a9132..c9d38b4 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -1212,7 +1212,7 @@
 
             sql = string.Format(@"
  /*dialect*/
- SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,t5.FFIXLEADTIME,t5.FMAXPOQTY,t5.FMINPOQTY,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM  SC_WORKBILLSORTBILLMAIN T1 
+ SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM  SC_WORKBILLSORTBILLMAIN T1 
 JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID
 LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY  T1
 JOIN T_PRD_PPBOM   T2 on t1.FID = t2.FID
@@ -1223,7 +1223,7 @@
 WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
 AND FDayPlanQuantity>FCOMPLETECOUNT
 AND FERPCLSID=1 
-AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
+ AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
 AND T1.FID in ({0})
 order by FHMASTERDATE
 ", FDayPlanWorkID);
@@ -1659,6 +1659,7 @@
         /// </summary>
         public void DayPlanPPBomBill()
         {
+            //閿佸畾鐨勬棩璁″垝涓嶇敓鎴�
             try
             {
                 string sql = string.Format(@"
@@ -1803,15 +1804,19 @@
 
             sql = string.Format(@"
  /*dialect*/
- select T1.*,t5.FFIXLEADTIME,t5.FMAXPOQTY,t5.FMINPOQTY,t6.FNumber from (
-select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo from JIT_MOMaterReadysBill 
-)T1
-join t_BD_MaterialBase t4 on T1.FMATERIALID = t4.FMATERIALID
-join t_BD_MaterialPlan t5 on T1.FMATERIALID = t5.FMATERIALID
-JOIN T_BD_MATERIAL T6 ON T1.FMATERIALID = T6.FMATERIALID
-WHERE T1.NeedQty >0 AND FERPCLSID=1
-AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
-AND T1.FID in ({0})
+ SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM  SC_WORKBILLSORTBILLMAIN T1 
+JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID
+LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY  T1
+JOIN T_PRD_PPBOM   T2 on t1.FID = t2.FID
+group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId  and T1.FHMATERID = t3.FMATERIALIDMAIN
+JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID
+join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID
+join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID
+WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
+AND FDayPlanQuantity>FCOMPLETECOUNT
+AND FERPCLSID=1 
+ AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
+AND T1.FID in ({0}) 
 order by FHMASTERDATE
 ", FDayPlanWorkID);
             LogHelper.Info("鎻愭枡鏁版嵁" + sql);
@@ -1835,6 +1840,9 @@
 
                 decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//鏈�灏忚捣璁㈤噺
                 double FFIXLEADTIME = _DayPlanPpbom.FirstOrDefault().FFIXLEADTIME;//鎻愬墠鏈�
+                string FJITmaterialGroup = _DayPlanPpbom.FirstOrDefault().FJITmaterialGroup;//jit鐗╂枡鍒嗙被
+                string FJITMaterielDemand = _DayPlanPpbom.FirstOrDefault().FJITMaterielDemand; //JIT鐗╂枡闇�姹備緵璐у懆鏈�
+                string FJITSafeStock = _DayPlanPpbom.FirstOrDefault().FJITSafeStock; //JIT瀹夊叏搴撳瓨
                 decimal NeedQty = 0;
                 DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;
                 int i = 1;
@@ -1842,13 +1850,12 @@
                 List<int> FEntryIdList = new List<int>();
                 foreach (var _item in _DayPlanPpbom)
                 {
-
                     if (NeedQty == 0)
                         DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-FFIXLEADTIME);
-
                     FEntryIdList.Add(_item.FENTRYID);
-
                     NeedQty += _item.NeedQty;
+                    if ((FJITmaterialGroup == "鎬婚噺鎺у埗瑙勬牸绫�" || FJITmaterialGroup == "璁㈠崟涓撶敤涓�х被") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand)) //璁㈠崟涓撶敤涓�х被
+                        continue;
                     if (NeedQty >= FMINPOQTY)
                     {
                         List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
@@ -1857,12 +1864,10 @@
                             NeedQty = 0;
                             break;
                         }
-
                         foreach (var Purchase in _PurchaseInventory)
                         {
                             LogHelper.Info("Purchase");
                             LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY);
-
                             if (Purchase.FQTY >= NeedQty)
                             {
                                 List<int> mmm = new List<int>();
@@ -1890,7 +1895,6 @@
                                         PurchseFqty = Purchase.FQTY,
                                         FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
                                         FORGNumber = Purchase.FORGNumber
-
                                     });
                                     //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
                                     DayPlanPpbomls.NeedQty = 0;
@@ -1910,7 +1914,6 @@
                                 List<int> mmm = new List<int>();
                                 foreach (int id in FEntryIdList)
                                 {
-
                                     var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
                                     decimal Qty = DayPlanPpbomls.NeedQty;
                                     if (Qty > _NeedQty)
@@ -1928,7 +1931,6 @@
                                         OLDDATE = DayPlanPpbomls.FHMASTERDATE,
                                         FFIXLEADTIME = FFIXLEADTIME,
 
-
                                         PurchseFID = Purchase.FID,
                                         PurchseFentryID = Purchase.FENTRYID,
                                         FSUPPLIERID = Purchase.FSUPPLIERID,
@@ -1937,18 +1939,13 @@
                                         PurchseFqty = Purchase.FQTY,
                                         FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
                                         FORGNumber = Purchase.FORGNumber
-
-
                                     });
                                     DayPlanPpbomls.NeedQty -= Qty;
-
                                     //鏇存柊閲囪喘璁㈠崟
                                     sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}");
-
                                     //鏇存柊Model
                                     var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
                                     ls.FQTY -= Qty;
-
                                     if (_NeedQty < 0)
                                     {
                                         foreach (var mm in mmm)
@@ -1957,14 +1954,12 @@
                                         }
                                         break;
                                     }
-
                                     mmm.Add(id);
                                 }
                                 foreach (var mm in mmm)
                                 {
                                     FEntryIdList.Remove(mm);
                                 }
-
                             }
                         }
                         NeedQty = 0;

--
Gitblit v1.9.1