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)); }
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()); } } } } }
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()); } } }
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()); } } }
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()); } } } } }
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()); } } }
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()); } } }