Переглянути джерело

修改用户发货单通用和外销发货模板整合

klzhangweiya 3 роки тому
батько
коміт
5e35bf3faa
17 змінених файлів з 349 додано та 129 видалено
  1. 68 0
      src_0nline/ShwasherSys/ShwasherSys.Application/Common/Dto/OrderSendExcelDto.cs
  2. 280 129
      src_0nline/ShwasherSys/ShwasherSys.Application/OrderSendInfo/OrderSendBillsApplicationService.cs
  3. 1 0
      src_0nline/ShwasherSys/ShwasherSys.Application/ShwasherSys.Application.csproj
  4. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184627.xlsx
  5. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184700.xlsx
  6. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184740.xlsx
  7. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185306.xlsx
  8. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185404.xlsx
  9. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185434.xlsx
  10. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412190621.xlsx
  11. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412205709.xlsx
  12. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212056.xlsx
  13. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212214.xlsx
  14. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212351.xlsx
  15. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212451.xlsx
  16. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Resources/OrderSendTemplate/外销送货单模板2.xlsx
  17. BIN
      src_0nline/ShwasherSys/ShwasherSys.Web/Resources/OrderSendTemplate/送货单模板2.xlsx

+ 68 - 0
src_0nline/ShwasherSys/ShwasherSys.Application/Common/Dto/OrderSendExcelDto.cs

@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ShwasherSys.Common.Dto
+{
+	public class OrderSendItemExcelDto
+	{
+		public int Index { get; set; }
+
+		public string StockNo { get; set; }
+		public string PartNo { get; set; }
+		public string ProductName { get; set; }
+		public string Model { get; set; }
+		public string SurfaceColor { get; set; }
+		public string Material { get; set; }
+		public string Rigidity { get; set; }
+		public string Unit { get; set; }
+		//发送数量
+		public decimal SendQuantity { get; set; }
+		//包数
+		public decimal PackageCount { get; set; }
+		//每包数量
+		public decimal QuantityPerPack { get; set; }
+		//剩余数量
+		public decimal Sysl { get; set; }
+
+		public decimal Price { get; set; }
+
+		public decimal TotalPrice { get; set; }
+
+		public string ProductBatchNum { get; set; }
+		
+	}
+
+	public class OrderSendMiniExcelDto
+	{
+		//日期 yyyy-MM-dd
+		public string Ex1 { get; set; }
+		//日期 yyyy年MM月dd日
+		public string Ex2 { get; set; }
+		public string Ex3 { get; set; }
+
+		public decimal AllPackageCount { get; set; }
+		public decimal AllSendQuantity { get; set; }
+		public decimal AllTotalPrice { get; set; }
+
+
+		public string OrderSendBillNo { get; set; }
+
+		public string CustomerName { get; set; }
+
+		public string SendAddress { get; set; }
+
+		public string ContactTels { get; set; }
+		public string ContactMan { get; set; }
+
+		//excel中特殊地方显示不同格式
+		public string SendDate { get; set; }
+
+
+		public List<OrderSendItemExcelDto> send { get; set; }
+
+
+	}
+}

+ 280 - 129
src_0nline/ShwasherSys/ShwasherSys.Application/OrderSendInfo/OrderSendBillsApplicationService.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Data.Entity;
 using System.Diagnostics;
+using System.IO;
 using System.Linq;
 using System.Reflection;
 using System.Threading.Tasks;
@@ -17,9 +18,12 @@ using IwbZero.AppServiceBase;
 using IwbZero.Auditing;
 using IwbZero.IdentityFramework;
 using Microsoft.AspNet.Identity;
+using MiniExcelLibs;
+using NPOI.SS.UserModel;
 using ShwasherSys.Authorization.Permissions;
 using ShwasherSys.BaseSysInfo;
 using ShwasherSys.Common;
+using ShwasherSys.Common.Dto;
 using ShwasherSys.CustomerInfo;
 using ShwasherSys.EntityFramework;
 using ShwasherSys.Lambda;
@@ -455,135 +459,282 @@ namespace ShwasherSys.OrderSendInfo
 
         public async Task<string> ExportOrderSendCommon(EntityDto<string> input)
         {
-            var bill = await Repository.FirstOrDefaultAsync(input.Id);
-            //var orderSends = (await ViewOrderSendRepository.GetAllListAsync(i => i.OrderSendBillNo == input.Id)).OrderBy(i=>i.SurfaceColor).ThenBy(i=>i.Rigidity).ToList();
-            var orderSends =
-                (await ViewOrderSendRepository.GetAllListAsync(i => i.OrderSendBillNo == input.Id)).OrderBy(i => i.SendBillSort).ThenByDescending(i=>i.SendDate).ToList();
+	        var bill = await Repository.FirstOrDefaultAsync(input.Id);
+	        var orderSends =
+		        (await ViewOrderSendRepository.GetAllListAsync(i => i.OrderSendBillNo == input.Id)).OrderBy(i => i.SendBillSort).ThenByDescending(i => i.SendDate).ToList();
+	        var customerInfo = await CustomerRepository.FirstOrDefaultAsync(bill.CustomerId);
+	        string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/送货单模板2.xlsx";
+			if (orderSends.Any())
+	        {
+		        if (orderSends[0].SaleType == 2)
+		        {
+					path =  AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/外销送货单模板2.xlsx";
+
+				}
+	        }
+			OrderSendMiniExcelDto miniValue = new OrderSendMiniExcelDto()
+			{
+				Ex1 = DateTime.Now.ToString("yyyy-MM-dd"),
+				Ex2 = DateTime.Now.ToString("yyyy年MM月dd日"),
+				OrderSendBillNo = bill.Id,
+				SendAddress = bill.SendAddress,
+				CustomerName = customerInfo.CustomerName,
+				ContactTels = bill.ContactTels,
+                ContactMan = bill.ContactMan
+			};
+			var savePath = "Download/Excel/OrderSendBill";
+			var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
+			int index = 0;
+			decimal allPackageCount = 0;
+			decimal allSendQuantity = 0;
+			decimal allTotalPrice = 0;
+			List<OrderSendItemExcelDto> orderSendItem = new List<OrderSendItemExcelDto>();
+			foreach (var send in orderSends)
+			{
+				OrderSendItemExcelDto item = new OrderSendItemExcelDto();
+				var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
+				allSendQuantity += sendQuantity;
+				var quantityPerPack = send.QuantityPerPack ?? 0;
+				quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
+				decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
+				var sysl = sendQuantity - quantityPerPack * packageCount;
+				allPackageCount += packageCount + (sysl > 0 ? 1 : 0);
+				item.Index = index + 1;
+				item.StockNo = send.StockNo ?? send.OrderNo;
+				item.PartNo = send.PartNo ?? "";
+				item.ProductName = send.ProductName ?? "";
+				item.Model = send.Model ?? "";
+				item.SurfaceColor = send.SurfaceColor ?? "";
+				item.Material = send.Material ?? "";
+				item.Rigidity = send.Rigidity ?? "";
+				item.Unit = "千件";
+				item.SendQuantity = sendQuantity;
+				item.PackageCount = packageCount;
+				item.QuantityPerPack = quantityPerPack;
+				item.Sysl = sysl;
+				item.ProductBatchNum = send.ProductBatchNum ?? "";
+				allTotalPrice += send.TotalPrice;
+				orderSendItem.Add(item);
+				index++;
+			}
+
+			miniValue.AllPackageCount = allPackageCount;
+			miniValue.AllSendQuantity = allSendQuantity;
+			miniValue.AllTotalPrice = allTotalPrice;
+			miniValue.send = orderSendItem;
+
+			savePath = Path.Combine($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+			string resultPath = $"/Download/Excel/OrderSendBill/{fileName}";
+			//var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+			try
+			{
+				await MiniExcel.SaveAsByTemplateAsync(savePath, path, miniValue);
+			}
+			catch (Exception err)
+			{
+				CheckErrors(new IdentityResult(err.Message));
+			}
+			return resultPath;
+
+		}
+
+		//public async Task<string> ExportOrderSendCommon2(EntityDto<string> input)
+  //      {
+  //          var bill = await Repository.FirstOrDefaultAsync(input.Id);
+  //          //var orderSends = (await ViewOrderSendRepository.GetAllListAsync(i => i.OrderSendBillNo == input.Id)).OrderBy(i=>i.SurfaceColor).ThenBy(i=>i.Rigidity).ToList();
+  //          var orderSends =
+  //              (await ViewOrderSendRepository.GetAllListAsync(i => i.OrderSendBillNo == input.Id)).OrderBy(i => i.SendBillSort).ThenByDescending(i=>i.SendDate).ToList();
           
 
-            var customerInfo = await CustomerRepository.FirstOrDefaultAsync(bill.CustomerId);
-            if (orderSends.Any())
-            {
-                if (orderSends[0].SaleType == 2)
-                {
-                    return ExportOutSale(orderSends, bill, customerInfo);
-                }
-            }
-            string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/送货单模板.xlsx";
-            var savePath = "Download/Excel/OrderSendBill";
-            var work = ExcelHelper.CreateWorkBook07(path);
-            var sheet1 = work.GetSheet("Sheet1");
-            sheet1.GenerateCell(2, 1).SetCellValue("单号:"+bill.Id);
-            sheet1.GenerateCell(5, 2).SetCellValue("客户:" + customerInfo.CustomerName);
-            sheet1.GenerateCell(5, 10).SetCellValue("地址:" + bill.SendAddress);
-            sheet1.GenerateCell(6, 2).SetCellValue("联系电话:" + bill.ContactTels);
-            sheet1.GenerateCell(6, 10).SetCellValue("联系人:" + bill.ContactMan);
-            sheet1.GenerateCell(7, 1).SetCellValue("日期:" + DateTime.Now.ToString("yyyy年MM月dd日"));
-            sheet1.InsertRows(10, orderSends.Count);
-            int index = 0;
-            decimal allPackageCount = 0;
-            foreach (var send in orderSends)
-            {
-                var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
-                var quantityPerPack = send.QuantityPerPack ?? 0;
-                quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
-                decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
-                var sysl = sendQuantity - quantityPerPack * packageCount;
-                allPackageCount += packageCount+(sysl>0?1:0);
-                sheet1.GenerateCell(10 + index, 1).SetValue<int>(index + 1);
-                sheet1.GenerateCell(10 + index, 2).SetValue(send.StockNo?? send.OrderNo);
-                sheet1.GenerateCell(10 + index, 3).SetValue(send.PartNo ?? "");
-                sheet1.GenerateCell(10 + index, 4).SetValue(send.ProductName??"");
-                sheet1.GenerateCell(10 + index, 5).SetValue(send.Model ?? "");
-                sheet1.GenerateCell(10 + index, 6).SetValue(send.SurfaceColor ?? "");
-                sheet1.GenerateCell(10 + index, 7).SetValue(send.Material ?? "");
-                sheet1.GenerateCell(10 + index, 8).SetValue(send.Rigidity ?? "");
-                sheet1.GenerateCell(10 + index, 9).SetValue("千件");
-                sheet1.GenerateCell(10 + index, 10).SetValue<decimal>(sendQuantity);
-                sheet1.GenerateCell(10 + index, 11).SetValue<decimal>(packageCount);
-                sheet1.GenerateCell(10 + index, 12).SetValue<decimal>(quantityPerPack);
-                sheet1.GenerateCell(10 + index, 13).SetValue<decimal>(sysl);
-                sheet1.GenerateCell(10 + index, 14).SetValue<decimal>(sendQuantity);
-                sheet1.GenerateCell(10 + index, 15).SetValue(send.ProductBatchNum??"");
-                index++;
-            }
-            index++;
-            sheet1.GenerateCell(10 + index, 8).SetValue( "合计: 托盘、"+ allPackageCount + "箱、待进仓");
-            index+=3;
-            sheet1.GenerateCell(10 + index, 12).SetValue( "送货日期:"+DateTime.Now.ToString("yyyy-MM-dd"));
-            var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
-            var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
-            if (!result.IsNullOrEmpty())
-            {
-                //CheckErrors(IwbIdentityResult.Failed(result));
-                return null;
-            }
-            return $"/{savePath}/{fileName}";
-        }
-
-        private string  ExportOutSale(List<ViewOrderSend> orderSends, OrderSendBill bill,
-            Customer customerInfo)
-        {
-            string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/外销送货单模板.xlsx";
-            var savePath = "Download/Excel/OrderSendBill";
-            var work = ExcelHelper.CreateWorkBook07(path);
-            var sheet1 = work.GetSheet("Sheet1");
-            sheet1.GenerateCell(2, 1).SetCellValue("单号:" + bill.Id);
-            sheet1.GenerateCell(5, 1).SetCellValue("Buyer Name:" + customerInfo.CustomerName);
-            sheet1.GenerateCell(6, 1).SetCellValue("Buyer Add:  " + bill.SendAddress);
-            //sheet1.GenerateCell(6, 2).SetCellValue("联系电话:" + bill.ContactTels);
-            //sheet1.GenerateCell(6, 10).SetCellValue("联系人:" + bill.ContactMan);
-            //sheet1.GenerateCell(7, 1).SetCellValue("日期:" + DateTime.Now.ToString("yyyy年MM月dd日"));
-            sheet1.InsertRows(14, orderSends.Count);
-            int index = 0;
-            decimal allPackageCount = 0;
-            decimal allSendQuantity = 0;
-            decimal allTotalPrice = 0;
-            foreach (var send in orderSends)
-            {
-                var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
-                allSendQuantity += sendQuantity;
-                var quantityPerPack = send.QuantityPerPack ?? 0;
-                quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
-                decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
-                var sysl = sendQuantity - quantityPerPack * packageCount;
-                allPackageCount += packageCount + (sysl > 0 ? 1 : 0);
-                sheet1.GenerateCell(14 + index, 1).SetValue<int>(index + 1);
-                sheet1.GenerateCell(14 + index, 2).SetValue(send.StockNo ?? send.OrderNo);
-                sheet1.GenerateCell(14 + index, 3).SetValue(send.PartNo ?? "");
-                sheet1.GenerateCell(14 + index, 4).SetValue(send.ProductName ?? "");
-                sheet1.GenerateCell(14 + index, 5).SetValue(send.Model ?? "");
-                sheet1.GenerateCell(14 + index, 6).SetValue(send.SurfaceColor ?? "");
-                sheet1.GenerateCell(14 + index, 7).SetValue(send.Material ?? "");
-                sheet1.GenerateCell(14 + index, 8).SetValue(send.Rigidity ?? "");
-                sheet1.GenerateCell(14 + index, 9).SetValue("千件");
-                sheet1.GenerateCell(14 + index, 10).SetValue<decimal>(sendQuantity);
-                sheet1.GenerateCell(14 + index, 11).SetValue<decimal>(packageCount);
-                sheet1.GenerateCell(14 + index, 12).SetValue<decimal>(quantityPerPack);
-                sheet1.GenerateCell(14 + index, 13).SetValue<decimal>(sysl);
-                sheet1.GenerateCell(14 + index, 14).SetValue<decimal>(sendQuantity);
-                sheet1.GenerateCell(14 + index, 15).SetValue(send.ProductBatchNum ?? "");
-                //sheet1.GenerateCell(14 + index, 16).SetValue<decimal>(send.Price);
-                //sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(send.TotalPrice);
-                allTotalPrice += send.TotalPrice;
-                index++;
-            }
-
-            index += 4;
-            sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(allSendQuantity); 
-            index += 1;
-            //sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(allTotalPrice);
-            index += 3;
-            sheet1.GenerateCell(14 + index, 12).SetValue("送货日期:" + DateTime.Now.ToString("yyyy-MM-dd"));
-            var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
-            var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
-            if (!result.IsNullOrEmpty())
-            {
-                //CheckErrors(IwbIdentityResult.Failed(result));
-                return null;
-            }
-            return $"/{savePath}/{fileName}";
-        }
-        #endregion
-    }
+  //          var customerInfo = await CustomerRepository.FirstOrDefaultAsync(bill.CustomerId);
+  //          if (orderSends.Any())
+  //          {
+  //              if (orderSends[0].SaleType == 2)    
+  //              {
+  //                  return ExportOutSale(orderSends, bill, customerInfo);
+  //              }
+  //          }
+  //          string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/送货单模板.xlsx";
+  //          var savePath = "Download/Excel/OrderSendBill";
+  //          var work = ExcelHelper.CreateWorkBook07(path);
+  //          var sheet1 = work.GetSheet("Sheet1");
+  //          sheet1.GenerateCell(2, 1).SetCellValue("单号:"+bill.Id);
+  //          sheet1.GenerateCell(5, 2).SetCellValue("客户:" + customerInfo.CustomerName);
+  //          sheet1.GenerateCell(5, 10).SetCellValue("地址:" + bill.SendAddress);
+  //          sheet1.GenerateCell(6, 2).SetCellValue("联系电话:" + bill.ContactTels);
+  //          sheet1.GenerateCell(6, 10).SetCellValue("联系人:" + bill.ContactMan);
+  //          sheet1.GenerateCell(7, 1).SetCellValue("日期:" + DateTime.Now.ToString("yyyy年MM月dd日"));
+  //          sheet1.InsertRows(10, orderSends.Count);
+  //          int index = 0;
+  //          decimal allPackageCount = 0;
+  //          foreach (var send in orderSends)
+  //          {
+  //              var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
+  //              var quantityPerPack = send.QuantityPerPack ?? 0;
+  //              quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
+  //              decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
+  //              var sysl = sendQuantity - quantityPerPack * packageCount;
+  //              allPackageCount += packageCount+(sysl>0?1:0);
+  //              sheet1.GenerateCell(10 + index, 1).SetValue<int>(index + 1);
+  //              sheet1.GenerateCell(10 + index, 2).SetValue(send.StockNo?? send.OrderNo);
+  //              sheet1.GenerateCell(10 + index, 3).SetValue(send.PartNo ?? "");
+  //              sheet1.GenerateCell(10 + index, 4).SetValue(send.ProductName??"");
+  //              sheet1.GenerateCell(10 + index, 5).SetValue(send.Model ?? "");
+  //              sheet1.GenerateCell(10 + index, 6).SetValue(send.SurfaceColor ?? "");
+  //              sheet1.GenerateCell(10 + index, 7).SetValue(send.Material ?? "");
+  //              sheet1.GenerateCell(10 + index, 8).SetValue(send.Rigidity ?? "");
+  //              sheet1.GenerateCell(10 + index, 9).SetValue("千件");
+  //              sheet1.GenerateCell(10 + index, 10).SetValue<decimal>(sendQuantity);
+  //              sheet1.GenerateCell(10 + index, 11).SetValue<decimal>(packageCount);
+  //              sheet1.GenerateCell(10 + index, 12).SetValue<decimal>(quantityPerPack);
+  //              sheet1.GenerateCell(10 + index, 13).SetValue<decimal>(sysl);
+  //              sheet1.GenerateCell(10 + index, 14).SetValue<decimal>(sendQuantity);
+  //              sheet1.GenerateCell(10 + index, 15).SetValue(send.ProductBatchNum??"");
+  //              index++;
+  //          }
+  //          index++;
+  //          sheet1.GenerateCell(10 + index, 8).SetValue( "合计: 托盘、"+ allPackageCount + "箱、待进仓");
+  //          index+=3;
+  //          sheet1.GenerateCell(10 + index, 12).SetValue( "送货日期:"+DateTime.Now.ToString("yyyy-MM-dd"));
+  //          var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
+  //          var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+  //          if (!result.IsNullOrEmpty())
+  //          {
+  //              //CheckErrors(IwbIdentityResult.Failed(result));
+  //              return null;
+  //          }
+  //          return $"/{savePath}/{fileName}";
+  //      }
+
+    
+		//private string ExportOutSale(List<ViewOrderSend> orderSends, OrderSendBill bill,
+		//  Customer customerInfo)
+		//{
+		//	string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/外销送货单模板2.xlsx";
+		//	OrderSendMiniExcelDto miniValue = new OrderSendMiniExcelDto()
+		//	{
+		//		Ex1 = DateTime.Now.ToString("yyyy-MM-dd"),
+  //              OrderSendBillNo = bill.Id,
+  //              SendAddress = bill.SendAddress,
+  //              CustomerName = customerInfo.CustomerName
+		//	};
+		//	var savePath = "Download/Excel/OrderSendBill";
+		//	var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
+		//	int index = 0;
+		//	decimal allPackageCount = 0;
+		//	decimal allSendQuantity = 0;
+		//	decimal allTotalPrice = 0;
+		//	List<OrderSendItemExcelDto> orderSendItem = new List<OrderSendItemExcelDto>();
+		//	foreach (var send in orderSends)
+		//	{
+		//		OrderSendItemExcelDto item = new OrderSendItemExcelDto();
+		//		var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
+		//		allSendQuantity += sendQuantity;
+		//		var quantityPerPack = send.QuantityPerPack ?? 0;
+		//		quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
+		//		decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
+		//		var sysl = sendQuantity - quantityPerPack * packageCount;
+		//		allPackageCount += packageCount + (sysl > 0 ? 1 : 0);
+		//		item.Index = index + 1;
+		//		item.StockNo = send.StockNo ?? send.OrderNo;
+		//		item.PartNo = send.PartNo ?? "";
+		//		item.ProductName = send.ProductName ?? "";
+		//		item.Model = send.Model ?? "";
+		//		item.SurfaceColor = send.SurfaceColor ?? "";
+		//		item.Material = send.Material ?? "";
+  //              item.Rigidity = send.Rigidity ?? "";
+  //              item.Unit = "千件";
+  //              item.SendQuantity = sendQuantity;
+		//		item.PackageCount = packageCount;
+		//		item.QuantityPerPack = quantityPerPack;
+		//		item.Sysl = sysl;
+		//		item.ProductBatchNum = send.ProductBatchNum ?? "";
+		//		allTotalPrice += send.TotalPrice;
+		//		orderSendItem.Add(item);
+		//		index++;
+		//	}
+
+		//	miniValue.AllPackageCount = allPackageCount;
+		//	miniValue.AllSendQuantity = allSendQuantity;
+		//	miniValue.AllTotalPrice = allTotalPrice;
+		//	miniValue.send=orderSendItem;
+			 
+  //          savePath = Path.Combine($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+  //          string resultPath = $"/Download/Excel/OrderSendBill/{fileName}";
+		//	//var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+		//	try
+		//	{
+		//		MiniExcel.SaveAsByTemplate(savePath, path, miniValue);
+		//	}
+		//	catch (Exception err)
+		//	{
+  //              CheckErrors(new IdentityResult(err.Message));
+		//	}
+		//	return resultPath;
+		//}
+		//private string ExportOutSale2(List<ViewOrderSend> orderSends, OrderSendBill bill,
+		//Customer customerInfo)
+		//{
+		//	string path = AppDomain.CurrentDomain.BaseDirectory + "Resources/OrderSendTemplate/外销送货单模板.xlsx";
+		//	var savePath = "Download/Excel/OrderSendBill";
+		//	var work = ExcelHelper.CreateWorkBook07(path);
+		//	var sheet1 = work.GetSheet("Sheet1");
+		//	sheet1.GenerateCell(2, 1).SetCellValue("单号:" + bill.Id);
+		//	sheet1.GenerateCell(5, 1).SetCellValue("Buyer Name:" + customerInfo.CustomerName);
+		//	sheet1.GenerateCell(6, 1).SetCellValue("Buyer Add:  " + bill.SendAddress);
+		//	//sheet1.GenerateCell(6, 2).SetCellValue("联系电话:" + bill.ContactTels);
+		//	//sheet1.GenerateCell(6, 10).SetCellValue("联系人:" + bill.ContactMan);
+		//	//sheet1.GenerateCell(7, 1).SetCellValue("日期:" + DateTime.Now.ToString("yyyy年MM月dd日"));
+		//	sheet1.InsertRows(14, orderSends.Count);
+		//	int index = 0;
+		//	decimal allPackageCount = 0;
+		//	decimal allSendQuantity = 0;
+		//	decimal allTotalPrice = 0;
+		//	foreach (var send in orderSends)
+		//	{
+		//		var sendQuantity = Math.Round(Math.Floor(send.SendQuantity * 1000) / 1000, 3);//发货数量
+		//		allSendQuantity += sendQuantity;
+		//		var quantityPerPack = send.QuantityPerPack ?? 0;
+		//		quantityPerPack = quantityPerPack == 0 ? sendQuantity : quantityPerPack;//每包数量,如果为0则等于发货数量
+		//		decimal packageCount = sendQuantity == 0 ? 0 : (sendQuantity <= quantityPerPack ? 1 : Math.Floor(send.SendQuantity / quantityPerPack));
+		//		var sysl = sendQuantity - quantityPerPack * packageCount;
+		//		allPackageCount += packageCount + (sysl > 0 ? 1 : 0);
+		//		sheet1.GenerateCell(14 + index, 1).SetValue<int>(index + 1);
+		//		sheet1.GenerateCell(14 + index, 2).SetValue(send.StockNo ?? send.OrderNo);
+		//		sheet1.GenerateCell(14 + index, 3).SetValue(send.PartNo ?? "");
+		//		sheet1.GenerateCell(14 + index, 4).SetValue(send.ProductName ?? "");
+		//		sheet1.GenerateCell(14 + index, 5).SetValue(send.Model ?? "");
+		//		sheet1.GenerateCell(14 + index, 6).SetValue(send.SurfaceColor ?? "");
+		//		sheet1.GenerateCell(14 + index, 7).SetValue(send.Material ?? "");
+		//		sheet1.GenerateCell(14 + index, 8).SetValue(send.Rigidity ?? "");
+		//		sheet1.GenerateCell(14 + index, 9).SetValue("千件");
+		//		sheet1.GenerateCell(14 + index, 10).SetValue<decimal>(sendQuantity);
+		//		sheet1.GenerateCell(14 + index, 11).SetValue<decimal>(packageCount);
+		//		sheet1.GenerateCell(14 + index, 12).SetValue<decimal>(quantityPerPack);
+		//		sheet1.GenerateCell(14 + index, 13).SetValue<decimal>(sysl);
+		//		sheet1.GenerateCell(14 + index, 14).SetValue<decimal>(sendQuantity);
+		//		sheet1.GenerateCell(14 + index, 15).SetValue(send.ProductBatchNum ?? "");
+		//		//sheet1.GenerateCell(14 + index, 16).SetValue<decimal>(send.Price);
+		//		//sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(send.TotalPrice);
+		//		allTotalPrice += send.TotalPrice;
+		//		index++;
+		//	}
+
+		//	index += 4;
+		//	sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(allSendQuantity);
+		//	index += 1;
+		//	//sheet1.GenerateCell(14 + index, 17).SetValue<decimal>(allTotalPrice);
+		//	index += 3;
+		//	sheet1.GenerateCell(14 + index, 12).SetValue("送货日期:" + DateTime.Now.ToString("yyyy-MM-dd"));
+		//	var fileName = $"送货单-{Clock.Now:yyMMddHHmmss}.xlsx";
+		//	var result = work?.SaveWorkBook($"{AppDomain.CurrentDomain.BaseDirectory}{savePath}", fileName);
+		//	if (!result.IsNullOrEmpty())
+		//	{
+		//		//CheckErrors(IwbIdentityResult.Failed(result));
+		//		return null;
+		//	}
+		//	return $"/{savePath}/{fileName}";
+		//}
+		#endregion
+	}
 }

+ 1 - 0
src_0nline/ShwasherSys/ShwasherSys.Application/ShwasherSys.Application.csproj

@@ -407,6 +407,7 @@
     <Compile Include="Common\Dto\IndexAlertSumDto.cs" />
     <Compile Include="Common\Dto\MultiSearchDtoExt.cs" />
     <Compile Include="Common\Dto\OrderProductProcess.cs" />
+    <Compile Include="Common\Dto\OrderSendExcelDto.cs" />
     <Compile Include="Common\EmailMsgSendHandler.cs" />
     <Compile Include="Common\ICommonAppService.cs" />
     <Compile Include="Common\ProductModelSearch.cs" />

BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184627.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184700.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412184740.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185306.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185404.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412185434.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412190621.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412205709.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212056.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212214.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212351.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Download/Excel/OrderSendBill/送货单-230412212451.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Resources/OrderSendTemplate/外销送货单模板 - 副本.xlsx → src_0nline/ShwasherSys/ShwasherSys.Web/Resources/OrderSendTemplate/外销送货单模板2.xlsx


BIN
src_0nline/ShwasherSys/ShwasherSys.Web/Resources/OrderSendTemplate/送货单模板2.xlsx