diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs index 039aa940..90acb4f7 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs @@ -169,6 +169,10 @@ public class ModuleConsts /// public const string MODULE_WMSWAREHOUSEDEFINITION_ID = "25905106252053"; /// + /// 模块标识-仓库定义 + /// + public const string MODULE_LOCATIONDEFINITION_ID = "26103854387237"; + /// /// 模块标识-路段管理 /// public const string MODULE_WMSROAD_ID = "26100621140773"; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ExcelDataImportManager.cs b/WarehouseMgr/Tnb.WarehouseMgr/ExcelDataImportManager.cs index 59da2dc3..8b806e41 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ExcelDataImportManager.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ExcelDataImportManager.cs @@ -43,7 +43,7 @@ namespace Tnb.WarehouseMgr ICellStyle style = workbook.CreateCellStyle(); IFont font = workbook.CreateFont(); - font.Color = IndexedColors.Black.Index; // 将字体颜色设置为红色 + font.Color = IndexedColors.Black.Index; // 将字体颜色设置为黑色 style.SetFont(font); var nameRow = sheet?.GetRow(0); if (nameRow != null) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/LocationDefinitionService.cs b/WarehouseMgr/Tnb.WarehouseMgr/LocationDefinitionService.cs new file mode 100644 index 00000000..28853ff5 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/LocationDefinitionService.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Core.Manager; +using JNPF.Common.Security; +using JNPF.FriendlyException; +using JNPF.VisualDev; +using Mapster; +using Microsoft.AspNetCore.Http; +using SqlSugar; +using Tnb.BasicData.Entities; +using Tnb.WarehouseMgr.Entities.Enums; +using Tnb.WarehouseMgr.Entities; +using JNPF.Common.Extension; +using JNPF.Logging; +using System.Reflection.Emit; + +namespace Tnb.WarehouseMgr +{ + [OverideVisualDev(ModuleConsts.MODULE_LOCATIONDEFINITION_ID)] + public class LocationDefinitionService : ExcelDataImportManager + { + private readonly ISqlSugarClient _db; + private readonly IUserManager _userManager; + public LocationDefinitionService(ISqlSugarRepository repository, IUserManager userManager) + { + _db = repository.AsSugarClient(); + _userManager = userManager; + OverideFuncs.ImportAsync = DataImport; + } + + private async Task DataImport(IFormFile file) + { + int row = 0; + try + { + //例1 获取所有表 + + List> dics = await ImportExcelToMemory(file); + List locs = new List(); + BasLocation loc = new BasLocation(); + var carryStdDic = await _db.Queryable().ToDictionaryAsync(x => x.carrystd_code, x => x.id); + if (carryStdDic?.Count > 0) + { + string carryStdId = string.Empty; + foreach (var d in dics) + { + var stdCodeKey = d["carrystd_id"].ToString(); + carryStdId = carryStdDic.ContainsKey(stdCodeKey) ? carryStdDic[stdCodeKey]?.ToString() ?? "" : ""; + d["carrystd_id"] = carryStdId; + loc = d.Adapt(); + locs.Add(loc); + } + } + locs.ForEach(x => + { + x.id = SnowflakeIdHelper.NextId(); + x.org_id = _userManager.User.OrganizeId; + x.is_lock = 0; + x.create_id = _userManager.UserId; + x.create_time = DateTime.Now; + x.modify_id = null; + x.modify_time = null; + x.is_mix = 1; + }); + + await _db.Ado.BeginTranAsync(); + row = await _db.Insertable(locs).ExecuteCommandAsync(); + await _db.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + Log.Error("导入失败", ex); + throw Oops.Bah("导入失败"); + } + return row > 0; + } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryLedgerService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryLedgerService.cs index 9ce2b72c..75bf52c8 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryLedgerService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryLedgerService.cs @@ -72,7 +72,6 @@ namespace Tnb.WarehouseMgr { var stdCodeKey = d["carrystd_id"].ToString(); carryStdId = carryStdDic.ContainsKey(stdCodeKey) ? carryStdDic[stdCodeKey]?.ToString() ?? "" : ""; - d.Add("carrystd_code", stdCodeKey??""); d["carrystd_id"] = carryStdId; locCodes.Add(d["location_code"]?.ToString() ?? string.Empty); carryH = d.Adapt(); @@ -86,7 +85,6 @@ namespace Tnb.WarehouseMgr var c = carrys.Find(x => x.location_code == loc); if (c != null) c.location_id = locs[loc].ToString(); - } } carrys.ForEach(x =>