Merge branch 'develop'
This commit is contained in:
commit
b985a5575a
7 changed files with 59 additions and 13 deletions
|
|
@ -113,6 +113,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
var json = JsonConvert.SerializeObject(body);
|
var json = JsonConvert.SerializeObject(body);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
//stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
//stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
||||||
|
|
|
||||||
|
|
@ -1575,6 +1575,11 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CalculateInsigniaRequestBkkByType(string type = "officer")
|
||||||
|
{
|
||||||
|
CalInsigniaRequestBkkByType(type).GetAwaiter().GetResult();
|
||||||
|
}
|
||||||
|
|
||||||
//คำนวนผู้ได้รับเครื่องราชฯ
|
//คำนวนผู้ได้รับเครื่องราชฯ
|
||||||
public async Task CalInsigniaRequestBkkByType(string type = "officer")
|
public async Task CalInsigniaRequestBkkByType(string type = "officer")
|
||||||
{
|
{
|
||||||
|
|
@ -1583,12 +1588,10 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
.AsQueryable()
|
.AsQueryable()
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
insigniaPeriods = insigniaPeriods
|
insigniaPeriods = insigniaPeriods
|
||||||
.Where(x => x.StartDate <= DateTime.Now.Date || x.InsigniaRequests.Count == 0).ToList();
|
.Where(x => x.StartDate <= DateTime.Now.Date && x.InsigniaRequests.Where(x => x.ProfileType!.ToLower().Trim() == type.Trim().ToLower()).Count() == 0).ToList();
|
||||||
|
|
||||||
foreach (var insigniaPeriod in insigniaPeriods)
|
foreach (var insigniaPeriod in insigniaPeriods)
|
||||||
{
|
{
|
||||||
if (insigniaPeriod.StartDate >= DateTime.Now.Date || insigniaPeriod.InsigniaRequests.Count > 0)
|
|
||||||
continue;
|
|
||||||
var organizations = await _userProfileRepository.GetActiveRootLatestAsync(AccessToken);
|
var organizations = await _userProfileRepository.GetActiveRootLatestAsync(AccessToken);
|
||||||
if (organizations == null)
|
if (organizations == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var apiPath = $"{_configuration["API"]}/org/dotnet/root/officer/{rootId}";
|
var apiPath = $"{_configuration["API"]}/org/unauthorize/root/officer/{rootId}";
|
||||||
var apiKey = _configuration["API_KEY"];
|
var apiKey = _configuration["API_KEY"];
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -132,7 +132,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var apiPath = $"{_configuration["API"]}/org/dotnet/find/employee/position";
|
var apiPath = $"{_configuration["API"]}/org/unauthorize/find/employee/position";
|
||||||
var apiKey = _configuration["API_KEY"];
|
var apiKey = _configuration["API_KEY"];
|
||||||
|
|
||||||
var body = new
|
var body = new
|
||||||
|
|
@ -146,7 +146,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
// สร้าง HTTP content
|
// สร้าง HTTP content
|
||||||
//var body = new StringContent(bodyJson, Encoding.UTF8, "application/json");
|
//var body = new StringContent(bodyJson, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var apiResult = await PostExternalAPIAsync(apiPath, accessToken, body, apiKey);
|
var apiResult = await PostExternalAPIAsync(apiPath, accessToken ?? "", body, apiKey);
|
||||||
|
|
||||||
if (apiResult != null)
|
if (apiResult != null)
|
||||||
{
|
{
|
||||||
|
|
@ -157,7 +157,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
catch
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
@ -1088,7 +1088,7 @@ namespace BMA.EHR.Application.Repositories
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var apiPath = $"{_configuration["API"]}/org/active/root/all";
|
var apiPath = $"{_configuration["API"]}/org/unauthorize/active/root/all";
|
||||||
var apiKey = _configuration["API_KEY"];
|
var apiKey = _configuration["API_KEY"];
|
||||||
|
|
||||||
var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey);
|
var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey);
|
||||||
|
|
|
||||||
|
|
@ -791,7 +791,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
|
|
||||||
var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable()
|
var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable()
|
||||||
.Include(x => x.InsigniaManageProfiles)
|
.Include(x => x.InsigniaManageProfiles)
|
||||||
.FirstOrDefaultAsync(x => x.OrganizationId == insigniaNoteProfile.RootId && x.InsigniaManage == insigniaManage);
|
.FirstOrDefaultAsync(x => x.OrganizationId == insigniaNoteProfile.RootId && x.InsigniaManage.Id == insigniaManage.Id); // แก้เป็นหาจากหน่วยงานยืมเพิม manage id
|
||||||
if (insigniaManageOrganiation == null)
|
if (insigniaManageOrganiation == null)
|
||||||
return Error(GlobalMessages.InsigniaManageOrgNotFound);
|
return Error(GlobalMessages.InsigniaManageOrgNotFound);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -286,6 +286,14 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
[HttpGet("test")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
public async Task<ActionResult<ResponseObject>> Test()
|
||||||
|
{
|
||||||
|
await _insigniaReportRepository.CalInsigniaRequestBkkByType("employee");
|
||||||
|
return Success();
|
||||||
|
}
|
||||||
|
|
||||||
#region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ "
|
#region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ "
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -125,9 +125,14 @@ var builder = WebApplication.CreateBuilder(args);
|
||||||
DashboardJobListLimit = 50000,
|
DashboardJobListLimit = 50000,
|
||||||
TransactionTimeout = TimeSpan.FromMinutes(1),
|
TransactionTimeout = TimeSpan.FromMinutes(1),
|
||||||
InvisibilityTimeout = TimeSpan.FromHours(3),
|
InvisibilityTimeout = TimeSpan.FromHours(3),
|
||||||
TablesPrefix = "Hangfire"
|
TablesPrefix = "Hangfire_Insignia"
|
||||||
})));
|
})));
|
||||||
builder.Services.AddHangfireServer();
|
builder.Services.AddHangfireServer(options =>
|
||||||
|
{
|
||||||
|
options.ServerName = "Insignia-Server"; // ← ระบุชื่อ server
|
||||||
|
options.WorkerCount = 5; // ←
|
||||||
|
options.Queues = new[] { "insignia" }; // ← worker จะรันเฉพาะ queue "insignia"
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// RabbitMQ
|
// RabbitMQ
|
||||||
|
|
@ -184,10 +189,34 @@ var app = builder.Build();
|
||||||
{
|
{
|
||||||
manager.AddOrUpdate("แจ้งเตือนรอบเครื่องราชฯ", Job.FromExpression<InsigniaReportRepository>(x => x.NotifyInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
manager.AddOrUpdate("แจ้งเตือนรอบเครื่องราชฯ", Job.FromExpression<InsigniaReportRepository>(x => x.NotifyInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
||||||
manager.AddOrUpdate("ล็อกข้อมูลรอบเครื่องราชฯ", Job.FromExpression<InsigniaReportRepository>(x => x.LockInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
manager.AddOrUpdate("ล็อกข้อมูลรอบเครื่องราชฯ", Job.FromExpression<InsigniaReportRepository>(x => x.LockInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
||||||
manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ", Job.FromExpression<InsigniaReportRepository>(x => x.CalInsigniaRequestBkkByType("officer")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
//manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ", () => CalculateInsigniaRequestBkkByType("officer"), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
||||||
manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ Employee", Job.FromExpression<InsigniaReportRepository>(x => x.CalInsigniaRequestBkkByType("employee")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
//manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ Employee", Job.FromExpression<InsigniaReportRepository>(x => x.CalInsigniaRequestBkkByType("employee")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RecurringJob.AddOrUpdate<InsigniaReportRepository>(
|
||||||
|
"คำนวนผู้ได้รับเครื่องราชฯ",
|
||||||
|
x => x.CalculateInsigniaRequestBkkByType("officer"),
|
||||||
|
Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]) - 5,
|
||||||
|
Int32.Parse(builder.Configuration["KeycloakCron:Minute"])),
|
||||||
|
new RecurringJobOptions
|
||||||
|
{
|
||||||
|
TimeZone = TimeZoneInfo.Local,
|
||||||
|
QueueName = "insignia" // ← กำหนด queue
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RecurringJob.AddOrUpdate<InsigniaReportRepository>(
|
||||||
|
"คำนวนผู้ได้รับเครื่องราชฯ Employee",
|
||||||
|
x => x.CalculateInsigniaRequestBkkByType("employee"),
|
||||||
|
Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]) - 4,
|
||||||
|
Int32.Parse(builder.Configuration["KeycloakCron:Minute"])),
|
||||||
|
new RecurringJobOptions
|
||||||
|
{
|
||||||
|
TimeZone = TimeZoneInfo.Local,
|
||||||
|
QueueName = "insignia" // ← กำหนด queue
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// apply migrations
|
// apply migrations
|
||||||
await using var scope = app.Services.CreateAsyncScope();
|
await using var scope = app.Services.CreateAsyncScope();
|
||||||
await using var db = scope.ServiceProvider.GetRequiredService<ApplicationDBContext>();
|
await using var db = scope.ServiceProvider.GetRequiredService<ApplicationDBContext>();
|
||||||
|
|
@ -196,9 +225,13 @@ var app = builder.Build();
|
||||||
//var rabbitMQConsumer = app.Services.GetRequiredService<RabbitMQConsumer>();
|
//var rabbitMQConsumer = app.Services.GetRequiredService<RabbitMQConsumer>();
|
||||||
//rabbitMQConsumer.StartReceiving();
|
//rabbitMQConsumer.StartReceiving();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.Run();
|
app.Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ConfigureLogs()
|
void ConfigureLogs()
|
||||||
{
|
{
|
||||||
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
|
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
|
||||||
|
|
|
||||||
|
|
@ -2364,6 +2364,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
||||||
commandCode = r.commandCode,
|
commandCode = r.commandCode,
|
||||||
commandName = r.commandName,
|
commandName = r.commandName,
|
||||||
remark = r.remark,
|
remark = r.remark,
|
||||||
|
resignId = p.Id,
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
var baseAPIOrg = _configuration["API"];
|
var baseAPIOrg = _configuration["API"];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue