From 3337e4cc893a4b011a0298780d5def6c91dbc22f Mon Sep 17 00:00:00 2001 From: FanLian Date: Mon, 7 Aug 2023 16:54:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsImportAndExportService.cs | 60 ++++++++++++++----- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs index d0858efa..a80f04a3 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using DingTalk.Api.Request; using JNPF.Common.Configuration; using JNPF.Common.Core.Manager; using JNPF.Common.Extension; @@ -24,7 +25,10 @@ using Tnb.WarehouseMgr.Entities; namespace Tnb.WarehouseMgr { - public class WmsImportAndExportService + /// + /// 导入和导出接口服务提供类 + /// + public class WmsImportAndExportService : BaseWareHouseService { private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; @@ -34,18 +38,37 @@ namespace Tnb.WarehouseMgr _userManager = userManager; } + /// + /// 载具导入模板 + /// + /// + /// + [HttpPost] + public async Task CarryImportTemplate() + { + int row = 0; + Dictionary dic = new Dictionary(); + dic.Add("carry_code","载具编号"); + dic.Add("carry_name","载具名称" ); + dic.Add("carrystd_id","载具规格" ); + //headers = _db.DbMaintenance.GetColumnInfosByTableName("wms_carry_h").FindAll(x=>!x.IsNullable).ToDictionary(x => x.DbColumnName ,x => x.ColumnDescription); + FileStreamResult fileStreamResult = WmsTemplate(dic, "载具台账"); + + return fileStreamResult; + } /// /// 载具导入 /// /// /// + [HttpPost] public async Task CarryImport(IFormFile file) { int row = 0; try { - List> dics = WmsImport(file); + List> dics = WmsImportExcelToMemory(file); List carrys = new List(); var carryStdDic = await _db.Queryable().ToDictionaryAsync(x => x.carrystd_code, x => x.id); List locCodes = new(); @@ -62,12 +85,15 @@ namespace Tnb.WarehouseMgr carryH = d.Adapt(); carrys.Add(carryH); } - var locs = await _db.Queryable().Where(it => locCodes.Contains(it.location_code)).ToDictionaryAsync(x => x.location_code, x => x.id); - foreach (var loc in locCodes) + if (locCodes != null) { - var c = carrys.Find(x => x.location_code == loc); - if (c != null) - c.location_id = locs[loc].ToString(); + var locs = await _db.Queryable().Where(it => locCodes.Contains(it.location_code)).ToDictionaryAsync(x => x.location_code, x => x.id); + foreach (var loc in locCodes) + { + var c = carrys.Find(x => x.location_code == loc); + if (c != null) + c.location_id = locs[loc].ToString(); + } } carrys.ForEach(x => { @@ -83,14 +109,14 @@ namespace Tnb.WarehouseMgr return false; throw; } - return row>0; + return row > 0; } /// /// WMS导入 /// /// - private static List> WmsImport(IFormFile file) + private static List> WmsImportExcelToMemory(IFormFile file) { int rowIndex = 1; List> dics = new List>(); @@ -155,22 +181,26 @@ namespace Tnb.WarehouseMgr /// /// WMS导入模板 /// - /// + /// /// /// - private static dynamic WmsTemplate(List> dics, string sheetName) + private static dynamic WmsTemplate(Dictionary dic, string sheetName) { XSSFWorkbook workbook = new XSSFWorkbook(); ISheet sheet = workbook.CreateSheet(sheetName); IRow nRow = sheet.CreateRow(0); IRow dRow = sheet.CreateRow(1); - - for (int i = 0; i < dics?.Count; i++) + dRow.Hidden = true; + dic.Remove("id"); + dic.Remove("create_id"); + dic.Remove("create_time"); + //sheet.SetColumnHidden(1, true); + for (int i = 0; i < dic?.Count; i++) { ICell cell1 = nRow.CreateCell(i); - cell1.SetCellValue(dics[i].Keys.ToString()); + cell1.SetCellValue(dic.Values.GetIndex(i)); ICell cell2 = dRow.CreateCell(i); - cell2.SetCellValue(dics[i].Values.ToString()); + cell2.SetCellValue(dic.Keys.GetIndex(i)); } MemoryStream ms = new MemoryStream(); From b895b49f516fd94cc9603abef4c151b68e274345 Mon Sep 17 00:00:00 2001 From: FanLian Date: Mon, 7 Aug 2023 16:59:07 +0800 Subject: [PATCH 2/2] 1 --- .../Tnb.WarehouseMgr/WmsImportAndExportService.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs index e7f98a4b..1dbe871d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsImportAndExportService.cs @@ -72,7 +72,7 @@ namespace Tnb.WarehouseMgr { //例1 获取所有表 - List> dics = WmsImport(file); + Dictionary dic = WmsImport(file); List carrys = new List(); var carryStdDic = await _db.Queryable().ToDictionaryAsync(x => x.carrystd_code, x => x.id); List locCodes = new(); @@ -80,12 +80,12 @@ namespace Tnb.WarehouseMgr if (carryStdDic?.Count > 0) { string carryStdId = string.Empty; - foreach (var d in dics) + foreach (var d in dic) { - var stdCodeKey = d["carrystd_code"]; + var stdCodeKey = d.Key; carryStdId = carryStdDic.ContainsKey(stdCodeKey) ? carryStdDic[stdCodeKey]?.ToString() ?? "" : ""; d.Add("carrystd_id", carryStdId); - locCodes.Add(d["location_code"]); + locCodes.Add(d); carryH = d.Adapt(); carrys.Add(carryH); }