From 00fd34bd2af438eaedf04a9ef9a47dc90feab788 Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期一, 11 一月 2021 11:06:08 +0800 Subject: [PATCH] 预留释放修改 代码上传 --- src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 127 +++++++++++++++++++++--------------------- 1 files changed, 64 insertions(+), 63 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index 66641f6..26391a6 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -104,11 +104,12 @@ { this.View.ShowErrMessage(ex.Message.ToString()); } - finally { + finally + { this.View.ShowMessage("鎿嶄綔鎴愬姛锛�"); } - + } //棰勭暀 if (e.BarItemKey.ToUpper() == "TBRESERVE") @@ -1201,15 +1202,12 @@ { FDayPlanWorkID += Convert.ToString(dr["FID"]) + ","; } - FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1); - //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺 sql = string.Format(@" exec [鎻愭枡璁″垝棰勫鐞哴 '{0}' ", FDayPlanWorkID.Replace(",", "-")); - DBServiceHelper.Execute(Context, sql); //閲囪喘璁㈠崟鏁版嵁 sql = @" @@ -1224,7 +1222,6 @@ "; 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 @@ -1245,7 +1242,6 @@ 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>(); @@ -1794,15 +1790,12 @@ { 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 = @" @@ -1817,7 +1810,6 @@ "; 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 @@ -1838,12 +1830,10 @@ 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闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲� @@ -1851,16 +1841,23 @@ //MaterialIDList = new List<string> { "105773" }; foreach (var item in MaterialIDList) { - LogHelper.Info(item.FMATERIALID.ToString()); + //褰撳墠鐗╂枡娌℃湁閲囪喘璁㈠崟鏃� 鐩存帴璺冲嚭 + 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; + DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;//绗竴涓璐ц捣濮嬫棩鏈� int i = 1; //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID List<int> FEntryIdList = new List<int>(); @@ -1874,22 +1871,22 @@ 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) { NeedQty = 0; break; } + */ foreach (var Purchase in _PurchaseInventory) { - LogHelper.Info("Purchase"); - LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY); + //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 { @@ -1925,15 +1922,16 @@ } 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; + decimal Qty = DayPlanPpbomls.NeedQty;//璁㈠崟鏁伴噺 if (Qty > _NeedQty) - Qty = _NeedQty; + Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗� _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty; PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp { @@ -1956,6 +1954,7 @@ 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}"); @@ -1980,7 +1979,6 @@ } NeedQty = 0; } - #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� //else if (i == _DayPlanPpbom.Count && NeedQty > 0) @@ -1992,12 +1990,10 @@ // NeedQty = 0; // break; // } - // foreach (var Purchase in _PurchaseInventory) // { // if (Purchase.FQTY >= NeedQty) // { - // List<int> mmm = new List<int>(); // foreach (int id in FEntryIdList) // { @@ -2014,14 +2010,12 @@ // 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; @@ -2041,7 +2035,6 @@ // List<int> mmm = new List<int>(); // foreach (int id in FEntryIdList) // { - // var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); // decimal Qty = DayPlanPpbomls.NeedQty; // if (Qty > _NeedQty) @@ -2058,25 +2051,19 @@ // 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) @@ -2085,14 +2072,12 @@ // } // break; // } - // mmm.Add(id); // } // foreach (var mm in mmm) // { // FEntryIdList.Remove(mm); // } - // } // } // NeedQty = 0; @@ -2101,30 +2086,22 @@ 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 @@ -2155,17 +2132,10 @@ 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 - { + if (saveIsSuc != "TRUE") LogHelper.Error(saveIsSuc); - - } } DBServiceHelper.ExecuteBatch(Context, sqlList); // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new {p.FSUPPLIERID, p.FHMASTERDATE }).ToList(); @@ -2187,7 +2157,14 @@ Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎 DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); - EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity"); + DynamicObjectCollection filterResult = entityDataObjoct.Clone(); + filterResult.Clear(); + entityDataObjoct.Where(x => Convert.ToBoolean(x["FFOCUS"])).ToList().ForEach(x => filterResult.Add(x)); + if (filterResult.Count == 0) + { + this.View.ShowMessage("璇烽�夋嫨闇�瑕侀鐣欑殑鍗曟嵁锛�"); + return; + } //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺 DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ @@ -2266,7 +2243,7 @@ } sql = string.Format(@"/*dialect*/ --鐢熶骇鐢ㄦ枡娓呭崟鍒楄〃 -SELECT T1.FID,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty,FPRDORGID FStockOrgId, +SELECT T1.FID,T1.FBillNo,T2.FENTRYID,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty,FPRDORGID FStockOrgId, T2.FMATERIALID FMATERIALID2,T4.FNumber,T2.FNeedQty,convert(decimal(18,2),FNeedQty/T1.FQty ) as dwyl, t5.FBASEUNITID,t6.FSTOREUNITID,t7.FID FSTKID,t7.FOwnerID,t7.FOwnerTypeID,t7.FSTOCKID,t7.FBASEQTY --,isnull(t3.FBASEQTY,0)FBASEQTY @@ -2286,14 +2263,14 @@ foreach (DataRow dr in skDt.Rows) { LockStockArgs lockStockArgs = new LockStockArgs(); - lockStockArgs.ObjectId = "SAL_SaleOrder"; - lockStockArgs.BillId = Convert.ToString(current["FHMainSourceInterID"]); //鐢熶骇璁㈠崟ID - lockStockArgs.BillNo = Convert.ToString(current["FSCOrderNo"]);//鐢熶骇璁㈠崟鍙� - lockStockArgs.FID = Convert.ToInt32(current["FHMainSourceInterID"]); //鐢熶骇璁㈠崟ID + lockStockArgs.ObjectId = "PRD_PPBOM"; //瀛楁 FDEMANDFORMID = 'PRD_PPBOM' + lockStockArgs.BillId = dr["FID"].ToString(); //鐢熶骇鐢ㄦ枡娓呭崟涓昏〃ID + lockStockArgs.BillDetailID = dr["FENTRYID"].ToString();//鐢熶骇鐢ㄦ枡娓呭崟鏄庣粏琛↖D + lockStockArgs.BillNo = dr["FBillNo"].ToString();//鐢熶骇鐢ㄦ枡娓呭崟鍗曟嵁鍙� + lockStockArgs.FEntryID = Convert.ToInt32(current["FHMainSourceEntryID"]); ; + lockStockArgs.FID = Convert.ToInt32(current["FHMainSourceInterID"]); //鐢熶骇璁㈠崟琛孖D lockStockArgs.BaseQty = decimal.Parse(dr["FBASEQTY"].ToString());//鍩烘湰鍗曚綅鏁伴噺 lockStockArgs.BaseUnitID = int.Parse(dr["FBASEUNITID"].ToString());//鍩烘湰鍗曚綅 - lockStockArgs.BillDetailID = Convert.ToString(current["FHMainSourceEntryID"]); - lockStockArgs.FEntryID = Convert.ToInt32(current["FHMainSourceEntryID"]); ; //lockStockArgs.Lot = Convert.ToString(current["FBatch"]); ;//鎵规 FBatch lockStockArgs.MaterialID = long.Parse(dr["FMATERIALID2"].ToString()); lockStockArgs.OwnerID = long.Parse(dr["FOwnerID"].ToString()); @@ -2308,6 +2285,20 @@ list.Add(lockStockArgs); } var sa = StockServiceHelper.SaveLockInfo(Context, list, "Inv", false); + sql = @"/*dialect*/ + update a set + FPARENTFORMID ='PRD_MO', + FPARENTINTERID =b.FMOID, + FPARENTENTRYID =b.FMOENTRYID, + FPARENTBILLNO = b.FMOBILLNO, + FSRCFORMID = 'PRD_MO', + FSRCINTERID = b.FMOID, + FSRCENTRYID = b.FMOENTRYID, + FSRCBILLNO = b.FMOBILLNO + from T_PLN_RESERVELINK a + join T_PRD_PPBOM b on a.FDEMANDINTERID = b.FID + where a.FPARENTINTERID = '' and a.FPARENTENTRYID =''"; + DBServiceHelper.Execute(Context, sql); this.View.ShowMessage("鎿嶄綔鎴愬姛锛�"); } } @@ -2330,13 +2321,23 @@ DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); DynamicObjectCollection filterResult = entityDataObjoct.Clone(); filterResult.Clear(); - entityDataObjoct.Where(x => Convert.ToBoolean(x["FFOCUS"])).ToList().ForEach(x=> filterResult.Add(x)); - foreach (DynamicObject current in entityDataObjoct) + entityDataObjoct.Where(x => Convert.ToBoolean(x["FFOCUS"])).ToList().ForEach(x => filterResult.Add(x)); + if (filterResult.Count == 0) + { + this.View.ShowMessage("璇烽�夋嫨闇�瑕侀鐣欑殑鍗曟嵁锛�"); + return; + } + foreach (DynamicObject current in filterResult) { if (Convert.ToString(current["FFOCUS"]) == "False") continue; string sql = string.Format(@"/*dialect*/ update Sc_WorkBillSortBillSub set FReservedCount = 0 where FID='{0}'", current["FDayPlanWorkID"].ToString()); DBServiceHelper.Execute(Context, sql); + + //鍒犻櫎閿佸簱琛�(涓嶇敤鏇存柊搴撳瓨 搴撳瓨琛ㄦ病鏈夋洿) + sql = string.Format(@"/*dialect*/ +delete T_PLN_RESERVELINKENTRY where FID IN (SELECT FID FROM T_PLN_RESERVELINK WHERE FPARENTINTERID='{0}' AND FPARENTENTRYID='{1}') +delete T_PLN_RESERVELINK WHERE FPARENTINTERID='{0}' AND FPARENTENTRYID='{1}'", Convert.ToString(current["FHMainSourceInterID"]), Convert.ToString(current["FHMainSourceEntryID"])); } this.View.ShowMessage("鎿嶄綔鎴愬姛锛�"); } -- Gitblit v1.9.1