From 33ea398cbab8ca06c953672ed2b677968bec3d5d Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期五, 29 一月 2021 11:03:03 +0800
Subject: [PATCH] 提料计划+齐套分析 写入日志

---
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 1128 +++++++++++++++++-----------------------------------------
 1 files changed, 341 insertions(+), 787 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index 26391a6..1325b4a 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -90,6 +90,7 @@
                     //CompleteSetAnalysis();
                     //COMPLETEMAIN();
                     COMPLETE();
+                    SearchList();
                 }
                 //鎻愭枡璁″垝
                 if (e.BarItemKey.ToUpper() == "TBEXTRACTION")
@@ -732,6 +733,7 @@
             {
                 Stopwatch sw = new Stopwatch();
                 sw.Start();//寮�濮嬭鏃�
+                LogHelper.Info("榻愬鍒嗘瀽寮�濮嬪噯澶囨暟鎹細" + sw.Elapsed);
                 //娓呯┖榻愬涓存椂琛�
                 DBServiceHelper.Execute(Context, "/*dialect*/  delete JIT_MOMaterReadysBill ");
                 //鏇存柊鐘舵��
@@ -844,11 +846,15 @@
                                     FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
                                     FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
                                     FCompleteCount = fCompleteCount, //榻愬鏁伴噺
+                                    FCompleteCount1 = fCompleteCount, //榻愬鏁伴噺
                                     FLackCount = _fLackCount,//缂烘枡鏁伴噺
                                     FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨
                                     FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺
                                     FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺
+                                    /* 2021 1.26 鏇存敼涓簄eed
                                     FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�",
+                                    */
+                                    FComPlete = sjkcList.FBASEQTY >= need ? "榻愬" : "鏈綈濂�",
                                     FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈�
                                 });
                                 //鎵e噺鎬诲簱瀛樻暟閲�
@@ -878,6 +884,7 @@
                                 FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
                                 FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
                                 FCompleteCount = 0, //榻愬鏁伴噺
+                                FCompleteCount1 = 0, //榻愬鏁伴噺
                                 FLackCount = _item.PlanCount,//缂烘枡鏁伴噺
                                 FHStockQty = 0,//鍗虫椂搴撳瓨
                                 FHLeftQty = 0,//鍙敤鏁伴噺
@@ -888,10 +895,11 @@
                         }
                     }
                     //Thread.Sleep(100);
-                    this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(40) / DatePlanList.Count) * i);
+                    // this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(40) / DatePlanList.Count) * i);
                     i++;
 
                 }
+                LogHelper.Info($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{completeAnalysisTempModel.Count}锛岃�楁椂锛�" + sw.Elapsed);
                 i = 1;
                 foreach (var item in completeAnalysisTempModel)
                 {
@@ -917,6 +925,7 @@
                     jsonModel.Add("FUnitDosage", item.FUnitDosage);
                     jsonModel.Add("FSumPlanCount", item.FSumPlanCount);
                     jsonModel.Add("FCompleteCount", item.FCompleteCount);
+                    jsonModel.Add("FCompleteCount1", item.FCompleteCount1);
                     jsonModel.Add("FPRDBillNo", item.FPRDBillNo);
                     jsonModel.Add("FOwnerTypeId", item.FOwnerTypeId);
                     jsonModel.Add("FComPlete", item.FComPlete);
@@ -934,7 +943,7 @@
                     {
                         LogHelper.Error(jsonRoot.ToString());
                     }
-                    this.View.Session["ProcessRateValue"] = 40 + Convert.ToInt32((Convert.ToDecimal(60) / completeAnalysisTempModel.Count) * i);
+                    this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(100) / completeAnalysisTempModel.Count) * i);
                     i++;
                 }
                 //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬�
@@ -945,11 +954,11 @@
 /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
 ");
                 sw.Stop();//缁撴潫璁℃椂
-                LogHelper.Info("杩愯鎬绘椂闀匡細" + sw.Elapsed);
+                LogHelper.Info("榻愬鍒嗘瀽杩愯鎬绘椂闀匡細" + sw.Elapsed);
             }
             catch (Exception ex)
             {
-                LogHelper.Error(ex.Message.ToString());
+                LogHelper.Error("榻愬鍒嗘瀽璺冲嚭锛�" + ex.Message.ToString());
             }
         }
         /// <summary>
@@ -1190,486 +1199,14 @@
             }
 
         }
-        /// <summary>
-        /// 鎻愭枡璁″垝
-        /// </summary>
-        public void Extraction3()
-        {
-            string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1");
-            DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
-            string FDayPlanWorkID = "";
-            foreach (DataRow dr in fidDt.Rows)
-            {
-                FDayPlanWorkID += Convert.ToString(dr["FID"]) + ",";
-            }
-            FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1);
-            //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺
-            sql = string.Format(@"
- 
- exec [鎻愭枡璁″垝棰勫鐞哴 '{0}'
- ", FDayPlanWorkID.Replace(",", "-"));
-            DBServiceHelper.Execute(Context, sql);
-            //閲囪喘璁㈠崟鏁版嵁
-            sql = @"
- /*dialect*/
-select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS from t_PUR_POOrder t1
-join t_PUR_POOrderEntry t2 on t1.FID = t2.FID
-join t_BD_Supplier t3 on t1.FSUPPLIERID = t3.FSUPPLIERID
-join  T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID
-join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID
-where t2.FQTY-t2.FPODemandPlanCount>0
- and FCloseStatus in('A') and FMRPCLOSESTATUS in('A')
-";
-            List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>();
-            LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + sql);
-            sql = string.Format(@"
- /*dialect*/
- 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);
-            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
-            List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
-            //鎵�鏈夌墿鏂欑殑搴撳瓨
-            ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select   sum(FBASEQTY)FBASEQTY,FMATERIALID,FStockOrgId from T_STK_Inventory group by FMATERIALID, FStockOrgId ");
-            ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>();
-            List<PODemandPlanTemp> deleteList = new List<PODemandPlanTemp>();
-            foreach (var item in DayPlanPpbom)
-            {
-                string FmaterialID = item.FMATERIALID;
-                string FStockOrgId = item.FStockOrgId.ToString();
-                decimal NeedQty = item.NeedQty;
-                var kcList = ListInventoryByStockOrgId.Where(c => c.FMATERIALID == FmaterialID && c.FStockOrgId == FStockOrgId && c.FBASEQTY > 0).FirstOrDefault();
-                if (kcList != null)
-                {
-                    if (kcList.FBASEQTY >= NeedQty)
-                    {
-                        deleteList.Add(new PODemandPlanTemp
-                        {
-                            FENTRYID = item.FENTRYID,
-                            FMATERIALID = item.FMATERIALID
-                        });
-                        kcList.FBASEQTY = kcList.FBASEQTY - NeedQty;
-                    }
-                    else
-                    {
-                        item.NeedQty -= kcList.FBASEQTY;
-                        kcList.FBASEQTY = 0;
-                    }
-                }
-            }
-            foreach (var item in deleteList)
-            {
-                DayPlanPpbom.RemoveAll(p => p.FENTRYID == item.FENTRYID && p.FMATERIALID == item.FMATERIALID);
-            }
-            sql = @"select T1.FID,FDayPlanQuantity,FCOMPLETECOUNT,t2.FHQTY, FHPRDORGID FStockOrgId from    SC_WORKBILLSORTBILLMAIN T1 
-JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0 AND FDayPlanQuantity>FCOMPLETECOUNT AND T1.FID in (" + FDayPlanWorkID + ")";
-            DataSet Complete = DBServiceHelper.ExecuteDataSet(Context, sql);
-            List<DayPlanPpbom> CompleteList = ds.ToModelList<DayPlanPpbom>();
-            #region
-            /*
-            //FID闆嗗悎
-            var FIDList = CompleteList.Select(x => x.FID).Distinct().ToList();
-            foreach (var item in FIDList)
-            {
-                var _CompleteList = CompleteList.Where(p => p.FID == item).ToList();
-                decimal FComplete = _CompleteList.FirstOrDefault().FCOMPLETECOUNT;
-                if (FComplete == 0)
-                    continue;
-                foreach (var _item in _CompleteList)
-                {
-                    FComplete = FComplete - _item.FHQTY;
-                    if (FComplete >= 0)
-                    {
-                        DayPlanPpbom.RemoveAll(p => p.FENTRYID == _item.FENTRYID);
 
-                    }
-                    else
-                    {
-                        DayPlanPpbom.FindAll(p => p.FENTRYID == _item.FENTRYID).ForEach(x =>
-                        {
-                            x.NeedQty = -(x.FNeedQty * FComplete);
-                        });
-                        break;
-                    }
-
-
-                }
-
-            }
-            */
-            #endregion
-            //鑾峰彇褰撳墠鍗虫椂搴撳瓨
-            DataSet JSKCds = DBServiceHelper.ExecuteDataSet(Context, " /*dialect*/ select DISTINCT FBASEQTY,FMATERIALID,FStockOrgId,FOwnerId from T_STK_Inventory");
-            var InventoryList = ds.ToModelList<PRD_Inventory>();
-
-
-            //鐗╂枡闆嗗悎 鐢辩墿鏂欏幓鍒嗙粍
-            // List<string> MaterialIDList = DayPlanPpbom.Select(x => x.FMATERIALID).Distinct().ToList();
-
-            var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList();
-            var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList();
-
-            LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count);
-
-            //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
-            List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
-            //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
-            List<string> sqlList = new List<string>();
-            //MaterialIDList = new List<string> { "105773" };
-            foreach (var item in MaterialIDList)
-            {
-                LogHelper.Info(item.FMATERIALID.ToString());
-                List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList();
-
-                decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//鏈�灏忚捣璁㈤噺
-                double FFIXLEADTIME = _DayPlanPpbom.FirstOrDefault().FFIXLEADTIME;//鎻愬墠鏈�
-                decimal NeedQty = 0;
-                DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;
-                int i = 1;
-                //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID
-                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 (NeedQty >= FMINPOQTY)
-                    {
-                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                        if (_PurchaseInventory.Count == 0)
-                        {
-                            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>();
-                                foreach (int id in FEntryIdList)
-                                {
-                                    mmm.Add(id);
-                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                                    {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = DayPlanPpbomls.NeedQty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
-
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY,
-                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
-                                        FORGNumber = Purchase.FORGNumber
-
-                                    });
-                                    //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                                    DayPlanPpbomls.NeedQty = 0;
-                                }
-                                FEntryIdList.Clear();
-                                //鏇存柊閲囪喘璁㈠崟
-                                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                                //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                                ls.FQTY -= NeedQty;
-                                break;
-                            }
-                            else
-                            {
-                                NeedQty = NeedQty - Purchase.FQTY;
-                                decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                                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)
-                                        Qty = _NeedQty;
-                                    _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                                    {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = Qty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
-
-
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        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)
-                                        {
-                                            FEntryIdList.Remove(mm);
-                                        }
-                                        break;
-                                    }
-
-                                    mmm.Add(id);
-                                }
-                                foreach (var mm in mmm)
-                                {
-                                    FEntryIdList.Remove(mm);
-                                }
-
-                            }
-                        }
-                        NeedQty = 0;
-                    }
-
-                    #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //else if (i == _DayPlanPpbom.Count && NeedQty > 0)
-                    //{
-                    //    NeedQty = FMINPOQTY;
-                    //    List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                    //    if (_PurchaseInventory.Count == 0)
-                    //    {
-                    //        NeedQty = 0;
-                    //        break;
-                    //    }
-
-                    //    foreach (var Purchase in _PurchaseInventory)
-                    //    {
-                    //        if (Purchase.FQTY >= NeedQty)
-                    //        {
-
-                    //            List<int> mmm = new List<int>();
-                    //            foreach (int id in FEntryIdList)
-                    //            {
-                    //                mmm.Add(id);
-                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = DayPlanPpbomls.NeedQty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
-
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
-
-                    //                });
-                    //                //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                    //                DayPlanPpbomls.NeedQty = 0;
-                    //            }
-                    //            FEntryIdList.Clear();
-                    //            //鏇存柊閲囪喘璁㈠崟
-                    //            sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                    //            //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                    //            var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                    //            ls.FQTY -= NeedQty;
-                    //            break;
-                    //        }
-                    //        else
-                    //        {
-                    //            NeedQty = NeedQty - Purchase.FQTY;
-                    //            decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                    //            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)
-                    //                    Qty = _NeedQty;
-                    //                _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = Qty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
-
-
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
-
-
-                    //                });
-                    //                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)
-                    //                    {
-                    //                        FEntryIdList.Remove(mm);
-                    //                    }
-                    //                    break;
-                    //                }
-
-                    //                mmm.Add(id);
-                    //            }
-                    //            foreach (var mm in mmm)
-                    //            {
-                    //                FEntryIdList.Remove(mm);
-                    //            }
-
-                    //        }
-                    //    }
-                    //    NeedQty = 0;
-                    //}
-                    #endregion
-                    i++;
-                }
-            }
-
-            var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-
-            var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-
-
-            foreach (var item in PODemandPlanList)
-            {
-                DateTime date = item.FHMASTERDATE;
-                string PurchseFNUMBER = item.PurchseFNUMBER;
-
-                JObject model = new JObject();
-                model.Add("FHDate", date);
-                model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿");
-                model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER });
-                JArray Fentity = new JArray();
-
-                List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList();
-                foreach (var _item in _PODemandPlanList)
-                {
-                    JObject FentityModel = new JObject();
-
-                    FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-
-                    FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡
-                    FentityModel.Add("FHQty", _item.FQty);//鏁伴噺
-                    FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID
-                    FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID
-                    FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙�
-                    FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺
-                    FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈�
-
-
-                    FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-                    FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
-                    FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
-                    FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
-                    Fentity.Add(FentityModel);
-                }
-                model.Add("FEntity", Fentity);
-                JObject jsonRoot = new JObject()
-                {
-                    ["Creator"] = "",
-                    ["NeedUpDateFields"] = new JArray(),
-                    ["NeedReturnFields"] = new JArray(),
-                    ["IsDeleteEntry"] = "false",
-                    ["SubSystemId"] = "",
-                    ["IsVerifyBaseDataField"] = "false",
-                    ["Model"] = model
-                };
-
-                CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
-                var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
-                JObject saveObj = JObject.Parse(result);
-                string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
-
-                LogHelper.Info("鏈�鍚�");
-                LogHelper.Info(jsonRoot.ToString());
-                if (saveIsSuc == "TRUE")
-                {
-                }
-                else
-                {
-                    LogHelper.Error(saveIsSuc);
-
-                }
-
-            }
-            DBServiceHelper.ExecuteBatch(Context, sqlList);
-            this.View.ShowMessage("鎿嶄綔鎴愬姛");
-            // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new   {p.FSUPPLIERID,     p.FHMASTERDATE }).ToList();
-        }
         /// <summary>
         /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴�
         /// </summary>
         public void DayPlanPPBomBill()
         {
+            LogHelper.Info("鐢熶骇鐢ㄦ枡娓呭崟鍑嗗鏁版嵁");
+
             //閿佸畾鐨勬棩璁″垝涓嶇敓鎴�
             try
             {
@@ -1721,6 +1258,7 @@
                         });
                     }
                     var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList();
+                    LogHelper.Error("鐢熶骇鐢ㄦ枡娓呭崟鍑嗗鏁版嵁" + fidList.Count);
                     foreach (var item in fidList)
                     {
                         var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList();
@@ -1751,8 +1289,8 @@
                             Entry.Add(ModelEnty);
                         }
                         model.Add("FEntity", Entry);
-                        if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
-                            model.Add("FID", _DayPlanMaterial[0].FID);
+                        //if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
+                        //    model.Add("FID", _DayPlanMaterial[0].FID);
                         JObject jsonRoot = new JObject()
                         {
                             ["Creator"] = "",
@@ -1769,7 +1307,10 @@
                         JObject saveObj = JObject.Parse(result);
                         string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                         if (saveIsSuc != "TRUE")
-                            LogHelper.Error(saveIsSuc);
+                        {
+                            LogHelper.Error(jsonRoot.ToString());
+
+                        }
                     }
                 }
             }
@@ -1783,22 +1324,26 @@
         /// </summary>
         public void Extraction()
         {
-            string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1");
-            DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
-            string FDayPlanWorkID = "";
-            foreach (DataRow dr in fidDt.Rows)
+            try
             {
-                FDayPlanWorkID += Convert.ToString(dr["FID"]) + ",";
-            }
-            FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1);
-            //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺
-            sql = string.Format(@"
+                Stopwatch sw = new Stopwatch();
+                sw.Start();//寮�濮嬭鏃�
+                string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1");
+                DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+                string FDayPlanWorkID = "";
+                foreach (DataRow dr in fidDt.Rows)
+                {
+                    FDayPlanWorkID += Convert.ToString(dr["FID"]) + ",";
+                }
+                FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1);
+                //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺
+                sql = string.Format(@"
   /*dialect*/
  exec [鎻愭枡璁″垝棰勫鐞哴 '{0}'
  ", FDayPlanWorkID.Replace(",", "-"));
-            DBServiceHelper.Execute(Context, sql);
-            //閲囪喘璁㈠崟鏁版嵁
-            sql = @"
+                DBServiceHelper.Execute(Context, sql);
+                //閲囪喘璁㈠崟鏁版嵁
+                sql = @"
  /*dialect*/
 select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS from t_PUR_POOrder t1
 join t_PUR_POOrderEntry t2 on t1.FID = t2.FID
@@ -1808,9 +1353,9 @@
 where t2.FQTY-t2.FPODemandPlanCount>0
  and FCloseStatus in('A') and FMRPCLOSESTATUS in('A')
 ";
-            List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>();
-            LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + sql);
-            sql = string.Format(@"
+                List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>();
+                LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鍙敤閲囪喘璁㈠崟鏁版嵁sql锛�" + sql);
+                sql = string.Format(@"
  /*dialect*/
  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
@@ -1821,323 +1366,332 @@
 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 FComplete ='鏈綈濂�'
 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);
-            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
-            List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
-            //鐗╂枡+搴撳瓨缁勭粐鍒嗙被
-            var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList();
-            var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList();
-            LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count);
-            //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
-            List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
-            //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
-            List<string> sqlList = new List<string>();
-            //MaterialIDList = new List<string> { "105773" };
-            foreach (var item in MaterialIDList)
-            {
-                //褰撳墠鐗╂枡娌℃湁閲囪喘璁㈠崟鏃� 鐩存帴璺冲嚭
-                List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                if (_PurchaseInventory.Count == 0)
+                LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]闇�瑕佹彁鏂欐暟鎹畇ql锛�" + sql);
+                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+                List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
+                //鐗╂枡+搴撳瓨缁勭粐鍒嗙被
+                var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList();
+                var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList();
+                LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鎬荤墿鏂欒鏁�" + MaterialIDList.Count);
+                //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
+                List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
+                //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
+                List<string> sqlList = new List<string>();
+                //MaterialIDList = new List<string> { "105773" };
+                foreach (var item in MaterialIDList)
                 {
-                    LogHelper.Info("褰撳墠鐗╂枡鏃犻噰璐俊鎭細" + item.FMATERIALID + " 搴撳瓨缁勭粐锛�" + item.FStockOrgId);
-                    continue;
-                }
-                //LogHelper.Info(item.FMATERIALID.ToString());
-                //褰撳墠鐗╂枡鍜屽簱瀛樼粍缁囧搴旂殑闇�杩涜鎻愭枡璁″垝鐨勬暟鎹�
-                List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList();
-                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;
-                //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID
-                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();
+                    if (_PurchaseInventory.Count == 0)
                     {
-                        /*淇敼鍓� 鍒ゆ柇鏂瑰紡
-                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                        if (_PurchaseInventory.Count == 0)
+                        LogHelper.Info("[鎻愭枡璁″垝寮�濮媇褰撳墠鐗╂枡鏃犻噰璐俊鎭細" + item.FMATERIALID + " 搴撳瓨缁勭粐锛�" + item.FStockOrgId);
+                        continue;
+                    }
+                    //LogHelper.Info(item.FMATERIALID.ToString());
+                    //褰撳墠鐗╂枡鍜屽簱瀛樼粍缁囧搴旂殑闇�杩涜鎻愭枡璁″垝鐨勬暟鎹�
+                    List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList();
+                    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;
+                    //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID
+                    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)
                         {
-                            NeedQty = 0;
-                            break;
-                        }
-                        */
-                        foreach (var Purchase in _PurchaseInventory)
-                        {
-                            //LogHelper.Info("Purchase");
-                            //LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY);
-                            if (Purchase.FQTY >= NeedQty)
+                            /*淇敼鍓� 鍒ゆ柇鏂瑰紡
+                            List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
+                            if (_PurchaseInventory.Count == 0)
                             {
-                                foreach (int id in FEntryIdList)
-                                {
-                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                                    {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = DayPlanPpbomls.NeedQty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
-
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY,
-                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
-                                        FORGNumber = Purchase.FORGNumber
-                                    });
-                                    //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                                    DayPlanPpbomls.NeedQty = 0;
-                                }
-                                FEntryIdList.Clear();
-                                //鏇存柊閲囪喘璁㈠崟
-                                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                                //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                                ls.FQTY -= NeedQty;
+                                NeedQty = 0;
                                 break;
                             }
-                            else
+                            */
+                            foreach (var Purchase in _PurchaseInventory)
                             {
-                                //鏇存柊鎬婚渶姹傛暟閲�
-                                NeedQty = NeedQty - Purchase.FQTY;
-                                decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                                List<int> mmm = new List<int>();
-                                foreach (int id in FEntryIdList)
+                                //LogHelper.Info("Purchase");
+                                //LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY);
+                                if (Purchase.FQTY >= NeedQty)
                                 {
-                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                                    decimal Qty = DayPlanPpbomls.NeedQty;//璁㈠崟鏁伴噺
-                                    if (Qty > _NeedQty)
-                                        Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗�
-                                    _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+                                    foreach (int id in FEntryIdList)
                                     {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = Qty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
-
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        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)
+                                        var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+                                        PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
                                         {
-                                            FEntryIdList.Remove(mm);
-                                        }
-                                        break;
+                                            FID = DayPlanPpbomls.FID,
+                                            FHMASTERDATE = DATE,
+                                            FQty = DayPlanPpbomls.NeedQty,
+                                            FBILLNO = DayPlanPpbomls.FBILLNO,
+                                            FENTRYID = DayPlanPpbomls.FENTRYID,
+                                            FMATERIALID = DayPlanPpbomls.FMATERIALID,
+                                            FNumber = DayPlanPpbomls.FNumber,
+                                            OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+                                            FFIXLEADTIME = FFIXLEADTIME,
+
+                                            PurchseFID = Purchase.FID,
+                                            PurchseFentryID = Purchase.FENTRYID,
+                                            FSUPPLIERID = Purchase.FSUPPLIERID,
+                                            PurchseFNUMBER = Purchase.FNUMBER,
+                                            PurchseFBillNo = Purchase.FBillNo,
+                                            PurchseFqty = Purchase.FQTY,
+                                            FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
+                                            FORGNumber = Purchase.FORGNumber
+                                        });
+                                        //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
+                                        DayPlanPpbomls.NeedQty = 0;
                                     }
-                                    mmm.Add(id);
+                                    FEntryIdList.Clear();
+                                    //鏇存柊閲囪喘璁㈠崟
+                                    sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
+                                    //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
+                                    var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+                                    ls.FQTY -= NeedQty;
+                                    break;
                                 }
-                                foreach (var mm in mmm)
+                                else
                                 {
-                                    FEntryIdList.Remove(mm);
+                                    //鏇存柊鎬婚渶姹傛暟閲�
+                                    NeedQty = NeedQty - Purchase.FQTY;
+                                    decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
+                                    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)
+                                            Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗�
+                                        _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
+                                        PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+                                        {
+                                            FID = DayPlanPpbomls.FID,
+                                            FHMASTERDATE = DATE,
+                                            FQty = Qty,
+                                            FBILLNO = DayPlanPpbomls.FBILLNO,
+                                            FENTRYID = DayPlanPpbomls.FENTRYID,
+                                            FMATERIALID = DayPlanPpbomls.FMATERIALID,
+                                            FNumber = DayPlanPpbomls.FNumber,
+                                            OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+                                            FFIXLEADTIME = FFIXLEADTIME,
+
+                                            PurchseFID = Purchase.FID,
+                                            PurchseFentryID = Purchase.FENTRYID,
+                                            FSUPPLIERID = Purchase.FSUPPLIERID,
+                                            PurchseFNUMBER = Purchase.FNUMBER,
+                                            PurchseFBillNo = Purchase.FBillNo,
+                                            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)
+                                            {
+                                                FEntryIdList.Remove(mm);
+                                            }
+                                            break;
+                                        }
+                                        mmm.Add(id);
+                                    }
+                                    foreach (var mm in mmm)
+                                    {
+                                        FEntryIdList.Remove(mm);
+                                    }
                                 }
                             }
+                            NeedQty = 0;
                         }
-                        NeedQty = 0;
+                        #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
+                        //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
+                        //else if (i == _DayPlanPpbom.Count && NeedQty > 0)
+                        //{
+                        //    NeedQty = FMINPOQTY;
+                        //    List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
+                        //    if (_PurchaseInventory.Count == 0)
+                        //    {
+                        //        NeedQty = 0;
+                        //        break;
+                        //    }
+                        //    foreach (var Purchase in _PurchaseInventory)
+                        //    {
+                        //        if (Purchase.FQTY >= NeedQty)
+                        //        {
+                        //            List<int> mmm = new List<int>();
+                        //            foreach (int id in FEntryIdList)
+                        //            {
+                        //                mmm.Add(id);
+                        //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+                        //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+                        //                {
+                        //                    FID = DayPlanPpbomls.FID,
+                        //                    FHMASTERDATE = DATE,
+                        //                    FQty = DayPlanPpbomls.NeedQty,
+                        //                    FBILLNO = DayPlanPpbomls.FBILLNO,
+                        //                    FENTRYID = DayPlanPpbomls.FENTRYID,
+                        //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
+                        //                    FNumber = DayPlanPpbomls.FNumber,
+                        //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+                        //                    FFIXLEADTIME = FFIXLEADTIME,
+                        //                    PurchseFID = Purchase.FID,
+                        //                    PurchseFentryID = Purchase.FENTRYID,
+                        //                    FSUPPLIERID = Purchase.FSUPPLIERID,
+                        //                    PurchseFNUMBER = Purchase.FNUMBER,
+                        //                    PurchseFBillNo = Purchase.FBillNo,
+                        //                    PurchseFqty = Purchase.FQTY
+                        //                });
+                        //                //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
+                        //                DayPlanPpbomls.NeedQty = 0;
+                        //            }
+                        //            FEntryIdList.Clear();
+                        //            //鏇存柊閲囪喘璁㈠崟
+                        //            sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
+                        //            //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
+                        //            var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+                        //            ls.FQTY -= NeedQty;
+                        //            break;
+                        //        }
+                        //        else
+                        //        {
+                        //            NeedQty = NeedQty - Purchase.FQTY;
+                        //            decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
+                        //            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)
+                        //                    Qty = _NeedQty;
+                        //                _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
+                        //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+                        //                {
+                        //                    FID = DayPlanPpbomls.FID,
+                        //                    FHMASTERDATE = DATE,
+                        //                    FQty = Qty,
+                        //                    FBILLNO = DayPlanPpbomls.FBILLNO,
+                        //                    FENTRYID = DayPlanPpbomls.FENTRYID,
+                        //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
+                        //                    FNumber = DayPlanPpbomls.FNumber,
+                        //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+                        //                    FFIXLEADTIME = FFIXLEADTIME,
+                        //                    PurchseFID = Purchase.FID,
+                        //                    PurchseFentryID = Purchase.FENTRYID,
+                        //                    FSUPPLIERID = Purchase.FSUPPLIERID,
+                        //                    PurchseFNUMBER = Purchase.FNUMBER,
+                        //                    PurchseFBillNo = Purchase.FBillNo,
+                        //                    PurchseFqty = Purchase.FQTY
+                        //                });
+                        //                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)
+                        //                    {
+                        //                        FEntryIdList.Remove(mm);
+                        //                    }
+                        //                    break;
+                        //                }
+                        //                mmm.Add(id);
+                        //            }
+                        //            foreach (var mm in mmm)
+                        //            {
+                        //                FEntryIdList.Remove(mm);
+                        //            }
+                        //        }
+                        //    }
+                        //    NeedQty = 0;
+                        //}
+                        #endregion
+                        i++;
                     }
-                    #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //else if (i == _DayPlanPpbom.Count && NeedQty > 0)
-                    //{
-                    //    NeedQty = FMINPOQTY;
-                    //    List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                    //    if (_PurchaseInventory.Count == 0)
-                    //    {
-                    //        NeedQty = 0;
-                    //        break;
-                    //    }
-                    //    foreach (var Purchase in _PurchaseInventory)
-                    //    {
-                    //        if (Purchase.FQTY >= NeedQty)
-                    //        {
-                    //            List<int> mmm = new List<int>();
-                    //            foreach (int id in FEntryIdList)
-                    //            {
-                    //                mmm.Add(id);
-                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = DayPlanPpbomls.NeedQty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
-                    //                });
-                    //                //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                    //                DayPlanPpbomls.NeedQty = 0;
-                    //            }
-                    //            FEntryIdList.Clear();
-                    //            //鏇存柊閲囪喘璁㈠崟
-                    //            sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                    //            //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                    //            var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                    //            ls.FQTY -= NeedQty;
-                    //            break;
-                    //        }
-                    //        else
-                    //        {
-                    //            NeedQty = NeedQty - Purchase.FQTY;
-                    //            decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                    //            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)
-                    //                    Qty = _NeedQty;
-                    //                _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = Qty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
-                    //                });
-                    //                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)
-                    //                    {
-                    //                        FEntryIdList.Remove(mm);
-                    //                    }
-                    //                    break;
-                    //                }
-                    //                mmm.Add(id);
-                    //            }
-                    //            foreach (var mm in mmm)
-                    //            {
-                    //                FEntryIdList.Remove(mm);
-                    //            }
-                    //        }
-                    //    }
-                    //    NeedQty = 0;
-                    //}
-                    #endregion
-                    i++;
                 }
+                var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
+                var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
+                LogHelper.Info($"鎻愭枡璁″垝锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{PODemandPlanTemp.Count}锛岃�楁椂锛�" + sw.Elapsed);
+                foreach (var item in PODemandPlanList)
+                {
+                    DateTime date = item.FHMASTERDATE;
+                    string PurchseFNUMBER = item.PurchseFNUMBER;
+                    JObject model = new JObject();
+                    model.Add("FHDate", date);
+                    model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿");
+                    model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER });
+                    JArray Fentity = new JArray();
+                    List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList();
+                    foreach (var _item in _PODemandPlanList)
+                    {
+                        JObject FentityModel = new JObject();
+                        FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
+                        FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡
+                        FentityModel.Add("FHQty", _item.FQty);//鏁伴噺
+                        FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID
+                        FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID
+                        FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙�
+                        FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨�
+                        FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨�
+                        FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺
+                        FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈�
+                        FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
+                        FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+                        FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+                        FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+                        Fentity.Add(FentityModel);
+                    }
+                    model.Add("FEntity", Fentity);
+                    JObject jsonRoot = new JObject()
+                    {
+                        ["Creator"] = "",
+                        ["NeedUpDateFields"] = new JArray(),
+                        ["NeedReturnFields"] = new JArray(),
+                        ["IsDeleteEntry"] = "false",
+                        ["SubSystemId"] = "",
+                        ["IsVerifyBaseDataField"] = "false",
+                        ["Model"] = model
+                    };
+                    CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                    var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
+                    JObject saveObj = JObject.Parse(result);
+                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+                    if (saveIsSuc != "TRUE")
+                    {
+                        LogHelper.Info(jsonRoot.ToString());
+                        LogHelper.Error(saveIsSuc);
+                    }
+                }
+                sw.Stop();//缁撴潫璁℃椂
+                LogHelper.Info("鎻愭枡璁″垝鎵ц瀹屾垚锛岃繍琛屾�绘椂闀匡細" + sw.Elapsed);
+                DBServiceHelper.ExecuteBatch(Context, sqlList);
             }
-            var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-            var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-            foreach (var item in PODemandPlanList)
+            catch (Exception ex)
             {
-                DateTime date = item.FHMASTERDATE;
-                string PurchseFNUMBER = item.PurchseFNUMBER;
-                JObject model = new JObject();
-                model.Add("FHDate", date);
-                model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿");
-                model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER });
-                JArray Fentity = new JArray();
-                List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList();
-                foreach (var _item in _PODemandPlanList)
-                {
-                    JObject FentityModel = new JObject();
-                    FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-                    FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡
-                    FentityModel.Add("FHQty", _item.FQty);//鏁伴噺
-                    FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID
-                    FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID
-                    FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙�
-                    FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺
-                    FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈�
-                    FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-                    FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
-                    FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
-                    FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
-                    Fentity.Add(FentityModel);
-                }
-                model.Add("FEntity", Fentity);
-                JObject jsonRoot = new JObject()
-                {
-                    ["Creator"] = "",
-                    ["NeedUpDateFields"] = new JArray(),
-                    ["NeedReturnFields"] = new JArray(),
-                    ["IsDeleteEntry"] = "false",
-                    ["SubSystemId"] = "",
-                    ["IsVerifyBaseDataField"] = "false",
-                    ["Model"] = model
-                };
-                CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
-                var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
-                JObject saveObj = JObject.Parse(result);
-                string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
-                LogHelper.Info("鏈�鍚�");
-                LogHelper.Info(jsonRoot.ToString());
-                if (saveIsSuc != "TRUE")
-                    LogHelper.Error(saveIsSuc);
+                LogHelper.Info("鎻愭枡璁″垝璺冲嚭锛�" + ex.Message.ToString());
             }
-            DBServiceHelper.ExecuteBatch(Context, sqlList);
             // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new   {p.FSUPPLIERID,     p.FHMASTERDATE }).ToList();
         }
         /// <summary>

--
Gitblit v1.9.1