Merge branch 'develop'
All checks were successful
Build & Deploy Retirement Service / build (push) Successful in 1m10s
All checks were successful
Build & Deploy Retirement Service / build (push) Successful in 1m10s
This commit is contained in:
commit
b345091905
7 changed files with 59 additions and 13 deletions
|
|
@ -113,6 +113,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
{
|
||||
try
|
||||
{
|
||||
|
||||
var json = JsonConvert.SerializeObject(body);
|
||||
var stringContent = new StringContent(json, Encoding.UTF8, "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")
|
||||
{
|
||||
|
|
@ -1583,12 +1588,10 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
.AsQueryable()
|
||||
.ToListAsync();
|
||||
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)
|
||||
{
|
||||
if (insigniaPeriod.StartDate >= DateTime.Now.Date || insigniaPeriod.InsigniaRequests.Count > 0)
|
||||
continue;
|
||||
var organizations = await _userProfileRepository.GetActiveRootLatestAsync(AccessToken);
|
||||
if (organizations == null)
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
{
|
||||
try
|
||||
{
|
||||
var apiPath = $"{_configuration["API"]}/org/dotnet/root/officer/{rootId}";
|
||||
var apiPath = $"{_configuration["API"]}/org/unauthorize/root/officer/{rootId}";
|
||||
var apiKey = _configuration["API_KEY"];
|
||||
|
||||
|
||||
|
|
@ -132,7 +132,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
{
|
||||
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 body = new
|
||||
|
|
@ -146,7 +146,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
// สร้าง HTTP content
|
||||
//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)
|
||||
{
|
||||
|
|
@ -157,7 +157,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
|
||||
return null;
|
||||
}
|
||||
catch
|
||||
catch(Exception ex)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
|
@ -1088,7 +1088,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
{
|
||||
try
|
||||
{
|
||||
var apiPath = $"{_configuration["API"]}/org/active/root/all";
|
||||
var apiPath = $"{_configuration["API"]}/org/unauthorize/active/root/all";
|
||||
var apiKey = _configuration["API_KEY"];
|
||||
|
||||
var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey);
|
||||
|
|
|
|||
|
|
@ -791,7 +791,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
|||
|
||||
var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable()
|
||||
.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)
|
||||
return Error(GlobalMessages.InsigniaManageOrgNotFound);
|
||||
|
||||
|
|
|
|||
|
|
@ -286,6 +286,14 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
|||
|
||||
#endregion
|
||||
|
||||
[HttpGet("test")]
|
||||
[AllowAnonymous]
|
||||
public async Task<ActionResult<ResponseObject>> Test()
|
||||
{
|
||||
await _insigniaReportRepository.CalInsigniaRequestBkkByType("employee");
|
||||
return Success();
|
||||
}
|
||||
|
||||
#region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ "
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -125,9 +125,14 @@ var builder = WebApplication.CreateBuilder(args);
|
|||
DashboardJobListLimit = 50000,
|
||||
TransactionTimeout = TimeSpan.FromMinutes(1),
|
||||
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
|
||||
|
|
@ -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.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("คำนวนผู้ได้รับเครื่องราชฯ 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("คำนวนผู้ได้รับเครื่องราชฯ", () => 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);
|
||||
}
|
||||
|
||||
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
|
||||
await using var scope = app.Services.CreateAsyncScope();
|
||||
await using var db = scope.ServiceProvider.GetRequiredService<ApplicationDBContext>();
|
||||
|
|
@ -196,9 +225,13 @@ var app = builder.Build();
|
|||
//var rabbitMQConsumer = app.Services.GetRequiredService<RabbitMQConsumer>();
|
||||
//rabbitMQConsumer.StartReceiving();
|
||||
|
||||
|
||||
|
||||
app.Run();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ConfigureLogs()
|
||||
{
|
||||
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
|
||||
|
|
|
|||
|
|
@ -2364,6 +2364,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
commandCode = r.commandCode,
|
||||
commandName = r.commandName,
|
||||
remark = r.remark,
|
||||
resignId = p.Id,
|
||||
}).ToList();
|
||||
|
||||
var baseAPIOrg = _configuration["API"];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue