From 7af4d9d0181f2442bc60b218ec65bfaf831d0422 Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期四, 02 九月 2021 09:27:22 +0800 Subject: [PATCH] nothing --- src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 555 +++++++------------------------------------------------ 1 files changed, 75 insertions(+), 480 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index 32dede0..be60f8d 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -47,6 +47,22 @@ List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛� private bool isSearched = false; + /// <summary> + /// 椤甸潰鍒濆鍖� 娓叉煋鐣岄潰 灏員0-T60鏇存敼涓烘棩鏈熸樉绀� + /// </summary> + /// <param name="e"></param> + public override void OnInitialize(InitializeEventArgs e) + { + base.OnInitialize(e); + DateTime DateNow = DateTime.Now; + for (int m = 0; m <= 60; m++) + { + this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00"; + this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); + } + this.View.SendDynamicFormAction(View); + } + /// <su public override void DataChanged(DataChangedEventArgs e) { if (!isSearched) return; @@ -71,7 +87,7 @@ base.BarItemClick(e); try { - LogHelper.Info("鐢熶骇璁″垝骞冲彴鎸夐挳"); + LogHelper.Info("鐢熶骇璁″垝骞冲彴鎸夐挳:" + e.BarItemKey.ToUpper().ToString()); if (e.BarItemKey.ToUpper() == "BTEXPORT") { ExportExcel(); @@ -123,12 +139,12 @@ { XnqtLook(); } - //鎻愭枡璁″垝 + //鏁版嵁閲嶇畻 if (e.BarItemKey.ToUpper() == "TBEXTRACTION") { + return; try { - CompleteSetAnalysisBySQL(); DayPlanPPBomBillBatch(); Extraction(); } @@ -486,7 +502,7 @@ if (saveIsSuc != "TRUE") { LogHelper.Error("鐢熶骇璁″垝骞冲彴淇濆瓨澶辫触:" + jsonRoot.ToString()); - this.View.ShowMessage("鏁版嵁鍌ㄥ瓨澶辫触锛佽鑱旂郴绠$悊鍛橈紒"); + this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); } } else @@ -602,8 +618,8 @@ string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); if (saveIsSuc != "TRUE") { - LogHelper.Error("鐢熶骇璁″垝骞冲彴淇濆瓨澶辫触:" + jsonRoot.ToString()); - this.View.ShowMessage("鏁版嵁鍌ㄥ瓨澶辫触锛佽鑱旂郴绠$悊鍛橈紒"); + LogHelper.Error("鐢熶骇璁″垝骞冲彴鏂板淇濆瓨澶辫触:" + saveObj.ToString()); + this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); } if (saveIsSuc == "TRUE") { @@ -717,251 +733,7 @@ /// <summary> /// 榻愬鍒嗘瀽 /// </summary> - public void CompleteSetAnalysis() - { - try - { - Stopwatch sw = new Stopwatch(); - sw.Start();//寮�濮嬭鏃� - LogHelper.Info("榻愬鍒嗘瀽寮�濮嬪噯澶囨暟鎹細" + sw.Elapsed); - //娓呯┖榻愬涓存椂琛� - DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); - //鏇存柊鐘舵�� - DBServiceHelper.Execute(Context, "/*dialect*/ update Sc_WorkBillSortBillsub set FCOMPLETE='' "); - //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+搴撳瓨缁勭粐+璐т富+搴撳瓨鏁伴噺 - DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" -/*dialect*/ - select isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from -( -select a.FHPRDORGID FStockOrgId,T2.FMATERIALID 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,FMATERIALID from T_PRD_PPBOMENTRY -group by FMATERIALID,FID) T2 on T1.FID = t2.FID -group by a.FHPRDORGID,T2.FMATERIALID -) 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 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 ---where T1.FMATERIALID in (105773) -"); - ListInventory = ds.ToModelList<PRD_Inventory>(); - //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺 - ds = DBServiceHelper.ExecuteDataSet(Context, @" -/*dialect*/ - select sum(isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from -( -select a.FHPRDORGID FStockOrgId,T2.FMATERIALID 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,FMATERIALID from T_PRD_PPBOMENTRY -group by FMATERIALID,FID) T2 on T1.FID = t2.FID -group by a.FHPRDORGID,T2.FMATERIALID -) 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 ---where T1.FMATERIALID in (105773) -group by T1.FStockOrgId,T1.FMATERIALID -"); - ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); - //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁 - string sql = @" - /*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,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); - List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>(); - //鏃ヨ鍒�+鐢熶骇璁㈠崟瀛愯〃缂栫爜ID - var DatePlanList = BomList.GroupBy(p => new { p.FHMASTERDATE, p.FPRDMOENTYID }).Select(x => new PRD_PPBOM { FHMASTERDATE = x.Key.FHMASTERDATE, FPRDMOENTYID = x.Key.FPRDMOENTYID }).ToList(); - //CompleteAnalysisTempModel 鐢ㄤ簬瀛樺偍涓存椂闇�瑕佹彃鍏ユ暟鎹� - List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>(); - int i = 1; - //鍒涘缓瀛楀吀 鐢ㄤ簬鍌ㄥ瓨鐗╂枡 + 鍗犵敤鏁伴噺 - 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) - { - //璇ユ棩璁″垝鐗╂枡闇�瑕佹暟 - decimal need = _item.PlanCount; - var sjkcList = ListInventoryByStockOrgId.Where(x => x.FMATERIALID == _item.FMATERIALID2 && x.FStockOrgId == _item.FStockOrgId).FirstOrDefault(); - //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛� - //璐т富鍖归厤 - List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FMATERIALID == _item.FMATERIALID2 && c.FStockOrgId == _item.FStockOrgId && c.FBASEQTY > 0).ToList(); - if (_ListInventory.Count > 0) - { - decimal _fLackCount = _item.PlanCount > sjkcList.FBASEQTY ? (_item.PlanCount - sjkcList.FBASEQTY) : 0;//缂烘枡鏁伴噺 - foreach (var Inventory in _ListInventory) - { - if (need == 0) - break; - decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need;//榻愬鏁伴噺 - decimal occupyMaterial = 0; - if (!occupyDic.ContainsKey(_item.FMATERIALID2)) - { - occupyDic.Add(_item.FMATERIALID2, fCompleteCount); - } - else - { - occupyMaterial = occupyDic[_item.FMATERIALID2]; - occupyDic[_item.FMATERIALID2] = occupyMaterial + fCompleteCount; - } - completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel - { - FHMainICMOInterIDr = _item.FPRDMOMAINID, - FHMainICMOEntryID = _item.FPRDMOENTYID, - FHICMOInterID = _item.FID.ToString(), - FHICMOEntryID = _item.FEntryID.ToString(), - FHMaterID = _item.FNumber, - FHStockOrgID = _item.OrgFnumber, - FHPRDORGID = _item.OrgFnumber, - FPRDBillNo = _item.FMOBillNO, - FOwnerTypeId = "BD_OwnerOrg", - FOwnerId = Inventory.Fnumber, - FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺 - FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲� - FCompleteCount = fCompleteCount, //榻愬鏁伴噺 - FCompleteCount1 = fCompleteCount, //榻愬鏁伴噺 - FLackCount = _fLackCount,//缂烘枡鏁伴噺 - 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; - //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲� - need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0; - //鎵e噺娑堣�楀簱瀛� - Inventory.FBASEQTY = Inventory.FBASEQTY - fCompleteCount; - } - } - else - { - decimal occupyMaterial = 0; - if (occupyDic.ContainsKey(_item.FMATERIALID2)) - occupyMaterial = occupyDic[_item.FMATERIALID2]; - completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel - { - FHMainICMOInterIDr = _item.FPRDMOMAINID, - FHMainICMOEntryID = _item.FPRDMOENTYID, - FHICMOInterID = _item.FID.ToString(), - FHICMOEntryID = _item.FEntryID.ToString(), - FHMaterID = _item.FNumber, - FHStockOrgID = _item.OrgFnumber, - FHPRDORGID = _item.OrgFnumber, - FPRDBillNo = _item.FMOBillNO, - FOwnerTypeId = "BD_OwnerOrg", - FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺 - FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲� - FCompleteCount = 0, //榻愬鏁伴噺 - FCompleteCount1 = 0, //榻愬鏁伴噺 - FLackCount = _item.PlanCount,//缂烘枡鏁伴噺 - FHStockQty = 0,//鍗虫椂搴撳瓨 - FHLeftQty = 0,//鍙敤鏁伴噺 - FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 - FComPlete = "鏈綈濂�", - FPlanDate = item.FHMASTERDATE, // 鏃ヨ鍒掓棩鏈� - FErpClsID = _item.FErpClsID - - }); - } - } - //Thread.Sleep(100); - // this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(40) / DatePlanList.Count) * i); - i++; - - } - LogHelper.Info($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{completeAnalysisTempModel.Count}锛岃�楁椂锛�" + sw.Elapsed); - i = 1; - - foreach (var item in completeAnalysisTempModel) - { - // this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32(1 / completeAnalysisTempModel.Count * 90); - 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", item.FHMainICMOInterIDr); - jsonModel.Add("FHMainICMOEntryID", item.FHMainICMOEntryID); - jsonModel.Add("FHICMOInterID", item.FHICMOInterID); - jsonModel.Add("FHICMOEntryID", item.FHICMOEntryID); - jsonModel.Add("FHMaterID", new JObject() { ["FNUMBER"] = item.FHMaterID }); - jsonModel.Add("FHUseQty", item.FHUseQty); - jsonModel.Add("FHStockOrgID", new JObject() { ["FNUMBER"] = item.FHStockOrgID }); - jsonModel.Add("FHStockQty", item.FHStockQty); - jsonModel.Add("FHLeftQty", item.FHLeftQty); - jsonModel.Add("FHPRDORGID", new JObject() { ["FNUMBER"] = item.FHStockOrgID }); - jsonModel.Add("FUnitDosage", item.FUnitDosage); - jsonModel.Add("FSumPlanCount", item.FSumPlanCount); - jsonModel.Add("FCompleteCount", item.FCompleteCount); - jsonModel.Add("FCompleteCount1", item.FCompleteCount1); - jsonModel.Add("FPRDBillNo", item.FPRDBillNo); - jsonModel.Add("FOwnerTypeId", item.FOwnerTypeId); - jsonModel.Add("FComPlete", item.FComPlete); - 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); - 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") - { - LogHelper.Error(jsonRoot.ToString()); - } - this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(100) / completeAnalysisTempModel.Count) * i); - i++; - } - //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬� - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') -"); - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') -"); - sw.Stop();//缁撴潫璁℃椂 - LogHelper.Info("榻愬鍒嗘瀽杩愯鎬绘椂闀匡細" + sw.Elapsed); - } - catch (Exception ex) - { - LogHelper.Error("榻愬鍒嗘瀽璺冲嚭锛�" + ex.Message.ToString()); - } - } public void CompleteSetAnalysisBatch() { LogHelper.Info("榻愬鍒嗘瀽鎵归噺寮�濮嬪噯澶囨暟鎹細"); @@ -1216,223 +988,7 @@ LogHelper.Error("榻愬鍒嗘瀽璺冲嚭锛�" + ex.Message.ToString()); } } - public void CompleteSetAnalysisBySQL() - { - LogHelper.Info("榻愬鍒嗘瀽sql妯″紡寮�濮嬪噯澶囨暟鎹細"); - string sql = ""; - try - { - Stopwatch sw = new Stopwatch(); - sw.Start();//寮�濮嬭鏃� - //娓呯┖榻愬涓存椂琛� - DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); - //鏇存柊鐘舵�� - DBServiceHelper.Execute(Context, "/*dialect*/ update Sc_WorkBillSortBillsub set FCOMPLETE='' "); - //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+搴撳瓨缁勭粐+璐т富+搴撳瓨鏁伴噺 - DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" -/*dialect*/ - select isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from -( -select a.FHPRDORGID FStockOrgId,T2.FMATERIALID 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,FMATERIALID from T_PRD_PPBOMENTRY -group by FMATERIALID,FID) T2 on T1.FID = t2.FID -group by a.FHPRDORGID,T2.FMATERIALID -) 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 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 ---where T1.FMATERIALID in (105773) -"); - ListInventory = ds.ToModelList<PRD_Inventory>(); - //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺 - ds = DBServiceHelper.ExecuteDataSet(Context, @" -/*dialect*/ - select sum(isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from -( -select a.FHPRDORGID FStockOrgId,T2.FMATERIALID 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,FMATERIALID from T_PRD_PPBOMENTRY -group by FMATERIALID,FID) T2 on T1.FID = t2.FID -group by a.FHPRDORGID,T2.FMATERIALID -) 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 ---where T1.FMATERIALID in (105773) -group by T1.FStockOrgId,T1.FMATERIALID -"); - ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); - //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁 - sql = @" - /*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,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 -and a.FDOCUMENTSTATUS not in ('E') -ORDER BY b.FHMASTERDATE,a.FHOrderLev -"; - ds = DBServiceHelper.ExecuteDataSet(Context, sql); - List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>(); - //鏃ヨ鍒�+鐢熶骇璁㈠崟瀛愯〃缂栫爜ID - var DatePlanList = BomList.GroupBy(p => new { p.FHMASTERDATE, p.FPRDMOENTYID }).Select(x => new PRD_PPBOM { FHMASTERDATE = x.Key.FHMASTERDATE, FPRDMOENTYID = x.Key.FPRDMOENTYID }).ToList(); - //CompleteAnalysisTempModel 鐢ㄤ簬瀛樺偍涓存椂闇�瑕佹彃鍏ユ暟鎹� - List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>(); - int i = 1; - //鍒涘缓瀛楀吀 鐢ㄤ簬鍌ㄥ瓨鐗╂枡 + 鍗犵敤鏁伴噺 - Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); - LogHelper.Info("榻愬鍒嗘瀽鍑嗗鏁版嵁瀹屾垚锛�" + sw.Elapsed); - foreach (var item in DatePlanList) - { - //绛涢�夊嚭褰撴棩璁″垝鏁版嵁 - 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(); - //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛� - //璐т富鍖归厤 - List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FMATERIALID == _item.FMATERIALID2 && c.FStockOrgId == _item.FStockOrgId && c.FBASEQTY > 0).ToList(); - if (_ListInventory.Count > 0) - { - decimal _fLackCount = _item.PlanCount > sjkcList.FBASEQTY ? (_item.PlanCount - sjkcList.FBASEQTY) : 0;//缂烘枡鏁伴噺 - foreach (var Inventory in _ListInventory) - { - if (need == 0) - break; - decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need;//榻愬鏁伴噺 - decimal occupyMaterial = 0; - if (!occupyDic.ContainsKey(_item.FMATERIALID2)) - { - occupyDic.Add(_item.FMATERIALID2, fCompleteCount); - } - else - { - occupyMaterial = occupyDic[_item.FMATERIALID2]; - occupyDic[_item.FMATERIALID2] = occupyMaterial + fCompleteCount; - } - completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel - { - FHMainICMOInterIDr = _item.FPRDMOMAINID, - FHMainICMOEntryID = _item.FPRDMOENTYID, - FHICMOInterID = _item.FID.ToString(), - FHICMOEntryID = _item.FEntryID.ToString(), - FHMaterID = _item.FMATERIALID2, - FHStockOrgID = _item.FStockOrgId, - FHPRDORGID = _item.FStockOrgId, - FErpClsID = _item.FErpClsID, - FPRDBillNo = _item.FMOBillNO, - FOwnerTypeId = "BD_OwnerOrg", - FOwnerId = Inventory.FOwnerId, - FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺 - FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲� - FCompleteCount1 = fCompleteCount, //榻愬鏁伴噺 - FLackCount = _fLackCount,//缂烘枡鏁伴噺 - FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨 - FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺 - FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 - /* 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; - //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲� - need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0; - //鎵e噺娑堣�楀簱瀛� - Inventory.FBASEQTY = Inventory.FBASEQTY - fCompleteCount; - } - } - else - { - decimal occupyMaterial = 0; - if (occupyDic.ContainsKey(_item.FMATERIALID2)) - { - occupyMaterial = occupyDic[_item.FMATERIALID2]; - } - completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel - { - FHMainICMOInterIDr = _item.FPRDMOMAINID, - FHMainICMOEntryID = _item.FPRDMOENTYID, - FHICMOInterID = _item.FID.ToString(), - FHICMOEntryID = _item.FEntryID.ToString(), - FHMaterID = _item.FMATERIALID2, - FErpClsID = _item.FErpClsID, - FHStockOrgID = _item.FStockOrgId, - FHPRDORGID = _item.FStockOrgId, - FPRDBillNo = _item.FMOBillNO, - FOwnerTypeId = "BD_OwnerOrg", - FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺 - FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲� - FCompleteCount1 = 0, //榻愬鏁伴噺 - FLackCount = _item.PlanCount,//缂烘枡鏁伴噺 - FHStockQty = 0,//鍗虫椂搴撳瓨 - FHLeftQty = 0,//鍙敤鏁伴噺 - FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 - FComPlete = "鏈綈濂�", - FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈� - }); - } - } - //Thread.Sleep(100); - // this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(40) / DatePlanList.Count) * i); - i++; - } - LogHelper.Info($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{completeAnalysisTempModel.Count}锛岃�楁椂锛�" + sw.Elapsed); - List<string> sqlList = new List<string>(); - int jdtmmm = 1; - foreach (var item in completeAnalysisTempModel) - { - sql = string.Format(@" -/*dialect*/ -delete z_JIT_MOMaterReadysBill -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,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.FErpClsID); - sqlList.Add(sql); - this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(80) / completeAnalysisTempModel.Count) * jdtmmm); - jdtmmm++; - } - DBServiceHelper.ExecuteBatch(Context, sqlList); - //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬� - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') -"); - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') -"); - sw.Stop();//缁撴潫璁℃椂 - LogHelper.Info("榻愬鍒嗘瀽杩愯鎬绘椂闀匡細" + sw.Elapsed); - } - catch (Exception ex) - { - LogHelper.Error("榻愬鍒嗘瀽璺冲嚭锛�" + ex.Message.ToString()); - - } - } //鐢熶骇鐢ㄦ枡娓呭崟 榻愬鍒嗘瀽 public string CompleteSetAnalysisByDataTable() { @@ -1443,14 +999,22 @@ Stopwatch sw = new Stopwatch(); sw.Start();//寮�濮嬭鏃� int maxFid = DBServiceHelper.ExecuteScalar<int>(Context, "select max(FID)FID FROM JIT_MOMaterReadysBill", 0); - //娓呯┖榻愬涓存椂琛� - DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); + //娓呯┖榻愬涓存椂琛� (鍏抽棴鐨勮鍗� 浠婂ぉ涔嬪墠鐨勬暟鎹笉鍋氬垹闄�) + DBServiceHelper.Execute(Context, @"/*dialect*/ +delete from JIT_MOMaterReadysBill + where FHICMOINTERID not in + ( + select distinct a.FID from Sc_WorkBillSortBillMain a +join Sc_WorkBillSortBillSub b on a.FID = b.FID +where DATEDIFF(D, GETDATE(), FHMASTERDATE) < 0 +or a.FDOCUMENTSTATUS in ('E') + ) "); //鏇存柊鐘舵�� DBServiceHelper.Execute(Context, "/*dialect*/ update Sc_WorkBillSortBillsub set FCOMPLETE='' "); //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+搴撳瓨缁勭粐+璐т富+搴撳瓨鏁伴噺 DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ - select isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from + select isnull(a.FBASEQTY,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from ( select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a join SC_WORKBILLSORTBILLSub b on a.FID = b.FID @@ -1460,7 +1024,7 @@ group by a.FHPRDORGID,T2.FMATERIALID ) 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 and a.FOwnerId = b.FOwnerId +--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 @@ -1470,7 +1034,7 @@ //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺 ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ - select sum(isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from + select sum(isnull(a.FBASEQTY,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from ( select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a join SC_WORKBILLSORTBILLSub b on a.FID = b.FID @@ -1480,7 +1044,7 @@ group by a.FHPRDORGID,T2.FMATERIALID ) 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 +--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 --where T1.FMATERIALID in (105773) @@ -1501,8 +1065,11 @@ 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 +where +--(FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or +DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 +and a.FDOCUMENTSTATUS not in ('E') +--and b.FHQTY>0 ORDER BY b.FHMASTERDATE,a.FHOrderLev "; ds = DBServiceHelper.ExecuteDataSet(Context, sql); @@ -2493,10 +2060,38 @@ //this.View.ShowMessage("鎿嶄綔鎴愬姛"); } + public string DayPlanPPBomBillBatch() + { + try + { + DataTable dt = DBServiceHelper.ExecuteDataSet(Context, $"select FID from Sc_DayPlanPPBomBillMain where FDOCUMENTSTATUS <>'E'").Tables[0]; + List<string> zxSqlList = new List<string>(); + if (dt.Rows.Count > 0) + { + foreach (DataRow dr in dt.Rows) + { + 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", dr["FID"])); + } + } + DBServiceHelper.ExecuteBatch(Context, zxSqlList); + return "鎿嶄綔鎴愬姛"; + } + catch (Exception ex) + { + LogHelper.Error(ex.Message); + return "鎿嶄綔澶辫触锛岃鑱旂郴绯荤粺绠$悊鍛�"; + } + + } /// <summary> /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴� /// </summary> - public string DayPlanPPBomBillBatch() + public string DayPlanPPBomBillBatch1() { //LogService.WriteAsync(entrys); //鏌ユ壘鍒扮殑鍚屾壒椤规 @@ -3391,11 +2986,11 @@ //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎 DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); int Fseq = entityDataObjoct.Count(); - if (Fseq == 0) - { - this.View.ShowErrMessage("璇峰厛鍔犺浇鏁版嵁"); - return; - } + //if (Fseq == 0) + //{ + // this.View.ShowErrMessage("璇峰厛鍔犺浇鏁版嵁"); + // return; + //} //var isexists = entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == "1"); //var isexists1 = entityDataObjoct.ToList().FindAll(x => x["FSRCBILLENTRYSEQ"].ToString() == "1"); -- Gitblit v1.9.1