Exemple #1
0
        /// <summary>
        /// 记录日志
        /// </summary>
        /// <param name="datajson">同步数据</param>
        /// <param name="result">返回结果</param>
        /// <param name="watch">同步耗时</param>
        /// <param name="name">接口名称</param>
        /// <param name="interfaceType">接口类型</param>
        /// <param name="warehouseSysNo">仓库编号</param>
        /// <param name="remarks">记录商城原单据</param>
        /// <param name="flowIdentify">流程编号</param>
        /// <param name="voucherAmount">单据金额</param>
        /// <param name="status">同步状态</param>
        /// <param name="isAgain">是否开始同步</param>
        /// <remarks>2013-10-24 杨浩 创建</remarks>
        private static int WriteLog(string datajson, Result <string> result, Stopwatch watch, string name,
                                    接口类型 interfaceType, int warehouseSysNo, string remarks, string flowIdentify, decimal voucherAmount, 步状态 status, bool isAgain)
        {
            //是否为自动同步
            if (isAgain)
            {
                return(0);
            }
            //是否为自营
            if (!IsSelfSupport(warehouseSysNo))
            {
                return(0);
            }
            int    elapsedMilliseconds = 0;
            string message             = string.Empty;
            var    dataMd5             = Helper.MD5Encrypt(datajson);

            var isImport = Hyt.DataAccess.Sys.ILiJiaDao.Instance.IsImport(dataMd5);

            if (isImport)
            {
                return(0);
            }

            elapsedMilliseconds = (int)watch.ElapsedMilliseconds;
            message             = result.Message != null
                ? (result.Message.Length > 500 ? result.Message.Substring(0, 500) : result.Message)
                : string.Empty;

            var log = new Hyt.Model.LiJiaSyncLog()
            {
                VoucherNo      = result.Data,
                CreatedDate    = DateTime.Now,
                Data           = datajson,
                DataMd5        = dataMd5,
                ElapsedTime    = elapsedMilliseconds,
                InterfaceType  = (int)interfaceType,
                Message        = message,
                Name           = name,
                Status         = (int)status,
                StatusCode     = result.StatusCode,
                CreatedBy      = Hyt.Model.SystemPredefined.User.SystemUser,
                Remarks        = remarks,
                FlowIdentify   = flowIdentify,
                FlowType       = (接口类型.配送员借货还货 == interfaceType ? 20 : 10),
                LastupdateDate = DateTime.Now,
                WarehouseSysNo = warehouseSysNo,
                VoucherAmount  = voucherAmount,
                LastsyncTime   = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue,
            };

            return(Hyt.DataAccess.Sys.ILiJiaDao.Instance.LiJiaSyncLogCreate(log));
        }
Exemple #2
0
        ///// <summary>
        ///// 销售出库单、销售退货入库单同步接口
        ///// </summary>
        ///// <param name="request"></param>
        ///// <returns></returns>
        ///// <remarks>2016-1-4 王江 创建</remarks>
        //public TpcStockInOutResponse SyncTpcStockInOut(TpcStockInOutRequest request)
        //{
        //    var json = request.ToJson();
        //    var param = new NameValueCollection()
        //    {
        //        {"json",json},
        //        {"sign",EncryptionUtil.EncryptWithMd5(json + Extra.Erp.Properties.Settings.Default.IMS_TPC_SysncSignature)}
        //    };
        //    var client = new WebClient();
        //    var bytes = client.UploadValues(Extra.Erp.Properties.Settings.Default.Extra_Ims_SyncTpcStockInOutProxyService, param);
        //    return JsonUtil.ToObject<TpcStockInOutResponse>(Encoding.UTF8.GetString(bytes));
        //}

        ///// <summary>
        ///// 收款单同步接口
        ///// </summary>
        ///// <param name="request"></param>
        ///// <returns></returns>
        ///// <remarks>2016-1-4 王江 创建</remarks>
        //public TpcReceivePaymentResponse SyncTpcReceivePayment(TpcReceivePaymentRequest request)
        //{
        //    var json = request.ToJson();
        //    var param = new NameValueCollection()
        //    {
        //        {"json",json},
        //        {"sign",EncryptionUtil.EncryptWithMd5(json + Extra.Erp.Properties.Settings.Default.IMS_TPC_SysncSignature)}
        //    };
        //    var client = new WebClient();
        //    var bytes = client.UploadValues(Extra.Erp.Properties.Settings.Default.Extra_Ims_SyncTpcReceivePaymentProxyService, param);
        //    return JsonUtil.ToObject<TpcReceivePaymentResponse>(Encoding.UTF8.GetString(bytes));
        //}

        ///// <summary>
        ///// IMS库存查询接口
        ///// </summary>
        ///// <param name="request"></param>
        ///// <returns></returns>
        ///// <remarks>2016-1-11 王江 创建</remarks>
        //public TpcInventoryQueryResponse GetInventorySearch(TpcInventoryQueryRequest request)
        //{
        //    var json = request.ToJson();
        //    var param = new NameValueCollection()
        //    {
        //        {"json",json},
        //        {"sign",EncryptionUtil.EncryptWithMd5(json + Extra.Erp.Properties.Settings.Default.IMS_TPC_SysncSignature)}
        //    };
        //    var client = new WebClient();
        //    var bytes = client.UploadValues(Extra.Erp.Properties.Settings.Default.Extra_Ims_SyncGetInventoryProxyService, param);
        //    return JsonUtil.ToObject<TpcInventoryQueryResponse>(Encoding.UTF8.GetString(bytes));
        //}

        ///// <summary>
        ///// 从IMS系统获取加盟商库存
        ///// </summary>
        ///// <param name="enterpriseID">加盟商客户编码</param>
        ///// <param name="erpCode">商品编码</param>
        ///// <param name="wareHouse">仓库信息</param>
        ///// <returns></returns>
        ///// <remarks>2016-01-05 朱成果 创建</remarks>
        //public static Result<List<Inventory>> GetInventory(string[] erpCode, Hyt.Model.WhWarehouse wareHouse)
        //{
        //    Result<List<Inventory>> r=new Result<List<Inventory>>(){
        //         Status=false
        //    };
        //    if(erpCode!=null&&wareHouse!=null&&wareHouse.IsSelfSupport==(int)Hyt.Model.WorkflowStatus.WarehouseStatus.是否自营.否)
        //    {
        //        string enterpriseID=GetJiaMengCustomer(wareHouse.SysNo);//加盟商EAS 客户编码
        //        if (!string.IsNullOrEmpty(enterpriseID) && !string.IsNullOrEmpty(wareHouse.ErpCode) && wareHouse.ErpCode.Trim() != defaultJiamengCode)
        //        {
        //            TpcInventoryQueryRequest request=new TpcInventoryQueryRequest();
        //            request.enterpriseID=enterpriseID;//加盟商客户编码
        //            request.warehouseIDs=new List<string>();
        //            request.warehouseIDs.Add(wareHouse.ErpCode.Trim());
        //            request.productIDs=erpCode.ToList();
        //            try
        //            {
        //                var response= ImsHelper.Instance.GetInventorySearch(request);
        //                if(response!=null)
        //                {
        //                    r.Status=response.Status;
        //                    r.Message=response.Message;
        //                    if(response.Data!=null)
        //                    {
        //                        r.Data=new List<Inventory>();
        //                        response.Data.ForEach((m)=>{
        //                            r.Data.Add(
        //                                new Inventory()
        //                                {
        //                                    Quantity = (int)m.Quantity,
        //                                    MaterialNumber = m.ProductCode,
        //                                    WarehouseSysNo = wareHouse.SysNo,
        //                                    WarehouseName = wareHouse.WarehouseName,
        //                                    WarehouseSysName = wareHouse.WarehouseName,
        //                                    WarehouseNumber = m.WareHouseCode
        //                                }

        //                            );

        //                        });
        //                    }
        //                }
        //            }
        //            catch(Exception ex)
        //            {
        //                r.Status=false;
        //                r.Message=ex.Message;
        //            }
        //        }
        //    }
        //    return r;
        //}
        ///// <summary>
        ///// 获取加盟商客户信息
        ///// </summary>
        ///// <param name="wareHouseSysNo">仓库信息</param>
        ///// <returns></returns>
        ///// <remarks>2016-01-05 朱成果 创建</remarks>
        //private static string GetJiaMengCustomer(int wareHouseSysNo)
        //{
        //    string enterpriseID = string.Empty;
        //    var dw= Hyt.DataAccess.Distribution.IDsDealerWharehouse.Instance.GetByWarehousSysNo(wareHouseSysNo);
        //    if(dw!=null)
        //    {
        //       var dd= Hyt.DataAccess.Distribution.IDsDealerDao.Instance.GetDsDealer(dw.DealerSysNo);
        //       if(dd!=null)
        //        {
        //            enterpriseID = dd.ErpCode;
        //        }
        //    }
        //    return enterpriseID;
        //}

        ///// <summary>
        ///// IMS 出库单和退换货单同步
        ///// </summary>
        ///// <param name="request"></param>
        ///// <param name="status"></param>
        ///// <returns>返回单据号码</returns>
        ///// <remarks>2016-01-05 朱成果 创建</remarks>
        //public static Result<string> SyncTpcStockInOut(TpcStockInOutData datainfo, ImportStatus status)
        //{
        //    string xml = Helper.XmlSerialize(datainfo)
        //                           .Replace(xsi, "")
        //                           .Replace(xsd, "")
        //                           .Replace("utf-16", "UTF-8")
        //                           .Trim();
        //    if (status.isData)
        //    {
        //        return new Result<string>
        //        {
        //            Data = xml
        //        };
        //    }
        //    if (System.Configuration.ConfigurationManager.AppSettings["EnableIMSSync"] != "true")//接口关闭
        //    {
        //        return new Result<string>
        //        {

        //            Message = Model.EasConstant.EAS_MESSAGE_CLOSE,
        //            Status = false
        //        };
        //    }
        //    if (string.IsNullOrEmpty(datainfo.RequestData.Warehouse) || datainfo.RequestData.Warehouse.Trim() == defaultJiamengCode)//基础资料没有维护
        //    {
        //        return new Result<string>
        //        {
        //            Message = Model.EasConstant.Information,
        //            Status = false
        //        };
        //    }
        //    var datajson = datainfo.ToJson();
        //    var md5 = Helper.MD5Encrypt(datajson);
        //    Extra.Erp.Entity.Result result = new Extra.Erp.Entity.Result() { Status = false };
        //    同步状态 sendstatus = 同步状态.等待同步;
        //    var watch = new System.Diagnostics.Stopwatch();
        //    watch.Start();
        //    if (status.enableEas && status.isAgain)
        //    {
        //        try
        //        {
        //            datainfo.RequestData.Guid = md5;
        //            var response = ImsHelper.Instance.SyncTpcStockInOut(datainfo.RequestData);
        //            if (response != null)
        //            {
        //                result.Status = response.Status;
        //                result.Message = response.Message;
        //                result.data = response.Code ?? "";
        //                sendstatus = response.Status ? 同步状态.成功 : 同步状态.失败;
        //            }
        //            else
        //            {
        //                sendstatus = 同步状态.失败;
        //            }

        //        }
        //        catch (Exception e)
        //        {
        //            result.Message = e.Message;
        //            result.Status = false;
        //            sendstatus = 同步状态.失败;
        //        }
        //    }
        //    else
        //    {
        //        result.Message = status.enableEas ? Model.EasConstant.EAS_WAIT : Model.EasConstant.EAS_MESSAGE_CLOSE;
        //        result.Status = false;
        //        sendstatus = 同步状态.等待同步;
        //    }
        //    watch.Stop();
        //    var resultData = new Result<string>
        //    {
        //        Data = (result.data != null ? result.data.ToString() : ""),
        //        Status = result.Status,
        //        StatusCode = result.statusCode,
        //        Message = result.Message
        //    };
        //    decimal voucherAmount = datainfo.RequestData.ItemList.Sum(m => m.Quantity * m.UnitPrice - m.OriginalCurrency);
        //    if (datainfo.RequestData.InOutType == "22")
        //    {
        //        voucherAmount = 0 - voucherAmount;
        //    }
        //    var sysno = WriteQueue(datajson, md5, resultData, watch, 接口类型.IMS出入库, datainfo.WarehouseNo, datainfo.RequestData.Remarks, datainfo.Identifier, voucherAmount, sendstatus, status.isAgain);
        //    return resultData;

        //}
        #region 将日志写入数据库
        /// <summary>
        /// 将日志写入到同步队列
        /// </summary>
        /// <param name="datajson">同步数据</param>
        /// <param name="dataMd5">校验信息</param>
        /// <param name="result">返回结果</param>
        /// <param name="watch">同步耗时</param>
        /// <param name="interfaceType">接口类型</param>
        /// <param name="warehouseSysNo">仓库编号</param>
        /// <param name="remarks">记录当日达原单据</param>
        /// <param name="flowIdentify">流程编号</param>
        /// <param name="voucherAmount">单据金额</param>
        /// <param name="status">同步状态</param>
        /// <param name="isAgain">是否开始同步</param>
        /// <remarks>2015-09-29 朱成果 创建</remarks>
        private static int WriteQueue(string datajson, string dataMd5, Result <string> result, Stopwatch watch, 接口类型 interfaceType, int warehouseSysNo, string remarks, string flowIdentify, decimal voucherAmount, 步状态 status, bool isAgain)
        {
            //是否为自动同步
            if (isAgain)
            {
                return(0);
            }

            int    elapsedMilliseconds = 0;
            string message             = string.Empty;

            if (string.IsNullOrEmpty(dataMd5))
            {
                dataMd5 = Helper.MD5Encrypt(datajson);
            }
            var isImport = Hyt.DataAccess.Sys.IEasDao.Instance.IsImport(dataMd5);

            if (isImport)
            {
                return(0);
            }

            elapsedMilliseconds = (int)watch.ElapsedMilliseconds;
            message             = result.Message != null
                ? (result.Message.Length > 500 ? result.Message.Substring(0, 500) : result.Message)
                : string.Empty;

            var log = new Hyt.Model.EasSyncLog()
            {
                VoucherNo      = result.Data,
                CreatedDate    = DateTime.Now,
                Data           = datajson,
                DataMd5        = dataMd5,
                ElapsedTime    = elapsedMilliseconds,
                InterfaceType  = (int)interfaceType,
                Message        = message,
                Name           = interfaceType.ToString(),
                Status         = (int)status,
                StatusCode     = result.StatusCode,
                CreatedBy      = Hyt.Model.SystemPredefined.User.SystemUser,
                Remarks        = remarks,
                FlowIdentify   = flowIdentify,
                FlowType       = (接口类型.配送员借货还货 == interfaceType ? 20 : 10),
                LastupdateDate = DateTime.Now,
                WarehouseSysNo = warehouseSysNo,
                VoucherAmount  = voucherAmount
            };
            var r = Hyt.DataAccess.Sys.IEasDao.Instance.EasSyncLogCreate(log);

            return(r);
        }