Ejemplo n.º 1
0
        /// <summary>
        /// 作废订单
        /// </summary>
        /// <param name="soNumber"></param>
        public static void AbandonSO(int soNumber)
        {
            SOV31 msg = new SOV31()
            {
                Body = new SOMsg()
                {
                    SOMaster = new SOMasterMsg()
                    {
                        SystemNumber = soNumber
                    }
                },
                Header = ServiceAdapterHelper.ApplyMessageHeader()
            };


            IMaintainSOV31 service = ServiceBroker.FindService <IMaintainSOV31>();

            try
            {
                msg = service.SystemAbandonSO(msg);
                ServiceAdapterHelper.DealServiceFault(msg.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <IMaintainSOV31>(service);
            }
        }
Ejemplo n.º 2
0
        public static void AuditNetPay(int soSysNo)
        {
            NetPayV31 message = new NetPayV31
            {
                Header = ServiceAdapterHelper.ApplyMessageHeader(),
                Body   = new NetPayMessage {
                    SOSysNo = soSysNo
                }
            };


            IMaintainNetPayV31 service = ServiceBroker.FindService <IMaintainNetPayV31>();


            try
            {
                //SimpleTypeDataContract<bool> BatchApproveGroupBuy(NetPayV31 msg);
                SimpleTypeDataContract <bool> ResultMsg = service.BatchApproveGroupBuy(message);

                ServiceAdapterHelper.DealServiceFault(ResultMsg.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <IMaintainNetPayV31>(service);
            }
        }
Ejemplo n.º 3
0
        public static void SendEmail(MailEntity mailEntity)
        {
            TxtFileLogger logger = LoggerManager.GetLogger();

            try
            {
                var mailService = ServiceBroker.FindService <IPP.Oversea.CN.ServiceCommon.ServiceInterfaces.ServiceContracts.ISendMail>();
                var mail        = new MailBodyV31
                {
                    Body = new MailBodyMsg
                    {
                        MailTo        = mailEntity.To,
                        CCMailAddress = mailEntity.CC,
                        Subjuect      = mailEntity.Subject,
                        MailBody      = mailEntity.Body,
                        Status        = 0, //0:未发送,1:已经发送
                        CreateDate    = DateTime.Now,
                        Priority      = 1  // Normal
                    }
                };

                mail.Header             = new MessageHeader();
                mail.Header.CompanyCode = ConfigurationManager.AppSettings["CompanyCode"];
                DefaultDataContract result = mailService.SendMail2IPP3Internal(mail);
                if (result.Faults != null && result.Faults.Count > 0)
                {
                    throw new Exception(result.Faults[0].ErrorDescription);
                }
            }
            catch (Exception ex)
            {
                logger.WriteLog("邮件发送失败!\r\n" + ex.ToString());
            }
        }
Ejemplo n.º 4
0
        private static TaobaoResponse Query(string method, Dictionary <string, string> param)
        {
            ITaoBaoMaintain service = ServiceBroker.FindService <ITaoBaoMaintain>();

            try
            {
                TaoBaoRequest taobaoRequest = new TaoBaoRequest();
                taobaoRequest.param  = param;
                taobaoRequest.method = method;
                taobaoRequest.Header = Util.CreateServiceHeader();
                TaoBaoResponse taoBaoResponse = service.GetTaoBaoInventoryQtyByMethod(taobaoRequest);
                string         response       = taoBaoResponse.CommonReturnStringValue;
                //string response = TaoBaoUtil.Post(param);
                response = response.Replace("items_onsale_get_response>", "items_inventory_get_response>");
                if (string.IsNullOrEmpty(response))
                {
                    throw new Exception("淘宝未返回任何信息。");
                }
                if (response.IndexOf("error_response") > -1)
                {
                    throw new Exception(response);
                }
                TaobaoResponse taobaoResponse = XmlSerializerHelper.Deserializer <TaobaoResponse>(response, CommonConst.taobao_response_encoding);
                return(taobaoResponse);
            }
            finally
            {
                ServiceBroker.DisposeService <ITaoBaoMaintain>(service);
            }
        }
Ejemplo n.º 5
0
        private void SynInvnetoryQty(List <TaoBaoSKUMsg> TaoBaoSKUList)
        {
            TaoBaoRequest request = new TaoBaoRequest();

            request.TaoBaoSKUList = TaoBaoSKUList;
            request.Header        = Util.CreateServiceHeader(Common);
            ITaoBaoMaintain service = ServiceBroker.FindService <ITaoBaoMaintain>();

            try
            {
                TaoBaoResponse response = service.TaoBaoItemQantityUpdate(request);

                if (response != null && response.Faults != null && response.Faults.Count > 0)
                {
                    MessageFault      msg = response.Faults[0];
                    BusinessException ex  = new BusinessException(msg.ErrorCode, string.Format("{0}\r\n{1}", msg.ErrorDescription, msg.ErrorDetail), true);

                    throw ex;
                }
            }
            finally
            {
                ServiceBroker.DisposeService <ITaoBaoMaintain>(service);
            }
        }
Ejemplo n.º 6
0
        public static void WriteLog(List <LogInfo> logInfos)
        {
            ICreateLogV31 service = ServiceBroker.FindService <ICreateLogV31>();

            LogV31 log = new LogV31();

            try
            {
                log.Body = ToMessageList(logInfos);
                if (logInfos != null && logInfos.Count > 0)
                {
                    log.Header = new Newegg.Oversea.Framework.Contract.MessageHeader
                    {
                        CompanyCode = Settings.CompanyCode
                    };
                }
                else
                {
                    log.Header = new Newegg.Oversea.Framework.Contract.MessageHeader();
                }
                service.CreateLog(log);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ServiceBroker.DisposeService <ICreateLogV31>(service);
            }
        }
Ejemplo n.º 7
0
        public static void Sync(ChannelProductEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
#if DEBUG
            ISyncChannelInventoryV31 service = ServiceBroker.FindService <ISyncChannelInventoryV31>("CN.InventoryMgmt.UI.IPP01", "LocalDev");
#else
            ISyncChannelInventoryV31 service = ServiceBroker.FindService <ISyncChannelInventoryV31>();
#endif
            ChannelInventoryRequestV31 request = new ChannelInventoryRequestV31();
            request.Body = new List <ChannelInventoryMsg>();
            ChannelInventoryMsg msg = new ChannelInventoryMsg
            {
                ChannelSysNo     = entity.ChannelSysNo,
                ChannelInventory = entity.SynChannelQty,
                ProductSysNo     = entity.ProductSysNo,
                SynProductID     = entity.SynProductID,
                SkuID            = entity.SkuID
            };
            request.Body.Add(msg);

            request.Header = Util.CreateMessageHeader();

            ChannelInventoryResponseV31 response = service.Sync(request);

            if (response == null)
            {
                throw new BusinessException("SyncChannelInventoryJobError",
                                            string.Format("ThirdPart Service返回NULL值,product:{0},channel:{1}({2})  同步失败",
                                                          entity.ProductSysNo, entity.ChannelSysNo, entity.ChannelCode));
            }
            if (response.Faults != null &&
                response.Faults.Count > 0)
            {
                var fault = response.Faults[0];
                throw new BusinessException(fault.ErrorCode, string.IsNullOrEmpty(fault.ErrorDetail) ? fault.ErrorDescription : fault.ErrorDetail);
            }
            if (response.Body == null ||
                response.Body.Count == 0)
            {
                throw new BusinessException("SyncChannelInventoryJobError",
                                            string.Format("ThirdPart Service返回未知错误,product:{0},channel:{1}({2})  同步失败",
                                                          entity.ProductSysNo, entity.ChannelSysNo, entity.ChannelCode));
            }
            msg = response.Body[0];
            if (msg.FaultMsg != null)
            {
                BusinessException ex = new BusinessException(msg.FaultMsg.ErrorCode,
                                                             string.Format("product:{0},channel:{1}({2}) 同步失败\r\n{3}\r\n{4}",
                                                                           entity.ProductSysNo,
                                                                           entity.ChannelSysNo,
                                                                           entity.ChannelCode,
                                                                           msg.FaultMsg.ErrorDescription,
                                                                           msg.FaultMsg.ErrorDetail));
                throw ex;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 开始检测订单的本地仓状态
        /// </summary>
        /// <param name="jobContext">Job运行上下文</param>
        public static void Run(JobContext jobContext)
        {
            BizLogFile = jobContext.Properties["BizLog"];

            List <SOEntity4OutStockEntity> list = OutStockSODA.GetOutStockSOList(CompanyCode);

            if (list == null || list.Count == 0)
            {
                jobContext.Message += "没有附合条件的记录";
                WriteLog("没有附合条件的记录");

                return;
            }
            else
            {
                jobContext.Message += string.Format(" 共获取到{0}条满足条件的记录", list.Count);
                WriteLog(string.Format(" 共获取到{0}条满足条件的记录", list.Count));
            }
            int successCount = 0;
            IMaintainSOManualChangeWHV31 service = ServiceBroker.FindService <IMaintainSOManualChangeWHV31>();

            GetAutoAuditSendMessageLoginInfo();
            foreach (SOEntity4OutStockEntity so in list)
            {
                // 如果3天没有备到货,改为超时未到货
                TimeSpan ts = DateTime.Now.Subtract(so.OrderDate);
                if (ts.TotalHours > 72)
                {
                    OutStockSODA.UpdateSOStockStatus(so.SysNo, 2);
                    continue;
                }

                // 如果已经到货,修改订单仓库并修改订单为到货可审
                if (OutStockSODA.IsItemAvail(so.SysNo, so.LocalWHSysNo))
                {
                    List <SOItem4OutStockEntity> soItems = OutStockSODA.GetSOItem4OutStock(so.SysNo, so.LocalWHSysNo);
                    foreach (SOItem4OutStockEntity soitem in soItems)
                    {
                        try
                        {
                            UpdateSOStockStatus(so.SysNo, soitem.ProductID, soitem.ProductSysNo, soitem.Quantity,
                                                int.Parse(soitem.WarehouseNumber), int.Parse(so.LocalWHSysNo), service);

                            successCount++;
                            jobContext.Message += string.Format("成功修改订单仓库,单号:{0}\r\n", so.SysNo);
                            WriteLog(string.Format("成功修改订单仓库,单号:{0}", so.SysNo));
                        }
                        catch (Exception ex)
                        {
                            jobContext.Message += string.Format("修改仓库时发生异常,单号:{0},异常:{1}\r\n", so.SysNo, ex.Message);
                            WriteLog(string.Format("修改仓库时发生异常,单号:{0},异常:{1}", so.SysNo, ex.Message));
                        }
                    }
                }
            }
        }
Ejemplo n.º 9
0
        public static void SendMessage(JobContext jobContext)
        {
            BizLogFile = jobContext.Properties["BizLog"];
            //从配置文件中获取自动审核一次最多提取的单数
            TopCount = GetAutoAuditSendMessageTopCount();
            //从配置文件获取为邮件发送JOB中调用WCF服务时所使用到的信息
            GetAutoAuditSendMessageLoginInfo();
            //自动审单时审单人编号
            AuditUserSysNo = GetAutoAuditUserSysNo();

            List <int> sendMailSysNoList = SOAutoAuditSendMessageDA.GetSOList4Audit2SendMessage(TopCount, SendMailCompanyCode);

            if (sendMailSysNoList.Count > 0)
            {
                jobContext.Message += string.Format("共获取到{0}条附合条件的记录\r\n", sendMailSysNoList.Count);
                WriteLog(string.Format("共获取到{0}条附合条件的记录\r\n", sendMailSysNoList.Count));

                IMaintainSOV31 service      = ServiceBroker.FindService <IMaintainSOV31>();
                int            successCount = 0;
                try
                {
                    foreach (int x in sendMailSysNoList)
                    {
                        try
                        {
                            SendMessage4SO(x, service);
                            successCount++;
                            jobContext.Message += string.Format("已为审单通过成功发送邮件,单号:{0}\r\n", x);
                            WriteLog(string.Format("已为审单通过成功发送邮件,单号:{0}", x));
                        }
                        catch (Exception ex)
                        {
                            jobContext.Message += string.Format("发送邮件异常,单号:{0},异常:\r\n", x, ex.Message);
                            WriteLog(string.Format("发送邮件异常,单号:{0},异常:", x, ex.Message));
                        }
                    }
                }
                finally
                {
                    ServiceBroker.DisposeService <IMaintainSOV31>(service);
                }

                jobContext.Message += string.Format("执行结束,成功{0}条,失败{1}条\r\n",
                                                    successCount, sendMailSysNoList.Count - successCount);
                WriteLog(string.Format("执行结束,成功{0}条,失败{1}条\r\n",
                                       successCount, sendMailSysNoList.Count - successCount));
            }
            else
            {
                jobContext.Message += string.Format("没有附合条件的记录\r\n");
                WriteLog("没有附合条件的记录\r\n");
            }
        }
Ejemplo n.º 10
0
        public static void InStock(POEntity po)
        {
            WMSRequest request = new WMSRequest()
            {
                Header      = ServiceAdapterHelper.ApplyMessageHeader()
                , OrderInfo = new WMSOrderInfo()
                {
                    OrderSysNo        = po.SysNo.Value
                    , OrderType       = "PO"
                    , WarehouseNumber = po.StockSysNo.ToString()
                }
            };

            List <WMSRequestProduct> products = new List <WMSRequestProduct>();

            foreach (var item in po.POItems)
            {
                products.Add(
                    new WMSRequestProduct()
                {
                    Code      = item.ProductID
                    , UnitQty = item.PurchaseQty
                });
            }

            WMSRequestWaitInStock req = new WMSRequestWaitInStock()
            {
                Action          = "ImportAsn"
                , OrderCode     = po.SysNo.ToString()
                , WarehouseCode = po.StockSysNo.ToString()
                , ProductList   = products
            };

            request.WaitInStock = req;

            IWMSMaintain service = ServiceBroker.FindService <IWMSMaintain>();

            try
            {
                WMSResponse response = service.WaitInStock(request);
                ServiceAdapterHelper.DealServiceFault(response.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <IWMSMaintain>(service);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 发送带附件的邮件
        /// </summary>
        /// <returns></returns>
        public static void SendMailWithAccessories(MailContract mailContract)
        {
            ISendEmail service = ServiceBroker.FindService <ISendEmail>();

            try
            {
                bool isSuccess = service.SendMail(mailContract, false);
                mailContract.Attachments.Clear();           //清空附件列表

                if (!isSuccess)
                {
                    throw (new BusinessException("Invoice job(SendMailARAmtOfVIPCustomer) Send mail failed!"));
                }
            }
            finally
            {
                ServiceBroker.DisposeService <ISendEmail>(service);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 更新订单
        /// </summary>
        /// <param name="soSysNo"></param>
        public static void UpdateSO4GroupBuying(int soSysNo)
        {
            SimpleTypeDataContract <int> SysNo = new SimpleTypeDataContract <int>
            {
                Value  = soSysNo,
                Header = ServiceAdapterHelper.ApplyMessageHeader()
            };


            IMaintainSOV31 service = ServiceBroker.FindService <IMaintainSOV31>();

            try
            {
                DefaultDataContract msg = service.UpdateSO4GroupBuying(SysNo);
                ServiceAdapterHelper.DealServiceFault(msg.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <IMaintainSOV31>(service);
            }
        }
Ejemplo n.º 13
0
        private void SynInvnetoryQty(List <InventoryQtyEntity> inventoryQtyList)
        {
            TaoBaoRequest request = new TaoBaoRequest();

            request.TaoBaoSKUList = new List <TaoBaoSKUMsg>();

            foreach (InventoryQtyEntity entity in inventoryQtyList)
            {
                TaoBaoSKUMsg skuMsg = new TaoBaoSKUMsg();
                skuMsg.Quantity = entity.SynInventoryQty.ToString();
                skuMsg.Type     = "2";
                skuMsg.SKU      = entity.SKU;
                request.TaoBaoSKUList.Add(skuMsg);
            }
            request.Header = Util.CreateServiceHeader();
            ITaoBaoMaintain service = ServiceBroker.FindService <ITaoBaoMaintain>();

            try
            {
                TaoBaoResponse response = service.TaoBaoItemQantityUpdate(request);

                if (response != null && response.Faults != null && response.Faults.Count > 0)
                {
                    MessageFault      msg = response.Faults[0];
                    BusinessException ex  = new BusinessException(msg.ErrorCode, string.Format("{0}\r\n{1}", msg.ErrorDescription, msg.ErrorDetail), true);

                    throw ex;
                }
            }
            catch (Exception ex)
            {
                ExceptionHelper.HandleException(ex);
                throw ex;
            }
            finally
            {
                ServiceBroker.DisposeService <ITaoBaoMaintain>(service);
            }
        }
Ejemplo n.º 14
0
        private static void InsertKFC(SOEntity4FPEntity entity)
        {
            IMaintainKFCV31 service = ServiceBroker.FindService <IMaintainKFCV31>();

            KnownFraudCustomerV31 message = new KnownFraudCustomerV31
            {
                Body = new KnownFraudCustomerMsg
                {
                    BrowseInfo      = entity.BrowseInfo,
                    CreateDate      = DateTime.Now,
                    CreateUserName  = "******",
                    CustomerSysNo   = entity.CustomerSysNo,
                    EmailAddress    = entity.EmailAddress,
                    FraudType       = 1,
                    IPAddress       = entity.IPAddress,
                    MobilePhone     = entity.MobilePhone,
                    ShippingAddress = entity.ShippingAddress,
                    ShippingContact = entity.ShippingContact,
                    Status          = 0,
                    Telephone       = entity.Telephone
                },
                Header = new Newegg.Oversea.Framework.Contract.MessageHeader()
                {
                    OperationUser    = new OperationUser(UserDisplayName, UserLoginName, StoreSourceDirectoryKey, CompanyCode),
                    CompanyCode      = CompanyCode,
                    StoreCompanyCode = StoreCompanyCode
                }
            };

            try
            {
                message = service.InsertKnownFraudCustomer(message);
            }
            finally
            {
                ServiceAdapterHelper.DealServiceFault(message);
            }
        }
Ejemplo n.º 15
0
        public static void UpdateSO4GroupBuyingV2(int soSysNo, int gourpBuySysNo, int productSysNo)
        {
            SOGroupBuyAjustV31 message = new SOGroupBuyAjustV31()
            {
                Body = new SOGroupBuyAjustMsg(), Header = ServiceAdapterHelper.ApplyMessageHeader()
            };

            message.Body.SOSysNo       = soSysNo;
            message.Body.GroupBuySysNo = gourpBuySysNo;
            message.Body.ProductSysNo  = productSysNo;

            IMaintainSOV31 service = ServiceBroker.FindService <IMaintainSOV31>();

            try
            {
                DefaultDataContract msg = service.UpdateSO4GroupBuyingV2(message);
                ServiceAdapterHelper.DealServiceFault(msg.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <IMaintainSOV31>(service);
            }
        }
Ejemplo n.º 16
0
        public static void CreateAO(int soSysNo)
        {
            FinanceIncomeV31 message = new FinanceIncomeV31
            {
                Header = ServiceAdapterHelper.ApplyMessageHeader(),
                Body   = new FinanceIncomeMessage()
            };

            message.Body.SOIncome = new SOIncomeMessage
            {
                OrderSysNo = soSysNo
            };

            message.Body.SOIncomeRefund = new SOIncomeRefundMessage
            {
                Note          = "团购订单作废",
                RefundReason  = null,
                RefundPayType = SOIncomeRefundPayType.PrepayRefund
            };

            message.Body.Type = FinanceIncomeType.AO;


            ICreateSOIncomeRefundV31 service = ServiceBroker.FindService <ICreateSOIncomeRefundV31>();


            try
            {
                SimpleTypeDataContract <bool> ResultMsg = service.CreateNegativeFinanceIncome(message);

                ServiceAdapterHelper.DealServiceFault(ResultMsg.Faults);
            }
            finally
            {
                ServiceBroker.DisposeService <ICreateSOIncomeRefundV31>(service);
            }
        }
Ejemplo n.º 17
0
        public void SendMail(MailEntity entity)
        {
            ISendMail   service = ServiceBroker.FindService <ISendMail>();
            MailBodyV31 mail    = new MailBodyV31();

            mail.Body = new MailBodyMsg
            {
                CCMailAddress = entity.CC,
                CreateDate    = DateTime.Now,
                MailBody      = entity.Body,
                MailFrom      = entity.From,
                MailTo        = entity.To,
                Subjuect      = entity.Subject
            };
            mail.Header = Util.CreateServiceHeader();

            DefaultDataContract contract = service.SendMail2MailDBInternal(mail);

            if (contract != null && contract.Faults != null && contract.Faults.Count > 0)
            {
                MessageFault fault = contract.Faults[0];
                throw new Exception(string.Format("{0}\r\n{1}\r\n{2}", fault.ErrorCode, fault.ErrorDescription, fault.ErrorDetail));
            }
        }