コード例 #1
0
        protected new  PackingLog NewPackingLog(LatticeSetting lattice, UserInfo userInfo, int operationType, List <LatticeOrdersCache> logList, decimal boxWeight)
        {
            string PackNumber = API_Helper.GetFlytPackageLabelIDBySingleFlyt();

            var pkgLog = new PackingLog()
            {
                ID            = Guid.NewGuid().ToString(),
                PackNumber    = PackNumber,
                CabinetId     = "",
                LatticeId     = "",
                OrderIds      = string.Join(",", logList.Select(l => l.OrderId)),
                OrderQty      = logList.Count,
                Weight        = boxWeight + logList.Sum(o => o.Weight),
                OperationType = operationType,
                OperationTime = DateTime.Now,
                UserId        = userInfo.UserId,
                UserName      = userInfo.UserName
            };

            if (lattice != null)
            {
                pkgLog.CabinetId = lattice.CabinetId.ToString();
                pkgLog.LatticeId = lattice.LatticeId;
            }
            pkgLog.PostTypeIds = string.Join(",", logList.Select(l => l.PostId).Distinct());
            var postTypeNames = logList.Select(l => l.PostName).Distinct();

            pkgLog.PostTypeNames = postTypeNames.Count() > 2 ? "MIX" : string.Join(",", postTypeNames);
            pkgLog.CountryIds    = string.Join(",", logList.Select(s => s.CountryId).Distinct());
            var countryNames = logList.Select(s => s.CountryName).Distinct();

            pkgLog.CountryNames = countryNames.Count() > 2 ? "MIX" : string.Join(",", countryNames);
            return(pkgLog);
        }
コード例 #2
0
ファイル: API_Helper.cs プロジェクト: liusile/OrderSorting
 /// <summary>
 /// 把装箱信息上传到物流系统
 /// </summary>
 /// <param name="userInfo">用户信息</param>
 /// <param name="pkgLog">装箱记录</param>
 /// <param name="logList">明细</param>
 /// <returns></returns>
 public static BaseResponseContract BatchOutbound(UserInfo userInfo, PackingLog pkgLog, List <LatticeOrdersCache> logList)
 {
     try
     {
         string url            = _FlytApi_Host + "Picker/BatchOutbound";
         var    outboudRequest = new BatchOutboudRequestContract
         {
             Token           = "5A9C85B6E068F2236A039E6157C5DF5B",
             OperatorId      = userInfo.UserId,
             OperatorName    = userInfo.UserName,
             Pkg             = pkgLog.PackNumber,
             OutboundPostId  = pkgLog.PostTypeIds.Split(',')[0],
             ReceivePoint    = userInfo.ReceivePointId,
             ProcessCenterId = userInfo.Pcid,
             OutboudDetails  = new List <OrderOutboudDetailContract>()
         };
         logList.ForEach(lg =>
         {
             outboudRequest.OutboudDetails.Add(new OrderOutboudDetailContract
             {
                 OrderId   = lg.OrderId,
                 TraceId   = lg.TraceId,
                 Weight    = lg.Weight,
                 CountryId = lg.CountryId,
                 Reason    = 0
             });
         });
         // SaveErrLogHelper.SaveErrorLog("",JsonConvert.SerializeObject(outboudRequest) + "url:" + url);
         return(_httpHelper.Post <BaseResponseContract>(url, outboudRequest));
     }
     catch (Exception ex) { throw new Exception("装箱信息上传到物流系统时出错:" + ex.ToString()); }
 }
コード例 #3
0
 /// <summary>
 /// 创建装箱记录(operationType:1自动满格,2手动满格,3打印包牌号)
 /// </summary>
 /// <param name="lattice">柜格</param>
 /// <param name="userInfo">用户信息</param>
 /// <param name="boxWeight">箱子重量</param>
 /// <param name="operationType">操作类型:1自动满格,2手动满格,3打印包牌号</param>
 /// <returns></returns>
 internal override PackingLog CreatePackingLog(LatticeSetting lattice, UserInfo userInfo, decimal boxWeight, out List <LatticeOrdersCache> LatticeOrdersCacheList, int operationType = 3)
 {
     Debug.WriteLine("CreatePackingLog begin 2");
     using (var db = new OrderSortingDBEntities())
     {
         var logCache = db.LatticeOrdersCache.Where(o => o.LatticesettingId == lattice.ID);
         if (logCache == null || logCache.Count() < 1)
         {
             LatticeOrdersCacheList = null;
             return(null);
         }
         var logList = logCache.ToList();
         LatticeOrdersCacheList = logList;
         PackingLog pkgLog = NewPackingLog(lattice, userInfo, operationType, logList, boxWeight);
         db.PackingLog.Add(pkgLog);
         db.LatticeOrdersCache.RemoveRange(logList);
         var response = API_Helper.BatchOutbound(userInfo, pkgLog, logList);
         if (response != null && !response.Success && !string.IsNullOrWhiteSpace(response.Message))
         {
             throw new Exception(response.Message);
         }
         db.SaveChanges();
         return(pkgLog);
     }
 }
コード例 #4
0
 public void PrintSetup(PackingLog packingLog)
 {
     _packingLog = packingLog;
     DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
     //页面设置
     DefaultPageSettings.PaperSize = new PaperSize("printProcess", 320, 320);
     Print();
 }
コード例 #5
0
 public void PrintSetup(PackingLog packingLog, List <LatticeOrdersCache> latticeInfoList)
 {
     _packingLog                 = packingLog;
     _latticeInfoList            = latticeInfoList;
     DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
     //页面设置
     DefaultPageSettings.PaperSize = new PaperSize("printProcess", 320, 320);
     Print();
 }
コード例 #6
0
 /// <summary>
 /// 创建装箱记录(operationType:1自动满格,2手动满格,3打印包牌号)
 /// </summary>
 /// <param name="lattice">柜格</param>
 /// <param name="userInfo">用户信息</param>
 /// <param name="boxWeight">箱子重量</param>
 /// <param name="operationType">操作类型:1自动满格,2手动满格,3打印包牌号</param>
 /// <returns></returns>
 internal override PackingLog CreatePackingLog(LatticeSetting lattice, UserInfo userInfo, decimal boxWeight, out List <LatticeOrdersCache> latticeInfo, int operationType = 3)
 {
     Debug.WriteLine("CreatePackingLog begin 1");
     using (var db = new OrderSortingDBEntities())
     {
         var logCache = db.LatticeOrdersCache.Where(o => o.LatticesettingId == lattice.ID);
         if (logCache == null || logCache.Count() < 1)
         {
             latticeInfo = null;
             return(null);
         }
         var logList = logCache.ToList();
         latticeInfo = logList;
         PackingLog pkgLog = NewPackingLog(lattice, userInfo, operationType, logList, boxWeight);
         db.PackingLog.Add(pkgLog);
         db.LatticeOrdersCache.RemoveRange(logList);
         db.SaveChangesAsync();
         return(pkgLog);
     }
 }
コード例 #7
0
 /// <summary>
 /// 创建装箱记录(多格口打印一个PKG标签)
 /// </summary>
 /// <param name="latticeIdArray">格口号</param>
 /// <param name="userInfo">用户信息</param>
 /// <param name="criticalWeight">临界重量</param>
 /// <param name="boxWeight">箱子重量</param>
 /// <returns></returns>
 internal override PackingLog CreatePackingLog(string[] latticeIdArray, UserInfo userInfo, decimal criticalWeight, decimal boxWeight, out List <LatticeOrdersCache> latticeInfo, int operationType = 3)
 {
     using (var db = new OrderSortingDBEntities())
     {
         var LatticesettingIds = db.LatticeSetting.Where(ls => latticeIdArray.Contains(ls.LatticeId)).Select(ls => ls.ID);
         var logCache          = db.LatticeOrdersCache.Where(o => LatticesettingIds.Contains(o.LatticesettingId));
         if (logCache == null || logCache.Count() < 1)
         {
             throw new Exception("没有分拣记录,装箱记录生成失败!");
         }
         var logList = logCache.ToList();
         latticeInfo = logList;
         PackingLog pkgLog = NewPackingLog(null, userInfo, operationType, logList, boxWeight);
         if (pkgLog.Weight > criticalWeight)
         {
             throw new Exception(string.Format("总重量{0}Kg,临界重量{1}Kg,装箱记录生成失败!", pkgLog.Weight, criticalWeight));
         }
         db.PackingLog.Add(pkgLog);
         db.LatticeOrdersCache.RemoveRange(logList);
         db.SaveChangesAsync();
         return(pkgLog);
     }
 }
コード例 #8
0
 /// <summary>
 /// 创建装箱记录(多格口打印一个PKG标签)
 /// </summary>
 /// <param name="latticeIdArray">格口号</param>
 /// <param name="userInfo">用户信息</param>
 /// <param name="criticalWeight">临界重量</param>
 /// <param name="boxWeight">箱子重量</param>
 /// <returns></returns>
 internal override PackingLog CreatePackingLog(string[] latticeIdArray, UserInfo userInfo, decimal criticalWeight, decimal boxWeight, out List <LatticeOrdersCache> latticeInfo, int operationType = 3)
 {
     using (var db = new OrderSortingDBEntities())
     {
         //根据格口号获取格口信息
         var LatticesettingIds = db.LatticeSetting.Where(ls => latticeIdArray.Contains(ls.LatticeId)).Select(ls => ls.ID);
         if (LatticesettingIds.Count() != latticeIdArray.Where(o => !string.IsNullOrWhiteSpace(o)).Count())
         {
             throw new Exception("输入的格口号有误,注意:多个格口间需使用回车键分隔!");
         }
         //根据格口信息获取相关的快件信息
         var logCache = db.LatticeOrdersCache.Where(o => LatticesettingIds.Contains(o.LatticesettingId));
         if (logCache == null || logCache.Count() < 1)
         {
             throw new Exception("没有分拣记录,装箱记录生成失败!");
         }
         var logList = logCache.ToList();
         latticeInfo = logList;
         //装箱记录
         PackingLog pkgLog = NewPackingLog(null, userInfo, operationType, logList, boxWeight);
         if (pkgLog.Weight > criticalWeight)
         {
             throw new Exception(string.Format("总重量{0}Kg,临界重量{1}Kg,装箱记录生成失败!", pkgLog.Weight, criticalWeight));
         }
         db.PackingLog.Add(pkgLog);
         db.LatticeOrdersCache.RemoveRange(logList);
         //把装箱信息上传到物流系统
         var response = API_Helper.BatchOutboundBySingleFlyt(userInfo, pkgLog, logList);
         if (response != null && !response.Success && !string.IsNullOrWhiteSpace(response.Message))
         {
             throw new Exception(response.Message);
         }
         db.SaveChanges();
         return(pkgLog);
     }
 }
コード例 #9
0
ファイル: API_Helper.cs プロジェクト: liusile/OrderSorting
 public static BaseResponseContract BatchOutboundBySingleFlyt(UserInfo userInfo, PackingLog pkgLog, List <LatticeOrdersCache> logList)
 {
     try
     {
         string url            = "http://rpswebapi.flytcloud.com/api/PickingShelf/BatchOutbound";
         var    outboudRequest = new BatchOutboudRequestContract
         {
             Token           = "5ea36184bcdd2fe59d2720309c681502",
             OperatorId      = userInfo.UserId,
             OperatorName    = userInfo.UserName,
             Pkg             = pkgLog.PackNumber,
             OutboundPostId  = pkgLog.PostTypeIds.Split(',')[0],
             ReceivePoint    = userInfo.ReceivePointId,
             ProcessCenterId = userInfo.Pcid,
             OutboudDetails  = new List <OrderOutboudDetailContract>()
         };
         logList.ForEach(lg =>
         {
             outboudRequest.OutboudDetails.Add(new OrderOutboudDetailContract
             {
                 OrderId   = lg.OrderId,
                 TraceId   = lg.TraceId,
                 Weight    = lg.Weight,
                 CountryId = lg.CountryId,
                 Reason    = 0
             });
         });
         // SaveErrLogHelper.SaveErrorLog("",JsonConvert.SerializeObject(outboudRequest) + "url:" + url);
         return(_httpHelper.Post <BaseResponseContract>(url, outboudRequest));
     }
     catch (Exception ex)
     {
         throw new Exception("装箱信息上传到物流系统时出错:" + ex.ToString());
     }
 }