From 81b3c30ab5e042c3a740e4e5077c1d85013b6482 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期日, 31 八月 2025 10:27:56 +0800 Subject: [PATCH] 代码提交 --- 项目代码/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