From 529179f84e3fd76c359d604815788414a540deba Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期二, 24 十一月 2020 13:43:11 +0800
Subject: [PATCH] 2020.11.24 测试更改上传

---
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs |  463 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 311 insertions(+), 152 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index 472cc10..605c287 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -45,7 +45,8 @@
     {
         string _OutServicePath = "";
         string PathName = "鏃ヨ鍒掑鍏ユā鏉�.xlsx";
-        List<PRD_Inventory> ListInventory;
+        List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏
+        List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛�
 
         public override void BarItemClick(BarItemClickEventArgs e)
         {
@@ -383,9 +384,12 @@
         }
         public void COMPLETEMAIN()
         {
-            //鑾峰彇褰撳墠鍗虫椂搴撳瓨
-            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, " /*dialect*/ select DISTINCT FBASEQTY,FMATERIALID from T_STK_Inventory");
+            //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+璐т富+搴撳瓨 灞曠幇
+            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select DISTINCT FBASEQTY,FMATERIALID,FStockOrgId,FOwnerId from T_STK_Inventory order by FBASEQTY");
             ListInventory = ds.ToModelList<PRD_Inventory>();
+
+            ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select   sum(FBASEQTY)FBASEQTY,FMATERIALID,FStockOrgId from T_STK_Inventory group by FMATERIALID, FStockOrgId ");
+            ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>();
 
             //鑾峰彇鍗曟嵁浣撲俊鎭�
             Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
@@ -406,7 +410,7 @@
                     }
 
                     double Sum = 100;
-                    Sum = Convert.ToDouble(SumGetComplete(current["FMatrailId_Id"].ToString(), current["FHMainSourceInterID"].ToString(), current["FHMainSourceEntryID"].ToString(), current["FDayPlanWorkID"].ToString(), SumPlan, current["FORGID"].ToString()));
+                    Sum = Convert.ToDouble(SumGetComplete(current["FMatrailId_Id"].ToString(), current["FHMainSourceInterID"].ToString(), current["FHMainSourceEntryID"].ToString(), current["FDayPlanWorkID"].ToString(), SumPlan, current["FORGID_Id"].ToString()));
                     this.View.Model.SetValue("FCompleteSetCount", Sum, m);
                     this.View.UpdateView("FCompleteSetCount");
                     //淇濆瓨榻愬鏁� 
@@ -453,8 +457,9 @@
         /// <param name="FMainEntryID"> 鐢熶骇璁㈠崟瀛愮爜</param>
         /// <param name="FDayPlanWorkID"> 鏃ヨ鍒掑伐鍗旻ID</param>
         /// <param name="FDayPlanWorkID"> 璁″垝鎬绘暟閲�</param>
+        /// <param name="FStockOrgId"> 搴撳瓨缁勭粐</param>
         /// <returns></returns>
-        public string SumGetComplete(string FMATERIALID, string FMainInterID, string FMainEntryID, string FDayPlanWorkID, decimal SumPlan, string sc)
+        public string SumGetComplete(string FMATERIALID, string FMainInterID, string FMainEntryID, string FDayPlanWorkID, decimal SumPlan, string FStockOrgId)
         {
             //FDayPlanWorkID鏃ヨ鍒掑伐鍗旾D鍘诲垹闄ょ幇鏈夌殑榻愬鍒嗘瀽鏁版嵁
             DBServiceHelper.Execute(Context, "/*dialect*/delete JIT_MOMaterReadysBill where FHICMOInterID = '" + FDayPlanWorkID + "'");
@@ -478,11 +483,12 @@
 /*dialect*/
 --鐢熶骇鐢ㄦ枡娓呭崟鍒楄〃
 SELECT T1.FID,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty,
-T2.FMATERIALID FMATERIALID2,T4.FNumber,T2.FNeedQty,isnull(t3.FBASEQTY,0)FBASEQTY
+T2.FMATERIALID FMATERIALID2,T4.FNumber,T2.FNeedQty
+--,isnull(t3.FBASEQTY,0)FBASEQTY
  FROM T_PRD_PPBOM T1
 LEFT JOIN (select FID,MAX(FENTRYID)FENTRYID,SUM(FNeedQty)FNeedQty,FMATERIALID  from T_PRD_PPBOMENTRY where FMoId='{0}'
 group by FMATERIALID,FID ) T2 on T1.FID=t2.FID
-LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID
+--LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID
 LEFT JOIN T_BD_MATERIAL T4 on T2.FMATERIALID=T4.FMATERIALID
 where t1.FMoId='{0}' and T1.FMaterialID='{1}'
 ", FMainInterID, FMATERIALID);
@@ -496,7 +502,7 @@
             List<decimal> list = new List<decimal>();
             foreach (var t in PpbomList)
             {
-                var ls = ListInventory.Where(c => c.FMATERIALID == t.FMATERIALID2).FirstOrDefault();
+                var ls = ListInventoryByStockOrgId.Where(c => c.FMATERIALID == t.FMATERIALID2 && c.FStockOrgId == FStockOrgId).FirstOrDefault();
                 if (ls == null)
                 {
                     list.Add(0);
@@ -513,53 +519,148 @@
                 SumGetComplete = SumPlan;
             foreach (var item in PpbomList)
             {
+                decimal jskc = 0;
+                var ls = ListInventoryByStockOrgId.Where(c => c.FMATERIALID == item.FMATERIALID2 && c.FStockOrgId == FStockOrgId).FirstOrDefault();
+                if (ls != null)
+                    jskc = ls.FBASEQTY;
                 /*
                 鍙婃椂搴撳瓨鏁伴噺 = 绯荤粺鐜版湁搴撳瓨
                 鍙敤鏁伴噺 = 鍙婃椂搴撳瓨鏁伴噺
                 鏁伴噺瀛楁 = 榻愬閲� * 鍗曚綅鐢ㄦ枡
                 */
-                decimal UnitDosage = item.FNeedQty / item.FQty;
-                var ls = ListInventory.Where(c => c.FMATERIALID == item.FMATERIALID2).FirstOrDefault();
-                if (ls != null)
-                    ls.FBASEQTY -= SumGetComplete * (UnitDosage);
-                // var _ls = ListInventory.Where(c => c.FMATERIALID == item.FMATERIALID2).DefaultIfEmpty();
-                JObject jsonRoot = new JObject();
-                jsonRoot.Add("Creator", "");
-                jsonRoot.Add("NeedUpDateFields", new JArray());
-                jsonRoot.Add("NeedReturnFields", new JArray());
-                jsonRoot.Add("IsDeleteEntry", "true");
-                jsonRoot.Add("SubSystemId", "");
-                jsonRoot.Add("IsVerifyBaseDataField", "");
-                JObject jsonModel = new JObject();
-                jsonModel.Add("FHMainICMOInterIDr", FMainInterID);//涓荤敓浜ц鍗曚富鍐呯爜
-                jsonModel.Add("FHMainICMOEntryID", FMainEntryID);//涓荤敓浜ц鍗曚富鍐呯爜
+                decimal UnitDosage = item.FNeedQty / item.FQty;//鍗曚綅鐢ㄩ噺
+                decimal xhsl = SumGetComplete * (UnitDosage);///娑堣�楁暟閲�
 
-                jsonModel.Add("FHICMOInterID", FDayPlanWorkID);//鏃ヨ鍒掕鍗曚富鍐呯爜
+                JObject _jsonRoot = new JObject();
+                _jsonRoot.Add("Creator", "");
+                _jsonRoot.Add("NeedUpDateFields", new JArray());
+                _jsonRoot.Add("NeedReturnFields", new JArray());
+                _jsonRoot.Add("IsDeleteEntry", "true");
+                _jsonRoot.Add("SubSystemId", "");
+                _jsonRoot.Add("IsVerifyBaseDataField", "");
+                JObject _jsonModel = new JObject();
+                _jsonModel.Add("FHMainICMOInterIDr", FMainInterID);//涓荤敓浜ц鍗曚富鍐呯爜
+                _jsonModel.Add("FHMainICMOEntryID", FMainEntryID);//涓荤敓浜ц鍗曚富鍐呯爜
+                _jsonModel.Add("FHICMOInterID", FDayPlanWorkID);//鏃ヨ鍒掕鍗曚富鍐呯爜
 
-                JObject HMaterID = new JObject();
-                HMaterID.Add("FNumber", item.FNumber);
-                jsonModel.Add("FHMaterID", HMaterID);//FHMaterID 鐗╂枡
+                JObject _HMaterID = new JObject();
+                _HMaterID.Add("FNumber", item.FNumber);
+                _jsonModel.Add("FHMaterID", _HMaterID);//FHMaterID 鐗╂枡
 
-                jsonModel.Add("FHStockQty", Convert.ToDecimal(item.FBASEQTY));//鍙婃椂搴撳瓨鏁伴噺
-                jsonModel.Add("FHUseQty", Convert.ToDecimal(SumGetComplete * (UnitDosage)));//鏁伴噺 
-                jsonModel.Add("FHLeftQty", Convert.ToDecimal(item.FBASEQTY));//鍙敤鏁伴噺
-                jsonModel.Add("FUnitDosage", Convert.ToDecimal(UnitDosage));//鍗曚綅鐢ㄩ噺 .
+                _jsonModel.Add("FHStockQty", Convert.ToDecimal(jskc));//鍙婃椂搴撳瓨鏁伴噺
+                _jsonModel.Add("FHUseQty", Convert.ToDecimal(xhsl));//鏁伴噺 
+                _jsonModel.Add("FHLeftQty", Convert.ToDecimal(jskc));//鍙敤鏁伴噺
+                _jsonModel.Add("FUnitDosage", Convert.ToDecimal(UnitDosage));//鍗曚綅鐢ㄩ噺 .
 
-                jsonModel.Add("FSumPlanCount", Convert.ToDecimal(SumPlan));//FSumPlanCount 璁″垝鎬绘暟閲�  
-                jsonModel.Add("FCompleteCount", Convert.ToDecimal(SumGetComplete));//FCompleteCount 榻愬鏁伴噺  
-                jsonModel.Add("FPRDBILLNO", item.FMOBillNO);//FPRDBILLNO 宸ュ崟缂栧彿  
+                _jsonModel.Add("FSumPlanCount", Convert.ToDecimal(SumPlan));//FSumPlanCount 璁″垝鎬绘暟閲�  
+                _jsonModel.Add("FCompleteCount", Convert.ToDecimal(SumGetComplete));//FCompleteCount 榻愬鏁伴噺  
+                _jsonModel.Add("FPRDBILLNO", item.FMOBillNO);//FPRDBILLNO 宸ュ崟缂栧彿  
+                _jsonModel.Add("FIdentificat", "1");//鏍囪瘑 
 
-                jsonRoot.Add("Model", jsonModel);
+                _jsonRoot.Add("Model", _jsonModel);
 
-                CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
-                var result = cloudClient.Save("paez_CompleteAnalysisTemp", jsonRoot.ToString());
-                JObject saveObj = JObject.Parse(result);
-                string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+                CloudClient _cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                var _result = _cloudClient.Save("paez_CompleteAnalysisTemp", _jsonRoot.ToString());
+                JObject _saveObj = JObject.Parse(_result);
+                string _saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
 
-                if (saveIsSuc != "TRUE")
+                if (_saveIsSuc != "TRUE")
                 {
                     this.View.ShowMessage("鎿嶄綔澶辫触锛岃仈绯荤鐞嗗憳锛�");
                 }
+
+                //鎵i櫎鎬诲簱瀛樼殑鏁伴噺
+
+                if (ls != null)
+                    ls.FBASEQTY -= xhsl;
+
+
+
+                List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FMATERIALID == item.FMATERIALID2 && c.FStockOrgId == FStockOrgId && c.FBASEQTY > 0).ToList();
+                foreach (var Inventory in _ListInventory)
+                {
+                    //鎵i櫎搴撳瓨鏁伴噺
+                    // Inventory.FBASEQTY;
+                    if (xhsl <= 0)
+                        break;
+
+                    // var _ls = ListInventory.Where(c => c.FMATERIALID == item.FMATERIALID2).DefaultIfEmpty();
+                    JObject jsonRoot = new JObject();
+                    jsonRoot.Add("Creator", "");
+                    jsonRoot.Add("NeedUpDateFields", new JArray());
+                    jsonRoot.Add("NeedReturnFields", new JArray());
+                    jsonRoot.Add("IsDeleteEntry", "true");
+                    jsonRoot.Add("SubSystemId", "");
+                    jsonRoot.Add("IsVerifyBaseDataField", "");
+                    JObject jsonModel = new JObject();
+                    jsonModel.Add("FHMainICMOInterIDr", FMainInterID);//涓荤敓浜ц鍗曚富鍐呯爜
+                    jsonModel.Add("FHMainICMOEntryID", FMainEntryID);//涓荤敓浜ц鍗曚富鍐呯爜
+                    jsonModel.Add("FHICMOInterID", FDayPlanWorkID);//鏃ヨ鍒掕鍗曚富鍐呯爜
+
+                    JObject HMaterID = new JObject();
+                    HMaterID.Add("FNumber", item.FNumber);
+                    jsonModel.Add("FHMaterID", HMaterID);//FHMaterID 鐗╂枡
+
+
+                    DataTable dt = DBServiceHelper.ExecuteDataSet(Context, @"
+select FNUMBER
+ from T_ORG_Organizations where FORGID='" + FStockOrgId + "'").Tables[0];
+                    JObject FHStockOrgID = new JObject();
+                    FHStockOrgID.Add("FNumber", dt.Rows[0]["FNUMBER"].ToString());
+                    jsonModel.Add("FHStockOrgID", FHStockOrgID);//FHStockOrgID 搴撳瓨缁勭粐
+
+                    jsonModel.Add("FOwnerTypeId", "BD_OwnerOrg");//FHStockOrgID 璐т富绫诲瀷
+
+                    dt = DBServiceHelper.ExecuteDataSet(Context, @"
+select FNUMBER
+ from T_ORG_Organizations where FORGID='" + Inventory.FOwnerId + "'").Tables[0];
+
+                    JObject FOwnerId = new JObject();
+                    FOwnerId.Add("FNumber", dt.Rows[0]["FNUMBER"].ToString());
+                    jsonModel.Add("FOwnerId", FOwnerId);//FOwnerId 璐т富
+
+                    jsonModel.Add("FHStockQty", Convert.ToDecimal(Inventory.FBASEQTY));//鍙婃椂搴撳瓨鏁伴噺
+                    jsonModel.Add("FHUseQty", Convert.ToDecimal(xhsl > Inventory.FBASEQTY ? Inventory.FBASEQTY : xhsl));//鏁伴噺 
+                    jsonModel.Add("FHLeftQty", Convert.ToDecimal(Inventory.FBASEQTY));//鍙敤鏁伴噺
+                    jsonModel.Add("FUnitDosage", Convert.ToDecimal(UnitDosage));//鍗曚綅鐢ㄩ噺 .
+
+                    jsonModel.Add("FSumPlanCount", Convert.ToDecimal(SumPlan));//FSumPlanCount 璁″垝鎬绘暟閲�  
+                    jsonModel.Add("FCompleteCount", Convert.ToDecimal(SumGetComplete));//FCompleteCount 榻愬鏁伴噺  
+                    jsonModel.Add("FPRDBILLNO", item.FMOBillNO);//FPRDBILLNO 宸ュ崟缂栧彿  
+                    jsonModel.Add("FIdentificat", "2");//鏍囪瘑 
+
+
+                    jsonRoot.Add("Model", jsonModel);
+
+                    CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                    var result = cloudClient.Save("paez_CompleteAnalysisTemp", jsonRoot.ToString());
+                    JObject saveObj = JObject.Parse(result);
+                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+
+                    if (saveIsSuc != "TRUE")
+                    {
+                        this.View.ShowMessage("鎿嶄綔澶辫触锛岃仈绯荤鐞嗗憳锛�");
+                    }
+
+
+                    if (xhsl >= Inventory.FBASEQTY)
+                    {
+                        xhsl = xhsl - Inventory.FBASEQTY;
+                        Inventory.FBASEQTY = 0;
+
+                    }
+                    else
+                    {
+                        Inventory.FBASEQTY -= xhsl;
+                        xhsl = 0;
+                    }
+
+
+
+
+
+                }
+
             }
             return SumGetComplete.ToString();
         }
@@ -628,8 +729,8 @@
                     this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHSeOrderBillNo"].ToString(), i);//閿�鍞鍗曟暟閲�
                     this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//鎵规鍙�
                     this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//璁¢噺鍗曚綅
-                    this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//浜у搧浠g爜
                     this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//鐢熶骇缁勭粐
+                    this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//浜у搧浠g爜
                     this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//浜よ揣鏃ユ湡
                     this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//璁㈠崟绛夌骇
                     this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//鐢熶骇璁㈠崟鍙�
@@ -642,6 +743,8 @@
 
                     this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//鐢熶骇璧勬簮
                     this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//鐢熶骇杞﹂棿
+
+                    this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//榻愬鏁伴噺
 
 
                     sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString();
@@ -874,16 +977,21 @@
             DBServiceHelper.Execute(Context, sql);
 
             //閲囪喘璁㈠崟鏁版嵁
-            sql = @"select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY from t_PUR_POOrder t1
+            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>();
 
             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  FROM  SC_WORKBILLSORTBILLMAIN T1 
+ 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 
 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
@@ -902,11 +1010,45 @@
             DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
             List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
 
-            sql = @"select T1.FID,FPLANCOUNT,FCOMPLETECOUNT,t2.FHQTY from    SC_WORKBILLSORTBILLMAIN T1 
+            //鎵�鏈夌墿鏂欑殑搴撳瓨
+            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,FPLANCOUNT,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 FPLANCOUNT>FCOMPLETECOUNT AND T1.FID in (" + FDayPlanWorkID + ")";
             DataSet Complete = DBServiceHelper.ExecuteDataSet(Context, sql);
             List<DayPlanPpbom> CompleteList = ds.ToModelList<DayPlanPpbom>();
-
             #region
             /*
             //FID闆嗗悎
@@ -946,14 +1088,19 @@
 
 
             //鐗╂枡闆嗗悎 鐢辩墿鏂欏幓鍒嗙粍
-            List<string> MaterialIDList = DayPlanPpbom.Select(x => x.FMATERIALID).Distinct().ToList();
+            // 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();
+
             //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
             List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
             //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
             List<string> sqlList = new List<string>();
-            foreach (string item in MaterialIDList)
+            //MaterialIDList = new List<string> { "105773" };
+            foreach (var item in MaterialIDList)
             {
-                List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item).ToList();
+                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;//鎻愬墠鏈�
@@ -972,7 +1119,7 @@
                     NeedQty += _item.NeedQty;
                     if (NeedQty >= FMINPOQTY)
                     {
-                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item && x.FQTY > 0).ToList();
+                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
                         if (_PurchaseInventory.Count == 0)
                         {
                             NeedQty = 0;
@@ -1005,7 +1152,9 @@
                                         FSUPPLIERID = Purchase.FSUPPLIERID,
                                         PurchseFNUMBER = Purchase.FNUMBER,
                                         PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY
+                                        PurchseFqty = Purchase.FQTY,
+                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
+                                        FORGNumber = Purchase.FORGNumber
 
                                     });
                                     //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
@@ -1050,7 +1199,9 @@
                                         FSUPPLIERID = Purchase.FSUPPLIERID,
                                         PurchseFNUMBER = Purchase.FNUMBER,
                                         PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY
+                                        PurchseFqty = Purchase.FQTY,
+                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
+                                        FORGNumber = Purchase.FORGNumber
 
 
                                     });
@@ -1083,121 +1234,124 @@
                         }
                         NeedQty = 0;
                     }
+
+                    #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
                     //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    else if (i == _DayPlanPpbom.Count && NeedQty > 0)
-                    {
-                        NeedQty = FMINPOQTY;
-                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item && x.FQTY > 0).ToList();
-                        if (_PurchaseInventory.Count == 0)
-                        {
-                            NeedQty = 0;
-                            break;
-                        }
+                    //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)
-                            {
+                    //    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,
+                    //            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
+                    //                    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)
-                                {
+                    //                });
+                    //                //鎵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,
+                    //                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
+                    //                    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}");
+                    //                });
+                    //                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;
+                    //                //鏇存柊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;
-                                    }
+                    //                if (_NeedQty < 0)
+                    //                {
+                    //                    foreach (var mm in mmm)
+                    //                    {
+                    //                        FEntryIdList.Remove(mm);
+                    //                    }
+                    //                    break;
+                    //                }
 
-                                    mmm.Add(id);
-                                }
-                                foreach (var mm in mmm)
-                                {
-                                    FEntryIdList.Remove(mm);
-                                }
+                    //                mmm.Add(id);
+                    //            }
+                    //            foreach (var mm in mmm)
+                    //            {
+                    //                FEntryIdList.Remove(mm);
+                    //            }
 
-                            }
-                        }
-                        NeedQty = 0;
-                    }
+                    //        }
+                    //    }
+                    //    NeedQty = 0;
+                    //}
+                    #endregion
                     i++;
                 }
             }
@@ -1222,6 +1376,9 @@
                 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
@@ -1232,6 +1389,8 @@
                     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

--
Gitblit v1.9.1