From 54a976bab1ce8da78435bbdf8a651aa2d1af0898 Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期三, 14 九月 2022 17:22:48 +0800 Subject: [PATCH] nothing --- MES/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | 769 ---------------------------------------------------------- 1 files changed, 8 insertions(+), 761 deletions(-) diff --git a/MES/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/MES/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs index 1657a8f..ecb4809 100644 --- a/MES/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs +++ b/MES/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs @@ -109,7 +109,6 @@ base.BarItemClick(e); try { - //LogService.Write("鐢熶骇璁″垝骞冲彴鎸夐挳:" + e.BarItemKey.ToUpper().ToString()); if (e.BarItemKey.ToUpper() == "BTEXPORT") { ExportExcel(); @@ -228,17 +227,6 @@ if (e.BarItemKey.ToUpper() == "TB_TONGBU") { TongBu(); - } - - //鎻愭枡璁″垝閲嶇畻 - if (e.BarItemKey.ToUpper() == "TB_EXTRACTIONTL") - { - ExtractionTLPLAN(); - } - //瑕佹枡璁″垝閲嶇畻 - if (e.BarItemKey.ToUpper() == "TB_EXTRACTIONYL") - { - ExtractionYLPLAN(); } //鏃ヨ鍒掔敤鏂欐竻鍗� if (e.BarItemKey.ToUpper() == "TB_DAYPLANBOM") @@ -671,7 +659,6 @@ JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER') AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID WHERE T1.FBILLNO = '{2}' AND T2.FMATERIALID = '{3}' AND T2.FSEQ = '{4}'", FTempName, FTempNameEntry, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); - //LogService.Write(sql); DataTable dt = new DataTable(); dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; if (dt.Rows.Count == 0) @@ -1225,7 +1212,7 @@ List<string> sqlList = new List<string>(); DataTable insertDT = new DataTable(); insertDT.TableName = "JIT_MOMaterReadysBill"; - insertDT.Columns.Add("FID", typeof(long)); + //insertDT.Columns.Add("FID", typeof(long)); //insertDT.Columns.Add("FBILLNO", typeof(string)); insertDT.Columns.Add("FDOCUMENTSTATUS", typeof(string)); insertDT.Columns.Add("FHMAINICMOINTERIDR", typeof(long)); @@ -1259,7 +1246,7 @@ foreach (var item in completeAnalysisTempModel) { DataRow dr = insertDT.NewRow(); - dr["FID"] = maxFid + jdtmmm; + //dr["FID"] = maxFid + jdtmmm; //dr["FBILLNO"] = ""; dr["FDOCUMENTSTATUS"] = "A"; dr["FHMAINICMOINTERIDR"] = item.FHMainICMOInterIDr; @@ -1299,10 +1286,10 @@ DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT); LogService.Write("鎵归噺鎻掑叆鍒版暟鎹簱鐢ㄦ椂锛�" + sw.Elapsed); //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬� - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') and FID IN (" + fDayPlanFids + ") "); - DBServiceHelper.Execute(Context, @" -/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') and FID IN (" + fDayPlanFids + ") "); +// DBServiceHelper.Execute(Context, @" +///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') and FID IN (" + fDayPlanFids + ") "); +// DBServiceHelper.Execute(Context, @" +///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�') and FID IN (" + fDayPlanFids + ") "); //閲婃斁榻愬鎿嶄綔 閬垮厤澶氫汉鍚屾椂杩涜榻愬鍒嗘瀽 DBServiceHelper.Execute(Context, $"/*dialect*/ update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={fPrdOrgId} and FSTATUS = 1 "); sw.Stop();//缁撴潫璁℃椂 @@ -1607,7 +1594,7 @@ List<string> sqlList = new List<string>(); DataTable insertDT = new DataTable(); insertDT.TableName = "JIT_MOMaterReadysBillXn"; - insertDT.Columns.Add("FID", typeof(long)); + //insertDT.Columns.Add("FID", typeof(long)); //insertDT.Columns.Add("FBILLNO", typeof(string)); insertDT.Columns.Add("FDOCUMENTSTATUS", typeof(string)); insertDT.Columns.Add("FHMAINICMOINTERIDR", typeof(long)); @@ -1641,7 +1628,7 @@ foreach (var item in completeAnalysisTempModel) { DataRow dr = insertDT.NewRow(); - dr["FID"] = maxFid + jdtmmm; + //dr["FID"] = maxFid + jdtmmm; //dr["FBILLNO"] = ""; dr["FDOCUMENTSTATUS"] = "A"; dr["FHMAINICMOINTERIDR"] = item.FHMainICMOInterIDr; @@ -3660,746 +3647,6 @@ else { this.View.ShowMessage("璇峰嬀閫夋暟鎹�"); - } - } - - /// <summary> - /// 鎻愭枡璁″垝杩涘害鏉� - /// </summary> - [Obsolete] - private void ExtractionTLPLAN() - { - // 鏄剧ず涓�涓繘搴︽樉绀虹晫闈細鏄剧ず涓�涓笉鍋滄粴鍔ㄧ殑妯℃嫙杩涘害 - // bUseTruePro鍙傛暟锛氭槸鍚︽樉绀虹湡瀹炵殑杩涘害銆� - // bUseTruePro = false 锛� - // 鏄剧ず涓�涓笉鍋滄粴鍔ㄧ殑妯℃嫙杩涘害锛屼笌瀹為檯澶勭悊杩涘害娌℃湁鍏宠仈銆� - // 姝ゆ柟妗堜紭鐐癸細瀹為檯澶勭悊浠g爜鏃犻渶璁$畻杩涘害 - // 姝ゆ柟妗堢己鐐癸細杩涘害涓嶅噯纭紝涓旇繘搴﹂〉闈笉浼氳嚜鍔ㄥ叧闂�� - // bUseTruePro = true: 杩涘害鐣岄潰鏄剧ず鐪熷疄杩涘害 - // 姝ゆ柟妗堜紭鐐癸細杩涘害鐪熷疄 - // 姝ゆ柟妗堢己鐐癸細闇�瑕佸湪澶勭悊浠g爜涓紝涓嶆柇鐨勬洿鏂扮湡瀹炶繘搴︼紝鏇存柊璇彞 - // this.View.Session["ProcessRateValue"] = 100; - // 鐗瑰埆璇存槑锛屽綋杩涘害鏇存柊鍒�100鏃讹紝杩涘害鐣岄潰浼氳嚜鍔ㄥ叧闂� - // 鏈渚嬮�夌敤姝ゆ柟妗� - var processForm = this.View.ShowProcessForm( - new Action<FormResult>(t => { }), - true, - "姝e湪鐢熸垚锛岃绋嶅��..."); - - // 寮�鍚竴涓紓姝ョ嚎绋嬶紝澶勭悊寮曞叆鍔熻兘 - // using Kingdee.BOS.KDThread; - MainWorker.QuequeTask(() => - { - var resuult = ""; - try - { - // 闇�瑕佹崟鑾烽敊璇紝浠ョ‘淇濆鐞嗙粨鏉熸椂锛屽叧闂繘搴︽粴鍔ㄧ晫闈� - // 寮曞叆鍔熻兘瀹為檯澶勭悊鍑芥暟 - resuult = this.ExtractionTL(); - } - finally - { - // 纭繚鏍囪杩涘害宸茬粡鍒拌揪100% - this.View.Session["ProcessRateValue"] = 100; - // 寮曞叆瀹屾瘯锛屽叧闂繘搴︽樉绀洪〉闈� - var processView = this.View.GetView(processForm.PageId); - if (processView != null) - { - processView.Close(); - this.View.SendDynamicFormAction(processView); - } - this.View.ShowMessage(resuult); - } - }, - (t) => { }); - } - /// <summary> - /// 鎻愭枡璁″垝 - /// </summary> - public string ExtractionTL() - { - try - { - var fProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)?["Id"].ToString(); - var fPrdOrgId = (this.Model.GetValue("FPRDOrgId") as DynamicObject)?["Id"].ToString(); - if (String.IsNullOrEmpty(fProWorkShopId) || String.IsNullOrEmpty(fPrdOrgId)) - { - return "璇烽�夋嫨缁勭粐鐢熶骇杞﹂棿"; - } - LogService.Write($"杞﹂棿锛歿fProWorkShopId}锛岀粍缁囷細{fPrdOrgId}"); - Stopwatch sw = new Stopwatch(); - sw.Start();//寮�濮嬭鏃� - //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺 - string sql = string.Format($"/*dialect*/exec PRD_TLPLANYCL '{fProWorkShopId}','{fPrdOrgId}'"); - DBServiceHelper.Execute(Context, sql); - //閲囪喘璁㈠崟鏁版嵁 锛堝墿浣欐敹鏂欐暟閲忥級 - sql = @" - /*dialect*/ -select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t4.FREMAINRECEIVEQTY-t2.FPODemandPlanCount)FQTY -,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FCloseStatus,FMRPCLOSESTATUS -,'' FXQD,t1.FCREATORID,t8.FName ,t1.FDate,tD.FDeliveryDate,'' F_QIMB_NOTE,t2.FNOTE, -isnull((select top 1 FLEADTIME + FLEADTTIME2 from T_PRD_TLPlanConfig a - join T_PRD_TLPlanConfigEntry b on a.FID =b.FID - where a.FORGID = t1.FPurchaseOrgId and b.FSUPPLIERID = t1.FSUPPLIERID), 0)FFIXLEADTIME - from t_PUR_POOrder t1 - join t_PUR_POOrderEntry t2 on t1.FID = t2.FID -join t_BD_Supplier t3 on t1.FSUPPLIERID = t3.FSUPPLIERID -join T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID -join T_PUR_POORDERENTRY_D tD on t2.FENTRYID = tD.FENTRYID -join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID -join T_SEC_user t8 on t1.FCREATORID = t8.FuserId -where t4.FREMAINRECEIVEQTY-t2.FPODemandPlanCount>0 - and FCloseStatus in('A') and FMRPCLOSESTATUS in('A') - and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') -"; - LogService.Write("鏌ヨ閲囪喘璁㈠崟鏁版嵁鐢ㄦ椂锛�" + sw.Elapsed); - List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); - ////LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]鍙敤閲囪喘璁㈠崟鏁版嵁sql锛�" + sql); - sql = string.Format(@" - /*dialect*/ -SELECT T1.FID,FHMASTERDATE,T1.FENTRYID,t2.FHSeOrderBillNo as FXQD,T1.FBILLNO, FNEEDQTY,0 as FFIXLEADTIME -,FMAXPOQTY,0 as FMINPOQTY,0 as FJITMATERIALGROUP,0 as FJITMATERIELDEMAND,0 as 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 A -RIGHT JOIN (SELECT MAX(FID)FID FROM JIT_MOMATERREADYSBILL GROUP BY FHICMOENTRYID,FHMATERID) B ON A.FID = B.FID -)T1 -JOIN Sc_WorkBillSortBillMain T2 ON T1.FID = T2.FID -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 -AND FERPCLSID IN ('1','3') -AND T1.NEEDQTY>0 -AND T1.FENTRYID NOT IN (SELECT DISTINCT FHSOURCEENTRYID FROM CG_PODEMANDPLANBILLSUB) -AND T2.FHPRDORGID='{0}' -AND T2.FHWORKSHOPID = '{1}' -ORDER BY FHMASTERDATE -", fPrdOrgId, fProWorkShopId); - ////LogHelper.Info("[鎻愭枡璁″垝鍑嗗闃舵]闇�瑕佹彁鏂欐暟鎹畇ql锛�" + 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 == "163165").ToList(); - //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚� - List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); - //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲� - List<string> sqlList = new List<string>(); - //MaterialIDList = new List<string> { "105773" }; - int i = 1;//鐢ㄤ簬杩涘害鏉″姞杞� - foreach (var item in MaterialIDList) - { - this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(80) / MaterialIDList.Count) * i); - //褰撳墠鐗╂枡娌℃湁閲囪喘璁㈠崟鏃� 鐩存帴璺冲嚭 - List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); - if (_PurchaseInventory.Count == 0) - { - LogHelper.Info("[鎻愭枡璁″垝寮�濮媇褰撳墠鐗╂枡鏃犻噰璐俊鎭細" + item.FMATERIALID + " 搴撳瓨缁勭粐锛�" + item.FStockOrgId); - continue; - } - //褰撳墠鐗╂枡鍜屽簱瀛樼粍缁囧搴旂殑闇�杩涜鎻愭枡璁″垝鐨勬暟鎹� - 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;//绗竴涓璐ц捣濮嬫棩鏈� - //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID - List<int> FEntryIdList = new List<int>(); - foreach (var _item in _DayPlanPpbom) - { - _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); - if (_PurchaseInventory.Count == 0) - { - LogHelper.Info("[鎻愭枡璁″垝寮�濮媇鐢熶骇璁㈠崟鍙凤細" + item.FBILLNO + ",褰撳墠鐗╂枡鏄庣粏鏃犻噰璐俊鎭細" + item.FMATERIALID + " 搴撳瓨缁勭粐锛�" + item.FStockOrgId); - break; - } - FEntryIdList.Add(_item.FENTRYID); - NeedQty += _item.NeedQty; - //澧炲姞涓�涓攢鍞鍗曞彿鍖归厤鐨勯�昏緫 浼樺厛寰幆 - var PurchaseInventoryElse = _PurchaseInventory.Where(x => x.FXQD != _item.FXQD).OrderBy(x => x.FENTRYID).ToList(); - foreach (var Purchase in PurchaseInventoryElse) - { - double _FFIXLEADTIME = Purchase.FFIXLEADTIME;//鎻愬墠鏈� - DateTime _DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-_FFIXLEADTIME); - ////LogHelper.Info("閲囪喘璁㈠崟鍙锋祴璇曪細" + Purchase.FBillNo); - ////LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",閲囪喘璁㈠崟鏁伴噺锛�" + Purchase.FQTY); - if (Purchase.FQTY >= NeedQty) - { - 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, - - FXQD = Purchase.FXQD, - FCREATORID = Purchase.FCREATORID, - FName = Purchase.FName, - FDate = Purchase.FDate, - FDeliveryDate = Purchase.FDeliveryDate, - F_QIMB_NOTE = Purchase.F_QIMB_NOTE, - FNOTE = Purchase.FNOTE - }); - //鎵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; - } - 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;//璁㈠崟鏁伴噺 - //if (Qty == 0) - // //LogHelper.Info("璁㈠崟鏁伴噺涓�0"); - if (Qty > _NeedQty) - Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗� - - //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, - - FXQD = Purchase.FXQD, - FCREATORID = Purchase.FCREATORID, - FName = Purchase.FName, - FDate = Purchase.FDate, - FDeliveryDate = Purchase.FDeliveryDate, - F_QIMB_NOTE = Purchase.F_QIMB_NOTE, - FNOTE = Purchase.FNOTE - }); - //鏇存柊璁″垝鏁伴噺锛堝墿浣欓渶瑕佹帓鐨勶級 缁х画鍘昏绠椾笅涓�涓噰璐鍗� - 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; - } - mmm.Add(id); - } - //foreach (var mm in mmm) - //{ - // FEntryIdList.Remove(mm); - //} - } - } - if (NeedQty > 0) - { - LogHelper.Info("[鎻愭枡璁″垝寮�濮媇鐢熶骇璁㈠崟鍙凤細" + item.FBILLNO + ",褰撳墠鐗╂枡锛�" + item.FMATERIALID + "闇�姹傛暟閲忥細" + _item.NeedQty + " ,鍗犵敤閲囪喘璁㈠崟鍚庢暟閲忓墿浣欙細" + NeedQty); - } - NeedQty = 0; - } - i++; - } - var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); - LogService.Write("鎻愭枡璁″垝锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋 鐢ㄦ椂锛�" + sw.Elapsed + "鎬昏鏁帮細" + PODemandPlanTemp.Count); - //LogHelper.Info($"鎻愭枡璁″垝锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{PODemandPlanTemp.Count}"); - int tlmmm = 1; - JArray FinalyResult = new JArray(); - foreach (var item in PODemandPlanList) - { - this.View.Session["ProcessRateValue"] = 80 + Convert.ToInt32((Convert.ToDecimal(20) / PODemandPlanList.Count) * tlmmm); - DateTime date = item.FHMASTERDATE; - string PurchseFNUMBER = item.PurchseFNUMBER; - JObject model = new JObject(); - model.Add("FHDate", date); - model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" }); - model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER }); - - JArray Fentity = new JArray(); - List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList(); - LogHelper.Info("娴嬭瘯listmodel锛�" + _PODemandPlanList[0].FORGNumber.ToString()); - foreach (var _item in _PODemandPlanList) - { - if (!model.ToString().Contains("FHPURCHASEORGID")) - model.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber }); - JObject FentityModel = new JObject(); - FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡 - FentityModel.Add("FHQty", _item.FQty);//鏁伴噺 - FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID - FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID - FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙� - FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨� - FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨� - FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺 - FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈� - FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐 - FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID - FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID - FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo - FentityModel.Add("FERPCLSID", _item.FErpClsID); //鍙戞枡鏂瑰紡 - FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍙戞枡鏂瑰紡 - - FentityModel.Add("FSalOrderNo", _item.FXQD); //闇�姹傚崟鍙� - FentityModel.Add("FCgddCreaterId", new JObject() { ["FUserID"] = _item.FCREATORID }); //閲囪喘鍛� - FentityModel.Add("FCgDate", _item.FDate); //閲囪喘璁㈠崟鍗曟嵁鏃ユ湡 - FentityModel.Add("FCgDeliveryDate", _item.FDeliveryDate); //閲囪喘璁㈠崟浜よ揣鏃ユ湡 - FentityModel.Add("F_QIMB_NOTE", _item.F_QIMB_NOTE); //閲囪喘璁㈠崟鎽樿 - FentityModel.Add("FNOTE", _item.FNOTE); //閲囪喘璁㈠崟琛ㄤ綋澶囨敞 - - 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); - JObject jsonRoot = new JObject() - { - ["Creator"] = "", - ["NeedUpDateFields"] = new JArray(), - ["NeedReturnFields"] = new JArray(), - ["IsDeleteEntry"] = "false", - ["SubSystemId"] = "", - ["IsVerifyBaseDataField"] = "false", - ["Model"] = FinalyResult - }; - LogService.Write(jsonRoot.ToString()); - CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); - var result = cloudClient.BatchSave("paez_PODemandPlan", jsonRoot.ToString()); - JObject saveObj = JObject.Parse(result); - string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); - if (saveIsSuc != "TRUE") - { - this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); - } - FinalyResult = new JArray(); - } - tlmmm++; - } - LogService.Write("璋冪敤webapi 鐢ㄦ椂锛�" + sw.Elapsed + "鎬昏鏁帮細" + PODemandPlanTemp.Count); - sw.Stop();//缁撴潫璁℃椂 - DBServiceHelper.ExecuteBatch(Context, sqlList); - return "鎿嶄綔鎴愬姛"; - } - catch (Exception ex) - { - LogService.Write("鎻愭枡璁″垝璺冲嚭锛�" + ex.Message.ToString()); - return ex.Message.ToString(); - } - } - - /// <summary> - /// 瑕佹枡璁″垝杩涘害鏉� - /// </summary> - [Obsolete] - private void ExtractionYLPLAN() - { - // 鏄剧ず涓�涓繘搴︽樉绀虹晫闈細鏄剧ず涓�涓笉鍋滄粴鍔ㄧ殑妯℃嫙杩涘害 - // bUseTruePro鍙傛暟锛氭槸鍚︽樉绀虹湡瀹炵殑杩涘害銆� - // bUseTruePro = false 锛� - // 鏄剧ず涓�涓笉鍋滄粴鍔ㄧ殑妯℃嫙杩涘害锛屼笌瀹為檯澶勭悊杩涘害娌℃湁鍏宠仈銆� - // 姝ゆ柟妗堜紭鐐癸細瀹為檯澶勭悊浠g爜鏃犻渶璁$畻杩涘害 - // 姝ゆ柟妗堢己鐐癸細杩涘害涓嶅噯纭紝涓旇繘搴﹂〉闈笉浼氳嚜鍔ㄥ叧闂�� - // bUseTruePro = true: 杩涘害鐣岄潰鏄剧ず鐪熷疄杩涘害 - // 姝ゆ柟妗堜紭鐐癸細杩涘害鐪熷疄 - // 姝ゆ柟妗堢己鐐癸細闇�瑕佸湪澶勭悊浠g爜涓紝涓嶆柇鐨勬洿鏂扮湡瀹炶繘搴︼紝鏇存柊璇彞 - // this.View.Session["ProcessRateValue"] = 100; - // 鐗瑰埆璇存槑锛屽綋杩涘害鏇存柊鍒�100鏃讹紝杩涘害鐣岄潰浼氳嚜鍔ㄥ叧闂� - // 鏈渚嬮�夌敤姝ゆ柟妗� - var processForm = this.View.ShowProcessForm( - new Action<FormResult>(t => { }), - true, - "姝e湪鐢熸垚锛岃绋嶅��..."); - - // 寮�鍚竴涓紓姝ョ嚎绋嬶紝澶勭悊寮曞叆鍔熻兘 - // using Kingdee.BOS.KDThread; - MainWorker.QuequeTask(() => - { - var resuult = ""; - try - { - // 闇�瑕佹崟鑾烽敊璇紝浠ョ‘淇濆鐞嗙粨鏉熸椂锛屽叧闂繘搴︽粴鍔ㄧ晫闈� - // 寮曞叆鍔熻兘瀹為檯澶勭悊鍑芥暟 - resuult = this.ExtractionYL(); - } - finally - { - // 纭繚鏍囪杩涘害宸茬粡鍒拌揪100% - this.View.Session["ProcessRateValue"] = 100; - // 寮曞叆瀹屾瘯锛屽叧闂繘搴︽樉绀洪〉闈� - var processView = this.View.GetView(processForm.PageId); - if (processView != null) - { - processView.Close(); - this.View.SendDynamicFormAction(processView); - } - this.View.ShowMessage(resuult); - } - }, - (t) => { }); - } - /// <summary> - /// 瑕佹枡璁″垝 - /// </summary> - public string ExtractionYL() - { - try - { - Stopwatch sw = new Stopwatch(); - sw.Start();//寮�濮嬭鏃� - - var fProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)?["Id"].ToString(); - var fPrdOrgId = (this.Model.GetValue("FPRDOrgId") as DynamicObject)?["Id"].ToString(); - if (String.IsNullOrEmpty(fProWorkShopId) || String.IsNullOrEmpty(fPrdOrgId)) - { - //this.View.ShowErrMessage("璇烽�夋嫨缁勭粐鍜岀敓鐢熶骇杞﹂棿"); - return "璇烽�夋嫨缁勭粐鍜岀敓鐢熶骇杞﹂棿"; - } - string sql = string.Format($"/*dialect*/exec PRD_YLPLANYCL '{fProWorkShopId}','{fPrdOrgId}'"); - DBServiceHelper.Execute(Context, sql); - //鐢熶骇璁㈠崟鏁版嵁锛堝彇鐢熶骇璁㈠崟鏈叆搴撴暟閲忥級 - sql = @" - /*DIALECT*/ -SELECT T1.FID,T1.FBILLNO,T2.FENTRYID,T2.FWORKSHOPID AS FSUPPLIERID,T3.FNUMBER,T2.FMATERIALID,(TQ.FNOSTOCKINQTY-T2.FPODEMANDPLANCOUNT)FQTY -,T1.FPRDORGID FSTOCKORGID,T5.FNUMBER FORGNUMBER,'' FXQD,T1.FCREATORID,T8.FNAME ,T1.FDATE,'' AS F_QIMB_NOTE,'' AS FNOTE,0 AS FFIXLEADTIME -FROM T_PRD_MO T1 -JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID -JOIN T_PRD_MOENTRY_Q TQ ON T2.FENTRYID = TQ.FENTRYID -JOIN T_BD_DEPARTMENT T3 ON T2.FWORKSHOPID = T3.FDEPTID -JOIN T_ORG_ORGANIZATIONS T5 ON T1.FPRDORGID = T5.FORGID -JOIN T_SEC_USER T8 ON T1.FCREATORID = T8.FUSERID -WHERE TQ.FNOSTOCKINQTY-T2.FPODEMANDPLANCOUNT>0 - -"; - List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); - sql = string.Format(@" - /*dialect*/ -SELECT T1.FID,FHMASTERDATE,T1.FENTRYID,t2.FHSeOrderBillNo as FXQD,T1.FBILLNO, FNEEDQTY,0 as FFIXLEADTIME -,FMAXPOQTY,0 as FMINPOQTY,0 as FJITMATERIALGROUP,0 as FJITMATERIELDEMAND,0 as 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 A -RIGHT JOIN (SELECT MAX(FID)FID FROM JIT_MOMATERREADYSBILL GROUP BY FHICMOENTRYID,FHMATERID) B ON A.FID = B.FID -)T1 -JOIN Sc_WorkBillSortBillMain T2 ON T1.FID = T2.FID -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 FERPCLSID IN ('2') -AND T1.NEEDQTY>0 -AND T1.FENTRYID NOT IN (SELECT DISTINCT FHSOURCEENTRYID FROM t_Prd_ProductPlanEntry) -AND T2.FHPRDORGID='{0}' -AND T2.FHWORKSHOPID = '{1}' -ORDER BY FHMASTERDATE -", fPrdOrgId, fProWorkShopId); - 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 == "163165").ToList(); - ////LogService.Write("[鎻愭枡璁″垝鍑嗗闃舵]鎬荤墿鏂欒鏁�" + MaterialIDList.Count); - //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚� - List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); - //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲� - List<string> sqlList = new List<string>(); - //MaterialIDList = new List<string> { "105773" }; - int i = 1;//鐢ㄤ簬杩涘害鏉″姞杞� - foreach (var item in MaterialIDList) - { - this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(80) / MaterialIDList.Count) * i); - //褰撳墠鐗╂枡娌℃湁閲囪喘璁㈠崟鏃� 鐩存帴璺冲嚭 - List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); - if (_PurchaseInventory.Count == 0) - { - LogService.Write($"鐗╂枡锛歿 item.FMATERIALID},闇�姹傚崟鍙凤細{item.FXQD},鐢熶骇璁㈠崟鍙凤細{item.FBILLNO},鏃ヨ鍒掑伐鍗旻ID:{item.FID}...鏈壘鍒板搴旂敓浜ц鍗曚俊鎭�"); - continue; - } - ////LogService.Write(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;//绗竴涓璐ц捣濮嬫棩鏈� - //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID - List<int> FEntryIdList = new List<int>(); - foreach (var _item in _DayPlanPpbom) - { - var PurchaseInventory_scdd = _PurchaseInventory.Where(x => x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); - if (PurchaseInventory_scdd.Count == 0) - { - LogService.Write($"鐗╂枡锛歿 _item.FMATERIALID},闇�姹傚崟鍙凤細{item.FXQD},鐢熶骇璁㈠崟鍙凤細{_item.FBILLNO},鏃ヨ鍒掑伐鍗旻ID:{_item.FID}...鐢熶骇璁㈠崟鏁伴噺宸茶鍗犵敤瀹�"); - break; - } - FEntryIdList.Add(_item.FENTRYID); - NeedQty += _item.NeedQty; - //澧炲姞涓�涓攢鍞鍗曞彿鍖归厤鐨勯�昏緫 浼樺厛寰幆 - if (PurchaseInventory_scdd.Count > 0) - { - foreach (var Purchase in PurchaseInventory_scdd) - { - double _FFIXLEADTIME = Purchase.FFIXLEADTIME;//鎻愬墠鏈� - DateTime _DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-_FFIXLEADTIME); - ////LogService.Write("閲囪喘璁㈠崟鍙锋祴璇曪細" + Purchase.FBillNo); - ////LogService.Write("鐗╂枡锛�" + Purchase.FMATERIALID + ",閲囪喘璁㈠崟鏁伴噺锛�" + Purchase.FQTY); - if (Purchase.FQTY >= NeedQty) - { - 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, - - FXQD = Purchase.FXQD, - FCREATORID = Purchase.FCREATORID, - FName = Purchase.FName, - FDate = Purchase.FDate, - //FDeliveryDate = Purchase.FDeliveryDate, - F_QIMB_NOTE = Purchase.F_QIMB_NOTE, - FNOTE = Purchase.FNOTE - }); - //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺 - DayPlanPpbomls.NeedQty = 0; - } - FEntryIdList.Clear(); - //鏇存柊閲囪喘璁㈠崟 - sqlList.Add($"/*dialect*/ update T_PRD_MOEntry 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; - } - 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;//璁㈠崟鏁伴噺 - //if (Qty == 0) - // //LogService.Write("璁㈠崟鏁伴噺涓�0"); - if (Qty > _NeedQty) - Qty = _NeedQty; //璁㈠崟鏁伴噺>閲囪喘璁㈠崟鏁伴噺 鍙栭噰璐鍗� - - //if (_NeedQty == 0) - // //LogService.Write("璁㈠崟鏁伴噺涓�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, - - FXQD = Purchase.FXQD, - FCREATORID = Purchase.FCREATORID, - FName = Purchase.FName, - FDate = Purchase.FDate, - //FDeliveryDate = Purchase.FDeliveryDate, - F_QIMB_NOTE = Purchase.F_QIMB_NOTE, - FNOTE = Purchase.FNOTE - }); - //鏇存柊璁″垝鏁伴噺锛堝墿浣欓渶瑕佹帓鐨勶級 缁х画鍘昏绠椾笅涓�涓噰璐鍗� - DayPlanPpbomls.NeedQty -= Qty; - //鏇存柊閲囪喘璁㈠崟 - sqlList.Add($"/*dialect*/ update T_PRD_MOEntry 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; - } - mmm.Add(id); - } - } - } - } - //if (NeedQty > 0) - //{ - // LogService.Write("[瑕佹枡璁″垝]鐢熶骇璁㈠崟鍙凤細" + item.FBILLNO + ",褰撳墠鐗╂枡锛�" + item.FMATERIALID + ",闇�姹傛暟閲忥細" + _item.NeedQty + " ,鍗犵敤閲囪喘璁㈠崟鍚庢暟閲忓墿浣欙細" + NeedQty); - //} - NeedQty = 0; - } - i++; - } - var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); - int tlmmm = 1; - JArray FinalyResult = new JArray(); - foreach (var item in PODemandPlanList) - { - this.View.Session["ProcessRateValue"] = 80 + Convert.ToInt32((Convert.ToDecimal(20) / PODemandPlanList.Count) * tlmmm); - DateTime date = item.FHMASTERDATE; - string PurchseFNUMBER = item.PurchseFNUMBER; - JObject model = new JObject(); - model.Add("FHDate", date); - model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" }); - 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) - { - if (!model.ToString().Contains("FHPURCHASEORGID")) - model.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber }); - JObject FentityModel = new JObject(); - FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡 - FentityModel.Add("FHQty", _item.FQty);//鏁伴噺 - FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID - FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID - FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙� - FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨� - FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨� - FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺 - FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈� - FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐 - FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID - FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID - FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo - FentityModel.Add("FERPCLSID", _item.FErpClsID); //鍙戞枡鏂瑰紡 - FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍙戞枡鏂瑰紡 - - FentityModel.Add("FSalOrderNo", _item.FXQD); //闇�姹傚崟鍙� - FentityModel.Add("FCgddCreaterId", new JObject() { ["FUserID"] = _item.FCREATORID }); //閲囪喘鍛� - FentityModel.Add("FCgDate", _item.FDate); //閲囪喘璁㈠崟鍗曟嵁鏃ユ湡 - //FentityModel.Add("FCgDeliveryDate", _item.FDeliveryDate); //閲囪喘璁㈠崟浜よ揣鏃ユ湡 - FentityModel.Add("F_QIMB_NOTE", _item.F_QIMB_NOTE); //閲囪喘璁㈠崟鎽樿 - FentityModel.Add("FNOTE", _item.FNOTE); //閲囪喘璁㈠崟琛ㄤ綋澶囨敞 - - Fentity.Add(FentityModel); - } - model.Add("FEntity", Fentity); - FinalyResult.Add(model); - if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) - { - JObject jsonRoot = new JObject() - { - ["Creator"] = "", - ["NeedUpDateFields"] = new JArray(), - ["NeedReturnFields"] = new JArray(), - ["IsDeleteEntry"] = "false", - ["SubSystemId"] = "", - ["IsVerifyBaseDataField"] = "false", - ["Model"] = FinalyResult - }; - CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); - var result = cloudClient.BatchSave("bsv_ProductPlan", jsonRoot.ToString()); - JObject saveObj = JObject.Parse(result); - string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); - if (saveIsSuc != "TRUE") - { - this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); - } - FinalyResult = new JArray(); - } - tlmmm++; - } - sw.Stop();//缁撴潫璁℃椂 - LogService.Write("瑕佹枡璁″垝鎵ц瀹屾垚 璋冪敤webapi 鐢ㄦ椂锛�" + sw.Elapsed + "鎬昏鏁帮細" + PODemandPlanTemp.Count); - DBServiceHelper.ExecuteBatch(Context, sqlList); - return "鎿嶄綔鎴愬姛"; - } - catch (Exception ex) - { - LogService.Write(ex.Message.ToString()); - return ex.Message.ToString(); } } } -- Gitblit v1.9.1