From b502fc26362d5c1b4e3e689fe71b5f6cfa1a7af9 Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期六, 13 二月 2021 14:03:48 +0800 Subject: [PATCH] 代码上传 --- src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index c0e6ba3..09c553b 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -1,4 +1,5 @@ -锘縰sing Demo.Model.Model; +锘縰sing Demo.BillView.PRD; +using Demo.Model.Model; using Demo.Model.Model.PODemandPlan; using K3Cloud.Extend.Utils; using Kingdee.BOS.Core; @@ -380,7 +381,7 @@ //{ //閿佸畾鍚庣敓鎴愭棩璁″垝鐢ㄦ枡娓呭崟 鍙� 鎻愭枡璁″垝 DayPlanPPBomBillBatch(); - Extraction(); + //Extraction(); SearchList(); this.View.ShowMessage("鎿嶄綔鎴愬姛"); //} @@ -1713,18 +1714,45 @@ /// <summary> /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴� - /// </summary> + /// </summary> public void DayPlanPPBomBillBatch() { + //LogService.WriteAsync(entrys); + //鏌ユ壘鍒扮殑鍚屾壒椤规 + Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); + //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎 + 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)); + string sqlWhere = " 1=1 "; + string FDayPlanWorkID = ""; + string zxSql = ""; + List<string> zxSqlList = new List<string>(); + if (filterResult.Count() > 0) + { + foreach (var filter in filterResult) + { + FDayPlanWorkID += filter["FDayPlanWorkID"].ToString() + ","; + zxSqlList.Add(string.Format(@"/*dialect*/ + INSERT INTO Z_SC_TLPLANZXJH (COLUMN1) VALUES ('{0}') + SELECT * FROM Z_SC_TLPLANZXJH + INSERT INTO SC_TLPLANZXJH(FID, FDAYPLANID, FCREATEDATE) SELECT *, GETDATE() FROM Z_SC_TLPLANZXJH + DELETE FROM Z_SC_TLPLANZXJH + SELECT * FROM SC_TLPLANZXJH", filter["FDayPlanWorkID"])); + } + FDayPlanWorkID = FDayPlanWorkID.TrimEnd(','); + sqlWhere += $"AND t2.FID IN ({FDayPlanWorkID})"; + } + DBServiceHelper.ExecuteBatch(Context, zxSqlList); Stopwatch sw = new Stopwatch(); sw.Start();//寮�濮嬭鏃� LogHelper.Info("鐢熸垚鏃ヨ鍒掔敤鏂欐竻鍗曞噯澶囨暟鎹�"); //閿佸畾鐨勬棩璁″垝涓嶇敓鎴� try { - string sql = string.Format(@" -/*dialect*/ -select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *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, + string sql = string.Format(@"/*dialect*/ +select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,t3.FMOEntrySeq as FMoSeq,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *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,FMaterialType,td.FNUMBER as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate FROM Sc_WorkBillSortBillSub t1 JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID @@ -1751,12 +1779,13 @@ select distinct FDAYPLANFID from Sc_DayPlanPPBomBillMain where FID IN ( select distinct FDAYPLANFID from T_PRD_PICKMTRLDATA) ) +AND {0} -- and T4.FMustQty>0 -- ( -- select FDayPlanFID FROM Sc_DayPlanPPBomBillMain WHERE FID IN ( select distinct FID from Sc_DayPlanPPBomBillSub WHERE FTranslateQty >0 or FPickedQty >0) -- ) -" -); +", +sqlWhere); LogHelper.Info("鐢熸垚鏃ヨ鍒掔敤鏂欐竻鍗曞噯澶囨暟鎹畇ql:" + sql); DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); DataTable dt = ds.Tables[0]; @@ -1802,7 +1831,8 @@ FWORKSHOPID = dr["FWORKSHOPID"].ToString(), FReplaceGroup = dr["FReplaceGroup"].ToString(), FUseRate = dr["FUseRate"].ToString(), - FIsTDL = dr["FIsTDL"].ToString() + FIsTDL = dr["FIsTDL"].ToString(), + FMoSeq = dr["FMoSeq"].ToString(), }); } LogHelper.Info($"鏃ヨ鍒掔敤鏂欐竻鍗曪紝鏁版嵁鍑嗗瀹屾垚锛屼繚瀛樺埌Model瀹炰綋锛屾�昏鏁帮細{DayPlanMaterial.Count}锛岃�楁椂锛�" + sw.Elapsed); @@ -1844,6 +1874,7 @@ ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼% ModelEnty.Add("FMOBILLNO", _item.FMOBILLNO);// ModelEnty.Add("FMOENTRYIDINT", _item.FMOENTRYID);// + ModelEnty.Add("FMoSeq", _item.FMoSeq);// ModelEnty.Add("FPPBOMBILLNO", _item.FPPBOMBILLNO);// ModelEnty.Add("FPPBOMFSEQINT", _item.FPPBOMFSEQ);// ModelEnty.Add("FOwnerTypeId", _item.FOwnerTypeId);// @@ -1909,6 +1940,7 @@ catch (Exception ex) { LogHelper.Error("鏃ヨ鍒掔敤鏂欐竻鍗�+" + ex.Message.ToString()); + this.View.ShowErrMessage(ex.Message.ToString()); } } @@ -1953,7 +1985,8 @@ LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鍙敤閲囪喘璁㈠崟鏁版嵁sql锛�" + sql); sql = string.Format(@" /*dialect*/ - SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM SC_WORKBILLSORTBILLMAIN T1 + SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId +FROM SC_WORKBILLSORTBILLMAIN T1 JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY T1 JOIN T_PRD_PPBOM T2 on t1.FID = t2.FID -- Gitblit v1.9.1