fix 异常控制
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user