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); }
/// <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()); } }
/// <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); } }
public void PrintSetup(PackingLog packingLog) { _packingLog = packingLog; DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); //页面设置 DefaultPageSettings.PaperSize = new PaperSize("printProcess", 320, 320); Print(); }
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(); }
/// <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); } }
/// <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); } }
/// <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); } }
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()); } }