From 4b0ac821502f956d7b0acd73f80a384ee41f6a6a Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期一, 01 三月 2021 10:16:55 +0800 Subject: [PATCH] 日计划导入增加生产订单明细行号功能 --- src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 355 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 212 insertions(+), 143 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index 529135e..4e38a3d 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -19,6 +19,7 @@ using Kingdee.BOS.Util; using Kingdee.K3.Core.SCM.STK; using Kingdee.K3.SCM.ServiceHelper; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NPOI.HSSF.UserModel; using NPOI.SS.Formula.Functions; @@ -136,10 +137,10 @@ /// <param name="e"></param> public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e) { + LogHelper.Info("[琛屽弻鍑讳簨浠禲"); + base.EntityRowClick(e); - DynamicFormShowParameter formPa = new DynamicFormShowParameter(); - if (e.ColKey == "FDELAYLNUM") { //鐢熶骇璁″垝骞冲彴鎷栨湡鏄庣粏璺宠浆 @@ -154,6 +155,7 @@ formPa.CustomParams.Add("FHMainICMOEntryID", Convert.ToString(this.View.Model.GetValue("FHMainSourceEntryID", e.Row).ToString())); formPa.CustomParams.Add("FHICMOInterID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString())); formPa.CustomParams.Add("FMatrailId_Id", Convert.ToString((this.View.Model.GetValue("FMatrailId", e.Row) as DynamicObject)["Id"].ToString())); + } this.View.ShowForm(formPa); } @@ -162,13 +164,20 @@ /// </summary> public void ExportExcel() { - string[] Title = new string[] {"閿�鍞鍗曞彿", "鐢熶骇璁㈠崟鍙�", "鐢熶骇缁勭粐", "鐢熶骇杞﹂棿", "鐢熶骇璧勬簮", "浜у搧浠g爜", "浜у搧鍚嶇О", "瑙勬牸鍨嬪彿", "璁¢噺鍗曚綅", - "鎵规鍙�","閿�鍞鍗曟暟閲�","鐢熶骇璁㈠崟鏁伴噺","鎬婚綈濂楁暟閲�","浜よ揣鏃ユ湡","璁㈠崟绛夌骇","T0","T1","T2","T3","T4","T5","T6","T7", + List<string> Title = new List<string> {"閿�鍞鍗曞彿", "鐢熶骇璁㈠崟鍙�*","鐢熶骇璁㈠崟鏄庣粏琛屽彿*", "鐢熶骇杞﹂棿*", "鐢熶骇璧勬簮", "浜у搧浠g爜*", "浜у搧鍚嶇О", "瑙勬牸鍨嬪彿", "璁¢噺鍗曚綅", + "鎵规鍙�","閿�鍞鍗曟暟閲�","鐢熶骇璁㈠崟鏁伴噺","鎬婚綈濂楁暟閲�","浜よ揣鏃ユ湡*","璁㈠崟绛夌骇*"}; + /* + ,"T0","T1","T2","T3","T4","T5","T6","T7", "T8","T9","T10","T11","T12","T13","T14","T15","T16","T17", "T18","T19","T20","T21","T22","T23","T24","T25","T26","T27","T28","T29", "T30","T31","T32","T33","T34","T35","T36","T37","T38","T39","T40","T41","T42", - "T43","T44","T45","T46","T47","T48","T49","T50","T51","T52","T53","T54","T55","T56","T57","T58","T59","T60"}; - + "T43","T44","T45","T46","T47","T48","T49","T50","T51","T52","T53","T54","T55","T56","T57","T58","T59","T60" + */ + DateTime date = DateTime.Now; + for (int i = 0; i < 61; i++) + { + Title.Add(date.AddDays(i).ToString("yyyy-MM-dd")); + } string sheetname = "鏃ヨ鍒掑鍏ユā鏉�.xlsx"; string file = ""; file = @"D:\鍔炲叕\K3Cloud\WebSite\TempfilePath\" + sheetname; @@ -217,7 +226,7 @@ //璁剧疆鍒楀悕 HSSFRow row = (HSSFRow)sheet.CreateRow(0); - for (int i = 0; i < Title.Length; i++) + for (int i = 0; i < Title.Count; i++) { ICell cell = (ICell)row.CreateCell(i); var rowName = Title[i]; @@ -227,7 +236,7 @@ //鍗曞厓鏍艰祴鍊� //鍒楀鑷�傚簲锛屽彧瀵硅嫳鏂囧拰鏁板瓧鏈夋晥 - for (int i = 0; i <= Title.Length; i++) + for (int i = 0; i <= Title.Count; i++) { sheet.AutoSizeColumn(i); } @@ -356,13 +365,14 @@ } int result = DBServiceHelper.ExecuteBatch(Context, sqlList); - if (result > 0) - { - this.View.ShowMessage("鎿嶄綔鎴愬姛"); - SearchList(); - } - else - this.View.ShowMessage("鎿嶄綔澶辫触锛岃仈绯荤鐞嗗憳锛�"); + + this.View.ShowMessage("鎿嶄綔鎴愬姛"); + SearchList(); + //if (result > 0) + //{ + //} + //else + // this.View.ShowMessage("鎿嶄綔澶辫触锛岃仈绯荤鐞嗗憳锛�"); } /// <summary> @@ -470,18 +480,20 @@ ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁 string sql = @" -/*dialect*/ + /*dialect*/ select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty, -T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount from SC_WORKBILLSORTBILLMAIN a +T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount,TBase.FErpClsID from SC_WORKBILLSORTBILLMAIN a join SC_WORKBILLSORTBILLSub b on a.FID = b.FID join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_PPBOMENTRY group by FMATERIALID, FID ) T2 on T1.FID = t2.FID --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID +JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID --鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒� where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 +and b.FHQTY>0 ORDER BY b.FHMASTERDATE,a.FHOrderLev "; ds = DBServiceHelper.ExecuteDataSet(Context, sql); @@ -545,12 +557,13 @@ FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨 FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺 FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 + FErpClsID = _item.FErpClsID, /* 2021 1.26 鏇存敼涓簄eed FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�", */ FComPlete = sjkcList.FBASEQTY >= need ? "榻愬" : "鏈綈濂�", FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈� - }); + }); ; //鎵e噺鎬诲簱瀛樻暟閲� sjkcList.FBASEQTY = sjkcList.FBASEQTY >= fCompleteCount ? sjkcList.FBASEQTY - fCompleteCount : 0; //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲� @@ -584,7 +597,9 @@ FHLeftQty = 0,//鍙敤鏁伴噺 FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 FComPlete = "鏈綈濂�", - FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈� + FPlanDate = item.FHMASTERDATE, // 鏃ヨ鍒掓棩鏈� + FErpClsID = _item.FErpClsID + }); } } @@ -627,6 +642,7 @@ jsonModel.Add("FLackCount", item.FLackCount); jsonModel.Add("FOccupyCount", item.FOccupyCount); jsonModel.Add("FPlanDate", item.FPlanDate); + jsonModel.Add("FErpClsID", item.FErpClsID); if (item.FOwnerId != null) jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); jsonRoot.Add("Model", jsonModel); @@ -710,18 +726,20 @@ ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁 string sql = @" -/*dialect*/ + /*dialect*/ select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty, -T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount from SC_WORKBILLSORTBILLMAIN a +T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount,TBase.FErpClsID from SC_WORKBILLSORTBILLMAIN a join SC_WORKBILLSORTBILLSub b on a.FID = b.FID join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_PPBOMENTRY group by FMATERIALID, FID ) T2 on T1.FID = t2.FID --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID +JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID --鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒� where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 +and b.FHQTY>0 ORDER BY b.FHMASTERDATE,a.FHOrderLev "; ds = DBServiceHelper.ExecuteDataSet(Context, sql); @@ -735,7 +753,6 @@ Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); foreach (var item in DatePlanList) { - this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32((decimal)(1.0 / DatePlanList.Count)); //绛涢�夊嚭褰撴棩璁″垝鏁版嵁 var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); foreach (var _item in _BomList) @@ -785,6 +802,7 @@ FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨 FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺 FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 + FErpClsID = _item.FErpClsID, /* 2021 1.26 鏇存敼涓簄eed FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�", */ @@ -817,6 +835,7 @@ FOwnerTypeId = "BD_OwnerOrg", FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺 FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲� + FErpClsID = _item.FErpClsID, FCompleteCount = 0, //榻愬鏁伴噺 FCompleteCount1 = 0, //榻愬鏁伴噺 FLackCount = _item.PlanCount,//缂烘枡鏁伴噺 @@ -861,6 +880,7 @@ FBatchModel.Add("FLackCount", item.FLackCount); FBatchModel.Add("FOccupyCount", item.FOccupyCount); FBatchModel.Add("FPlanDate", item.FPlanDate); + FBatchModel.Add("FErpClsID", item.FErpClsID); if (item.FOwnerId != null) FBatchModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); Fentity.Add(FBatchModel); @@ -934,8 +954,8 @@ LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID LEFT JOIN JIT_MOMaterReadysBill B ON T1.FStockOrgId = b.FHSTOCKORGID and T1.FMATERIALID =b.FHMATERID and a.FOwnerId = b.FOwnerId LEFT join T_ORG_Organizations c on a.FOWNERID = c.FORGID ---join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID ---where d.FAvailableComplete<>0 +join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID +where d.FAvailableComplete<>0 --where T1.FMATERIALID in (105773) "); ListInventory = ds.ToModelList<PRD_Inventory>(); @@ -953,23 +973,24 @@ ) T1 LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID LEFT JOIN JIT_MOMaterReadysBill B ON T1.FStockOrgId = b.FHSTOCKORGID and T1.FMATERIALID =b.FHMATERID ---join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID ---where d.FAvailableComplete<>0 +join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID +where d.FAvailableComplete<>0 --where T1.FMATERIALID in (105773) group by T1.FStockOrgId,T1.FMATERIALID "); ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁 sql = @" -/*dialect*/ + /*dialect*/ select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty, -T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount from SC_WORKBILLSORTBILLMAIN a +T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount,TBase.FErpClsID from SC_WORKBILLSORTBILLMAIN a join SC_WORKBILLSORTBILLSub b on a.FID = b.FID join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_PPBOMENTRY group by FMATERIALID, FID ) T2 on T1.FID = t2.FID --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID +JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID --鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒� where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 @@ -987,7 +1008,7 @@ Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); foreach (var item in DatePlanList) { - this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32((decimal)(1.0 / DatePlanList.Count)); + //绛涢�夊嚭褰撴棩璁″垝鏁版嵁 var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); foreach (var _item in _BomList) @@ -1026,6 +1047,7 @@ FHMaterID = _item.FMATERIALID2, FHStockOrgID = _item.FStockOrgId, FHPRDORGID = _item.FStockOrgId, + FErpClsID = _item.FErpClsID, FPRDBillNo = _item.FMOBillNO, FOwnerTypeId = "BD_OwnerOrg", FOwnerId = Inventory.FOwnerId, @@ -1064,6 +1086,7 @@ FHICMOInterID = _item.FID.ToString(), FHICMOEntryID = _item.FEntryID.ToString(), FHMaterID = _item.FMATERIALID2, + FErpClsID = _item.FErpClsID, FHStockOrgID = _item.FStockOrgId, FHPRDORGID = _item.FStockOrgId, FPRDBillNo = _item.FMOBillNO, @@ -1096,10 +1119,10 @@ insert into z_JIT_MOMaterReadysBill (column1) values('') insert into JIT_MOMaterReadysBill -(FID, FBILLNO, FDOCUMENTSTATUS, FHMAINICMOINTERIDR, FHMAINICMOENTRYID, FHICMOINTERID, FHICMOENTRYID, FHMATERID, FHSTOCKORGID, FHSTOCKQTY, FHLEFTQTY, FHPRDORGID, FUNITDOSAGE, FSUMPLANCOUNT, FPRDBILLNO, FOWNERID, FOWNERTYPEID, FIDENTIFICAT, FPLANDATE, FCOMPLETE, FLACKCOUNT, FOCCUPYCOUNT, FCOMPLETECOUNT1) -select id, '', 'A', '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', 'BD_OwnerOrg', '','{13}','{14}','{15}','{16}','{17}' from z_JIT_MOMaterReadysBill +(FID, FBILLNO, FDOCUMENTSTATUS, FHMAINICMOINTERIDR, FHMAINICMOENTRYID, FHICMOINTERID, FHICMOENTRYID, FHMATERID, FHSTOCKORGID, FHSTOCKQTY, FHLEFTQTY, FHPRDORGID, FUNITDOSAGE, FSUMPLANCOUNT, FPRDBILLNO, FOWNERID, FOWNERTYPEID, FIDENTIFICAT, FPLANDATE, FCOMPLETE, FLACKCOUNT, FOCCUPYCOUNT, FCOMPLETECOUNT1,FErpClsID) +select id, '', 'A', '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', 'BD_OwnerOrg', '','{13}','{14}','{15}','{16}','{17}',{18} from z_JIT_MOMaterReadysBill delete z_JIT_MOMaterReadysBill -", item.FHMainICMOInterIDr, item.FHMainICMOEntryID, item.FHICMOInterID, item.FHICMOEntryID, item.FHMaterID, item.FHStockOrgID, item.FHStockQty, item.FHLeftQty, item.FHPRDORGID, item.FUnitDosage, item.FSumPlanCount, item.FPRDBillNo, item.FOwnerId == null ? "0" : item.FOwnerId, item.FPlanDate.ToString("yyyy-MM-dd"), item.FComPlete, item.FLackCount, item.FOccupyCount, item.FCompleteCount1); +", item.FHMainICMOInterIDr, item.FHMainICMOEntryID, item.FHICMOInterID, item.FHICMOEntryID, item.FHMaterID, item.FHStockOrgID, item.FHStockQty, item.FHLeftQty, item.FHPRDORGID, item.FUnitDosage, item.FSumPlanCount, item.FPRDBillNo, item.FOwnerId == null ? "0" : item.FOwnerId, item.FPlanDate.ToString("yyyy-MM-dd"), item.FComPlete, item.FLackCount, item.FOccupyCount, item.FCompleteCount1, item.FErpClsID); sqlList.Add(sql); this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(98) / completeAnalysisTempModel.Count) * jdtmmm); jdtmmm++; @@ -1167,7 +1190,7 @@ this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿 this.Model.SetValue("FCompleteSetCount", "", i);//鎬婚綈濂楁暟閲� this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//鐢熶骇璁㈠崟鏁伴噺 - this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHSeOrderBillNo"].ToString(), i);//閿�鍞鍗曟暟閲� + this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].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("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//鐢熶骇缁勭粐 @@ -1296,7 +1319,7 @@ this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿 this.Model.SetValue("FCompleteSetCount", "", i);//鎬婚綈濂楁暟閲� this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//鐢熶骇璁㈠崟鏁伴噺 - this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHSeOrderBillNo"].ToString(), i);//閿�鍞鍗曟暟閲� + this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].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("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//鐢熶骇缁勭粐 @@ -1494,11 +1517,14 @@ { string sql = string.Format(@" /*dialect*/ -select t1.FID,t1.FEntryID,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(FNumerator/FDenominator) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID + select t1.FID,t1.FEntryID,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(FNumerator/FDenominator) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO, +t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,torg.FNUMBER as FORGNUMBER,t3.FMOID,FIssueType FROM Sc_WorkBillSortBillSub t1 JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID JOIN T_PRD_PPBOM T3 on T2.FPRDMOMAINID=t3.FMOID AND T2.FPRDMOENTYID=T3.FMOENTRYID JOIN T_PRD_PPBOMENTRY T4 ON T3.FID=T4.FID +JOIN T_PRD_PPBOMENTRY_C Tc ON T4.FENTRYID=Tc.FENTRYID +join T_ORG_Organizations torg ON tc.FOWNERID = torg.FORGID JOIN T_BD_MATERIAL T5 ON T3.FMATERIALID=T5.FMATERIALID JOIN T_BD_MATERIAL T6 ON T4.FMATERIALID=T6.FMATERIALID LEFT JOIN T_BD_UNIT T7 ON T3.FUNITID = T7.FUNITID @@ -1533,12 +1559,21 @@ FHQtyMust = dr["FHQtyMust"].ToString(), FHQtySub = dr["FHQtyMust"].ToString(), FHPPBomInterID = dr["FPPBOM"].ToString(), - FHPPBomEntryID = dr["FENTRYID"].ToString(), + FHPPBomEntryID = dr["FPPBOMENTRYID"].ToString(), FHSourceID = dr["FHSOURCENUMBER"].ToString(), FNumerator = dr["FNumerator"].ToString(), FDenominator = dr["FDenominator"].ToString(), FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(), FHQtyScrap = dr["FSCRAPRATE"].ToString(), + FMOBILLNO = dr["FSCORDERNO"].ToString(), + FMOENTRYID = dr["FMOENTRYID"].ToString(), + FPPBOMBILLNO = dr["FPPBOMBILLNO"].ToString(), + FPPBOMFSEQ = dr["FSEQ"].ToString(), + FOwnerTypeId = dr["FOWNERTYPEID"].ToString(), + FOwnerID = dr["FORGNUMBER"].ToString(), + FEntrustPickOrgId = dr["FORGNUMBER"].ToString(), + FMOID = dr["FMOID"].ToString(), + FIssueType = dr["FIssueType"].ToString() }); } LogHelper.Info($"鏃ヨ鍒掔敤鏂欐竻鍗曪紝鏁版嵁鍑嗗瀹屾垚锛屼繚瀛樺埌Model瀹炰綋锛屾�昏鏁帮細{DayPlanMaterial.Count}锛岃�楁椂锛�" + sw.Elapsed); @@ -1549,6 +1584,9 @@ { var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList(); JObject model = new JObject(); + + if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID)) + model.Add("FID", _DayPlanMaterial[0].FID); model.Add("FHDate", DateTime.Now); model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐 model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡 @@ -1572,11 +1610,20 @@ ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡 ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻�� ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼% + ModelEnty.Add("FMOBILLNO", _item.FMOBILLNO);// + ModelEnty.Add("FMOENTRYIDINT", _item.FMOENTRYID);// + ModelEnty.Add("FPPBOMBILLNO", _item.FPPBOMBILLNO);// + ModelEnty.Add("FPPBOMFSEQINT", _item.FPPBOMFSEQ);// + ModelEnty.Add("FOwnerTypeId", _item.FOwnerTypeId);// + ModelEnty.Add("FOwnerID", new JObject() { ["Fnumber"] = _item.FOwnerID });// + ModelEnty.Add("FEntrustPickOrgId", new JObject() { ["Fnumber"] = _item.FEntrustPickOrgId });// + ModelEnty.Add("FMOID", _item.FMOID);// + ModelEnty.Add("FISSUETYPE", _item.FIssueType);// + Entry.Add(ModelEnty); } model.Add("FEntity", Entry); - //if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID)) - // model.Add("FID", _DayPlanMaterial[0].FID); + Fentity.Add(model); if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count)) { @@ -1618,11 +1665,12 @@ /// </summary> public void Extraction() { + LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]锛氭祴璇曟祴璇曟祴璇曟祴璇曟祴璇曟祴璇曟祴璇曟祴璇�"); try { Stopwatch sw = new Stopwatch(); sw.Start();//寮�濮嬭鏃� - string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1"); + string sql = string.Format(@"/*dialect*/ select distinct FHICMOINTERID FID from JIT_MOMaterReadysBill "); DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; string FDayPlanWorkID = ""; foreach (DataRow dr in fidDt.Rows) @@ -1636,6 +1684,7 @@ exec [鎻愭枡璁″垝棰勫鐞哴 '{0}' ", FDayPlanWorkID.Replace(",", "-")); DBServiceHelper.Execute(Context, sql); + LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鎻愭枡璁″垝棰勫鐞唖ql锛�" + sql); //閲囪喘璁㈠崟鏁版嵁 sql = @" /*dialect*/ @@ -1668,15 +1717,16 @@ ", FDayPlanWorkID); sql = string.Format(@" /*dialect*/ -SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId +SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId ,FErpClsID FROM ( -select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill +select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill a +right join (select max(FID)FID from JIT_MOMaterReadysBill GROUP BY FHICMOENTRYID,FHMATERID) b on a.FID = b.FID )T1 JOIN T_BD_MATERIAL T6 ON T1.FMATERIALID = T6.FMATERIALID join t_BD_MaterialBase t4 on T1.FMATERIALID = t4.FMATERIALID join t_BD_MaterialPlan t5 on T1.FMATERIALID = t5.FMATERIALID WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0 -AND FERPCLSID=1 +AND FERPCLSID in ('1','3') AND T1.NeedQty>0 AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0})) AND T1.FID in ({0}) @@ -1687,7 +1737,7 @@ 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(); + var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "162305").ToList(); LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鎬荤墿鏂欒鏁�" + MaterialIDList.Count); //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚� List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); @@ -1713,127 +1763,145 @@ string FJITSafeStock = _DayPlanPpbom.FirstOrDefault().FJITSafeStock; //JIT瀹夊叏搴撳瓨 decimal NeedQty = 0; DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;//绗竴涓璐ц捣濮嬫棩鏈� - int i = 1; + int i = 0; //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID List<int> FEntryIdList = new List<int>(); foreach (var _item in _DayPlanPpbom) { + i++; + _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); + break; + } + 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) + + LogHelper.Info("璁板綍鏄庣粏id锛�" + _item.FENTRYID + ""); + LogHelper.Info("鎬婚渶姹傞噺锛�" + NeedQty + ""); + LogHelper.Info("鏈�灏忚捣璁㈤噺锛�" + FMINPOQTY + ""); + 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) + LogHelper.Info("[鎻愭枡璁″垝]褰撳墠鐗╂枡鏄庣粏鏃犻噰璐俊鎭細" + item.FMATERIALID + ",鏁伴噺锛�" + NeedQty + "锛屾渶灏忚捣璁㈤噺锛�" + FMINPOQTY + ""); + } + + if ((FJITmaterialGroup == "鎬婚噺鎺у埗瑙勬牸绫�" || FJITmaterialGroup == "璁㈠崟涓撶敤涓�х被") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //璁㈠崟涓撶敤涓�х被 + continue; + + //if (NeedQty >= FMINPOQTY) + //{ + foreach (var Purchase in _PurchaseInventory) + { + LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",閲囪喘璁㈠崟鏁伴噺锛�" + Purchase.FQTY); + if (Purchase.FQTY >= NeedQty) { - NeedQty = 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, + FErpClsID = DayPlanPpbomls.FErpClsID, + + 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; } - */ - foreach (var Purchase in _PurchaseInventory) + else { - //LogHelper.Info("Purchase"); - //LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY); - if (Purchase.FQTY >= NeedQty) + //鏇存柊鎬婚渶姹傛暟閲� + NeedQty = NeedQty - Purchase.FQTY; + //閲囪喘璁㈠崟鏁伴噺 + decimal _NeedQty = Purchase.FQTY; + List<int> mmm = new List<int>(); + foreach (int id in FEntryIdList) { - 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, + var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); + decimal Qty = DayPlanPpbomls.NeedQty;//璁㈠崟鏁伴噺 + if (Qty == 0) + LogHelper.Info("璁㈠崟鏁伴噺涓�0"); + if (Qty > _NeedQty) + Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗� - 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(); + if (_NeedQty == 0) + LogHelper.Info("璁㈠崟鏁伴噺涓�0"); + + _NeedQty = _NeedQty - Qty; + 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, + FErpClsID = DayPlanPpbomls.FErpClsID, + + 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)+ '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}"); - //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲� + 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 -= NeedQty; - break; - } - else - { - //鏇存柊鎬婚渶姹傛暟閲� - NeedQty = NeedQty - Purchase.FQTY; - decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺 - List<int> mmm = new List<int>(); - foreach (int id in FEntryIdList) + ls.FQTY -= Qty; + if (_NeedQty <= 0) { - 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 (var mm in mmm) { - 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; + FEntryIdList.Remove(mm); } - mmm.Add(id); + break; } - foreach (var mm in mmm) - { - FEntryIdList.Remove(mm); - } + mmm.Add(id); } + //foreach (var mm in mmm) + //{ + // FEntryIdList.Remove(mm); + //} } - NeedQty = 0; } + NeedQty = 0; + //} #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� //else if (i == _DayPlanPpbom.Count && NeedQty > 0) @@ -1938,12 +2006,12 @@ // 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瀹炰綋锛屾�昏鏁帮細{PODemandPlanList.Count}锛岃�楁椂锛�" + sw.Elapsed); + LogHelper.Info($"鎻愭枡璁″垝锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{PODemandPlanTemp.Count}锛岃�楁椂锛�" + sw.Elapsed); int tlmmm = 1; JArray FinalyResult = new JArray(); foreach (var item in PODemandPlanList) @@ -1973,13 +2041,14 @@ FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo + FentityModel.Add("FERPCLSID", _item.FErpClsID); //鍙戞枡鏂瑰紡 Fentity.Add(FentityModel); } model.Add("FEntity", Fentity); FinalyResult.Add(model); if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) { - LogHelper.Info("榻愬鍒嗘瀽鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + tlmmm); + LogHelper.Info("鎻愭枡璁″垝鏂板鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + tlmmm); JObject jsonRoot = new JObject() { ["Creator"] = "", -- Gitblit v1.9.1