diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Configuration/Database.json b/admin.net.pro/Admin.NET/Vistar.Application/Configuration/Database.json index a0bd3e5..2f35255 100644 --- a/admin.net.pro/Admin.NET/Vistar.Application/Configuration/Database.json +++ b/admin.net.pro/Admin.NET/Vistar.Application/Configuration/Database.json @@ -9,7 +9,8 @@ { //"ConfigId": "1300000000001", // 默认库标识-禁止修改 "DbType": "SqlServer", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom - "ConnectionString": "Data Source=192.168.10.101;Initial Catalog=VistarStarDataManage;User ID=sa;Password=Vistar2024.;MultipleActiveResultSets=true", + //"ConnectionString": "Data Source=192.168.10.101;Initial Catalog=VistarStarDataManage;User ID=sa;Password=Vistar2024.;MultipleActiveResultSets=true", + "ConnectionString": "Data Source=.;Initial Catalog=VistarStarDataManage;User ID=sa;Password=123456;MultipleActiveResultSets=true", //"ConnectionString": "Data Source=192.168.10.74;Initial Catalog=VistarStarDataManage;User ID=sa;Password=Aa123456;MultipleActiveResultSets=true", // Sqlite 库连接字符串123456 //"ConnectionString": "PORT=5432;DATABASE=xxx;HOST=localhost;PASSWORD=xxx;USER ID=xxx", // PostgreSQL 库连接字符串 //"ConnectionString": "Server=localhost;Database=xxx;Uid=xxx;Pwd=xxx;SslMode=None;", // MySql 库连接字符串", @@ -63,7 +64,8 @@ { "ConfigId": "启威星 1.94.4.74", // 库标识 "DbType": "SqlServer", // 库类型 - "ConnectionString": "Data Source=192.168.10.101;Initial Catalog=SWManage_Vistar;User ID=sa;Password=Vistar2024.;MultipleActiveResultSets=true", + //"ConnectionString": "Data Source=192.168.10.101;Initial Catalog=SWManage_Vistar;User ID=sa;Password=Vistar2024.;MultipleActiveResultSets=true", + "ConnectionString": "Data Source=1.94.4.74;Initial Catalog=SWManage_Vistar;User ID=sa;Password=ASDzxc123.;MultipleActiveResultSets=true", //"ConnectionString": "Data Source=192.168.10.74;Initial Catalog=SWManage_Vistar;User ID=sa;Password=Aa123456;MultipleActiveResultSets=true", // 库连接字符串ASDzxc123. "DbSettings": { "EnableInitDb": false, // 启用库初始化 diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/MaterialVersions.cs b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/MaterialVersions.cs new file mode 100644 index 0000000..18d9721 --- /dev/null +++ b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/MaterialVersions.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Vistar.Application.Service.StockInquiry.Dto +{ + public class MaterialVersions + { + public int? Version_index { get; set; } + public string Version { get; set; } + } +} diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/PdmMaterialBom.cs b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/PdmMaterialBom.cs new file mode 100644 index 0000000..a517ecc --- /dev/null +++ b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/Dto/PdmMaterialBom.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Vistar.Application.Service.StockInquiry.Dto +{ + public class PdmMaterialBom + { + public long OrderIndex { get; set; } + /// + /// 物料编码 + /// + public string PartNumber { get; set; } + + /// + /// 名称 映射字段 + /// + public string Description { get; set; } + + /// + /// 数量 + /// + public float QtyManual { get; set; } + + /// + /// 代号 映射字段 + /// + public string fld005747 { get; set; } + + /// + /// 品牌 映射字段 + /// + public string fld005590 { get; set; } + + /// + /// 材质 映射字段 + /// + public string fld005587 { get; set; } + + /// + /// 表面处理 映射字段 + /// + public string fld006325 { get; set; } + + /// + /// 单位 映射字段 + /// + public string fld005744 { get; set; } + + /// + /// 版本+修订版 映射字段 + /// + public string childVersion { get; set; } + + /// + /// 库存 映射字段 + /// + public string fld006928 { get; set; } + + /// + /// 预留 映射字段 + /// + public string fld006929 { get; set; } + + /// + /// 未清采购申请数量 映射字段 + /// + public string fld006930 { get; set; } + + /// + /// 未清采购订单数量 映射字段 + /// + public string fld006931 { get; set; } + } +} diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/StockInquiryService.cs b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/StockInquiryService.cs index dcdce98..7dc5d72 100644 --- a/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/StockInquiryService.cs +++ b/admin.net.pro/Admin.NET/Vistar.Application/Service/StockInquiry/StockInquiryService.cs @@ -20,6 +20,7 @@ using System.ComponentModel; using System.Data.OscarClient; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using Vistar.Application.Common; using Vistar.Application.Const; @@ -27,6 +28,7 @@ using Vistar.Application.Entity; using Vistar.Application.SapService.Dto; using Vistar.Application.Service.StockInquiry.Dto; using Vistar.Application.Util; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionRequest.Types; namespace Vistar.Application.Service.StockInquiry; @@ -481,7 +483,7 @@ public class StockInquiryService : IDynamicApiController, ITransient UpdateableOutput.AddRange(bomStockInquiryOutput); // 如果需要暂停或者处理频率,可以在此处插入适当的延迟。 - await Task.Delay(1000); // 如果需要等待1秒,可以启用此行代码。 + await Task.Delay(1000); // 如果需要等待1秒,可以启用此行代码。 } // var tasks = data.Select(async item => @@ -622,7 +624,8 @@ public class StockInquiryService : IDynamicApiController, ITransient var Verpr = await _dataValidationService.ProcessNumber(apiOutput.Verpr.ToDecimal()); priceValue = Verpr == 0 ? "9999.99" : Verpr.ToString(); } - else { + else + { priceValue = "9999.99"; } @@ -1069,7 +1072,7 @@ public class StockInquiryService : IDynamicApiController, ITransient }; } - + }).ToList(); var bomStockInquiryOutput = await Task.WhenAll(tasks); // 等待当前批次的所有任务完成 @@ -1212,4 +1215,97 @@ public class StockInquiryService : IDynamicApiController, ITransient return UpdateableOutput.ToList(); } + /// + /// 获取物料版本 + /// + /// + /// + [AllowAnonymous] + public async Task> GetPdmMaterialVersions(string materialCode) + { + var versionsLiat = await _obj137Rep.AsQueryable() + .Where(x => x._System_objNBS == materialCode && x.deleted == false && x._system_objConfigurationName == "默认") + .Select(x => new MaterialVersions { Version_index = x.VersionIndex, Version = x.revision }) + .OrderByDescending(x => x.Version_index) + .ToListAsync(); + return versionsLiat; + } + + /// + /// 获取Bom + /// + /// + /// + /// + [ApiDescriptionSettings(Name = "GetPdmMaterialBom", Description = "获取Bom", Order = 1000), HttpGet] + [AllowAnonymous] + public async Task> GetPdmMaterialBom(string materialCode, string versions) + { + int versionsIndex = 0; + // 匹配一个或多个数字 + Match match = Regex.Match(versions, @"\d+"); + if (match.Success) + { + // 提取匹配的数字 + string matchedNumber = match.Value; + versionsIndex = int.Parse(matchedNumber); + } + + var materialData = await _obj137Rep.AsQueryable() + .Where(x => x._System_objNBS == materialCode && x.deleted == false && x.SWPDMConfigurationName == "默认" && x.VersionIndex == versionsIndex) + .OrderByDescending(x => x.idRecord) + .FirstAsync(); + + if (materialData == null) + { + return null; + } + + var bom137List = await _configurationDataRep.AsQueryable().InnerJoin((x, y) => x.ChildGuid == y.RecordGuid && x.childVersion == y.VersionIndex) + .Where(x => x.ParentGuid == materialData.RecordGuid && x.ParentVersion == materialData.VersionIndex && x.isDeleted == false && x.ConfigId == 8 && (x.fld005577 != "不包含" || x.fld005577 == null) && x.isSuppressed == false && x.inContext == false && (!(x.ParentSwFileType == 1 && x.isAddedFromSW == false))) + .Select((x, y) => new PdmMaterialBom + { + OrderIndex = (long)x.OrderIndex, + PartNumber = x.PartNumber, + Description = y._System_ObjDescription, + QtyManual = (float)x.QtyManual, + fld005747 = y._SWPDM_125_SW___, + fld005590 = y._SWPDM_65_SW___, + fld005587 = y._SWPDM_62_SW___, + fld006325 = y._SWPDM_61_SW_____, + fld005744 = y._SWPDM_126_SW___, + childVersion = y.VersionIndex.ToString()+" "+y.revision, + fld006928 = y.fld005623, + fld006929 = y.fld006530, + fld006930 = y.fld006532, + fld006931 = y.fld006531 + }) + .ToListAsync(); + + var bom112List = await _configurationDataRep.AsQueryable().InnerJoin((x, y) => x.ChildGuid == y.RecordGuid && x.childVersion == y.VersionIndex) + .Where(x => x.ParentGuid == materialData.RecordGuid && x.ParentVersion == materialData.VersionIndex && x.isDeleted == false && x.ConfigId == 8 && (x.fld005577 != "不包含" || x.fld005577 == null) && x.isSuppressed == false && x.inContext == false && (!(x.ParentSwFileType == 1 && x.isAddedFromSW == false))) + .Select((x, y) => new PdmMaterialBom + { + OrderIndex = (long)x.OrderIndex, + PartNumber = x.PartNumber, + Description = y._System_ObjDescription, + QtyManual = (float)x.QtyManual, + fld005747 = y.fld005323, + fld005590 = y.fld004592, + fld005587 = y.fld004593, + fld006325 = y.fld004903, + fld005744 = y.fld004594, + childVersion = y.VersionIndex.ToString() + " " + y.revision, + fld006928 = y.fld006751, + fld006929 = y.fld006750, + fld006930 = y.fld006753, + fld006931 = y.fld006752 + }) + .ToListAsync(); + + // 合并两个列表 + var combinedList = bom137List.Concat(bom112List).OrderBy(item => item.OrderIndex).ToList(); + + return combinedList; + } }