From 0a7bf282841eea43da4406f9a9d14e31a72fea75 Mon Sep 17 00:00:00 2001
From: liuying <1427574514@qq.com>
Date: 周二, 26 11月 2024 15:32:15 +0800
Subject: [PATCH] 打印模版

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs |  125 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 1 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
index f246294..5ff4f56 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -13,9 +13,13 @@
 public class WmsStockQuanService : IDynamicApiController, ITransient
 {
     private readonly SqlSugarRepository<WmsStockQuan> _rep;
-    public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep)
+    private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _Mes_BatchOrderUPI_New_Rep;
+
+    public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep,
+        SqlSugarRepository<Mes_BatchOrderUPI_New> Mes_BatchOrderUPI_New_Rep)
     {
         _rep = rep;
+        _Mes_BatchOrderUPI_New_Rep = Mes_BatchOrderUPI_New_Rep;
     }
 
     /// <summary>
@@ -302,5 +306,124 @@
         return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
     }
 
+
+
+
+    /// <summary>
+    /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "ShortageList")]
+    [Description("WmsStockQuan/ShortageList")]
+    public async Task<List<WmsShortageListOutput>> ShortageList([FromQuery] KittingListInput input)
+    {
+        var list = await _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
+            .Select(x => new WmsShortageListOutput
+            {
+                OrderId = x.OrderId,
+                PlanNo = x.PlanNo,
+                PackageCode = x.PackageCode
+            })
+            .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
+
+        // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
+        var groupedResult = list
+            .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
+            .Select(g => new WmsShortageListOutput
+            {
+                OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
+                PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
+                PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
+                HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
+                TotalCount = 0, // 鍒濆鍖� TotalCount
+                ShortageCount = 0 // 鍒濆鍖� ShortageCount
+            })
+            .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
+            .ToList(); // 杞崲涓� List
+
+        // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� CountTotal
+        foreach (var item in groupedResult)
+        {
+            item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
+            item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
+        }
+
+        return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
+    }
+
+
+
+
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖� 
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "ShortagePage")]
+    [Description("WmsStockQuan/ShortagePage")]
+    public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage(KittingListInput input)
+    {
+        // 鑾峰彇鍩虹鏁版嵁
+        var list = await _rep.AsQueryable()
+            .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
+            .Select(x => new WmsShortageListOutput
+            {
+                OrderId = x.OrderId,
+                PlanNo = x.PlanNo,
+                PackageCode = x.PackageCode
+            })
+            .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
+
+        // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
+        var groupedResult = list
+            .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
+            .Select(g => new WmsShortageListOutput
+            {
+                OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
+                PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
+                PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
+                HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
+                TotalCount = 0, // 鍒濆鍖� TotalCount
+                ShortageCount = 0 // 鍒濆鍖� ShortageCount
+            })
+            .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
+            .ToList(); // 杞崲涓� List
+
+        // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� TotalCount
+        foreach (var item in groupedResult)
+        {
+            item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
+            item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
+        }
+
+        // 鍒嗛〉澶勭悊
+        var pagedResult = groupedResult.AsQueryable() // 灏嗗垎缁勭粨鏋滆浆鎹负鍙煡璇㈢殑闆嗗悎
+            .OrderBy(g => g.OrderId) // 杩涜鎺掑簭
+            .Skip((input.Page - 1) * input.PageSize) // 璺宠繃鍓嶉潰鐨勯〉鏁�
+            .Take(input.PageSize) // 鍙栧嚭褰撳墠椤电殑鏁版嵁
+            .ToList(); // 杞崲涓� List
+
+        var totalCount = groupedResult.Count; // 鑾峰彇鎬绘暟
+        var totalPages = (int)Math.Ceiling((double)totalCount / input.PageSize); // 璁$畻鎬婚〉鏁�
+
+        // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉
+        return new SqlSugarPagedList<WmsShortageListOutput>
+        {
+            Page = input.Page,
+            PageSize = input.PageSize,
+            Total = totalCount,
+            TotalPages = totalPages,
+            Items = pagedResult,
+            HasPrevPage = input.Page > 1,
+            HasNextPage = input.Page < totalPages
+        };
+    }
+
+
+
 }
 

--
Gitblit v1.9.3