From d883e7249dcd37f9bd23ea0c68d6f42bf90e398f Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期四, 11 十二月 2025 09:56:27 +0800
Subject: [PATCH] 11

---
 StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs |  103 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs b/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
index 10d370f..27520c0 100644
--- a/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
@@ -4,6 +4,8 @@
 using SqlSugar;
 using Newtonsoft.Json;
 using System.Text;
+using OfficeOpenXml;
+using OfficeOpenXml.Style;
 
 namespace MES.Service.service.Warehouse;
 
@@ -23,10 +25,10 @@
             throw new Exception("椤电爜蹇呴』澶т簬0");
         }
 
-        if (!new[] { 10, 20, 50 }.Contains(searchDto.PageSize))
-        {
-            throw new Exception("姣忛〉鏉℃暟蹇呴』涓�10銆�20鎴�50");
-        }
+        // if (!new[] { 10, 20, 50 }.Contains(searchDto.PageSize))
+        // {
+        //     throw new Exception("姣忛〉鏉℃暟蹇呴』涓�10銆�20鎴�50");
+        // }
 
         // 1. 鏌ヨXB_RACKING_TASK_SYXT_LOG涓璉temBarcode鍜孭alletCode鐨勬槧灏勫叧绯�
         var allRackingTaskData = Db.Queryable<XbRackingTaskSyxtLog>()
@@ -678,4 +680,97 @@
             throw;
         }
     }
+
+    /// <summary>
+    ///     瀵煎嚭鍙��璐х墿鏂欏簱瀛樹负Excel
+    /// </summary>
+    /// <param name="searchDto">鎼滅储璇锋眰鍙傛暟</param>
+    /// <returns>Excel鏂囦欢瀛楄妭鏁扮粍</returns>
+    public byte[] ExportReturnableStocksToExcel(
+        ReturnableStockSearchDto searchDto)
+    {
+        // 璁剧疆 EPPlus 璁稿彲璇佷笂涓嬫枃(闈炲晢涓氱敤閫�)
+        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
+
+        // 鑾峰彇鎵�鏈夋暟鎹�(涓嶅垎椤�)
+        var tempSearchDto = new ReturnableStockSearchDto
+        {
+            PageIndex = 1,
+            PageSize = int.MaxValue, // 鑾峰彇鎵�鏈夋暟鎹�
+            Conditions = searchDto.Conditions
+        };
+
+        // 璋冪敤鏌ヨ鏂规硶鑾峰彇鏁版嵁
+        var result = GetReturnableStocks(tempSearchDto);
+        var dataList = result.TbBillList;
+
+        // 鍒涘缓 Excel 鏂囦欢
+        using var package = new ExcelPackage();
+        var worksheet = package.Workbook.Worksheets.Add("鍙��璐х墿鏂欏簱瀛�");
+
+        // 璁剧疆琛ㄥご
+        var headers = new[]
+        {
+            "鑹搧鐘舵��",
+            "鏄惁鎴愬搧",
+            "姣嶆墭鐩樼紪鍙�",
+            "浠撳簱缂栫爜",
+            "浠撳簱鍚嶇О",
+            "铏氭嫙搴撲綅",
+            "鐗╂枡缂栧彿",
+            "鐗╂枡鍚嶇О",
+            "鐗╂枡瑙勬牸",
+            "鐗╂枡鏁伴噺",
+            "鐗╂枡鍗曚綅",
+            "鍏ュ簱鏃堕棿",
+            "缁勭粐缂栫爜",
+            "缁勭粐鍚嶇О",
+            "鐗╂枡鏉$爜",
+            "搴撳瓨鐘舵��"
+        };
+
+        // 鍐欏叆琛ㄥご
+        for (int i = 0; i < headers.Length; i++)
+        {
+            worksheet.Cells[1, i + 1].Value = headers[i];
+            worksheet.Cells[1, i + 1].Style.Font.Bold = true;
+            worksheet.Cells[1, i + 1].Style.Fill.PatternType =
+                ExcelFillStyle.Solid;
+            worksheet.Cells[1, i + 1].Style.Fill.BackgroundColor
+                .SetColor(System.Drawing.Color.LightGray);
+            worksheet.Cells[1, i + 1].Style.HorizontalAlignment =
+                ExcelHorizontalAlignment.Center;
+        }
+
+        // 鍐欏叆鏁版嵁
+        int row = 2;
+        foreach (var item in dataList)
+        {
+            worksheet.Cells[row, 1].Value =
+                item.IqcStatus == "1" ? "鑹搧" : "涓嶈壇鍝�";
+            worksheet.Cells[row, 2].Value = item.ItemType == "1" ? "鎴愬搧" : "闈炴垚鍝�";
+            worksheet.Cells[row, 3].Value = item.StackCode;
+            worksheet.Cells[row, 4].Value = item.DepotCode;
+            worksheet.Cells[row, 5].Value = item.DepotName;
+            worksheet.Cells[row, 6].Value = item.DepotSectionsCode;
+            worksheet.Cells[row, 7].Value = item.ItemNo;
+            worksheet.Cells[row, 8].Value = item.ItemName;
+            worksheet.Cells[row, 9].Value = item.ItemModel;
+            worksheet.Cells[row, 10].Value = item.Quantity;
+            worksheet.Cells[row, 11].Value = item.ItemUnitName;
+            worksheet.Cells[row, 12].Value =
+                item.IndepDate?.ToString("yyyy-MM-dd HH:mm:ss");
+            worksheet.Cells[row, 13].Value = item.OrgCode;
+            worksheet.Cells[row, 14].Value = item.OrgName;
+            worksheet.Cells[row, 15].Value = item.ItemBarcode;
+            worksheet.Cells[row, 16].Value = item.StockStatus;
+            row++;
+        }
+
+        // 鑷姩璋冩暣鍒楀
+        worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
+
+        // 杩斿洖 Excel 鏂囦欢瀛楄妭鏁扮粍
+        return package.GetAsByteArray();
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3