public bool RequestAndWriteData(MC_getToken_Result token, string rq1, string rq2, int pagesize = 1000, int pageindex = 1) { var startDate = DateTime.Parse(rq1); var endDate = DateTime.Parse(rq2); //if (startDate == DateTime.Now.Date) //{ // await Console.Out.WriteLineAsync("时间未到提货单暂时不同步"); // return false; //} LogHelper.WriteLog("提货单开始同步"); string parJson = ""; const string logstr = "参数:{0}\r\n返回结果:总条数【{1}】,当前页共【{2}】条记录\r\n异常:{3}"; try { do { rq1 = startDate.ToString("yyyy/MM/dd"); rq2 = startDate.AddDays(1) <= endDate?startDate.AddDays(1).ToString("yyyy/MM/dd") : rq1; var pagecount = 0; var total = 0; pageindex = 1; do { var pars = new MC_PickUpGoods_Params(token.token, rq1, rq2, pagesize, pageindex); parJson = JSONhelper.ToJson(pars); var result = Request <MC_PickUpGoods_Result, MC_PickUpGoods_Params>( new MC_PickUpGoods_Params(token.token, rq1, rq2, pagesize, pageindex)); total = result.TotalCount; var msg = string.Format(logstr, parJson, total, result.resultInfo.Count, ""); LogHelper.WriteLog(msg); if (pagecount == 0) { pagecount = total / pagesize; if (total % pagesize > 0) { pagecount++; } } //写入数据库 if (result.resultInfo.Count > 0) { //并发写入 foreach (var row in result.resultInfo.AsParallel()) { row.ComputeFID(); string sql = "SELECT COUNT(*) FROM MN_THD WHERE 1=1"; var where = "and autoId=" + row.autoId; sql += where; var count = DbUtils.CountBySQL(sql); var data = new MC_PickUpGoods_ResultInfo(row); if (Convert.ToInt32(count) > 0) { DbUtils.UpdateWithWhere <MC_PickUpGoods_ResultInfo>(data, where); continue; } DbUtils.InsertObj(data); } } pageindex++; } while (pageindex <= pagecount); startDate = startDate.AddDays(2); } while (startDate <= endDate); return(true); } catch (Exception e) { LogHelper.WriteLog(e); return(false); } }
public async Task <bool> RequestAndWriteData(MC_getToken_Result token, string rq1, string rq2, int pagesize = 1000, int pageindex = 1) { var startDate = DateTime.Parse(rq1); var endDate = DateTime.Parse(rq2); //if (startDate == DateTime.Now.Date) //{ // await Console.Out.WriteLineAsync("时间未到提货单暂时不同步"); // return false; //} LogHelper.LogInfo("开始同步"); await Console.Out.WriteLineAsync("提货单开始同步"); string parJson = ""; const string logstr = "参数:{0}\r\n返回结果:总条数【{1}】,当前页共【{2}】条记录\r\n异常:{3}"; try { do { rq1 = startDate.ToString("yyyy/MM/dd"); rq2 = startDate.AddDays(1) <= endDate?startDate.AddDays(1).ToString("yyyy/MM/dd") : rq1; var pagecount = 0; var total = 0; pageindex = 1; do { var pars = new MC_PickUpGoods_Params(token.token, rq1, rq2, pagesize, pageindex); parJson = JsonConvert.SerializeObject(pars); var result = Request <MC_PickUpGoods_Result, MC_PickUpGoods_Params>( new MC_PickUpGoods_Params(token.token, rq1, rq2, pagesize, pageindex)).Result; total = result.TotalCount; var msg = string.Format(logstr, parJson, total, result.resultInfo.Count, ""); LogHelper.LogInfo(msg); await Console.Out.WriteLineAsync(msg); if (pagecount == 0) { pagecount = total / pagesize; if (total % pagesize > 0) { pagecount++; } } //写入数据库 if (result.resultInfo.Count > 0) { //并发写入 foreach (var row in result.resultInfo.AsParallel()) { string sql = "SELECT COUNT(*) FROM MN_THD WHERE AUTOID=:AUTOID"; var par = new Dictionary <string, object>(); par.Add(":AUTOID", row.autoId); var count = helper.ExecuteScalar(sql, par); if (Convert.ToInt32(count) > 0) { string where = "AND AUTOID=:AUTOID"; helper.Update(row, where); continue; } helper.Insert(row); } } pageindex++; } while (pageindex <= pagecount); startDate = startDate.AddDays(2); } while (startDate <= endDate); return(true); } catch (Exception e) { return(false); } }