コード例 #1
0
ファイル: OrderSendJob.cs プロジェクト: damoOnly/e-commerce
        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 + "&timestamp=" + 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();
            }
        }
コード例 #2
0
        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 + "&timestamp=" + 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();
            }
        }
コード例 #3
0
ファイル: SupplierJobs.cs プロジェクト: damoOnly/e-commerce
        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 + "&timestamp=" + 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();
            }
        }