Example #1
0
        public test()
        {
            string uid = "2517";

            WebReference.OaWebService          oa    = new WebReference.OaWebService();
            WebReference.DT_OA_OA12_RespITEM[] retoa = oa.SAP_OA_JK_12(uid);
            Logger.Log(JsonHelper.ObjectToJson(retoa));
        }
Example #2
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 177;
            //遍历某个规则下面的所有符合条件的flow_run
            //List<FlowRun> frlistbyruleid = flowrunall.Where(t => t.flow_id == flowid).ToList();
            List <Flow177> flow177 = MySqlHelper.ExecuteObjectList <Flow177>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,data_92 AS user_id,data_78 AS DATA,data_90 AS i_awart FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0 AND data_78!=\"\" AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES<=2 or RETRY=1)", flowid)).ToList();

            for (int i = 0; i < flow177.Count; i++)
            {
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常 3数据错误
                bool   ifsuc    = true;
                List <WebReference.SAP_OA_JK13_HEAD> oa13saplist = new List <WebReference.SAP_OA_JK13_HEAD>();
                //人员编号 ITEM        I_PERNR NUMC    8           123
                //请假日期 ITEM        I_BEGDA DATS    8           20170101
                //是否全天?‘0‘,是;‘1’,否。	ITEM L_HALF  CHAR    1           是否全天?‘0‘,是;‘1’,否。
                //开始时间 ITEM        L_ BEGUZ    TIMS    8           0800
                //结束时间 ITEM        L_ ENDUZ    TIMS    8           1600
                //请假类型编码 ITEM        I_AWART CHAR    4           2000、2010…
                string tmp   = flow177[i].data.ToString();
                string awart = "";
                if (Enum.IsDefined(typeof(I_awartType), flow177[i].i_awart))
                {
                    foreach (string awartType in Enum.GetNames(typeof(I_awartType)))
                    {
                        if (flow177[i].i_awart == awartType)
                        {
                            I_awartType at = (I_awartType)Enum.Parse(typeof(I_awartType), awartType);
                            awart = Convert.ToInt32(at).ToString();
                        }
                    }
                }
                else
                {
                    awart = "2000";
                }
                if (string.IsNullOrEmpty(tmp))
                {
                    wsretlog = "日期为空";
                    errtype  = 3;
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow177[i].run_id), null);
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5}) ", flow177[i].run_id, flowid, flow177[i].run_name, "", wsretlog, errtype), null);
                    continue;
                }
                if (!string.IsNullOrEmpty(tmp))
                {
                    string[] tmpnewline = tmp.Split(Environment.NewLine.ToCharArray());
                    for (int w = 0; w < tmpnewline.Length; w++)
                    {
                        if (!string.IsNullOrEmpty(tmpnewline[w]))
                        {
                            string[]           tmpnewlinedh = tmpnewline[w].Split('`');
                            DateTimeFormatInfo dtFormat     = new DateTimeFormatInfo();
                            dtFormat.ShortDatePattern = "yyyy-mm-dd hh24:mi:ss";
                            if (!string.IsNullOrEmpty(tmpnewlinedh[2]) && !string.IsNullOrEmpty(tmpnewlinedh[3]))
                            {
                                DateTime starttime = Convert.ToDateTime(tmpnewlinedh[2], dtFormat);
                                DateTime endtime   = Convert.ToDateTime(tmpnewlinedh[3], dtFormat);
                                if (endtime.CompareTo(starttime) > 0)
                                {
                                    //2017-08-14 08:30:00
                                    DateTime startdate = DateTime.Parse(starttime.ToShortDateString());
                                    DateTime enddate   = DateTime.Parse(endtime.ToShortDateString());
                                    //开始日期
                                    string startdatestr = tmpnewlinedh[2].Substring(0, 10).Replace("-", "").Replace("/", "");
                                    //结束日期
                                    string enddatestr = tmpnewlinedh[3].Substring(0, 10).Replace("-", "").Replace("/", "");
                                    //开始时间
                                    string starttimestr = tmpnewlinedh[2].Substring(11, 5).ToString().Replace(":", "");
                                    //原始开始时间
                                    DateTime starttimeori = Convert.ToDateTime(tmpnewlinedh[2].Substring(11, 5).ToString());
                                    //结束时间
                                    string endtimestr = tmpnewlinedh[3].Substring(11, 5).ToString().Replace(":", "");
                                    //原始结束时间
                                    DateTime endtimeori = Convert.ToDateTime(tmpnewlinedh[3].Substring(11, 5).ToString());
                                    //大于一天
                                    if (enddate.CompareTo(startdate) > 0)
                                    {
                                        TimeSpan ts   = enddate - startdate;
                                        int      days = ts.Days;
                                        for (int d = 0; d <= days; d++)
                                        {
                                            WebReference.SAP_OA_JK13_HEAD oa13sap = new WebReference.SAP_OA_JK13_HEAD();
                                            oa13sap.I_PERNR = flow177[i].user_id.ToString();
                                            // if (days > 0)
                                            //{
                                            oa13sap.I_BEGDA = startdate.AddDays(d).ToString("yyyyMMdd");
                                            if (d == 0)
                                            {
                                                if (starttimeori <= (Convert.ToDateTime("08:30")))
                                                {
                                                    oa13sap.L_HALF  = "0";
                                                    oa13sap.L_BEGUZ = "";
                                                    oa13sap.L_ENDUZ = "";
                                                }
                                                else
                                                {
                                                    oa13sap.L_HALF  = "1";
                                                    oa13sap.L_BEGUZ = starttimestr;
                                                    oa13sap.L_ENDUZ = "1700";
                                                }
                                            }
                                            else if (d == days)
                                            {
                                                if (endtimeori >= (Convert.ToDateTime("17:00")))
                                                {
                                                    oa13sap.L_HALF  = "0";
                                                    oa13sap.L_BEGUZ = "";
                                                    oa13sap.L_ENDUZ = "";
                                                }
                                                else
                                                {
                                                    oa13sap.L_HALF  = "1";
                                                    oa13sap.L_BEGUZ = "0830";
                                                    oa13sap.L_ENDUZ = endtimestr;
                                                }
                                            }
                                            else
                                            {
                                                oa13sap.L_HALF  = "0";
                                                oa13sap.L_BEGUZ = "";
                                                oa13sap.L_ENDUZ = "";
                                            }
                                            oa13sap.I_AWART = awart;
                                            oa13saplist.Add(oa13sap);
                                        }
                                    }
                                    else if (enddate.CompareTo(startdate) == 0)
                                    {
                                        WebReference.SAP_OA_JK13_HEAD oa13sap = new WebReference.SAP_OA_JK13_HEAD();
                                        oa13sap.I_PERNR = flow177[i].user_id.ToString();
                                        oa13sap.I_BEGDA = startdatestr;
                                        if (starttimeori <= (Convert.ToDateTime("08:30")) && endtimeori >= (Convert.ToDateTime("17:00")))
                                        {
                                            oa13sap.L_HALF  = "0";
                                            oa13sap.L_BEGUZ = "";
                                            oa13sap.L_ENDUZ = "";
                                        }
                                        else
                                        {
                                            oa13sap.L_HALF  = "1";
                                            oa13sap.L_BEGUZ = starttimestr;
                                            oa13sap.L_ENDUZ = endtimestr;
                                        }
                                        oa13sap.I_AWART = awart;
                                        oa13saplist.Add(oa13sap);
                                    }
                                }
                            }
                            #region
                            //    oa13sap.I_BEGDA = tmpnewlinedh[0];
                            //if (tmpnewlinedh[1] == "是")
                            //    oa13sap.L_HALF = "0";
                            //else
                            //    oa13sap.L_HALF = "1";
                            //if (tmpnewlinedh[1] == "是")
                            //{
                            //    oa13sap.L_BEGUZ = "";
                            //    oa13sap.L_ENDUZ = "";
                            //}
                            //else
                            //{
                            //    oa13sap.L_BEGUZ = tmpnewlinedh[2];
                            //    if (!string.IsNullOrEmpty(tmpnewlinedh[2]))
                            //    {
                            //        DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();
                            //        dtFormat.ShortDatePattern = "yyyy-mm-dd hh24:mi:ss";
                            //        oa13sap.L_BEGUZ = Convert.ToDateTime(tmpnewlinedh[2], dtFormat).ToShortTimeString().ToString().Replace(":", "");
                            //    }
                            //    oa13sap.L_ENDUZ = tmpnewlinedh[3];
                            //    if (!string.IsNullOrEmpty(tmpnewlinedh[3]))
                            //    {
                            //        DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();
                            //        dtFormat.ShortDatePattern = "yyyy-mm-dd hh24:mi:ss";
                            //        oa13sap.L_ENDUZ = Convert.ToDateTime(tmpnewlinedh[3], dtFormat).ToShortTimeString().ToString().Replace(":", "");
                            //    }
                            //}

                            //oa13saplist.Add(oa13sap);
                            #endregion
                        }
                    }
                    if (oa13saplist.Count > 0)
                    {
                        //发送ws
                        try
                        {
                            WebReference.OaWebService oa = new WebReference.OaWebService();
                            Logger.Log(flow177[i].run_id + "(" + flow177[i].run_name + "-" + flow177[i].user_id + "):" + JsonHelper.ObjectToJson(oa13saplist), flowid.ToString());
                            WebReference.DT_OA_OA13_RespITEM[] retoa = oa.SAP_OA_JK_13(oa13saplist.ToArray());
                            wsretlog = JsonHelper.ObjectToJson(retoa);
                            Logger.Log(flow177[i].run_id + "(" + flow177[i].run_name + "-" + flow177[i].user_id + "):" + JsonHelper.ObjectToJson(retoa), flowid.ToString());
                            foreach (var item in retoa)
                            {
                                if (item.TYPE != "S")
                                {
                                    errtype = 2;
                                    ifsuc   = false;
                                    break;
                                }
                            }
                        }
                        catch
                        {
                            wsretlog = "ws调用不成功";
                            errtype  = 1;
                            ifsuc    = false;
                        }
                        MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow177[i].run_id), null);
                        MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("  INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5}) ", flow177[i].run_id, flowid, flow177[i].run_name, JsonHelper.ObjectToJson(oa13saplist), wsretlog, errtype), null);
                        if (ifsuc)
                        {
                            int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0 where RUN_ID={0} ", flow177[i].run_id), null);
                            //更新数据库表示他已经同步过了并且同步成功了
                            if (ret > 0)
                            {
                                Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow177[i].run_id), flowid.ToString());
                            }
                            else
                            {
                                Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow177[i].run_id), flowid.ToString());
                            }
                        }
                        else
                        {
                            Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow177[i].run_id), flowid.ToString());
                        }
                    }
                }
            }
        }
Example #3
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 173;
            //遍历某个规则下面的所有符合条件的flow_run
            //List<FlowRun> frlistbyruleid = flowrunall.Where(t => t.flow_id == flowid).ToList();
            List <Flow173> flow173 = MySqlHelper.ExecuteObjectList <Flow173>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,byname AS user_id,data_2430 AS bukrs,'1' AS zfkdh,'1010' AS zjylx,data_259 AS banka,data_255 AS koinh,data_260 AS zbkno,data_263 AS zjyje,'CNY' AS waers, '10' AS zzhty,data_265 AS bktxt,DATA_2461 AS zprct,DATA_2460 AS eacbnk,DATA_2459 AS zctno,data_2463 as CDTBRD FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0 AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES <= 2 OR RETRY = 1) ", flowid)).ToList();

            //  and flowr.run_id=14150
            for (int i = 0; i < flow173.Count; i++)
            {
                //公司代码 ITEM        BUKRS
                //付款单号 ITEM        ZFKDH
                //交易类型 ITEM        ZJYLX
                //银行名称 ITEM        BANKA
                //帐户持有人姓名  ITEM       KOINH
                //银行账号(组合) ITEM        ZBKNO
                //总交易金额 ITEM        ZJYJE
                //货币码 ITEM        WAERS
                //账号类型 ITEM        ZZHTY
                //抬头文本 ITEM       BKTXT
                //收款开户地 ITEM       ZPRCT
                //他行户口开户行 ITEM       EACBNK
                //城市代码 ITEM       ZCTNO
                //银行的联行号 ITEM CDTBRD



                //ZNUM 序号
                //KOSTL 成本中心
                //HKONT G/L科目号
                //ZCBJE 成本金额
                //ZZSKT 税科目
                //ZSHUE 税额
                //ZBXJE 报销金额
                //ZRMTXT 备注文本
                #region
                WebReference.SAP_OA_JK04_REQ  oasap04  = new WebReference.SAP_OA_JK04_REQ();
                WebReference.SAP_OA_JK04_HEAD oa04head = new WebReference.SAP_OA_JK04_HEAD();
                oa04head.BUKRS = flow173[i].bukrs.Split('|')[0].ToString();
                Random rad   = new Random();//实例化随机数产生器rad;
                int    value = rad.Next(1000, 9999);
                oa04head.ZFKDH = flow173[i].run_id.ToString();
                // oa04head.ZFKDH = string.Format("{0:yyyyMMdd}", DateTime.Now) + value.ToString();
                //oa04head.ZFKDH = flow173[i].zfkdh.ToString();
                oa04head.ZJYLX  = flow173[i].zjylx.ToString();
                oa04head.BANKA  = flow173[i].banka.ToString();
                oa04head.KOINH  = flow173[i].koinh.ToString();
                oa04head.ZBKNO  = flow173[i].zbkno.ToString();
                oa04head.ZJYJE  = flow173[i].zjyje.ToString();
                oa04head.WAERS  = flow173[i].waers.ToString();
                oa04head.ZZHTY  = flow173[i].zzhty.ToString();
                oa04head.BKTXT  = flow173[i].bktxt.ToString();
                oa04head.ZPRCT  = flow173[i].zprct.ToString();
                oa04head.EACBNK = flow173[i].eacbnk.ToString();
                oa04head.ZCTNO  = flow173[i].zctno.ToString();
                oa04head.CDTBRD = flow173[i].cdtbrd.ToString();
                oasap04.HEAD    = oa04head;
                List <WebReference.SAP_OA_JK04_HEAD_ITEM> oa04headitemlist = new List <WebReference.SAP_OA_JK04_HEAD_ITEM>();
                //6601001008
                #endregion
                List <ITEM> flow173item = MySqlHelper.ExecuteObjectList <ITEM>(string.Format("select item_2 AS kostl, item_4 AS hkont, item_7 as zcbje, item_6 as zzskt, item_8 as zshue, item_10 as zbxje, item_11 as zrmtxt from flow_data_173_list_2434 WHERE run_id = {0} and item_2!='' and item_7!='' and item_6!='' and item_8!='' and item_10!=''; ", flow173[i].run_id)).ToList();
                for (int x = 0; x < flow173item.Count; x++)
                {
                    WebReference.SAP_OA_JK04_HEAD_ITEM oa04headitem = new WebReference.SAP_OA_JK04_HEAD_ITEM();
                    oa04headitem.ZNUM   = (x + 1).ToString();
                    oa04headitem.KOSTL  = flow173item[x].kostl.ToString();
                    oa04headitem.HKONT  = flow173item[x].hkont.ToString();             //会计科目
                    oa04headitem.ZCBJE  = flow173item[x].zcbje.ToString();
                    oa04headitem.ZZSKT  = getstrbysl(flow173item[x].zzskt.ToString()); //3 5 6 11 17
                    oa04headitem.ZSHUE  = flow173item[x].zshue.ToString();
                    oa04headitem.ZBXJE  = flow173item[x].zbxje.ToString();
                    oa04headitem.ZRMTXT = flow173item[x].zrmtxt.ToString();
                    oa04headitemlist.Add(oa04headitem);
                }
                oa04head.ITEMS = oa04headitemlist.ToArray();
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常
                bool   ifsuc    = true;
                //发送ws
                try
                {
                    WebReference.OaWebService oa = new WebReference.OaWebService();
                    Logger.Log(flow173[i].run_id + "(" + flow173[i].run_name + "-" + flow173[i].user_id + "):" + JsonHelper.ObjectToJson(oasap04), flowid.ToString());
                    oa.SAP_OA_JK_04(oasap04);
                }
                catch
                {
                    wsretlog = "ws调用不成功";
                    errtype  = 1;
                    ifsuc    = false;
                }
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow173[i].run_id), null);
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format(" INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5})", flow173[i].run_id, flowid, flow173[i].run_name, JsonHelper.ObjectToJson(oasap04), wsretlog, errtype), null);
                if (ifsuc)
                {
                    int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0  where RUN_ID={0} ", flow173[i].run_id), null);
                    //更新数据库表示他已经同步过了并且同步成功了
                    if (ret > 0)
                    {
                        Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow173[i].run_id), flowid.ToString());
                    }
                    else
                    {
                        Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow173[i].run_id), flowid.ToString());
                    }
                }
                else
                {
                    Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow173[i].run_id), flowid.ToString());
                }
            }
        }
Example #4
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 181;
            //遍历某个规则下面的所有符合条件的flow_run
            //List<FlowRun> frlistbyruleid = flowrunall.Where(t => t.flow_id == flowid).ToList();
            List <Flow181> flow181 = MySqlHelper.ExecuteObjectList <Flow181>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,data_89 AS user_id,data_127 AS i_begda,data_128 AS i_endda, '1210' AS i_awart FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0  AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES<=2 or RETRY=1)", flowid)).ToList();

            for (int i = 0; i < flow181.Count; i++)
            {
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常
                bool   ifsuc    = true;
                if (string.IsNullOrEmpty(flow181[i].i_begda) || string.IsNullOrEmpty(flow181[i].i_endda))
                {
                    wsretlog = "日期为空";
                    errtype  = 3;
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow181[i].run_id), null);
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5}) ", flow181[i].run_id, flowid, flow181[i].run_name, "", wsretlog, errtype), null);
                    continue;
                }
                WebReference.SAP_OA_JK15_HEAD oasaphead15 = new WebReference.SAP_OA_JK15_HEAD();
                //人员编号	Head		I_PERNR	NUMC	8		必填	123
                //出差开始时间	Head		I_BEGDA	DATS	8		必填	20170801
                //出差结束时间	Head		I_ENDDA	DATS	8		必填	20170802
                //出差类型	Head		I_AWART	CHAR	4		必填	"1210 1220"
                oasaphead15.I_PERNR = flow181[i].user_id.ToString();
                oasaphead15.I_BEGDA = flow181[i].i_begda.Replace("-", "").Replace("/", "");
                oasaphead15.I_ENDDA = flow181[i].i_endda.Replace("-", "").Replace("/", "");
                oasaphead15.I_AWART = flow181[i].i_awart.ToString();
                WebReference.SAP_OA_JK15_REQ oasap15 = new WebReference.SAP_OA_JK15_REQ();
                oasap15.HEAD = oasaphead15;
                //发送ws

                try
                {
                    WebReference.OaWebService oa = new WebReference.OaWebService();
                    Logger.Log(flow181[i].run_id + "(" + flow181[i].run_name + "-" + flow181[i].user_id + "):" + JsonHelper.ObjectToJson(oasap15), flowid.ToString());
                    WebReference.DT_OA_OA15_RespITEM[] retoa = oa.SAP_OA_JK_15(oasap15);
                    wsretlog = JsonHelper.ObjectToJson(retoa);
                    Logger.Log(flow181[i].run_id + "(" + flow181[i].run_name + "-" + flow181[i].user_id + "):" + JsonHelper.ObjectToJson(retoa), flowid.ToString());
                    foreach (var item in retoa)
                    {
                        if (item.TYPE != "S")
                        {
                            errtype = 2;
                            ifsuc   = false;
                            break;
                        }
                    }
                }
                catch
                {
                    wsretlog = "ws调用不成功";
                    errtype  = 1;
                    ifsuc    = false;
                }
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow181[i].run_id), null);
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5})", flow181[i].run_id, flowid, flow181[i].run_name, JsonHelper.ObjectToJson(oasap15), wsretlog, errtype), null);
                if (ifsuc)
                {
                    //这里改版 oaphp加页面 加表 3次 3次以上 点重新发送 retry重置为1
                    int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0  where RUN_ID={0} ", flow181[i].run_id), null);
                    //更新数据库表示他已经同步过了并且同步成功了
                    if (ret > 0)
                    {
                        Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow181[i].run_id), flowid.ToString());
                    }
                    else
                    {
                        Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow181[i].run_id), flowid.ToString());
                    }
                }
                else
                {
                    Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow181[i].run_id), flowid.ToString());
                }
            }
        }
Example #5
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 175;
            //遍历某个规则下面的所有符合条件的flow_run
            //List<FlowRun> frlistbyruleid = flowrunall.Where(t => t.flow_id == flowid).ToList();
            List <Flow175> flow175 = MySqlHelper.ExecuteObjectList <Flow175>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,data_865 AS user_id,data_95 AS starttime,data_96 AS endtime, data_10 AS i_versl FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0 AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES<=2 or RETRY=1)", flowid)).ToList();

            for (int i = 0; i < flow175.Count; i++)
            {
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常
                bool   ifsuc    = true;
                WebReference.SAP_OA_JK17_HEAD oasaphead17 = new WebReference.SAP_OA_JK17_HEAD();
                //人员编号	Head		I_PERNR	NUMC	8			123
                //开始日期 Head        I_BEGDA DATS    8           20170101
                //结束日期 Head        I_ENDDA DATS    8           20170101
                //开始时间 Head        I_BEGUZ TIMS    8           1700
                //结束时间 Head        I_ENDUZ TIMS    8           1800
                //加班补偿类型 head        I_VERSL CHAR    1           "空格:加班调休 1:加班结薪"
                string st = flow175[i].starttime;
                string et = flow175[i].endtime;
                if (string.IsNullOrEmpty(st) || string.IsNullOrEmpty(et))
                {
                    wsretlog = "日期为空";
                    errtype  = 3;
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow175[i].run_id), null);
                    MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5}) ", flow175[i].run_id, flowid, flow175[i].run_name, "", flow175, errtype), null);
                    continue;
                }
                if (!string.IsNullOrEmpty(st) && !string.IsNullOrEmpty(et))
                {
                    DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();
                    dtFormat.ShortDatePattern = "yyyy-mm-dd hh24:mi:ss";
                    DateTime starttime = Convert.ToDateTime(st, dtFormat);
                    DateTime endtime   = Convert.ToDateTime(et, dtFormat);
                    if (endtime.CompareTo(starttime) > 0)
                    {
                        //开始日期
                        string startdatestr = st.Substring(0, 10).Replace("-", "").Replace("/", "");
                        //结束日期
                        string enddatestr = st.Substring(0, 10).Replace("-", "").Replace("/", "");
                        //开始时间
                        string starttimestr = et.Substring(11, 5).ToString().Replace(":", "");
                        //原始开始时间
                        //DateTime starttimeori = Convert.ToDateTime(tmpnewlinedh[2].Substring(11, 5).ToString());
                        //结束时间
                        string endtimestr = et.Substring(11, 5).ToString().Replace(":", "");
                        double stdaz      = Math.Round((endtime - starttime).TotalHours, 1);
                        //原始结束时间
                        //DateTime endtimeori = Convert.ToDateTime(tmpnewlinedh[3].Substring(11, 5).ToString());
                        //oasaphead17.HEAD head = new oasap17.HEAD();
                        oasaphead17.I_PERNR = flow175[i].user_id.ToString();
                        oasaphead17.I_BEGDA = startdatestr;
                        oasaphead17.I_ENDDA = enddatestr;
                        oasaphead17.I_BEGUZ = starttimestr;
                        oasaphead17.I_ENDUZ = endtimestr;
                        oasaphead17.I_STDAZ = stdaz.ToString();
                        oasaphead17.I_VERSL = flow175[i].i_versl.ToString();
                        WebReference.SAP_OA_JK17_REQ oasap17 = new WebReference.SAP_OA_JK17_REQ();
                        oasap17.HEAD = oasaphead17;
                        //发送ws
                        try
                        {
                            WebReference.OaWebService oa = new WebReference.OaWebService();
                            Logger.Log(flow175[i].run_id + "(" + flow175[i].run_name + "-" + flow175[i].user_id + "):" + JsonHelper.ObjectToJson(oasap17), flowid.ToString());
                            WebReference.DT_OA_OA17_RespITEM[] retoa = oa.SAP_OA_JK_17(oasap17);
                            wsretlog = JsonHelper.ObjectToJson(retoa);
                            Logger.Log(flow175[i].run_id + "(" + flow175[i].run_name + "-" + flow175[i].user_id + "):" + JsonHelper.ObjectToJson(retoa), flowid.ToString());
                            foreach (var item in retoa)
                            {
                                if (item.TYPE != "S")
                                {
                                    errtype = 2;
                                    ifsuc   = false;
                                    break;
                                }
                            }
                        }
                        catch
                        {
                            wsretlog = "ws调用不成功";
                            errtype  = 1;
                            ifsuc    = false;
                        }
                        MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0  where RUN_ID={0} ", flow175[i].run_id), null);
                        MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format(" INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5})", flow175[i].run_id, flowid, flow175[i].run_name, JsonHelper.ObjectToJson(oasap17), wsretlog, errtype), null);
                        if (ifsuc)
                        {
                            int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0 where RUN_ID={0} ", flow175[i].run_id), null);
                            //更新数据库表示他已经同步过了并且同步成功了
                            if (ret > 0)
                            {
                                Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow175[i].run_id), flowid.ToString());
                            }
                            else
                            {
                                Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow175[i].run_id), flowid.ToString());
                            }
                        }
                        else
                        {
                            Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow175[i].run_id), flowid.ToString());
                        }
                    }
                }
            }
        }
Example #6
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 154;
            //遍历某个规则下面的所有符合条件的flow_run
            //List<FlowRun> frlistbyruleid = flowrunall.Where(t => t.flow_id == flowid).ToList();
            List <Flow154> flow154 = MySqlHelper.ExecuteObjectList <Flow154>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,byname AS user_id,data_2 as time,data_79 AS SATZA,data_1 AS ABWGR FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0  AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES<=2 or RETRY=1)", flowid)).ToList();

            for (int i = 0; i < flow154.Count; i++)
            {
                WebReference.SAP_OA_JK11_HEAD oasaphead11 = new WebReference.SAP_OA_JK11_HEAD();
                //员工编号 Head        PERNR NUMC    8           123
                //日期 Head        LDATE DATS    8           20170101
                //时间 Head        LTIME TIMS    6           13:30
                //时间类型(上班卡或下班卡)	Head SATZA   CHAR    3           "P10 上班卡
                //P20 下班卡"
                //刷卡类型 Head        ABWGR CHAR    4           "ABWGR = ’0003’ 补卡
                //ABWGR = ’0005外出补卡"
                oasaphead11.PERNR = flow154[i].user_id.ToString();
                oasaphead11.SATZA = flow154[i].satza == "上班卡" ? "P10" : "P20";
                oasaphead11.ABWGR = flow154[i].abwgr == "补卡" ? "0003" : "0005";
                oasaphead11.LDATE = flow154[i].time.Substring(0, 10).Replace("-", "").Replace("/", "");
                //oasaphead11.LTIME = flow154[i].time.Substring(11, 5).ToString().Replace(":", "");
                oasaphead11.LTIME = flow154[i].time.Substring(11).ToString();
                WebReference.SAP_OA_JK11_REQ oasap11 = new WebReference.SAP_OA_JK11_REQ();
                oasap11.HEAD = oasaphead11;
                //发送ws
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常
                bool   ifsuc    = true;
                try
                {
                    WebReference.OaWebService oa = new WebReference.OaWebService();
                    Logger.Log(flow154[i].run_id + "(" + flow154[i].run_name + "-" + flow154[i].user_id + "):" + JsonHelper.ObjectToJson(oasap11), flowid.ToString());
                    WebReference.DT_OA_OA11_RespITEM[] retoa = oa.SAP_OA_JK_11(oasap11);
                    wsretlog = JsonHelper.ObjectToJson(retoa);
                    Logger.Log(flow154[i].run_id + "(" + flow154[i].run_name + "-" + flow154[i].user_id + "):" + JsonHelper.ObjectToJson(retoa), flowid.ToString());
                    foreach (var item in retoa)
                    {
                        if (item.TYPE != "S")
                        {
                            errtype = 2;
                            ifsuc   = false;
                            break;
                        }
                    }
                }
                catch
                {
                    wsretlog = "ws调用不成功";
                    errtype  = 1;
                    ifsuc    = false;
                }
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow154[i].run_id), null);
                // Logger.Log(string.Format(" INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime) values ({0},{1},'{2}','{3}','{4}',sysdate()) ", flow154[i].run_id, flowid, flow154[i].run_name, JsonHelper.ObjectToJson(oasap11), wsretlog));
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format(" INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5}) ", flow154[i].run_id, flowid, flow154[i].run_name, JsonHelper.ObjectToJson(oasap11), wsretlog, errtype), null);
                if (ifsuc)
                {
                    int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0   where RUN_ID={0} ", flow154[i].run_id), null);
                    //更新数据库表示他已经同步过了并且同步成功了
                    if (ret > 0)
                    {
                        Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow154[i].run_id), flowid.ToString());
                    }
                    else
                    {
                        Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow154[i].run_id), flowid.ToString());
                    }
                }
                else
                {
                    Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow154[i].run_id), flowid.ToString());
                }
            }
        }
Example #7
0
        public void Start(object source, System.Timers.ElapsedEventArgs e)
        {
            int flowid = 169;
            //遍历某个规则下面的所有符合条件的flow_run
            List <Flow169> flow169 = MySqlHelper.ExecuteObjectList <Flow169>(string.Format("SELECT flowr.run_id AS run_id,flowr.run_name AS run_name,data_2413  as user_id,data_2419 as i_begda,data_2420 as i_massg FROM flow_data_{0} AS flowdata INNER JOIN flow_run AS flowr ON flowdata.run_id = flowr.run_id INNER JOIN USER AS u ON u.USER_ID = flowdata.begin_user WHERE FLOW_ID = {0} AND DEL_FLAG = 0  AND END_TIME IS NOT NULL AND SYNC_TIME IS NULL AND (TIMES<=2 or RETRY=1)", flowid)).ToList();

            for (int i = 0; i < flow169.Count; i++)
            {
                WebReference.SAP_OA_JK20_HEAD oasaphead20 = new WebReference.SAP_OA_JK20_HEAD();
                // I_PERNR	NUMC	8		必填	123
                //I_BEGDA	DATS	4		必填	20170101
                //I_MASSG	CHAR	4		必填	01
                oasaphead20.I_PERNR = flow169[i].user_id.ToString();
                oasaphead20.I_BEGDA = flow169[i].i_begda.Replace("-", "").Replace("/", "");
                //oasaphead20.I_MASSG = flow169[i].i_massg;
                oasaphead20.I_MASSG = "01";
                WebReference.SAP_OA_JK20_REQ oasap20 = new WebReference.SAP_OA_JK20_REQ();
                oasap20.HEAD = oasaphead20;
                //发送ws
                string wsretlog = "";
                int    errtype  = 0;//1接口错误 2ws返回结果错误 0正常
                bool   ifsuc    = true;
                try
                {
                    WebReference.OaWebService oa = new WebReference.OaWebService();
                    Logger.Log(flow169[i].run_id + "(" + flow169[i].run_name + "-" + flow169[i].user_id + "):" + JsonHelper.ObjectToJson(oasap20), flowid.ToString());
                    WebReference.DT_OA_OA20_RespITEM[] retoa = oa.SAP_OA_JK_20(oasap20);
                    wsretlog = JsonHelper.ObjectToJson(retoa);
                    Logger.Log(flow169[i].run_id + "(" + flow169[i].run_name + "-" + flow169[i].user_id + "):" + JsonHelper.ObjectToJson(retoa), flowid.ToString());
                    foreach (var item in retoa)
                    {
                        if (item.TYPE != "S")
                        {
                            errtype = 2;
                            ifsuc   = false;
                            break;
                        }
                    }
                }
                catch
                {
                    wsretlog = "ws调用不成功";
                    errtype  = 1;
                    ifsuc    = false;
                }
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("UPDATE FLOW_RUN set TIMES=TIMES+1,RETRY=0 where RUN_ID={0} ", flow169[i].run_id), null);
                MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format(" INSERT INTO sync_flowlog (run_id,flow_id,run_name,sendlog,receivelog,sendtime,errtype) values ({0},{1},'{2}','{3}','{4}',sysdate(),{5})", flow169[i].run_id, flowid, flow169[i].run_name, JsonHelper.ObjectToJson(oasap20), wsretlog, errtype), null);
                if (ifsuc)
                {
                    int ret = MySqlHelper.ExecuteNonQuery(System.Data.CommandType.Text, string.Format("update flow_run set SYNC_TIME=sysdate(),RETRY=0 where RUN_ID={0} ", flow169[i].run_id), null);
                    //更新数据库表示他已经同步过了并且同步成功了
                    if (ret > 0)
                    {
                        Logger.Log(string.Format("RUN_ID={0},已经更新数据库", flow169[i].run_id), flowid.ToString());
                    }
                    else
                    {
                        Logger.Error(string.Format("RUN_ID={0},更新没有成功", flow169[i].run_id), flowid.ToString());
                    }
                }
                else
                {
                    Logger.Log(string.Format("RUN_ID={0},SAP返回错误信息", flow169[i].run_id), flowid.ToString());
                }
            }
        }