fix sap接口修改为调用jip v1

This commit is contained in:
2025-02-08 17:05:47 +08:00
parent 1ca613a096
commit 5746649e06
2 changed files with 52 additions and 31 deletions

View File

@@ -1,21 +1,21 @@
using System.Net.Http.Headers;
using System.Text;
using Kurisu.AspNetCore.Startup;
namespace Dlhis.Basic;
public class JinkoSapHttpClientPack : BaseAppPack
{
public override void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient("jinko:sap", (_, httpClient) =>
{
httpClient.BaseAddress = new Uri("http://sappipap02.jinkosolar.cn:50200");
httpClient.Timeout = TimeSpan.FromMinutes(10);
const string credentials = "EHS_USER:y3R1hd2h*RICAC";
var headerValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", headerValue);
});
}
}
// using System.Net.Http.Headers;
// using System.Text;
// using Kurisu.AspNetCore.Startup;
//
// namespace Dlhis.Basic;
//
// public class JinkoSapHttpClientPack : BaseAppPack
// {
// public override void ConfigureServices(IServiceCollection services)
// {
// services.AddHttpClient("jinko:sap", (_, httpClient) =>
// {
// httpClient.BaseAddress = new Uri("http://sappipap02.jinkosolar.cn:50200");
// httpClient.Timeout = TimeSpan.FromMinutes(10);
//
// const string credentials = "EHS_USER:y3R1hd2h*RICAC";
// var headerValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials));
// httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", headerValue);
// });
// }
// }

View File

@@ -1,6 +1,7 @@
using System.Net;
using System.Text;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Jip.Api.ClientHandlers;
using Dlhis.Jip.Api.Dto;
using Dlhis.Jip.Api.Responses;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
@@ -11,21 +12,39 @@ namespace Dlhis.Basic.Organization.Services.Implements;
public class JinkoSapService : IJinkoSapService
{
private readonly IDbContext _dbContext;
private readonly IServiceProvider _serviceProvider;
private readonly ILogger<JinkoSapService> _logger;
private readonly IHttpClientFactory _httpClientFactory;
public JinkoSapService(IHttpClientFactory httpClientFactory, IDbContext dbContext, ILogger<JinkoSapService> logger)
public JinkoSapService(IHttpClientFactory httpClientFactory,
IDbContext dbContext,
IServiceProvider serviceProvider,
ILogger<JinkoSapService> logger)
{
_dbContext = dbContext;
_serviceProvider = serviceProvider;
_logger = logger;
_httpClientFactory = httpClientFactory;
}
private async Task<HttpClient> GetHttpClientAsync()
{
var token = await new JipTokenHandler().GetTokenAsync(_serviceProvider);
var httpClient = _httpClientFactory.CreateClient();
httpClient.BaseAddress = new Uri("http://jip.jinkosolar.com");
httpClient.Timeout = TimeSpan.FromMinutes(30);
httpClient.DefaultRequestHeaders.Add("Authorization", token);
return httpClient;
}
public async Task<SapOrganizationResponse> GetSapOrganizationsAsync()
{
const string apiUrl = "/RESTAdapter/Rest/EHR_ORGANIZATION/";
//const string apiUrl = "/RESTAdapter/Rest/EHR_ORGANIZATION/";
var httpClient = await GetHttpClientAsync();
var response = await _httpClientFactory.CreateClient("jinko:sap").PostAsync(apiUrl, new StringContent("{}", Encoding.UTF8, "application/json"));
var response = await httpClient.PostAsync("/JIP/HCM/HCM_SYN_01", new StringContent("{}", Encoding.UTF8, "application/json"));
response.EnsureSuccessStatusCode();
string responseJson = await response.Content.ReadAsStringAsync();
@@ -36,9 +55,9 @@ public class JinkoSapService : IJinkoSapService
public async Task<SapPositionResponse> GetPositionsAsync()
{
const string apiUrl = "/RESTAdapter/Rest/EHR_POSITION/";
var response = await _httpClientFactory.CreateClient("jinko:sap").PostAsync(apiUrl, new StringContent("{}", Encoding.UTF8, "application/json"));
//const string apiUrl = "/RESTAdapter/Rest/EHR_POSITION/";
var httpClient = await GetHttpClientAsync();
var response = await httpClient.PostAsync("/JIP/HCM/HCM_SYN_02", new StringContent("{}", Encoding.UTF8, "application/json"));
response.EnsureSuccessStatusCode();
string responseJson = await response.Content.ReadAsStringAsync();
@@ -50,7 +69,8 @@ public class JinkoSapService : IJinkoSapService
public async Task<SapPersonResponse> GetPersonsByWerkAsync(string werk)
{
const string apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
//const string apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
var httpClient = await GetHttpClientAsync();
var werkInfo = await _dbContext.Queryable<WerkEntity>()
.Where(x => x.Enable)
@@ -75,7 +95,7 @@ public class JinkoSapService : IJinkoSapService
};
var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
var response = await _httpClientFactory.CreateClient("jinko:sap").PostAsync(apiUrl, content);
var response = await httpClient.PostAsync("/JIP/HCM/HCM_SYN_03", content);
if (response.StatusCode != HttpStatusCode.OK)
{
_logger.LogError("获取{Werk}人事范围数据异常:{error}", werk, await response.Content.ReadAsStringAsync());
@@ -104,7 +124,8 @@ public class JinkoSapService : IJinkoSapService
public async Task<SapPersonResponse> GetPersonsByCodeAsync(string code)
{
const string apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
//const string apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
var httpClient = await GetHttpClientAsync();
var body = new
{
@@ -124,7 +145,7 @@ public class JinkoSapService : IJinkoSapService
};
var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
var response = await _httpClientFactory.CreateClient("jinko:sap").PostAsync(apiUrl, content);
var response = await httpClient.PostAsync("/JIP/HCM/HCM_SYN_03", content);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();