From 885bd60ed54a0642c48c57a3d685cba24e4c763b Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期日, 08 十二月 2024 11:33:07 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs |  127 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 126 insertions(+), 1 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs"
index cb616ac..999b4a4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs"
@@ -1,12 +1,21 @@
 锘縰sing AutoMapper;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Core.Models;
+using Magicodes.ExporterAndImporter.Excel;
+using MailKit.Search;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using Org.BouncyCastle.Asn1.X509;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Core;
+using WIDESEA_Core.Attributes;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Enums;
@@ -20,6 +29,7 @@
 using WIDESEA_IStockService;
 using WIDESEA_ITaskInfoRepository;
 using WIDESEA_Model.Models;
+using OrderByType = SqlSugar.OrderByType;
 
 namespace WIDESEA_InboundService
 {
@@ -246,6 +256,121 @@
             }
         }
         
-        
+        //涓嬭浇妯$増
+        public virtual WebResponseContent DownLoadTemplate()
+        {
+            WebResponseContent content = new WebResponseContent();
+            IExporter exporter = new ExcelExporter();
+            Inbounddaoc inbounddaoc = new Inbounddaoc();
+            byte[] data = exporter.ExportHeaderAsByteArray(inbounddaoc).Result;
+            string fileName = "";
+            fileName ="妯℃澘.xlsx";
+            string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelImprotTemplate";
+            FileHelper.WriteFile(savePath, fileName, data);
+
+            content = WebResponseContent.Instance.OK(data: savePath + "\\" + fileName);
+            return content;
+        }
+
+        //瀵煎叆
+        public virtual WebResponseContent Import(List<IFormFile> files)
+        {
+            try
+            {
+                if (files == null || files.Count == 0)
+                    return new WebResponseContent { Status = true, Message = "璇烽�夋嫨涓婁紶鐨勬枃浠�" };
+
+                Microsoft.AspNetCore.Http.IFormFile formFile = files[0];
+
+                // 浣跨敤Path.Combine锛岄伩鍏嶇‖缂栫爜璺緞鍒嗛殧绗�
+                string dicPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExcelImport", DateTime.Now.ToString("yyyyMMdd"));
+                if (!Directory.Exists(dicPath))
+                    Directory.CreateDirectory(dicPath);
+
+                string fileName = $"{Guid.NewGuid()}_{formFile.FileName}";
+                string fullPath = Path.Combine(dicPath, fileName);
+
+                // 浣跨敤FileStream淇濆瓨鏂囦欢
+                using (FileStream stream = new FileStream(fullPath, FileMode.Create))
+                {
+                    formFile.CopyTo(stream);
+                }
+
+                // 鍒濆鍖朎xcel瀵煎叆宸ュ叿
+                ExcelImporter importer = new ExcelImporter();
+
+                // 瀵煎叆Excel鏁版嵁
+                ImportResult<Inbounddaoc> importResult = importer.Import<Inbounddaoc>(fullPath, "").Result;
+
+
+                if (importResult.HasError)
+                {
+                    return WebResponseContent.Instance.Error(importResult.TemplateErrors.Serialize());
+                }
+                // 鍋囪BaseDal鏄暟鎹闂眰锛岃繘琛屾暟鎹瓨鍌�
+                List<Dt_InboundOrder> dt_Inbounds = new List<Dt_InboundOrder>();
+                
+
+
+                foreach (var item in importResult.Data)
+                {
+                    int Startingcolumn = 0;
+                    int Terminationcolumn = 0;
+                    if (item.OrderType == "鎴愬搧")
+                    {
+                        if (item.UpperOrderNo.Contains("鍥炴枡"))
+                        {
+                            Startingcolumn = 14;
+                            Terminationcolumn = 37;
+                        }
+                    }
+
+                    Dt_InboundOrder dt_2 = new Dt_InboundOrder()
+                    {
+                        OrderName = item.OrderName,
+                        UpperOrderNo = item.UpperOrderNo,
+                        OrderType = item.OrderType == "鍘熸潗鏂�" ? (int)InventoryMaterialType.鍘熸潗鏂� : (int)InventoryMaterialType.鎴愬搧,
+                        OrderNo = item.OrderNo,
+                        CreateType = (int)CreateType.daoru,
+                        Creater = "瀵煎叆",
+                        CreateDate = DateTime.Now,
+                        Startingcolumn= Startingcolumn,
+                        Terminationcolumn= Terminationcolumn
+                    };
+                    dt_Inbounds.Add(dt_2);
+                }
+                BaseDal.AddData(dt_Inbounds);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                // 鎹曡幏寮傚父骞惰繑鍥為敊璇秷鎭�
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public class Inbounddaoc
+        {
+            [ImporterHeader(Name = "鐗╂枡鍙�")]
+            [ExporterHeader(DisplayName = "鐗╂枡鍙�")]
+            [SugarColumn(IsNullable = true, ColumnDescription = "鐗╂枡鍙�", ColumnName = "鐗╂枡鍙�")]
+            public string OrderName { get; set; }
+
+            [ImporterHeader(Name = "鐗╂枡鍚嶇О")]
+            [ExporterHeader(DisplayName = "鐗╂枡鍚嶇О")]
+            [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡鍚嶇О", ColumnName = "鐗╂枡鍚嶇О")]
+            public string UpperOrderNo { get; set; }
+
+            [ImporterHeader(Name = "绫诲瀷")]
+            [ExporterHeader(DisplayName = "绫诲瀷")]
+            [SugarColumn(IsNullable = true, ColumnDescription = "绫诲瀷", ColumnName = "绫诲瀷")]
+            public string OrderType { get; set; }
+
+            [ImporterHeader(Name = "鐗╂枡璇︽儏")]
+            [ExporterHeader(DisplayName = "鐗╂枡璇︽儏")]
+            [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡璇︽儏", ColumnName = "鐗╂枡璇︽儏")]
+            public string OrderNo { get; set; }
+        }
     }
 }

--
Gitblit v1.9.3