fix 优化考勤上传
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -9,6 +9,7 @@ public class WerkEntity : SugarBaseEntity
|
||||
/// <summary>
|
||||
/// 人事范围
|
||||
/// </summary>
|
||||
[SugarColumn(UniqueGroupNameList = new[] { "idx_Werk_Werk" })]
|
||||
public string Werk { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -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<DeviceUploadLogEntity>()
|
||||
.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<DeviceUploadLogEntity>()
|
||||
.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)
|
||||
|
||||
@@ -12,26 +12,49 @@ public class JinkoJIPService : IJinkoJIPService
|
||||
{
|
||||
private readonly IHttpClientFactory _httpClientFactory;
|
||||
private readonly ILogger<JinkoJIPService> _logger;
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public JinkoJIPService(IHttpClientFactory httpClientFactory, ILogger<JinkoJIPService> logger)
|
||||
public JinkoJIPService(IHttpClientFactory httpClientFactory, ILogger<JinkoJIPService> 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<UploadAttendanceResponse> UploadAttendancesAsync(List<UploadAttendanceRequest> 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<UploadAttendanceResponse>();
|
||||
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<UploadAttendanceResponse> UploadAttendancesAsync(List<UploadAttendanceRequest> 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<UploadAttendanceResponse>();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取员工卡片信息RESUT地址
|
||||
/// </summary>
|
||||
public string EHR_GET_WORK_CARD_INFOApiUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// REST账号
|
||||
/// </summary>
|
||||
public string RestUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// REST密码
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user