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