From 2b25f973bb6d72ce6971d6f9c3cdccf51b7962ab Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 06 九月 2025 14:27:08 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu

---
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs |  125 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 1 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs"
index 698cca2..2a793c3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs"
@@ -1,11 +1,21 @@
-锘縰sing System;
+锘縰sing Magicodes.ExporterAndImporter.Excel.Utility;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using System;
 using System.Collections.Generic;
+using System.Data;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_IPackInfoRepository;
 using WIDESEAWCS_Model.Models.PackInfo;
+using WIDESEAWCS_PackInfoRepository;
+using Magicodes.ExporterAndImporter.Core.Models;
+using Magicodes.ExporterAndImporter.Excel;
+using WIDESEAWCS_Common.Utilities;
 
 namespace WIDESEAWCS_PackInfoService
 {
@@ -14,5 +24,118 @@
         public Dt_PackaxisService(IDt_PackaxisRepository BaseDal) : base(BaseDal)
         {
         }
+        public override WebResponseContent Import(List<IFormFile> files)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                // 1. 楠岃瘉鏂囦欢
+                if (files == null || files.Count == 0)
+                    return new WebResponseContent { Status = false, Message = "璇烽�夋嫨涓婁紶鐨勬枃浠�" };
+
+                var formFile = files[0];
+
+                // 2. 鍑嗗鐩綍锛堜娇鐢≒ath.Combine锛�
+                var dicPath = Path.Combine(
+                    AppDomain.CurrentDomain.BaseDirectory,
+                    "ExcelImport",
+                    DateTime.Now.ToString("yyyyMMdd"),
+                    typeof(Dt_Packaxis).Name);
+
+                Directory.CreateDirectory(dicPath);
+                // 3. 淇濆瓨涓婁紶鏂囦欢
+                var fileName = $"{Guid.NewGuid()}_{formFile.FileName}";
+                var fullPath = Path.Combine(dicPath, fileName);
+
+                using (var stream = new FileStream(fullPath, FileMode.Create))
+                {
+                    formFile.CopyToAsync(stream);
+                }
+
+                // 4. 瀵煎叆Excel鏁版嵁
+                DataTable dtExcel = new DataTable();
+                using (ImportExcelHelper excelHelper = new ImportExcelHelper(fullPath))
+                {
+                    dtExcel = excelHelper.ExcelToDataTable();
+                    
+                }
+                List<Dt_Packaxis> addAxis = new List<Dt_Packaxis>();
+                List<Dt_Packaxis> updateAxis = new List<Dt_Packaxis>();
+                if (dtExcel == null || dtExcel.Rows.Count == 0)
+                {
+                    return content.Error("鏈壘鍒版暟鎹妫�鏌xcel琛ㄦ牸鏁版嵁鏍煎紡鏄惁姝g‘锛�");
+                }
+                for (int i = 0; i < dtExcel.Rows.Count; i++)
+                {
+                    DataRow row = dtExcel.Rows[i];
+                    string id = row["id"]?.ToString() ?? string.Empty;
+                    string DeviceCode = row["DeviceCode"]?.ToString() ?? string.Empty;
+                    string StationCode = row["StationCode"]?.ToString() ?? string.Empty;
+                    string PackType = row["PackType"]?.ToString() ?? string.Empty;
+                    string PackNum = row["PackNum"]?.ToString() ?? string.Empty;
+                    string AxisX = row["AxisX"]?.ToString() ?? string.Empty;
+                    string AxisXCount = row["AxisXCount"]?.ToString() ?? string.Empty;
+                    string AxisXSpacing = row["AxisXSpacing"]?.ToString() ?? string.Empty;
+                    string AxisY = row["AxisY"]?.ToString() ?? string.Empty;
+                    string AxisYCount = row["AxisYCount"]?.ToString() ?? string.Empty;
+                    string AxisYSpacing = row["AxisYSpacing"]?.ToString() ?? string.Empty;
+                    string AxisZ = row["AxisZ"]?.ToString() ?? string.Empty;
+                    string AxisZCount = row["AxisZCount"]?.ToString() ?? string.Empty;
+                    string AxisZSpacing = row["AxisZSpacing"]?.ToString() ?? string.Empty;
+                    var axis = BaseDal.QueryFirst(x => x.DeviceCode == DeviceCode && x.StationCode == Convert.ToInt32(StationCode) && x.PackType == PackType);
+                    if(axis == null)
+                    {
+                        Dt_Packaxis packaxis = new Dt_Packaxis()
+                        {
+                            DeviceCode = DeviceCode,
+                            StationCode = Convert.ToInt32(StationCode),
+                            PackType = PackType,
+                            PackNum = Convert.ToInt32(PackNum),
+                            AxisX = Convert.ToInt32(AxisX),
+                            AxisXCount = Convert.ToInt32(AxisXCount),
+                            AxisXSpacing = Convert.ToInt32(AxisXSpacing),
+                            AxisY = Convert.ToInt32(AxisY),
+                            AxisYCount = Convert.ToInt32(AxisYCount),
+                            AxisYSpacing = Convert.ToInt32(AxisYSpacing),
+                            AxisZ = Convert.ToInt32(AxisZ),
+                            AxisZCount = Convert.ToInt32(AxisZCount),
+                            AxisZSpacing = Convert.ToInt32(AxisZSpacing),
+                            Creater = App.User.UserId > 0 ? App.User.UserName : "System",
+                            CreateDate = DateTime.Now
+                        };
+                        addAxis.Add(packaxis);
+                    }
+                    else
+                    {
+                        axis.DeviceCode = DeviceCode;
+                        axis.StationCode = Convert.ToInt32(StationCode);
+                        axis.PackType = PackType;
+                        axis.PackNum = Convert.ToInt32(PackNum);
+                        axis.AxisX = Convert.ToInt32(AxisX);
+                        axis.AxisXCount = Convert.ToInt32(AxisXCount);
+                        axis.AxisXSpacing = Convert.ToInt32(AxisXSpacing);
+                        axis.AxisY = Convert.ToInt32(AxisY);
+                        axis.AxisYCount = Convert.ToInt32(AxisYCount);
+                        axis.AxisYSpacing = Convert.ToInt32(AxisYSpacing);
+                        axis.AxisZ = Convert.ToInt32(AxisZ);
+                        axis.AxisZCount = Convert.ToInt32(AxisZCount);
+                        axis.AxisZSpacing = Convert.ToInt32(AxisZSpacing);
+                        axis.Modifier = App.User.UserId > 0 ? App.User.UserName : "System";
+                        axis.ModifyDate = DateTime.Now;
+                        updateAxis.Add(axis);
+                    }
+                }
+                BaseDal.AddData(addAxis);
+                BaseDal.UpdateData(updateAxis);
+
+                content = WebResponseContent.Instance.OK("瀵煎叆鎴愬姛锛�");
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+
+            return content;
+        }
     }
 }

--
Gitblit v1.9.3