南骏 池
5 天以前 f4e84a98facb28bbfc63343c81095a9787812e27
1.PDA分组织
已修改5个文件
已添加1个文件
135 ■■■■■ 文件已修改
Controllers/BaseController.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Wom/WomdaaController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Properties/launchSettings.json 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Startup.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/Base/RequestInfo.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WomdaaManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/BaseController.cs
@@ -1,34 +1,21 @@
using 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;
    }
    // å¯é€‰ï¼šæä¾›ä¸€ä¸ªå®‰å…¨èŽ·å–OrgId的方法,不抛出异常而是返回默认值或null
    protected bool TryGetOrgId(out string orgId)
    {
        orgId = GetOrgIdFromHeader();
        return !string.IsNullOrEmpty(orgId);
    }
}
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,
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
    }
  }
}
}
Startup.cs
@@ -30,6 +30,10 @@
        services.Configure<AppSettings>(
            Configuration.GetSection("AppSettings"));
        // æ·»åŠ æœåŠ¡æ³¨å†Œï¼Œè¯·æ±‚å¤´ä¿¡æ¯ä¼ é€’ã€‚
        services.AddHttpContextAccessor();
        services.AddScoped<RequestInfo>();
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1",
entity/Base/RequestInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
using 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} å‚æ•°");
            }
        }
    }
}
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);
    }