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