fix sap接口修改为调用jip v1
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user