zoukankan      html  css  js  c++  java
  • 二段Linq Groupby操作

    var messages = list.GroupBy(p=>p.RefOrderNo,(k,v)=> new {OrderNo = k,SkuInfo = v})
                        .Select(p =>
                        {
                            var item = p.SkuInfo.FirstOrDefault();
                            return new ReplaceLabelSkuMessage
                            {
                                OrderNo = p.OrderNo,
                                Operation = new WMS.Message.Operation
                                {
                                    Operator = item.CreateBy,
                                    OperateTime = item.CreateOn
                                },
                                ReplaceLabelSkuDetail = p.SkuInfo.Select(s => new ReplaceLabelSkuDetail
                                {
                                    SKU = s.SKU,
                                    Weight = s.Weight,
                                    Lenght = s.Lenght,
                                    Width = s.Width,
                                    Height = s.Height
                                }).ToList()
                            };                        
                        });
    var request = deliveryList.GroupBy(g => g.DeliveryNo)
                        .Select(delivery =>
                        {
                            var item = delivery.FirstOrDefault();
                            var yewuRequest = new DeliveryTicketShipOutMessage
                            {
                                DeliveryTicketNo = item.DeliveryNo,
                                DeliveryType = TMS.Message.DeliveryTicket.DeliveryType.Logistics,
                                WarehouseCode = item.YewuWarehouseCode,
                                ShipOutWarehouse = item.YewuWarehouseCode,
    
                                SkuContainers = delivery.GroupBy(g => g.ContainerCode).Select(container =>
                                {
                                    var containerLine = container.FirstOrDefault();
                                    return new LogisticsDeliveryShipOutCustomerAsnContainerRequest
                                    {
                                        ContainerId = containerLine.ContainerCode,
                                        customerOrderType = TMS.Message.Common.CutomerOrderType.First,
                                        TargetWarehouseCode = containerLine.TargetWarehouseCode,
                                        CustomerAsnId = containerLine.CustomerAsnId,
                                        PalletId = containerLine.PalletId,
                                        Weight = new Weight { Value = containerLine.Weight, Unit = WeightUnit.G },
                                        Size = new Packing() { Length = containerLine.Length, Width = containerLine.Width, Height = containerLine.Height, Unit = LengthUnit.CM },
    
                                        Lines = container.GroupBy(l => l.SKU).Select(line =>
                                        {
                                            return new LogisticsDeliveryShipOutCustomerAsnContainerLineRequest
                                            {
                                                SKU = line.Key,
                                                Quantity = line.Sum(s => s.PackingQty),
                                                AccountNo = line.FirstOrDefault().CustomerCode
                                            };
                                        }).ToList(),
    
                                        Bags = container.Where(p => p.BagCode.Length > 0).GroupBy(g => g.BagCode).Select(bag =>
                                        {
                                            var bagid = bag.Key;
                                            return new LogisticsDeliveryShipOutCustomerAsnContainerBagRequest
                                            {
                                                BagId = bagid,
                                                Lines = bag.Select(bagline => new LogisticsDeliveryShipOutCustomerAsnContainerBagLineRequest
                                                {
                                                    SKU = bagline.SKU,
                                                    Quantity = bagline.PackingQty,
                                                    AccountNo = bag.FirstOrDefault().CustomerCode
                                                }).ToList()
                                            };
                                        }).ToList()
                                    };
                                }).ToList(),
                                OperateBy = item.CreateBy,
                                OperateOn = item.CreateOn
                            };
    
                            return yewuRequest;
                        }).ToList();
  • 相关阅读:
    ASP.NET MVC实现通用设置
    C# Redis的操作
    Jquery Ajax向服务端传递数组参数值
    ASP.NET 通过配置hiddenSegment禁止目录下资源通过Url形式访问
    Jquery组织Form表单提交之Form submission canceled because the form is not connected
    Entity Framework工具POCO Code First Generator的使用
    ASP.NET MVC 5搭建自己的视图基架 (CodeTemplate)
    Jquery Ajax 提交json数据
    使用Reflector反编译并提取源代码
    ASP.NET MVC下Bundle的使用
  • 原文地址:https://www.cnblogs.com/chinabc/p/5944994.html
Copyright © 2011-2022 走看看