示例#1
0
        public WMSGetReceivingDetailListRequest(string username, string password, WMSGetReceivingDetailListReqModel reqModel) : base(username, password)
        {
            service.Service   = "getReceivingDetailList";
            service.Plateform = "WMS";
            IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();

            timeFormat.DateTimeFormat = "yyyy-MM-dd";
            service.ParamsJson        = JsonConvert.SerializeObject(reqModel, timeFormat);
        }
        public async System.Threading.Tasks.Task RequestTestAsync()
        {
            WMSGetReceivingDetailListReqModel reqModel = new WMSGetReceivingDetailListReqModel();

            reqModel.DateFor = DateTime.Parse("2019-10-01");
            reqModel.DateTo  = DateTime.Parse("2020-12-30");
            string[] wharehouseIds = new string[1];
            wharehouseIds[0]      = "21";
            reqModel.WarehouseArr = wharehouseIds;
            WMSGetReceivingDetailListRequest req = new WMSGetReceivingDetailListRequest("admin", "eccang123456", reqModel);
            var res = await req.Request();
        }
示例#3
0
        public override async Task Job(DateTime?datetime = null)
        {
            List <ECReceivingDetail> updateList = new List <ECReceivingDetail>();
            List <ECReceivingDetail> insertList = new List <ECReceivingDetail>();

            try
            {
                using (var uow = _uowProvider.CreateUnitOfWork())
                {
                    var      repository  = uow.GetRepository <ECReceivingDetail>();
                    DateTime lastGetTime = (DateTime)repository.GetPage(0, 1, x => x.OrderByDescending(c => c.AddTime)).FirstOrDefault().AddTime;
                    WMSGetReceivingDetailListReqModel reqModel = new WMSGetReceivingDetailListReqModel();
                    reqModel.DateFor  = lastGetTime;
                    reqModel.DateTo   = DateTime.Now;
                    reqModel.PageSize = 5;
                    reqModel.Page     = 1;
                    WMSGetReceivingDetailListRequest req = new WMSGetReceivingDetailListRequest(login.Username, login.Password, reqModel);
                    log.Info($"入库单 - 开始拉取,请求参数:{JsonConvert.SerializeObject(reqModel, new IsoDateTimeConverter { DateTimeFormat = "yyyy - MM - dd HH: mm:ss" })}");
                    var response = await req.Request();

                    response.TotalCount = response.TotalCount == null ? "1" : response.TotalCount;
                    int pageNum = (int)Math.Ceiling(long.Parse(response.TotalCount) * 1.0 / 1000);
                    log.Info($"入库单 - 共计{pageNum}");
                    for (int page = 1; page < pageNum + 1; page++)
                    {
                        reqModel.PageSize = 1000;
                        reqModel.Page     = page;
                        try
                        {
                            log.Info($"入库单 - 正在拉取{page}页");
                            req      = new WMSGetReceivingDetailListRequest(login.Username, login.Password, reqModel);
                            response = await req.Request();
                        }
                        catch (Exception ex)
                        {
                            log.Error($"入库单 - 接口调用出现异常:{ex.Message}");
                            throw ex;
                        }
                        foreach (var item in response.Body)
                        {
                            try
                            {
                                var m = Mapper <EC_ReceivingDetail, ECReceivingDetail> .Map(item);

                                var res = repository.Get(item.RlId);
                                if (res != null)
                                {
                                    updateList.Add(m);
                                }
                                else
                                {
                                    insertList.Add(m);
                                }
                            }
                            catch (Exception ex)
                            {
                                log.Error($"入库单 - 转换实体类出现异常:{ex.Message}");
                                throw ex;
                            }
                        }

                        try
                        {
                            insertList = insertList.GroupBy(item => item.RlId).Select(item => item.First()).ToList();
                            updateList = updateList.GroupBy(item => item.RlId).Select(item => item.First()).ToList();
                            await repository.BulkInsertAsync(insertList, x => x.IncludeGraph = true);

                            await repository.BulkUpdateAsync(updateList, x => x.IncludeGraph = true);

                            uow.BulkSaveChanges();
                            insertList.Clear();
                            updateList.Clear();
                        }
                        catch (Exception ex)
                        {
                            log.Error($"入库单 - 写入数据库异常 :{ex.Message}");
                            throw ex;
                        }
                    }
                    log.Info($"入库单 - 写入完成");
                }
                log.Info("入库单 - 任务完成");
            }
            catch (Exception ex)
            {
                log.Error($"入库单 - 出现异常 :{ex.Message}");
                throw;
            }
        }
        public override async Task Job(DateTime?datetime = null)
        {
            WMSGetReceivingDetailListReqModel reqModel = new WMSGetReceivingDetailListReqModel();

            reqModel.DateFor  = DateTime.Parse("2018-10-01");
            reqModel.DateTo   = DateTime.Now;
            reqModel.PageSize = 5;
            reqModel.Page     = 1;
            List <ECReceivingDetail> receiveDetails = new List <ECReceivingDetail>();

            using (var uow = _uowProvider.CreateUnitOfWork())
            {
                var repository = uow.GetRepository <ECReceivingDetail>();
                try
                {
                    await repository.DeleteAll();

                    await uow.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    log.Error($"初始化入库信息信息,删除入库信息信息异常:{ex.Message}");
                    throw ex;
                }

                WMSGetReceivingDetailListRequest req = new WMSGetReceivingDetailListRequest(login.Username, login.Password, reqModel);
                var response = await req.Request();

                response.TotalCount = response.TotalCount == null ? "1" : response.TotalCount;
                int pageNum = (int)Math.Ceiling(long.Parse(response.TotalCount) * 1.0 / 1000);
                for (int page = pageNum; page > 0; page--)
                {
                    reqModel.PageSize = 1000;
                    reqModel.Page     = page;
                    try
                    {
                        log.Info($"入库信息,开始拉取:时间区间{reqModel.DateFor.ToString()}TO{reqModel.DateTo.ToString()}第{page}页;");
                        req      = new WMSGetReceivingDetailListRequest(login.Username, login.Password, reqModel);
                        response = await req.Request();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"入库信息,接口调用出现异常:时间区间{reqModel.DateFor.ToString()}TO{reqModel.DateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                        throw ex;
                    }
                    foreach (var item in response.Body)
                    {
                        try
                        {
                            var m = Mapper <EC_ReceivingDetail, ECReceivingDetail> .Map(item);

                            receiveDetails.Add(m);
                        }
                        catch (Exception ex)
                        {
                            log.Error($"入库信息,转换实体类出现异常:时间区间{reqModel.DateFor.ToString()}TO{reqModel.DateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                            throw ex;
                        }
                    }

                    try
                    {
                        await repository.BulkInsertAsync(receiveDetails, x => x.IncludeGraph = true);

                        uow.BulkSaveChanges();
                        receiveDetails.Clear();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"入库信息,写入数据库异常:时间区间{reqModel.DateFor.ToString()}TO{reqModel.DateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                        throw ex;
                    }
                }
                log.Info($"入库信息拉取写入完成,时间区间{reqModel.DateFor.ToString()}TO{reqModel.DateTo.ToString()}");
            }
        }