| | |
| | | using AutoMapper; |
| | | using AutoMapper; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | using System.Text.RegularExpressions; |
| | | using Microsoft.AspNetCore.Http; |
| | | using HslCommunication; |
| | | using SqlSugar; |
| | | using WIDESEA_Core.Enums; |
| | | |
| | | namespace WIDESEA_OutboundService |
| | | { |
| | |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | } |
| | | |
| | | public override PageGridData<Dt_OutSGOrder> GetPageData(PageDataOptions options) |
| | | { |
| | | // 1. è°ç¨åºç±»æ¹æ³è·ååé¡µæ°æ® |
| | | PageGridData<Dt_OutSGOrder> pageData = base.GetPageData(options); |
| | | |
| | | // 2. å¦æææ°æ®ï¼å¤çæ¯ä¸ªè®¢åçç©æç¼å·åå¹
宽 |
| | | if (pageData.Rows != null && pageData.Rows.Count > 0) |
| | | { |
| | | // è·åææè®¢åID |
| | | var orderIds = pageData.Rows.Select(o => o.Id).ToList(); |
| | | |
| | | // æ¹éæ¥è¯¢ææå
³èçæç»ï¼è¿æ»¤æç©æç¼å·ä¸ºç©ºçæ°æ® |
| | | var allDetails = BaseDal.Db.Queryable<Dt_OutSGOrderDetail>() |
| | | .Where(d => orderIds.Contains(d.OutSGOrderId) && !string.IsNullOrEmpty(d.MaterialNo)) |
| | | .ToList(); |
| | | |
| | | // æè®¢åIDåç» |
| | | var detailsByOrderId = allDetails.GroupBy(d => d.OutSGOrderId).ToDictionary(g => g.Key, g => g.ToList()); |
| | | |
| | | // å¤çæ¯ä¸ªè®¢å |
| | | foreach (var order in pageData.Rows) |
| | | { |
| | | if (detailsByOrderId.TryGetValue(order.Id, out var details)) |
| | | { |
| | | // è·åææå¯ä¸çç©æç¼å· |
| | | var uniqueMaterialNos = details |
| | | .Select(d => d.MaterialNo) |
| | | .Distinct() |
| | | .ToList(); |
| | | |
| | | // è·åææå¯ä¸çå¹
宽 |
| | | var uniqueWidths = details |
| | | .Select(d => d.Width.ToString()) |
| | | .Distinct() |
| | | .ToList(); |
| | | |
| | | // è®¾ç½®ç©æç¼å·ï¼å¤ä¸ªç¨ææ åé |
| | | order.MaterialNos = string.Join("/", uniqueMaterialNos); |
| | | |
| | | // 设置å¹
宽ï¼å¦æå¹
宽æå¤ä¸ªä¸ä¸è´çæ°å¼å°±æ¾ç¤ºå¤ä¸ªï¼å¦æä¸æ ·å°±æ¾ç¤ºä¸ä¸ª |
| | | order.MaterialWides = uniqueWidths.Count == 1 |
| | | ? uniqueWidths[0] |
| | | : string.Join("/", uniqueWidths); |
| | | } |
| | | else |
| | | { |
| | | order.MaterialNos = ""; |
| | | order.MaterialWides = ""; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return pageData; |
| | | } |
| | | |
| | | public WebResponseContent AddOutSGOrder(List<SGOutOrderDTO> outOrderDTOs) |
| | | { |