liulijun
2026-03-31 35b1af99c388b5f03b8bf8de53852e5b5e9e60c4
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs
@@ -59,13 +59,16 @@
                // èŽ·å–æ‰€æœ‰è®¢å•ID
                var orderIds = pageData.Rows.Select(o => o.Id).ToList();
                
                // æ‰¹é‡æŸ¥è¯¢æ‰€æœ‰å…³è”的明细,过滤掉物料编号为空的数据
                // æ‰¹é‡æŸ¥è¯¢æ‰€æœ‰å…³è”的明细,按OutSGOrderId升序、Id降序排序,与订单明细页面保持一致
                var allDetails = BaseDal.Db.Queryable<Dt_OutSGOrderDetail>()
                    .Where(d => orderIds.Contains(d.OutSGOrderId))
                    .OrderBy(d => d.OutSGOrderId)
                    .OrderByDescending(d => d.Id)
                    .ToList();
                
                // æŒ‰è®¢å•ID分组
                var detailsByOrderId = allDetails.GroupBy(d => d.OutSGOrderId).ToDictionary(g => g.Key, g => g.ToList());
                // æŒ‰è®¢å•ID分组,每组明细按Id降序排序,与订单明细页面保持一致
                var detailsByOrderId = allDetails.GroupBy(d => d.OutSGOrderId)
                    .ToDictionary(g => g.Key, g => g.OrderByDescending(d => d.Id).ToList());
                
                // å¤„理每个订单
                foreach (var order in pageData.Rows)
@@ -90,6 +93,9 @@
                        order.MaterialWides = uniqueWidths.Count == 1 
                            ? uniqueWidths[0] 
                            : string.Join("/", uniqueWidths);
                        // è®¾ç½®æ¥žåˆ«ï¼Œåªæ˜¾ç¤ºä¸€ä¸ªï¼ˆå› ä¸ºæ‰€æœ‰æ¥žåˆ«ç›¸åŒï¼‰
                        order.BoardFluteNos = details.FirstOrDefault()?.BoardFluteNo ?? "";
                        
                        // è®¾ç½®æ˜¯å¦ç¼ºæ–™ï¼šå¦‚果有任何一个明细是缺料状态,就设置为true
                        // å¼•用WIDESEA_Common.OrderEnum命名空间来使用OutOrderStatusEnum枚举
@@ -123,8 +129,8 @@
            try
            {
                //获取所有排程单
                List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList();
                List<Dt_OutSGOrderDetail> outSGOrderDetails= outSGOrders.SelectMany(x=>x.Details).ToList();
                //List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList();
                //List<Dt_OutSGOrderDetail> outSGOrderDetails= outSGOrders.SelectMany(x=>x.Details).ToList();
                ////判断单据
                //Dt_OutSGOrderDetail? ExistAddOutOrderDetail = outSGOrderDetails.FirstOrDefault(x => outOrderDTOs.Select(t => t.BoardMpsDetailId).Distinct().Contains(x.BoardMpsDetailId));
                //if (ExistAddOutOrderDetail != null)
@@ -165,11 +171,13 @@
                    //判断工单是否已经存在
                    if (ExistOutSGOrder != null)
                    {
                        outSGOrderDetail.Number = ExistOutSGOrder.Number;
                        ExistOutSGOrder.Details.Add(outSGOrderDetail);
                    }
                    else
                    {
                        Dt_OutSGOrder outSGOrder = _mapper.Map<Dt_OutSGOrder>(item);
                        outSGOrderDetail.Number = outSGOrder.Number;
                        outSGOrder.Details = new List<Dt_OutSGOrderDetail>() { outSGOrderDetail };
                        AddOutSGOrders.Add(outSGOrder);
                    }