From 8f8bf1c2419cd76bcc2be603132336c25138b96b Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期三, 03 二月 2021 11:54:40 +0800 Subject: [PATCH] 正确答案 --- src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs | 14 +++- src/BLL/Demo.BillView/Demo.BillView.csproj | 10 +++ src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs | 58 +++++++++++++++++++ src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 62 +++++++++++--------- 4 files changed, 111 insertions(+), 33 deletions(-) diff --git a/src/BLL/Demo.BillView/Demo.BillView.csproj b/src/BLL/Demo.BillView/Demo.BillView.csproj index a0deb39..a549c47 100644 --- a/src/BLL/Demo.BillView/Demo.BillView.csproj +++ b/src/BLL/Demo.BillView/Demo.BillView.csproj @@ -110,8 +110,17 @@ <Reference Include="Kingdee.BOS.WinForm.KDS20Lib, Version=7.0.104.1, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.WinForm.KDS20Lib.dll</HintPath> </Reference> + <Reference Include="Kingdee.K3.BD.ServiceHelper"> + <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.BD.ServiceHelper.dll</HintPath> + </Reference> <Reference Include="Kingdee.K3.Core, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Core.dll</HintPath> + </Reference> + <Reference Include="Kingdee.K3.MFG.Common.BusinessEntity"> + <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.MFG.Common.BusinessEntity.dll</HintPath> + </Reference> + <Reference Include="Kingdee.K3.MFG.ServiceHelper"> + <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.MFG.ServiceHelper.dll</HintPath> </Reference> <Reference Include="Kingdee.K3.Mobile.Business.PlugIn, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Mobile.Business.PlugIn.dll</HintPath> @@ -195,6 +204,7 @@ </ItemGroup> <ItemGroup> <Compile Include="PRD\LogService.cs" /> + <Compile Include="PRD\PODemandPlanListFilter.cs" /> <Compile Include="PRD\PODemandPlanListLoad.cs" /> <Compile Include="PRD\ProTardinessDetails.cs" /> <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" /> diff --git a/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs b/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs new file mode 100644 index 0000000..91bfb29 --- /dev/null +++ b/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs @@ -0,0 +1,58 @@ +锘縰sing Kingdee.BOS.Orm.DataEntity; +using Kingdee.K3.Core.MFG.EntityHelper; +using System.ComponentModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.K3.Core.BD.ServiceArgs; +using Kingdee.K3.MFG.Common.BusinessEntity.PRD; +using Kingdee.K3.BD.ServiceHelper; +using Kingdee.K3.Core.BD; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Log; +using Kingdee.K3.Core.MFG; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Core.Metadata; +using Kingdee.K3.MFG.ServiceHelper; +using Kingdee.BOS; + +namespace Demo.BillView.PRD +{ + [Description("鎻愭枡璁″垝鍒楄〃杩囨护")] + [HotUpdate] + + public class PODemandPlanListFilter : AbstractListPlugIn + { + public override void PrepareFilterParameter(global::Kingdee.BOS.Core.List.PlugIn.Args.FilterArgs e) + { + base.PrepareFilterParameter(e); + //濡傛灉杩囨护鏉′欢鍚湁鏈�鏂扮粨鏋滃叧閿瓧锛屽垯鍦ㄦ鍩虹涓婂鐞嗭紝浠ユ敮鎸佹渶鏂扮粨鏋滃唴缃柟妗堝彟瀛樺鍔犳潯浠�(鍏抽敭瀛楁槸鏍规嵁鐢熶骇璁㈠崟鐘舵�佽繃婊�) + if (e.FilterString.IsNullOrEmptyOrWhiteSpace()) + { + int FSupplierId = GetSupplierId(); + if (FSupplierId > 0) + e.FilterString = " FSUPPLIERID IN (102629)"; + } + else + { + int FSupplierId = GetSupplierId(); + if (FSupplierId > 0) + e.FilterString += " AND FSUPPLIERID IN (102629)"; + } + } + public int GetSupplierId() + { + long userId = this.Context.UserId; + string sql = $"/*dialect*/ select FSupplierId from T_SEC_user a join T_SCP_USERDATA b on a.FUSERID = b.FUSERID where FUSERTYPE = 2 and a.FUSERID ={userId}"; + int FSupplierId = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); + return FSupplierId; + } + } +} + diff --git a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs index b0fe25c..3923f23 100644 --- a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs +++ b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs @@ -17,6 +17,9 @@ public class ProCompleteAnalysisDetail : AbstractDynamicFormPlugIn { bool did = false; + string FHMainICMOInterIDr = ""; + string FHMainICMOEntryID = ""; + string FHICMOInterID = ""; public override void OnLoad(EventArgs e) { base.OnLoad(e); @@ -29,9 +32,9 @@ { if (did) return; - string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID").ToString();//涓荤敓浜ц鍗曚富鍐呯爜 - string FHMainICMOEntryID = this.View.OpenParameter.GetCustomParameter("FHMainICMOEntryID").ToString();// 涓荤敓浜ц鍗曞瓙鍐呯爜 - string FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//鏃ヨ鍒掕鍗曚富鍐呯爜 + FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID").ToString();//涓荤敓浜ц鍗曚富鍐呯爜 + FHMainICMOEntryID = this.View.OpenParameter.GetCustomParameter("FHMainICMOEntryID").ToString();// 涓荤敓浜ц鍗曞瓙鍐呯爜 + FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//鏃ヨ鍒掕鍗曚富鍐呯爜 string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill where FHMainICMOInterIDr ='{0}' and FHMainICMOEntryID ='{1}' and FHICMOInterID='{2}' order by FPlanDate, FHStockQty desc ,FHMaterID ", FHMainICMOInterIDr, FHMainICMOEntryID, FHICMOInterID); DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; if (dt.Rows.Count > 0) @@ -112,8 +115,8 @@ /// </summary> public void SearchList() { - string sqlwhere = " where 1=1"; - string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill "); + string sqlwhere = $" where FHMainICMOInterIDr ='{FHMainICMOInterIDr}' and FHMainICMOEntryID ='{FHMainICMOEntryID}' and FHICMOInterID='{FHICMOInterID}'"; + string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill "); //鐗╂枡 if ((this.Model.GetValue("FMateralId") as DynamicObject) != null) { @@ -135,6 +138,7 @@ string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo")); if (!string.IsNullOrEmpty(PRDBillNo)) sqlwhere += $" and FPRDBillNo='{PRDBillNo}'"; + sql += sqlwhere; sql += "order by FPlanDate, FHStockQty desc ,FHMaterID"; DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index c4171cf..529135e 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -84,13 +84,9 @@ { Save(); } - if (e.BarItemKey.ToUpper() == "TBCOMPLETE") { - //CompleteSetAnalysis(); - //COMPLETEMAIN(); COMPLETE(); - SearchList(); } //鎻愭枡璁″垝 if (e.BarItemKey.ToUpper() == "TBEXTRACTION") @@ -108,9 +104,7 @@ finally { this.View.ShowMessage("鎿嶄綔鎴愬姛锛�"); - } - } //棰勭暀 if (e.BarItemKey.ToUpper() == "TBRESERVE") @@ -120,7 +114,6 @@ //閲婃斁 if (e.BarItemKey.ToUpper() == "TBRELEASE") { - Release(); } } @@ -403,9 +396,7 @@ { // 闇�瑕佹崟鑾烽敊璇紝浠ョ‘淇濆鐞嗙粨鏉熸椂锛屽叧闂繘搴︽粴鍔ㄧ晫闈� // 寮曞叆鍔熻兘瀹為檯澶勭悊鍑芥暟 - //this.CompleteSetAnalysis(); this.CompleteSetAnalysisBySQL(); - } finally { @@ -692,8 +683,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>(); @@ -712,8 +703,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 --where T1.FMATERIALID in (105773) -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 group by T1.FStockOrgId,T1.FMATERIALID "); ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); @@ -873,7 +864,7 @@ if (item.FOwnerId != null) FBatchModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); Fentity.Add(FBatchModel); - if (i >= 20 && (i % 20 == 0 || i == completeAnalysisTempModel.Count)) + if ((i >= 20 || i == completeAnalysisTempModel.Count) && (i % 20 == 0 || i == completeAnalysisTempModel.Count)) { LogHelper.Info("榻愬鍒嗘瀽鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + i); JObject jsonRoot = new JObject() @@ -943,8 +934,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>(); @@ -962,8 +953,8 @@ ) 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 "); @@ -982,6 +973,7 @@ 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); @@ -1000,7 +992,7 @@ var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); foreach (var _item in _BomList) { - //璇ユ棩璁″垝鐗╂枡闇�瑕佹暟 + //璇ユ棩璁″垝鐗╂枡闇�瑕佹暟 decimal need = _item.PlanCount; var sjkcList = ListInventoryByStockOrgId.Where(x => x.FMATERIALID == _item.FMATERIALID2 && x.FStockOrgId == _item.FStockOrgId).FirstOrDefault(); //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛� @@ -1062,7 +1054,9 @@ { decimal occupyMaterial = 0; if (occupyDic.ContainsKey(_item.FMATERIALID2)) + { occupyMaterial = occupyDic[_item.FMATERIALID2]; + } completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel { FHMainICMOInterIDr = _item.FPRDMOMAINID, @@ -1092,8 +1086,8 @@ } LogHelper.Info($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{completeAnalysisTempModel.Count}锛岃�楁椂锛�" + sw.Elapsed); - List<string> sqlList = new List<string>(); + int jdtmmm = 1; foreach (var item in completeAnalysisTempModel) { sql = string.Format(@" @@ -1107,14 +1101,10 @@ 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); sqlList.Add(sql); - - //if (sql.Contains("559")) - // LogHelper.Info("璁板綍sql559锛�" + sql); - + this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(98) / completeAnalysisTempModel.Count) * jdtmmm); + jdtmmm++; } - LogHelper.Info("鎵归噺鎵цsql寮�濮嬶細"); DBServiceHelper.ExecuteBatch(Context, sqlList); - LogHelper.Info("鎵归噺鎵цsql缁撴潫锛�"); //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬� DBServiceHelper.Execute(Context, @" /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') @@ -1588,7 +1578,7 @@ //if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID)) // model.Add("FID", _DayPlanMaterial[0].FID); Fentity.Add(model); - if (i >= 20 && (i % 20 == 0 || i == fidList.Count)) + if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count)) { LogHelper.Info("鏃ヨ鍒掔敤鏂欐竻鍗曟壒閲忔墽琛岋紝璁板綍寰幆鐨勫綋鍓嶆潯鏁�" + i); JObject jsonRoot = new JObject() @@ -1673,6 +1663,22 @@ AND FComplete ='鏈綈濂�' AND FERPCLSID=1 AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0})) +AND T1.FID in ({0}) +order by FHMASTERDATE +", 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 +FROM ( +select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill +)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 T1.NeedQty>0 +AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0})) AND T1.FID in ({0}) order by FHMASTERDATE ", FDayPlanWorkID); @@ -1971,7 +1977,7 @@ } model.Add("FEntity", Fentity); FinalyResult.Add(model); - if (tlmmm >= 20 && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) + if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) { LogHelper.Info("榻愬鍒嗘瀽鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + tlmmm); JObject jsonRoot = new JObject() -- Gitblit v1.9.1