From 18d2f40bbf40469b033de6f07ca8a8e3bc191132 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 26 四月 2025 19:21:40 +0800
Subject: [PATCH] 优化代码

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs |   43 +++++++++++++++++++++++++++++++++----------
 1 files changed, 33 insertions(+), 10 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
index 9bc3cd4..566c8d8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
@@ -204,25 +204,48 @@
             {
                 //Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
                 //if (materielInfo == null) throw new Exception($"鏈壘鍒扮墿鏂欎俊鎭�");
-                return BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
+                int i = 1;
+                List<StockSelectViewDTO> stockSelectViewDTOs = new List<StockSelectViewDTO>();
+                var StockSelectViewDTOs = BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
                 {
                     LocationCode = a.LocationCode,
                     MaterielCode = b.MaterielCode,
                     MaterielName = b.MaterielName,
                     PalletCode = a.PalletCode,
+                    OrderNo = b.OrderNo,
+                    InDate = a.InDate,
                     //UseableQuantity = b.StockQuantity - b.OutboundQuantity
                     UseableQuantity = b.StockQuantity,
                     BatchNo = b.BatchNo,
-                }, a => a.StockStatus == StockStatusEmun.宸插叆搴�.ObjToInt(), b => b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.LocationCode).Select(x => new StockSelectViewDTO
+                }, a => a.StockStatus == StockStatusEmun.宸插叆搴�.ObjToInt(), b => b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.OrderNo).ToList();
+                foreach (var item in StockSelectViewDTOs)
                 {
-                    LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
-                    MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
-                    MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
-                    PalletCode = string.Join(",", x.Select(x => x.PalletCode).ToList()),
-                    //UseableQuantity = x.Sum(x => x.UseableQuantity)
-                    UseableQuantity = x.Sum(x => x.UseableQuantity),
-                    BatchNo = x.FirstOrDefault()?.BatchNo ?? ""
-                }).ToList();
+                    stockSelectViewDTOs.AddRange(item.GroupBy(x => x.BatchNo).Select(x => new StockSelectViewDTO
+                    {
+                        Id = i++,
+                        LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
+                        MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
+                        MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
+                        PalletCode = string.Join(",", x.Select(x => x.PalletCode).ToList()),
+                        UseableQuantity = x.Sum(x => x.UseableQuantity),
+                        InDate = x.OrderByDescending(x => x.InDate).First().InDate,
+                        OrderNo = item.Key,
+                        BatchNo = x.Key
+                    }));
+
+                }
+                //.Select(x => new StockSelectViewDTO
+                //{
+                //    LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
+                //    MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
+                //    MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
+                //    PalletCode = //string.Join(",", x.Select(x => x.PalletCode).ToList()),
+                //    //UseableQuantity = x.Sum(x => x.UseableQuantity)
+                //    UseableQuantity = x.Sum(x => x.UseableQuantity),
+                //    OrderNo = x.First().OrderNo,
+                //    BatchNo = x.FirstOrDefault()?.BatchNo ?? ""
+                //}).ToList();
+                return stockSelectViewDTOs;
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3