using System.ComponentModel; using Kingdee.BOS.Contracts; using Kingdee.BOS; using Kingdee.BOS.Core; using Kingdee.BOS.ServiceHelper; using System.Data; 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.Collections.Generic; using ZD.Share.Common; using ZD.Cloud.Logger; using System.Diagnostics; using Demo.BillView.PRD; namespace Demo.TimedTaskPlugIn.PRD { [Description("提料计划信息表信息同步")] [HotUpdate] public class TLPlanMessege : Kingdee.BOS.Contracts.IScheduleService { public Context Context; public void Run(Context ctx, Schedule schedule) { try { string sql = string.Format(@" /*dialect*/ select DISTINCT t1.FPURCHASEORGID AS FORGID,t4.FNUMBER as FORGNUMBER,t1.FSUPPLIERID,T5.FNUMBER AS FSUPPLIERNUMBER,t2.FMATERIALID ,T6.FNUMBER AS FMATERIALNUMBER from T_PUR_POORDER t1 join T_PUR_POORDERENTRY t2 on t1.FID = t2.FID LEFT join ( SELECT distinct FORGID, FSUPPLIERID,FMATERIALID FROM T_PRD_TLPlanConfig T1 JOIN T_PRD_TLPlanConfigEntry T2 ON T1.FID = T2.FID )T3 ON t1.FPURCHASEORGID = T3.FORGID AND t1.FSUPPLIERID = T3.FSUPPLIERID AND t2.FMATERIALID = T3.FMATERIALID JOIN T_ORG_Organizations t4 on t1.FPURCHASEORGID = t4.FORGID JOIN t_BD_Supplier t5 on t1.FSUPPLIERID = t5.FSUPPLIERID JOIN T_BD_MATERIAL t6 on t2.FMATERIALID = t6.FMATERIALID where DATEDIFF(d,t1.FAPPROVEDATE,GETDATE())<=5 AND ISNULL(T3.FORGID,0) = 0 "); List TLPlanConfigModel = DBServiceHelper.ExecuteDataSet(ctx, sql).ToModelList(); if (TLPlanConfigModel.Count > 0) { var _TLPlanConfigModel = TLPlanConfigModel.GroupBy(x => new { x.FORGNUMBER }).Select((x => new TLPlanConfigModel { FORGNUMBER = x.Key.FORGNUMBER })).ToList(); foreach (var TLPlanConfig in _TLPlanConfigModel) { JObject jsonRoot = new JObject(); JObject model = new JObject(); model.Add("FORGID", new JObject() { ["Fnumber"] = TLPlanConfig.FORGNUMBER });//组织 var DetailModel = TLPlanConfigModel.Where(x => x.FORGNUMBER == TLPlanConfig.FORGNUMBER).ToList(); JArray Entry = new JArray(); foreach (var item in DetailModel) { JObject jsonEntry = new JObject(); jsonEntry.Add("FSUPPLIERID", new JObject() { ["Fnumber"] = item.FSUPPLIERNUMBER }); jsonEntry.Add("FMATERIALID", new JObject() { ["Fnumber"] = item.FMATERIALNUMBER }); jsonEntry.Add("FLeadtime", 2); jsonEntry.Add("FLeadTtime2", 1); jsonEntry.Add("FDeliveryDaysKZ", 3); Entry.Add(jsonEntry); } model.Add("FEntity", Entry); jsonRoot.Add("Model", model); CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); var result = cloudClient.Save("BSV_TLPlanConfig", jsonRoot.ToString()); JObject saveObj = JObject.Parse(result); string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); if (saveIsSuc != "TRUE") { LogService.Write(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); } } } } catch (System.Exception ex) { LogService.Write(ex.Message.ToString()); ; } } } }