王 垚
2022-09-05 89e9e87324656eb6ff2bc70c731ee676eeac9111
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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> TLPlanConfigModel = DBServiceHelper.ExecuteDataSet(ctx, sql).ToModelList<TLPlanConfigModel>();
                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()); ;
            }
        }
    }
}