From 2a2e3fbbef29bbc568b10f2bd45bd6e658443d6e Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期五, 19 三月 2021 14:42:43 +0800 Subject: [PATCH] 问题处理 --- src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs | 1456 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 728 insertions(+), 728 deletions(-) diff --git a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs index 749cccc..2aa3928 100644 --- a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs +++ b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs @@ -1,756 +1,756 @@ -锘縰sing System.ComponentModel; -using Kingdee.BOS.Contracts; -using Kingdee.BOS; -using Kingdee.BOS.Core; -using Kingdee.BOS.ServiceHelper; -using System.Data; -using ZD.Cloud.Logger; -using Newtonsoft.Json.Linq; -using System; -using Kingdee.BOS.Util; -using System.Linq; -using ZD.Cloud.WebApi; -using Demo.Model.Model; -using Demo.Model.Model.PODemandPlan; -using System.Diagnostics; -using System.Collections.Generic; -using ZD.Share.Common; +锘�//using System.ComponentModel; +//using Kingdee.BOS.Contracts; +//using Kingdee.BOS; +//using Kingdee.BOS.Core; +//using Kingdee.BOS.ServiceHelper; +//using System.Data; +//using ZD.Cloud.Logger; +//using Newtonsoft.Json.Linq; +//using System; +//using Kingdee.BOS.Util; +//using System.Linq; +//using ZD.Cloud.WebApi; +//using Demo.Model.Model; +//using Demo.Model.Model.PODemandPlan; +//using System.Diagnostics; +//using System.Collections.Generic; +//using ZD.Share.Common; -namespace Demo.TimedTaskPlugIn.PRD -{ - [Description("鏃ヨ鍒掑彂鐢熷彉鍔ㄦ椂鎵ц")] - [HotUpdate] - public class DayPlanChangeDynamicAlignment : Kingdee.BOS.Contracts.IScheduleService - { - CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/"); - public Context Context; - List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏 - List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛� +//namespace Demo.TimedTaskPlugIn.PRD +//{ +// [Description("鏃ヨ鍒掑彂鐢熷彉鍔ㄦ椂鎵ц")] +// [HotUpdate] +// public class DayPlanChangeDynamicAlignment : Kingdee.BOS.Contracts.IScheduleService +// { +// CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); +// public Context Context; +// List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏 +// List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛� - public void Run(Context ctx, Schedule schedule) - { - try - { - Context = ctx; - int Count = DBServiceHelper.ExecuteScalar<int>(Context, "/*dialect*/ select count(*) from SC_WORKBILLSORTBILLSub where ISNULL(FCOMPLETE,'')='' ", 0); - if (Count > 0) - { - CompleteSetAnalysis(); - DayPlanPPBomBill(); - Extraction(); - } - } - catch (System.Exception ex) - { - LogHelper.Error(ex.Message.ToString()); - } - } +// public void Run(Context ctx, Schedule schedule) +// { +// try +// { +// Context = ctx; +// int Count = DBServiceHelper.ExecuteScalar<int>(Context, "/*dialect*/ select count(*) from SC_WORKBILLSORTBILLSub where ISNULL(FCOMPLETE,'')='' ", 0); +// if (Count > 0) +// { +// CompleteSetAnalysis(); +// DayPlanPPBomBill(); +// Extraction(); +// } +// } +// catch (System.Exception ex) +// { +// LogHelper.Error(ex.Message.ToString()); +// } +// } - /// <summary> - /// 榻愬鍒嗘瀽 - /// </summary> - public void CompleteSetAnalysis() - { - 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 ---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 ---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 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_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID ---鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒� -where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=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) - { - //绛涢�夊嚭褰撴棩璁″垝鏁版嵁 - 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) - { +// /// <summary> +// /// 榻愬鍒嗘瀽 +// /// </summary> +// public void CompleteSetAnalysis() +// { +// 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 +//--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 +//--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 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_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID +//--鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒� +//where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=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) +// { +// //绛涢�夊嚭褰撴棩璁″垝鏁版嵁 +// 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, //榻愬鏁伴噺 - FLackCount = _fLackCount,//缂烘枡鏁伴噺 - FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨 - FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺 - FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 - FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�", - 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, //榻愬鏁伴噺 - FLackCount = _item.PlanCount,//缂烘枡鏁伴噺 - FHStockQty = 0,//鍗虫椂搴撳瓨 - FHLeftQty = 0,//鍙敤鏁伴噺 - FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 - FComPlete = "鏈綈濂�", - FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈� - }); - } - } - //Thread.Sleep(100); - i++; - } - 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("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); - if (item.FOwnerId != null) - jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); - jsonRoot.Add("Model", jsonModel); - 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()); - } - 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()); - } - } +// 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, //榻愬鏁伴噺 +// FLackCount = _fLackCount,//缂烘枡鏁伴噺 +// FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨 +// FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺 +// FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 +// FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�", +// 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, //榻愬鏁伴噺 +// FLackCount = _item.PlanCount,//缂烘枡鏁伴噺 +// FHStockQty = 0,//鍗虫椂搴撳瓨 +// FHLeftQty = 0,//鍙敤鏁伴噺 +// FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺 +// FComPlete = "鏈綈濂�", +// FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈� +// }); +// } +// } +// //Thread.Sleep(100); +// i++; +// } +// 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("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); +// if (item.FOwnerId != null) +// jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId }); +// jsonRoot.Add("Model", jsonModel); +// 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()); +// } +// 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()); +// } +// } - /// <summary> - /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴� - /// </summary> - public void DayPlanPPBomBill() - { - //閿佸畾鐨勬棩璁″垝涓嶇敓鎴� - try - { - 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 -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_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 -LEFT JOIN T_BD_UNIT T8 ON T4.FUNITID = T8.FUNITID - LEFT JOIN Sc_DayPlanPPBomBillMain T9 ON T1.FEntryID=T9.FDayPlanFID - LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID - LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID -" -); - DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); - DataTable dt = ds.Tables[0]; - List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); - if (dt.Rows.Count > 0) - { - foreach (DataRow dr in dt.Rows) - { - DayPlanMaterial.Add(new Demo.Model.Model.DayPlanMaterial - { - FID = dr["DayPlanFID"].ToString(), - FEntryID = dr["FEntryID"].ToString(), - FHDate = DateTime.Now.ToString(), - FOrgId = dr["FORGNUMBER"].ToString(), - FHMaterID = dr["FNUMBER"].ToString(), - FHWorkDate = dr["FHMASTERDATE"].ToString(), - FHQty = dr["FHQTY"].ToString(), - FHUnitID = dr["FUNITNUMBER"].ToString(), - FDayPlanFID = dr["FEntryID"].ToString(), - FHMaterSubID = dr["FNUMBER2"].ToString(), - FHUnitSubID = dr["FUNITNUMBER2"].ToString(), - FHQtyMust = dr["FHQtyMust"].ToString(), - FHQtySub = dr["FHQtyMust"].ToString(), - FHPPBomInterID = dr["FPPBOM"].ToString(), - FHPPBomEntryID = dr["FENTRYID"].ToString(), - FHSourceID = dr["FHSOURCENUMBER"].ToString(), - FNumerator = dr["FNumerator"].ToString(), - FDenominator = dr["FDenominator"].ToString(), - FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(), - FHQtyScrap = dr["FSCRAPRATE"].ToString(), - }); - } - var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); - foreach (var item in fidList) - { - var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList(); - JObject model = new JObject(); - model.Add("FHDate", DateTime.Now); - model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐 - model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡 - model.Add("FHWorkDate", _DayPlanMaterial[0].FHWorkDate);//鏃ュ伐鍗曟棩鏈� FHWorkDate - model.Add("FHQty", _DayPlanMaterial[0].FHQty);//涓讳骇鍝佹暟閲忥細FHQty - model.Add("FHUnitID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHUnitID });//鍗曚綅锛欶HUnitID - model.Add("FDayPlanFID", _DayPlanMaterial[0].FDayPlanFID);//鏃ヨ鍒掑伐鍗曞唴鐮� - JArray Entry = new JArray(); - foreach (var _item in _DayPlanMaterial) - { - JObject ModelEnty = new JObject(); - ModelEnty.Add("FHMaterSubID", new JObject() { ["Fnumber"] = _item.FHMaterSubID });//瀛愮墿鏂橣HMaterSubID - ModelEnty.Add("FHUnitSubID", new JObject() { ["Fnumber"] = _item.FHUnitSubID });//鍗曚綅FHUnitSubID - ModelEnty.Add("FHQtyMust", _item.FHQtyMust);//搴斿彂鏁伴噺FHQtyMust - ModelEnty.Add("FHQtySub", _item.FHQtySub);//鏁伴噺FHQtySub - ModelEnty.Add("FHPPBomInterID", _item.FHPPBomInterID);//鐢ㄦ枡娓呭崟涓诲唴鐮丗HPPBomInterID - ModelEnty.Add("FHPPBomEntryID", _item.FHPPBomEntryID);//鐢ㄦ枡娓呭崟瀛愬唴鐮丗HPPBomEntryID - ModelEnty.Add("FHSourceID", new JObject() { ["Fnumber"] = _item.FHSourceID });//鐢熶骇璧勬簮FHSourceID - ModelEnty.Add("FNumerator", _item.FNumerator);//鍒嗘瘝 - ModelEnty.Add("FDenominator", _item.FDenominator);//鍒嗗瓙 - ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡 - ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻�� - ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼% - Entry.Add(ModelEnty); - } - model.Add("FEntity", Entry); - if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID)) - model.Add("FID", _DayPlanMaterial[0].FID); - JObject jsonRoot = new JObject() - { - ["Creator"] = "", - ["NeedUpDateFields"] = new JArray(), - ["NeedReturnFields"] = new JArray(), - ["IsDeleteEntry"] = "true", - ["SubSystemId"] = "", - ["IsVerifyBaseDataField"] = "false", - ["Model"] = model - }; - var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString()); - JObject saveObj = JObject.Parse(result); - string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); - if (saveIsSuc != "TRUE") - LogHelper.Error(saveIsSuc); - } - } - } - catch (Exception ex) - { - LogHelper.Error(ex.Message.ToString()); - } - } - /// <summary> - /// 鎻愭枡璁″垝 - /// </summary> - public void Extraction() - { - string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1"); - DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; - string FDayPlanWorkID = ""; - foreach (DataRow dr in fidDt.Rows) - { - FDayPlanWorkID += Convert.ToString(dr["FID"]) + ","; - } - FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1); - //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺 - sql = string.Format(@" - /*dialect*/ - exec [鎻愭枡璁″垝棰勫鐞哴 '{0}' - ", FDayPlanWorkID.Replace(",", "-")); +// /// <summary> +// /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴� +// /// </summary> +// public void DayPlanPPBomBill() +// { +// //閿佸畾鐨勬棩璁″垝涓嶇敓鎴� +// try +// { +// 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 +//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_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 +//LEFT JOIN T_BD_UNIT T8 ON T4.FUNITID = T8.FUNITID +// LEFT JOIN Sc_DayPlanPPBomBillMain T9 ON T1.FEntryID=T9.FDayPlanFID +// LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID +// LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID +//" +//); +// DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); +// DataTable dt = ds.Tables[0]; +// List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); +// if (dt.Rows.Count > 0) +// { +// foreach (DataRow dr in dt.Rows) +// { +// DayPlanMaterial.Add(new Demo.Model.Model.DayPlanMaterial +// { +// FID = dr["DayPlanFID"].ToString(), +// FEntryID = dr["FEntryID"].ToString(), +// FHDate = DateTime.Now.ToString(), +// FOrgId = dr["FORGNUMBER"].ToString(), +// FHMaterID = dr["FNUMBER"].ToString(), +// FHWorkDate = dr["FHMASTERDATE"].ToString(), +// FHQty = dr["FHQTY"].ToString(), +// FHUnitID = dr["FUNITNUMBER"].ToString(), +// FDayPlanFID = dr["FEntryID"].ToString(), +// FHMaterSubID = dr["FNUMBER2"].ToString(), +// FHUnitSubID = dr["FUNITNUMBER2"].ToString(), +// FHQtyMust = dr["FHQtyMust"].ToString(), +// FHQtySub = dr["FHQtyMust"].ToString(), +// FHPPBomInterID = dr["FPPBOM"].ToString(), +// FHPPBomEntryID = dr["FENTRYID"].ToString(), +// FHSourceID = dr["FHSOURCENUMBER"].ToString(), +// FNumerator = dr["FNumerator"].ToString(), +// FDenominator = dr["FDenominator"].ToString(), +// FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(), +// FHQtyScrap = dr["FSCRAPRATE"].ToString(), +// }); +// } +// var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); +// foreach (var item in fidList) +// { +// var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList(); +// JObject model = new JObject(); +// model.Add("FHDate", DateTime.Now); +// model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐 +// model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡 +// model.Add("FHWorkDate", _DayPlanMaterial[0].FHWorkDate);//鏃ュ伐鍗曟棩鏈� FHWorkDate +// model.Add("FHQty", _DayPlanMaterial[0].FHQty);//涓讳骇鍝佹暟閲忥細FHQty +// model.Add("FHUnitID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHUnitID });//鍗曚綅锛欶HUnitID +// model.Add("FDayPlanFID", _DayPlanMaterial[0].FDayPlanFID);//鏃ヨ鍒掑伐鍗曞唴鐮� +// JArray Entry = new JArray(); +// foreach (var _item in _DayPlanMaterial) +// { +// JObject ModelEnty = new JObject(); +// ModelEnty.Add("FHMaterSubID", new JObject() { ["Fnumber"] = _item.FHMaterSubID });//瀛愮墿鏂橣HMaterSubID +// ModelEnty.Add("FHUnitSubID", new JObject() { ["Fnumber"] = _item.FHUnitSubID });//鍗曚綅FHUnitSubID +// ModelEnty.Add("FHQtyMust", _item.FHQtyMust);//搴斿彂鏁伴噺FHQtyMust +// ModelEnty.Add("FHQtySub", _item.FHQtySub);//鏁伴噺FHQtySub +// ModelEnty.Add("FHPPBomInterID", _item.FHPPBomInterID);//鐢ㄦ枡娓呭崟涓诲唴鐮丗HPPBomInterID +// ModelEnty.Add("FHPPBomEntryID", _item.FHPPBomEntryID);//鐢ㄦ枡娓呭崟瀛愬唴鐮丗HPPBomEntryID +// ModelEnty.Add("FHSourceID", new JObject() { ["Fnumber"] = _item.FHSourceID });//鐢熶骇璧勬簮FHSourceID +// ModelEnty.Add("FNumerator", _item.FNumerator);//鍒嗘瘝 +// ModelEnty.Add("FDenominator", _item.FDenominator);//鍒嗗瓙 +// ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡 +// ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻�� +// ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼% +// Entry.Add(ModelEnty); +// } +// model.Add("FEntity", Entry); +// if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID)) +// model.Add("FID", _DayPlanMaterial[0].FID); +// JObject jsonRoot = new JObject() +// { +// ["Creator"] = "", +// ["NeedUpDateFields"] = new JArray(), +// ["NeedReturnFields"] = new JArray(), +// ["IsDeleteEntry"] = "true", +// ["SubSystemId"] = "", +// ["IsVerifyBaseDataField"] = "false", +// ["Model"] = model +// }; +// var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString()); +// JObject saveObj = JObject.Parse(result); +// string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); +// if (saveIsSuc != "TRUE") +// LogHelper.Error(saveIsSuc); +// } +// } +// } +// catch (Exception ex) +// { +// LogHelper.Error(ex.Message.ToString()); +// } +// } +// /// <summary> +// /// 鎻愭枡璁″垝 +// /// </summary> +// public void Extraction() +// { +// string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1"); +// DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; +// string FDayPlanWorkID = ""; +// foreach (DataRow dr in fidDt.Rows) +// { +// FDayPlanWorkID += Convert.ToString(dr["FID"]) + ","; +// } +// FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1); +// //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺 +// sql = string.Format(@" +// /*dialect*/ +// exec [鎻愭枡璁″垝棰勫鐞哴 '{0}' +// ", FDayPlanWorkID.Replace(",", "-")); - DBServiceHelper.Execute(Context, sql); - //閲囪喘璁㈠崟鏁版嵁 - sql = @" - /*dialect*/ -select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS 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_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID -where t2.FQTY-t2.FPODemandPlanCount>0 - and FCloseStatus in('A') and FMRPCLOSESTATUS in('A') -"; - List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); - LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + sql); +// DBServiceHelper.Execute(Context, sql); +// //閲囪喘璁㈠崟鏁版嵁 +// sql = @" +// /*dialect*/ +//select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS 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_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID +//where t2.FQTY-t2.FPODemandPlanCount>0 +// and FCloseStatus in('A') and FMRPCLOSESTATUS in('A') +//"; +// List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); +// LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + 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 -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 -group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId and T1.FHMATERID = t3.FMATERIALIDMAIN -JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID -join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID -join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID -WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0 -AND FDayPlanQuantity>FCOMPLETECOUNT -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); - LogHelper.Info("鎻愭枡鏁版嵁" + sql); - DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); - List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); +// 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 +//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 +//group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId and T1.FHMATERID = t3.FMATERIALIDMAIN +//JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID +//join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID +//join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID +//WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0 +//AND FDayPlanQuantity>FCOMPLETECOUNT +//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); +// LogHelper.Info("鎻愭枡鏁版嵁" + 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 == "105773").ToList(); +// 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(); - LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count); +// LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count); - //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚� - List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); - //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲� - List<string> sqlList = new List<string>(); - //MaterialIDList = new List<string> { "105773" }; - foreach (var item in MaterialIDList) - { - LogHelper.Info(item.FMATERIALID.ToString()); - List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); +// //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚� +// List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); +// //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲� +// List<string> sqlList = new List<string>(); +// //MaterialIDList = new List<string> { "105773" }; +// foreach (var item in MaterialIDList) +// { +// LogHelper.Info(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; - int i = 1; - //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID - List<int> FEntryIdList = new List<int>(); - foreach (var _item in _DayPlanPpbom) - { - 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) - { - List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList(); - if (_PurchaseInventory.Count == 0) - { - NeedQty = 0; - break; - } - foreach (var Purchase in _PurchaseInventory) - { - LogHelper.Info("Purchase"); - LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY); - if (Purchase.FQTY >= NeedQty) - { - List<int> mmm = new List<int>(); - foreach (int id in FEntryIdList) - { - mmm.Add(id); - 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, +// 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; +// int i = 1; +// //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID +// List<int> FEntryIdList = new List<int>(); +// foreach (var _item in _DayPlanPpbom) +// { +// 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) +// { +// List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList(); +// if (_PurchaseInventory.Count == 0) +// { +// NeedQty = 0; +// break; +// } +// foreach (var Purchase in _PurchaseInventory) +// { +// LogHelper.Info("Purchase"); +// LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY); +// if (Purchase.FQTY >= NeedQty) +// { +// List<int> mmm = new List<int>(); +// foreach (int id in FEntryIdList) +// { +// mmm.Add(id); +// 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, - 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; - } - 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 > _NeedQty) - Qty = _NeedQty; - _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty; - 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, +// 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; +// } +// 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 > _NeedQty) +// Qty = _NeedQty; +// _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty; +// 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, - 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; - } - mmm.Add(id); - } - foreach (var mm in mmm) - { - FEntryIdList.Remove(mm); - } - } - } - NeedQty = 0; - } +// 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; +// } +// mmm.Add(id); +// } +// foreach (var mm in mmm) +// { +// FEntryIdList.Remove(mm); +// } +// } +// } +// NeedQty = 0; +// } - #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� - //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� - //else if (i == _DayPlanPpbom.Count && NeedQty > 0) - //{ - // NeedQty = FMINPOQTY; - // List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList(); - // if (_PurchaseInventory.Count == 0) - // { - // NeedQty = 0; - // break; - // } +// #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� +// //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴� +// //else if (i == _DayPlanPpbom.Count && NeedQty > 0) +// //{ +// // NeedQty = FMINPOQTY; +// // List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList(); +// // if (_PurchaseInventory.Count == 0) +// // { +// // NeedQty = 0; +// // break; +// // } - // foreach (var Purchase in _PurchaseInventory) - // { - // if (Purchase.FQTY >= NeedQty) - // { +// // foreach (var Purchase in _PurchaseInventory) +// // { +// // if (Purchase.FQTY >= NeedQty) +// // { - // List<int> mmm = new List<int>(); - // foreach (int id in FEntryIdList) - // { - // mmm.Add(id); - // 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, +// // List<int> mmm = new List<int>(); +// // foreach (int id in FEntryIdList) +// // { +// // mmm.Add(id); +// // 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, - // PurchseFID = Purchase.FID, - // PurchseFentryID = Purchase.FENTRYID, - // FSUPPLIERID = Purchase.FSUPPLIERID, - // PurchseFNUMBER = Purchase.FNUMBER, - // PurchseFBillNo = Purchase.FBillNo, - // PurchseFqty = Purchase.FQTY +// // PurchseFID = Purchase.FID, +// // PurchseFentryID = Purchase.FENTRYID, +// // FSUPPLIERID = Purchase.FSUPPLIERID, +// // PurchseFNUMBER = Purchase.FNUMBER, +// // PurchseFBillNo = Purchase.FBillNo, +// // PurchseFqty = Purchase.FQTY - // }); - // //鎵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) - // { +// // }); +// // //鎵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 > _NeedQty) - // Qty = _NeedQty; - // _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty; - // 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, +// // 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 +// // { +// // 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 +// // PurchseFID = Purchase.FID, +// // PurchseFentryID = Purchase.FENTRYID, +// // FSUPPLIERID = Purchase.FSUPPLIERID, +// // PurchseFNUMBER = Purchase.FNUMBER, +// // PurchseFBillNo = Purchase.FBillNo, +// // PurchseFqty = Purchase.FQTY - // }); - // DayPlanPpbomls.NeedQty -= Qty; - // //鏇存柊閲囪喘璁㈠崟 - // sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}"); +// // }); +// // 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; +// // //鏇存柊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; - // } +// // if (_NeedQty < 0) +// // { +// // foreach (var mm in mmm) +// // { +// // FEntryIdList.Remove(mm); +// // } +// // break; +// // } - // mmm.Add(id); - // } - // foreach (var mm in mmm) - // { - // FEntryIdList.Remove(mm); - // } +// // mmm.Add(id); +// // } +// // foreach (var mm in mmm) +// // { +// // FEntryIdList.Remove(mm); +// // } - // } - // } - // 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(); - foreach (var item in PODemandPlanList) - { - DateTime date = item.FHMASTERDATE; - string PurchseFNUMBER = item.PurchseFNUMBER; - JObject model = new JObject(); - model.Add("FHDate", date); - model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿"); - 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) - { - JObject FentityModel = new JObject(); - FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐 - 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);//鎻愬墠鏈� +// // } +// // } +// // 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(); +// foreach (var item in PODemandPlanList) +// { +// DateTime date = item.FHMASTERDATE; +// string PurchseFNUMBER = item.PurchseFNUMBER; +// JObject model = new JObject(); +// model.Add("FHDate", date); +// model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿"); +// 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) +// { +// JObject FentityModel = new JObject(); +// FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐 +// 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 - Fentity.Add(FentityModel); - } - model.Add("FEntity", Fentity); - JObject jsonRoot = new JObject() - { - ["Creator"] = "", - ["NeedUpDateFields"] = new JArray(), - ["NeedReturnFields"] = new JArray(), - ["IsDeleteEntry"] = "false", - ["SubSystemId"] = "", - ["IsVerifyBaseDataField"] = "false", - ["Model"] = model - }; - var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString()); - JObject saveObj = JObject.Parse(result); - string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); - LogHelper.Info("鏈�鍚�"); - LogHelper.Info(jsonRoot.ToString()); - if (saveIsSuc != "TRUE") - LogHelper.Error(saveIsSuc); - } - DBServiceHelper.ExecuteBatch(Context, sqlList); - } - } -} +// 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 +// Fentity.Add(FentityModel); +// } +// model.Add("FEntity", Fentity); +// JObject jsonRoot = new JObject() +// { +// ["Creator"] = "", +// ["NeedUpDateFields"] = new JArray(), +// ["NeedReturnFields"] = new JArray(), +// ["IsDeleteEntry"] = "false", +// ["SubSystemId"] = "", +// ["IsVerifyBaseDataField"] = "false", +// ["Model"] = model +// }; +// var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString()); +// JObject saveObj = JObject.Parse(result); +// string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); +// LogHelper.Info("鏈�鍚�"); +// LogHelper.Info(jsonRoot.ToString()); +// if (saveIsSuc != "TRUE") +// LogHelper.Error(saveIsSuc); +// } +// DBServiceHelper.ExecuteBatch(Context, sqlList); +// } +// } +//} -- Gitblit v1.9.1