diff --git a/Src/Dlhis.Basic/appsettings.Development.json b/Src/Dlhis.Basic/appsettings.Development.json index 7b943fd9..7d904fe7 100644 --- a/Src/Dlhis.Basic/appsettings.Development.json +++ b/Src/Dlhis.Basic/appsettings.Development.json @@ -13,6 +13,15 @@ "Url": "http://localhost:5002/api/gainfos/face?token=", "Limit": 7200 }, + "SqlSugarOptions": { + "DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;", + "SlaveConnectionString": [], + "FaceConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=face;charset=utf8mb4;", + "Timeout": 30, + "SlowSqlTime": 1, + "EnableSqlLog": true, + "Generate": true + }, "SwaggerOptions": { "Enable": true, "Authority": "https://yikatong.isawesome.cn/oauth2", diff --git a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs index 6b6a7b76..d3142388 100644 --- a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs @@ -9,6 +9,7 @@ public class WerkEntity : SugarBaseEntity /// /// 人事范围 /// + [SugarColumn(UniqueGroupNameList = new[] { "idx_Werk_Werk" })] public string Werk { get; set; } /// diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs index 4587d2bc..f5b0c667 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs @@ -61,18 +61,21 @@ public class SyncOriginCardInfoJob }).Where(x => x.ZWORKCODE.IsPresent()).ToList(); var ids = requests.Select(x => x.Id).ToList(); - var r = await _jinkoJIPService.UploadAttendancesAsync(requests); - if (r.OLX == "0") + if (ids.Any()) { - await _dbContext.Updateable() - .SetColumns(x => x.Sync == true) - .SetColumns(x => x.ModifiedTime == DateTime.Now) - .Where(x => ids.Contains(x.Id)) - .ExecuteCommandAsync(); - } - else - { - throw new Exception(r.OMS); + var r = await _jinkoJIPService.UploadAttendancesAsync(requests); + if (r.OLX == "0") + { + await _dbContext.Updateable() + .SetColumns(x => x.Sync == true) + .SetColumns(x => x.ModifiedTime == DateTime.Now) + .Where(x => ids.Contains(x.Id)) + .ExecuteCommandAsync(); + } + else + { + throw new Exception(r.OMS); + } } } catch (Exception ex) diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoJIPService.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoJIPService.cs index ed00b0eb..e50bf97b 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoJIPService.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoJIPService.cs @@ -12,26 +12,49 @@ public class JinkoJIPService : IJinkoJIPService { private readonly IHttpClientFactory _httpClientFactory; private readonly ILogger _logger; + private readonly IConfiguration _configuration; - public JinkoJIPService(IHttpClientFactory httpClientFactory, ILogger logger) + public JinkoJIPService(IHttpClientFactory httpClientFactory, ILogger logger, IConfiguration configuration) { _httpClientFactory = httpClientFactory; _logger = logger; + _configuration = configuration; } - private HttpClient GetHttpClient() { var httpClient = _httpClientFactory.CreateClient(); - //httpClient.BaseAddress = new Uri(""); + httpClient.BaseAddress = new Uri(_configuration.GetSection("Jinko:Jip:BaseUrl").Value); //httpClient.Timeout = TimeSpan.FromMinutes(10); - var key = "FACE-7409WIBX"; - var secret = "be0a4b88-cd80-4509-b9b9-865205d0d3d8"; + var key = _configuration.GetSection("Jinko:Jip:Key").Value; + var secret = _configuration.GetSection("Jinko:Jip:Secret").Value; httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", IssueJwt(key, secret, 5)); return httpClient; } + public async Task UploadAttendancesAsync(List requests) + { + var body = new + { + T_DATA = requests, + }; + + var json = body.ToJson(); + + //_logger.LogInformation("上传考勤记录请求:{json}", json); + + var content = new StringContent(json, Encoding.UTF8, "application/json"); + var response = await GetHttpClient().PostAsync("/JIP/HCM/HCM_SWIPE_DATA_SAVE", content); + var responseJson = await response.Content.ReadAsStringAsync(); + + _logger.LogInformation("上传考勤记录响应:{json}", responseJson); + + var r = responseJson.ToObject(); + return r; + } + + private static string IssueJwt(string jwtKey, string jwtSecret, int mins) { @@ -60,25 +83,4 @@ public class JinkoJIPService : IJinkoJIPService var securityToken = jwtHandler.CreateToken(descriptor); return jwtHandler.WriteToken(securityToken); } - - public async Task UploadAttendancesAsync(List requests) - { - var body = new - { - T_DATA = requests, - }; - - var json = body.ToJson(); - - _logger.LogInformation("上传考勤记录请求:{json}", json); - - var content = new StringContent(json, Encoding.UTF8, "application/json"); - var response = await GetHttpClient().PostAsync("http://172.16.202.34:8000/JIP/HCM/HCM_SWIPE_DATA_SAVE", content); - var responseJson = await response.Content.ReadAsStringAsync(); - - _logger.LogInformation("上传考勤记录响应:{json}", responseJson); - - var r = responseJson.ToObject(); - return r; - } } diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/SyncOptions.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/SyncOptions.cs deleted file mode 100644 index 6936dd88..00000000 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/SyncOptions.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Kurisu.Core.ConfigurableOptions.Attributes; - - -namespace Dlhis.ScheduledTask.SyncSapInfo; - -[Configuration] -public class SyncOptions -{ - public string ServerUrl { get; private set; } - - public string UserName { get; private set; } - - public string Password { get; private set; } - - public string SyncTime { get; private set; } - - public int AttendanceUploadInterval { get; private set; } - - public string AttendanceUploadUrl { get; private set; } - - public string DlhisDatabase { get; private set; } - - public DateTime BeginSyncDate { get; private set; } - - public string EHRWebServiceUserName { get; set; } - public string EHRWebServicePassword { get; set; } - public string EHRInsertRecordApiUrl { get; set; } - public string EHRDeleteRecordApiUrl { get; set; } - - public string EHRSavePhotoApiUrl { get; set; } - - - /// - /// 获取员工卡片信息RESUT地址 - /// - public string EHR_GET_WORK_CARD_INFOApiUrl { get; set; } - - /// - /// REST账号 - /// - public string RestUserName { get; set; } - - /// - /// REST密码 - /// - public string RestPassword { get; set; } - - - private static int SafeParseInt(string value, int defaultValue = 0) - { - if (int.TryParse(value, out int i)) - { - return i; - } - return defaultValue; - } - - private static bool SafeParseBoolean(string value, bool defaultValue = false) - { - if (bool.TryParse(value, out var b)) - { - return b; - } - return defaultValue; - } - - private static DateTime SafeParseDate(string value, DateTime defaultValue) - { - if (DateTime.TryParse(value, out var b)) - { - return b; - } - return defaultValue; - } -} diff --git a/Src/Dlhis.ScheduledTask/appsettings.json b/Src/Dlhis.ScheduledTask/appsettings.json index 2fe0bba9..1bc1a466 100644 --- a/Src/Dlhis.ScheduledTask/appsettings.json +++ b/Src/Dlhis.ScheduledTask/appsettings.json @@ -47,13 +47,12 @@ "ClientSecret": "123456" } }, - "SyncOptions": { - "ServerUrl": "http://172.16.7.58:8125", - "UserName": "admin_ws", - "Password": "jinkohr@2017", - "SyncTime": "00:00", - "AttendanceUploadInterval": "30", - "BeginSyncDate": "2020-5-1" + "JinkoOptions": { + "Jip": { + "BaseUrl": "http://172.16.202.34:8000", + "Key": "FACE-7409WIBX", + "Secret": "be0a4b88-cd80-4509-b9b9-865205d0d3d8" + } }, "RedisOptions": { "ConnectionString": "192.168.199.30:30115,defaultDatabase:1,password=dlhis123"