diff --git a/Src/Dlhis.ScheduledTask/Common/Services/Implements/JinkoSapService.cs b/Src/Dlhis.ScheduledTask/Common/Services/Implements/JinkoSapService.cs index b2aa5196..ca5b9628 100644 --- a/Src/Dlhis.ScheduledTask/Common/Services/Implements/JinkoSapService.cs +++ b/Src/Dlhis.ScheduledTask/Common/Services/Implements/JinkoSapService.cs @@ -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 _logger; private readonly IDbContext _dbContext; private readonly IHttpClientFactory _httpClientFactory; public JinkoSapService(IHttpClientFactory httpClientFactory, ILogger 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() + var werkInfo = await _dbContext.Queryable() .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 + { + new + { + WERKS = werkInfo.Werk + } + } + }, + T_PERSON = Array.Empty(), + T_PNO = Array.Empty(), + }; + + 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(jsonResponse); List persons = new(); List jobInfos = new(); List 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 - { - new - { - WERKS = item.Werk - } - } - }, - T_PERSON = Array.Empty(), - T_PNO = Array.Empty(), - }; + 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(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 persons = new(); - List jobInfos = new(); - List 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(jsonResponse); + + List persons = new(); + List jobInfos = new(); + List departmentInfos = new(); + if (personResp?.Person?.Items?.Any() == true) { persons.AddRange(personResp.Person.Items);