fix 异常控制

This commit is contained in:
2024-04-03 23:23:36 +08:00
parent aa07a90b78
commit 5e4e5d5856

View File

@@ -3,7 +3,6 @@ using System.Text;
using Dlhis.Entity.Basic.Entity;
using Dlhis.ScheduledTask.Common.Dto;
using Dlhis.ScheduledTask.Common.Response;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.SqlSugar.Services;
using Newtonsoft.Json;
@@ -11,13 +10,11 @@ namespace Dlhis.ScheduledTask.Common.Services.Implements;
public class JinkoSapService : IJinkoSapService
{
private readonly ILogger<JinkoSapService> _logger;
private readonly IDbContext _dbContext;
private readonly IHttpClientFactory _httpClientFactory;
public JinkoSapService(IHttpClientFactory httpClientFactory, ILogger<JinkoSapService> logger, IDbContext dbContext)
{
_logger = logger;
_dbContext = dbContext;
_httpClientFactory = httpClientFactory;
}
@@ -66,64 +63,53 @@ public class JinkoSapService : IJinkoSapService
{
var apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
var werks = await _dbContext.Queryable<WerkEntity>()
var werkInfo = await _dbContext.Queryable<WerkEntity>()
.Where(x => x.Enable)
.WhereIF(werk.IsPresent(), x => x.Werk == werk)
.ToListAsync();
.Where(x => x.Werk == werk)
.SingleAsync();
var body = new
{
I_ALLINFO = "X",
T_WERKS = new
{
item = new List<object>
{
new
{
WERKS = werkInfo.Werk
}
}
},
T_PERSON = Array.Empty<string>(),
T_PNO = Array.Empty<string>(),
};
var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
var response = await GetHttpClient().PostAsync(apiUrl, content);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
var personResp = JsonConvert.DeserializeObject<SapPersonResponse>(jsonResponse);
List<SapPersonItem> persons = new();
List<SapPersonJobStatus> jobInfos = new();
List<SapPersonDepartmentStatus> departmentInfos = new();
foreach (var item in werks)
if (personResp?.Person?.Items?.Any() == true)
{
try
{
var body = new
{
I_ALLINFO = "X",
T_WERKS = new
{
item = new List<object>
{
new
{
WERKS = item.Werk
}
}
},
T_PERSON = Array.Empty<string>(),
T_PNO = Array.Empty<string>(),
};
persons.AddRange(personResp.Person.Items);
}
var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
var response = await GetHttpClient().PostAsync(apiUrl, content);
response.EnsureSuccessStatusCode();
if (personResp?.JobStatusInfo?.Items?.Any() == true)
{
jobInfos.AddRange(personResp.JobStatusInfo.Items);
}
var jsonResponse = await response.Content.ReadAsStringAsync();
var personResp = JsonConvert.DeserializeObject<SapPersonResponse>(jsonResponse);
if (personResp?.Person?.Items?.Any() == true)
{
persons.AddRange(personResp.Person.Items);
}
if (personResp?.JobStatusInfo?.Items?.Any() == true)
{
jobInfos.AddRange(personResp.JobStatusInfo.Items);
}
if (personResp?.DepartmentInfo?.Items?.Any() == true)
{
departmentInfos.AddRange(personResp.DepartmentInfo.Items);
}
_logger.LogInformation("获取人事范围{werk}完成", item.Werk);
}
catch (Exception ex)
{
_logger.LogError(ex, "获取人事范围{werk}失败:{message}", item.Werk, ex.Message);
}
if (personResp?.DepartmentInfo?.Items?.Any() == true)
{
departmentInfos.AddRange(personResp.DepartmentInfo.Items);
}
return new SapPersonResponse()
@@ -147,10 +133,6 @@ public class JinkoSapService : IJinkoSapService
{
var apiUrl = "/RESTAdapter/Rest/EHR_PERSONNEL/";
List<SapPersonItem> persons = new();
List<SapPersonJobStatus> jobInfos = new();
List<SapPersonDepartmentStatus> departmentInfos = new();
var body = new
{
I_ALLINFO = "X",
@@ -175,6 +157,11 @@ public class JinkoSapService : IJinkoSapService
var jsonResponse = await response.Content.ReadAsStringAsync();
var personResp = JsonConvert.DeserializeObject<SapPersonResponse>(jsonResponse);
List<SapPersonItem> persons = new();
List<SapPersonJobStatus> jobInfos = new();
List<SapPersonDepartmentStatus> departmentInfos = new();
if (personResp?.Person?.Items?.Any() == true)
{
persons.AddRange(personResp.Person.Items);