private void SendOrderData() { ErrorLog.Write("执行了OrderSendJob->SendOrderData"); try { OrderQuery orderQuery = new OrderQuery(); orderQuery.PageIndex = pageIndex; orderQuery.PageSize = 100; orderQuery.DateContrastType = dateContrastType; orderQuery.DateContrastValue = dateContrastValue; orderQuery.SendWMSCount = sendWMSCount; //ErrorLog.Write("执行了OrderSendJob->SendOrderData.GetWMSUserOrders"); OrdersInfo userOrders = OrderHelper.GetWMSUserOrders(orderQuery); DataTable dt = (DataTable)userOrders.OrderTbl; if (dt != null && dt.Rows.Count > 0) //if (true) { ErrorLog.Write("执行了OrderSendJob->SendOrderData.GetWMSUserOrders返回查询结果:" + dt.Rows.Count); pageIndex++; flag = true; string skuData = CreateSKUData(dt); //string skuData = "<xmldata><header><OrderNo>201601060896873</OrderNo><OrderType>CM</OrderType><CustomerID>SINCNET</CustomerID><SOReference2></SOReference2><SOReference5>22</SOReference5><H_EDI_01></H_EDI_01><H_EDI_02></H_EDI_02><H_EDI_03>6.00</H_EDI_03><H_EDI_04>14.40</H_EDI_04><H_EDI_05>广东省,深圳市,龙岗区</H_EDI_05><ConsigneeID>何小娟</ConsigneeID><ConsigneeName>何小娟</ConsigneeName><C_Address1>坂田南坑街道办麒麟西七巷9栋812</C_Address1><C_Province>广东省</C_Province><C_City>深圳市</C_City><C_ZIP>000000</C_ZIP><CarrierID>YUANTONG</CarrierID><UserDefine2>何小娟</UserDefine2><C_Tel1>-</C_Tel1><C_Tel2>13692207500</C_Tel2><WarehouseID>WH01</WarehouseID><Notes></Notes><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10084_0</SKU><QtyOrdered_Each>1</QtyOrdered_Each><UserDefine2>38.40</UserDefine2><UserDefine1>箱</UserDefine1><GrossWeight>0</GrossWeight></detailsItem></header><header><OrderNo>201601066096339</OrderNo><OrderType>CM</OrderType><CustomerID>SINCNET</CustomerID><SOReference2></SOReference2><SOReference5>-2</SOReference5><H_EDI_01></H_EDI_01><H_EDI_02></H_EDI_02><H_EDI_03>6.00</H_EDI_03><H_EDI_04>20.40</H_EDI_04><H_EDI_05>广东省,深圳市,宝安区</H_EDI_05><ConsigneeID>邓女士</ConsigneeID><ConsigneeName>邓女士</ConsigneeName><C_Address1>龙华新区长城里程家园4栋1单元104</C_Address1><C_Province>广东省</C_Province><C_City>深圳市</C_City><C_ZIP>518000</C_ZIP><CarrierID>YUANTONG</CarrierID><UserDefine2>邓女士</UserDefine2><C_Tel1></C_Tel1><C_Tel2>13602509805</C_Tel2><WarehouseID>WH01</WarehouseID><Notes></Notes><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10055_0</SKU><QtyOrdered_Each>2</QtyOrdered_Each><UserDefine2>10.30</UserDefine2><UserDefine1>包</UserDefine1><GrossWeight>0</GrossWeight></detailsItem><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10071_0</SKU><QtyOrdered_Each>2</QtyOrdered_Each><UserDefine2>11.90</UserDefine2><UserDefine1>包</UserDefine1><GrossWeight>0</GrossWeight></detailsItem></header><header><OrderNo>20160106174579511</OrderNo><OrderType>CM</OrderType><CustomerID>SINCNET</CustomerID><SOReference2></SOReference2><SOReference5>26</SOReference5><H_EDI_01></H_EDI_01><H_EDI_02></H_EDI_02><H_EDI_03>7.00</H_EDI_03><H_EDI_04>83.80</H_EDI_04><H_EDI_05>广东省,深圳市,福田区</H_EDI_05><ConsigneeID>林宏涛</ConsigneeID><ConsigneeName>林宏涛</ConsigneeName><C_Address1>福强路宝田苑A1502</C_Address1><C_Province>广东省</C_Province><C_City>深圳市</C_City><C_ZIP>000000</C_ZIP><CarrierID>YUANTONG</CarrierID><UserDefine2>林宏涛</UserDefine2><C_Tel1>-</C_Tel1><C_Tel2>13828811950</C_Tel2><WarehouseID>WH01</WarehouseID><Notes></Notes><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10088_0</SKU><QtyOrdered_Each>1</QtyOrdered_Each><UserDefine2>38.40</UserDefine2><UserDefine1>箱</UserDefine1><GrossWeight>0</GrossWeight></detailsItem><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10089_0</SKU><QtyOrdered_Each>1</QtyOrdered_Each><UserDefine2>38.40</UserDefine2><UserDefine1>箱</UserDefine1><GrossWeight>0</GrossWeight></detailsItem></header><header><OrderNo>20160106174579521</OrderNo><OrderType>CM</OrderType><CustomerID>SINCNET</CustomerID><SOReference2></SOReference2><SOReference5>26</SOReference5><H_EDI_01></H_EDI_01><H_EDI_02></H_EDI_02><H_EDI_03>6.00</H_EDI_03><H_EDI_04>42.20</H_EDI_04><H_EDI_05>广东省,深圳市,福田区</H_EDI_05><ConsigneeID>林宏涛</ConsigneeID><ConsigneeName>林宏涛</ConsigneeName><C_Address1>福强路宝田苑A1502</C_Address1><C_Province>广东省</C_Province><C_City>深圳市</C_City><C_ZIP>000000</C_ZIP><CarrierID>YUANTONG</CarrierID><UserDefine2>林宏涛</UserDefine2><C_Tel1>-</C_Tel1><C_Tel2>13828811950</C_Tel2><WarehouseID>WH01</WarehouseID><Notes></Notes><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10142_0</SKU><QtyOrdered_Each>2</QtyOrdered_Each><UserDefine2>18.10</UserDefine2><UserDefine1>支</UserDefine1><GrossWeight>0</GrossWeight></detailsItem></header><header><OrderNo>201601062078357</OrderNo><OrderType>CM</OrderType><CustomerID>SINCNET</CustomerID><SOReference2></SOReference2><SOReference5>-2</SOReference5><H_EDI_01></H_EDI_01><H_EDI_02></H_EDI_02><H_EDI_03>6.00</H_EDI_03><H_EDI_04>6.90</H_EDI_04><H_EDI_05>广东省,湛江市,雷州市</H_EDI_05><ConsigneeID>林嘉豪</ConsigneeID><ConsigneeName>林嘉豪</ConsigneeName><C_Address1>雷州市第八中学</C_Address1><C_Province>广东省</C_Province><C_City>湛江市</C_City><C_ZIP>524200</C_ZIP><CarrierID>YUANTONG</CarrierID><UserDefine2>林嘉豪</UserDefine2><C_Tel1></C_Tel1><C_Tel2>18344175319</C_Tel2><WarehouseID>WH01</WarehouseID><Notes></Notes><detailsItem><CustomerID>SINCNET</CustomerID><SKU>10055_0</SKU><QtyOrdered_Each>3</QtyOrdered_Each><UserDefine2>10.30</UserDefine2><UserDefine1>包</UserDefine1><GrossWeight>0</GrossWeight></detailsItem></header></xmldata>"; //WMS 无法正常接收部分字符 skuData = skuData.Replace("\n", "").Replace("\t", "").Replace("\r", "").Replace("+", "+"); string tempdata = appSecret + skuData + appSecret; string md5tempdata = WMSHelper.MD5(tempdata); string basetempdata = WMSHelper.EncodingString(md5tempdata.ToLower(), System.Text.Encoding.UTF8); sign = System.Web.HttpUtility.UrlEncode(basetempdata.ToUpper(), System.Text.Encoding.UTF8); // timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//YYYY-MM-DD HH:MM:SS string postData = "method=putSOData&client_customerid=" + customerid + "&client_db=" + client_db + "&messageid=SO&apptoken=" + apptoken + "&appkey=" + appkey + "&sign=" + sign + "×tamp=" + timestamp; // skuData = System.Web.HttpUtility.UrlEncode(skuData); //skuData = System.Web.HttpUtility.UrlEncode(skuData); ErrorLogs("url=" + url + ";postData=" + postData + "&data=" + tempdata); //数据库日志 WMSHelper.SaveLog("putSOData", tempdata, "调用方法", "info", "out"); string sendResult = WMSHelper.PostData(url, postData + "&data=" + skuData); string tempResult = System.Web.HttpUtility.UrlDecode(sendResult); // ErrorLogs("接收WMS消息:" + tempResult + "\n"); WMSHelper.SaveLog("putSOData", "", "返回结果:" + tempResult, "error", "in"); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(tempResult); XmlNode node = xmlDocument.SelectSingleNode("Response/return/returnCode"); XmlNode nodeFlag = xmlDocument.SelectSingleNode("Response/return/returnFlag"); //先全部修改成成功 for (int i = 0; i < dt.Rows.Count; i++) { //更新订单表同步wms成功状态 OrderHelper.UpdateOrderWMSStatus(dt.Rows[i]["OrderId"].ToString(), 1); } // //0 if (node.InnerText != "0000") { ErrorLogs("调用WMS推送订单失败:" + tempResult + "\n"); WMSHelper.SaveLog("putSOData", "", "返回结果:" + tempResult, "error", "in"); if (nodeFlag.InnerText == "0") { //node.InnerText == "0001" && //全部失败 for (int i = 0; i < dt.Rows.Count; i++) { //更新订单表同步wms成功状态 OrderHelper.UpdateOrderWMSStatus(dt.Rows[i]["OrderId"].ToString(), 0); } } else if (nodeFlag.InnerText == "2") { //node.InnerText == "0001" && foreach (XmlNode infonode in xmlDocument.SelectNodes("Response/return/resultInfo")) { string orderno = infonode.SelectSingleNode("OrderNo").InnerText; OrderHelper.UpdateOrderWMSStatus(orderno, 0); } } SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送订单(putSOData)接口失败,详情请查询推送日志", 3); } } else { flag = false; } } catch (Exception ex) { ErrorLogs("出现异常:" + ex.Message); SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送订单(putSOData)接口发生异常,详情请查询推送日志", 3); } if (flag) { SendOrderData(); } }
private void SendSKUData() { ErrorLog.Write("执行了SKUJob->SendSKUData"); try { ProductBrowseQuery query = new ProductBrowseQuery(); query.PageIndex = pageIndex; query.PageSize = 100; query.DateContrastType = dateContrastType; query.DateContrastValue = dateContrastValue; query.SendWMSCount = sendWMSCount; ErrorLog.Write("执行了SKUJob->SendSKUData"); DataTable dt = (DataTable)ProductBrowser.GetWMSBrowseProductList(query).Data; if (dt != null && dt.Rows.Count > 0) { pageIndex++; flag = true; string skuData = CreateSKUData(dt); //string skuData="<xmldata><header><CustomerID>61</CustomerID><SKU>3500_0</SKU><Active_Flag>Y</Active_Flag><Descr_C>法国MEDICOX雪亮+白晳精华 30ML</Descr_C><Descr_E></Descr_E><GrossWeight></GrossWeight><NetWeight>0.00</NetWeight><Cube></Cube><Price>100.00</Price><SKULength></SKULength><SKUWidth></SKUWidth><SKUHigh></SKUHigh><CycleClass>A</CycleClass></header></xmldata>";// //WMS 无法正常接收部分字符 skuData = skuData.Replace("\n", "").Replace("\t", "").Replace("\r", "").Replace("+", "+"); string tempdata = appSecret + skuData + appSecret; string md5tempdata = WMSHelper.MD5(tempdata); string basetempdata = WMSHelper.EncodingString(md5tempdata.ToLower(), System.Text.Encoding.UTF8); sign = System.Web.HttpUtility.UrlEncode(basetempdata.ToUpper(), System.Text.Encoding.UTF8); // timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//YYYY-MM-DD HH:MM:SS string postData = "method=putSKUData&client_customerid=" + customerid + "&client_db=" + client_db + "&messageid=SKU&apptoken=" + apptoken + "&appkey=" + appkey + "&sign=" + sign + "×tamp=" + timestamp; //.NET和java UrlEncode处理机制不一样,加号"+"在java里面会被替换成空格,需要转换2次 skuData = System.Web.HttpUtility.UrlEncode(skuData); //skuData = System.Web.HttpUtility.UrlEncode(skuData); ErrorLogs("url=" + url + ";postData=" + postData + "&data=" + tempdata); // WMSHelper.SaveLog("putSKUData", tempdata, "调用方法", "info", "out"); // string sendResult = WMSHelper.PostData(url, postData + "&data=" + skuData); string tempResult = System.Web.HttpUtility.UrlDecode(sendResult); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(tempResult); XmlNode node = xmlDocument.SelectSingleNode("Response/return/returnCode"); XmlNode nodeFlag = xmlDocument.SelectSingleNode("Response/return/returnFlag"); //先全部修改成成功 for (int i = 0; i < dt.Rows.Count; i++) { //更新订单表同步wms成功状态 this.UpdateSKUSendStatus(dt.Rows[i]["ProductId"].ToString(), "1"); } // //0 if (node.InnerText != "0000") { ErrorLogs("调用WMS推送SKU失败:" + tempResult + "\n"); WMSHelper.SaveLog("putSKUData", "", "返回结果:" + tempResult, "error", "in"); if (nodeFlag.InnerText == "0") { //node.InnerText == "0001" && //全部失败 for (int i = 0; i < dt.Rows.Count; i++) { //更新订单表同步wms成功状态 this.UpdateSKUSendStatus(dt.Rows[i]["ProductId"].ToString(), "0"); } } else if (nodeFlag.InnerText == "2") { //node.InnerText == "0001" && foreach (XmlNode infonode in xmlDocument.SelectNodes("Response/return/resultInfo")) { string skuId = infonode.SelectSingleNode("SKU").InnerText; //OrderHelper.UpdateOrderWMSStatus(orderno, 0); this.UpdateSKUSendStatusBySKUId(skuId, "0"); } } SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送SKU(putSKUData)接口失败,详情请查询推送日志", 3); } } else { flag = false; } } catch (Exception ex) { ErrorLogs("出现异常:" + ex.Message + "\n"); SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送SKU(putSKUData)接口发生异常,详情请查询推送日志", 3); } if (flag) { SendSKUData(); } }
private void SendSupplierData() { ErrorLog.Write("执行了SupplierJobs -> SendSupplierData"); try { string setdate = this.GetOrderSendCoupontime(); SupplierQuery query = new SupplierQuery(); query.PageIndex = pageIndex; query.PageSize = 100; query.DateContrastType = dateContrastType; query.DateContrastValue = dateContrastValue; query.DataVersion = setdate; query.SortBy = "DataVersion"; ErrorLog.Write("执行了SupplierJobs -> GetWMSSupplier"); DataTable dt = (DataTable)SupplierHelper.GetWMSSupplier(query).Data; ErrorLog.Write("执行了SupplierJobs -> GetWMSSupplier 查询完成"); if (dt != null && dt.Rows.Count > 0) { ErrorLog.Write("执行了SupplierJobs -> GetWMSSupplier 查询结果:" + dt.Rows.Count); pageIndex++; flag = true; string skuData = CreateSupplierData(dt); //WMS 无法正常接收部分字符 skuData = skuData.Replace("\n", "").Replace("\t", "").Replace("\r", "").Replace("+", "+"); string tempdata = appSecret + skuData + appSecret; string md5tempdata = WMSHelper.MD5(tempdata); string basetempdata = WMSHelper.EncodingString(md5tempdata.ToLower(), System.Text.Encoding.UTF8); sign = System.Web.HttpUtility.UrlEncode(basetempdata.ToUpper(), System.Text.Encoding.UTF8); // timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//YYYY-MM-DD HH:MM:SS string postData = "method=putCustData&client_customerid=" + customerid + "&client_db=" + client_db + "&messageid=CUSTOMER&apptoken=" + apptoken + "&appkey=" + appkey + "&sign=" + sign + "×tamp=" + timestamp; //.NET和java UrlEncode处理机制不一样,加号"+"在java里面会被替换成空格,需要转换2次 skuData = System.Web.HttpUtility.UrlEncode(skuData); //skuData = System.Web.HttpUtility.UrlEncode(skuData); //文本日志 ErrorLogs("url=" + url + ";postData=" + postData + "&data=" + tempdata); //数据库日志 WMSHelper.SaveLog("putCustData", tempdata, "调用方法", "info", "out"); string sendResult = WMSHelper.PostData(url, postData + "&data=" + skuData); string tempResult = System.Web.HttpUtility.UrlDecode(sendResult); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(tempResult); XmlNode node = xmlDocument.SelectSingleNode("Response/return/returnCode"); if (node.InnerText != "0000") { ErrorLogs("调用WMS推送商家失败:" + tempResult + "\n"); WMSHelper.SaveLog("putCustData", "", "返回结果:" + tempResult, "error", "in"); SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送商家(putCustData)接口失败,详情请查询推送日志", 3); } else { //更新最后一个推送WMS客户档案时间戳 this.UpdateOrderSendCoupontime(dt.Rows[dt.Rows.Count - 1]["DataVersion"].ToString()); } } else { flag = false; } } catch (Exception ex) { ErrorLogs("出现异常:" + ex.Message); SmsHelper.QueueSMS(mobiles, "系统在" + DateTime.Now.ToString("yyyy年MM月HH点mm分ss秒") + "调用WMS推送商家(putCustData)接口发生异常,详情请查询推送日志", 3); } if (flag) { SendSupplierData(); } }