From f4e84a98facb28bbfc63343c81095a9787812e27 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期六, 30 八月 2025 16:25:51 +0800 Subject: [PATCH] 1.PDA分组织 --- Controllers/BaseController.cs | 31 +++------- Startup.cs | 4 + service/Wom/WomdaaManager.cs | 4 Properties/launchSettings.json | 28 ++++---- Controllers/Wom/WomdaaController.cs | 5 - entity/Base/RequestInfo.cs | 63 +++++++++++++++++++++ 6 files changed, 94 insertions(+), 41 deletions(-) diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs index 3caae53..52ffce2 100644 --- a/Controllers/BaseController.cs +++ b/Controllers/BaseController.cs @@ -1,34 +1,21 @@ 锘縰sing Microsoft.AspNetCore.Mvc; -using System; +using Microsoft.Extensions.DependencyInjection; public class BaseController : ControllerBase { - protected string OrgId + private RequestInfo _requestInfo; + + protected RequestInfo RequestInfo { get { - var orgId = GetOrgIdFromHeader(); - if (string.IsNullOrEmpty(orgId)) + if (_requestInfo == null) { - throw new ArgumentException("璇锋眰缁勭粐ID涓嶅瓨鍦紒璇锋鏌ヨ姹傚ご涓槸鍚﹀寘鍚湁鏁堢殑OrgId銆�"); + //蹇呭~椤� + //_requestInfo.ValidateRequired("OrgId"); + _requestInfo = HttpContext.RequestServices.GetService<RequestInfo>(); } - return orgId; + return _requestInfo; } - } - - private string GetOrgIdFromHeader() - { - if (HttpContext.Request.Headers.TryGetValue("OrgId", out var orgIdValue)) - { - return orgIdValue.ToString(); - } - return null; - } - - // 鍙�夛細鎻愪緵涓�涓畨鍏ㄨ幏鍙朞rgId鐨勬柟娉曪紝涓嶆姏鍑哄紓甯歌�屾槸杩斿洖榛樿鍊兼垨null - protected bool TryGetOrgId(out string orgId) - { - orgId = GetOrgIdFromHeader(); - return !string.IsNullOrEmpty(orgId); } } \ No newline at end of file diff --git a/Controllers/Wom/WomdaaController.cs b/Controllers/Wom/WomdaaController.cs index b4dc967..a2d8567 100644 --- a/Controllers/Wom/WomdaaController.cs +++ b/Controllers/Wom/WomdaaController.cs @@ -13,7 +13,6 @@ [Route("api/[controller]")] public class WomdaaController : BaseController { - private readonly WomdaaManager m = new(); private readonly MesPrintMangeer _mCf = new(); @@ -30,7 +29,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = m.GetProductionPickDaa001(query, OrgId); + resultInfos.tbBillList = m.GetProductionPickDaa001(query, RequestInfo); return new ResponseResult { status = 0, @@ -58,7 +57,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = m.GetItemsByDaa001(query, OrgId); + resultInfos.tbBillList = m.GetItemsByDaa001(query, RequestInfo); return new ResponseResult { status = 0, diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json index 68716f8..9fbf054 100644 --- a/Properties/launchSettings.json +++ b/Properties/launchSettings.json @@ -1,23 +1,14 @@ -锘縶 - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:55640", - "sslPort": 0 - } - }, +{ "profiles": { "http": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "http://localhost:5204", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5204" }, "IIS Express": { "commandName": "IISExpress", @@ -27,5 +18,14 @@ "ASPNETCORE_ENVIRONMENT": "Development" } } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:5204", + "sslPort": 0 + } } -} +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs index 7ab10eb..1f040a6 100644 --- a/Startup.cs +++ b/Startup.cs @@ -30,6 +30,10 @@ services.Configure<AppSettings>( Configuration.GetSection("AppSettings")); + // 娣诲姞鏈嶅姟娉ㄥ唽锛岃姹傚ご淇℃伅浼犻�掋�� + services.AddHttpContextAccessor(); + services.AddScoped<RequestInfo>(); + services.AddSwaggerGen(c => { c.SwaggerDoc("v1", diff --git a/entity/Base/RequestInfo.cs b/entity/Base/RequestInfo.cs new file mode 100644 index 0000000..08a12ba --- /dev/null +++ b/entity/Base/RequestInfo.cs @@ -0,0 +1,63 @@ +锘縰sing Microsoft.AspNetCore.Http; +using System.Dynamic; + +public class RequestInfo : DynamicObject +{ + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly ExpandoObject _data = new ExpandoObject(); + + public RequestInfo(IHttpContextAccessor httpContextAccessor) + { + _httpContextAccessor = httpContextAccessor; + InitializeData(); + } + + private void InitializeData() + { + // 鍒濆鍖栨墍鏈夐渶瑕佺殑璇锋眰澶村弬鏁� + SetValue("OrgId", GetHeaderValue("OrgId")); + //// 鍙互缁х画娣诲姞鍏朵粬鍙傛暟 + //SetValue("UserId", GetHeaderValue("UserId")); + //SetValue("Language", GetHeaderValue("Language")); + } + + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + string name = binder.Name; + return ((IDictionary<string, object>)_data).TryGetValue(name, out result); + } + + public override bool TrySetMember(SetMemberBinder binder, object value) + { + ((IDictionary<string, object>)_data)[binder.Name] = value; + return true; + } + + public string GetHeaderValue(string key) + { + var httpContext = _httpContextAccessor.HttpContext; + if (httpContext?.Request.Headers.TryGetValue(key, out var value) == true) + { + return value.ToString(); + } + return null; + } + + private void SetValue(string key, object value) + { + ((IDictionary<string, object>)_data)[key] = value; + } + + // 娣诲姞涓�涓柟娉曟潵妫�鏌ュ繀闇�鍙傛暟鏄惁瀛樺湪 + public void ValidateRequired(params string[] requiredFields) + { + foreach (var field in requiredFields) + { + if (!((IDictionary<string, object>)_data).ContainsKey(field) || + ((IDictionary<string, object>)_data)[field] == null) + { + throw new ArgumentException($"璇锋眰澶翠腑缂哄皯蹇呴渶鐨� {field} 鍙傛暟"); + } + } + } +} \ No newline at end of file diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs index cff4625..5d43f56 100644 --- a/service/Wom/WomdaaManager.cs +++ b/service/Wom/WomdaaManager.cs @@ -17,7 +17,7 @@ //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs //鑾峰彇宸ュ崟鍙� - public List<string> GetProductionPickDaa001(WarehouseQuery query,string orgId) + public List<string> GetProductionPickDaa001(WarehouseQuery query, dynamic requestInfo) { var sql = "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " + @@ -28,7 +28,7 @@ } //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡 - public ProductionPickDto GetItemsByDaa001(WarehouseQuery query,string OrgId) + public ProductionPickDto GetItemsByDaa001(WarehouseQuery query, dynamic requestInfo) { return getDaa001(query); } -- Gitblit v1.9.3