Merge branch 'develop' into dev
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s

* develop:
  build reload image
  add authname
  แก้ลำดับผลสอบ
  test build
  build no noti
  โหลดใบรับรอง
This commit is contained in:
Warunee Tamkoo 2025-09-30 16:12:28 +07:00
commit 3ed62cea92
7 changed files with 113 additions and 51 deletions

View file

@ -4,20 +4,13 @@ on:
push:
tags:
- "reportv1-[0-9]+.[0-9]+.[0-9]+"
# push:
# tags:
# - 'v[0-9]+.[0-9]+.[0-9]+'
# tags-ignore:
# - '2.*'
# Allow run workflow manually from Action tab
workflow_dispatch:
env:
REGISTRY: docker.frappet.com
IMAGE_NAME: ehr/bma-ehr-report-service
DEPLOY_HOST: frappet.com
DEPLOY_PORT: 10102
COMPOSE_PATH: /home/frappet/docker/bma-ehr
# COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report
TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
jobs:

View file

@ -11,6 +11,8 @@ using BMA.EHR.Organization.Service.Extensions;
// using BMA.EHR.Core;
using System.Text;
using static System.Runtime.InteropServices.JavaScript.JSType;
using System.Net.Http.Headers;
using Newtonsoft.Json;
namespace BMA.EHR.Report.Service.Controllers
{
@ -28,6 +30,7 @@ namespace BMA.EHR.Report.Service.Controllers
private readonly IWebHostEnvironment _hostingEnvironment;
private readonly IConfiguration _configuration;
private readonly string space = "";
private readonly IHttpContextAccessor _httpContextAccessor;
#endregion
@ -35,13 +38,16 @@ namespace BMA.EHR.Report.Service.Controllers
public ExamReportController(ExamDbContext context,
IWebHostEnvironment hostingEnvironment,
IHttpContextAccessor httpContextAccessor,
IConfiguration configuration)
{
this._context = context;
this._hostingEnvironment = hostingEnvironment;
this._configuration = configuration;
this._httpContextAccessor = httpContextAccessor;
}
private string? token => _httpContextAccessor.HttpContext.Request.Headers["Authorization"];
#endregion
#region " Methods "
@ -108,6 +114,34 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var _data = await _context.Disables.AsQueryable()
.Include(x => x.PeriodExam)
.Where(x => x.PeriodExam.Id == id)
.Where(x => x.ExamId == examId)
.FirstOrDefaultAsync();
if (_data == null)
return Error("ไม่พบข้อมูลในระบบ");
// if (_data.AuthName == null || _data.AuthName == "")
// {
// var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
// using (var client = new HttpClient())
// {
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
// client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
// var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
// var _res = await client.SendAsync(_req);
// var _result = await _res.Content.ReadAsStringAsync();
// if (_res.IsSuccessStatusCode)
// {
// var org = JsonConvert.DeserializeObject<dynamic>(_result);
// _data.AuthName = org.result.name == null ? "" : org.result.name;
// _data.AuthPosition = org.result.position == null ? "" : org.result.position;
// await _context.SaveChangesAsync();
// }
// }
// }
var data = await _context.Disables.AsQueryable()
.Include(x => x.PeriodExam)
.Where(x => x.PeriodExam.Id == id)
@ -125,8 +159,8 @@ namespace BMA.EHR.Report.Service.Controllers
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
ExamResult = sr == null ? "" : sr.ExamStatus,
EndDate = p.PeriodExam.RegisterEndDate == null ? "" : (p.PeriodExam.RegisterEndDate.Value.ToThaiFullDate3()),
AuthName = "นายณัฐพงศ์ ดิษยบุตร",
AuthPosition = "หัวหน้าสำนักงาน ก.ก."
AuthName = p.PeriodExam.AuthName,
AuthPosition = p.PeriodExam.AuthPosition
})
.FirstOrDefaultAsync();
@ -443,7 +477,7 @@ namespace BMA.EHR.Report.Service.Controllers
//University = p.Educations.First().University,
//PositionName = p.PositionName,
ExamName = $"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round.ToString().ToThaiNumber()}/{p.PeriodExam.Year.Value.ToThaiYear().ToString().ToThaiNumber()}",
Number = sr == null ? "" : sr.Number,
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
//FullA = sr == null ? "" : (sr.FullA.ToString()),
//SumA = sr == null ? "" : (sr.SumA.ToString()),
//FullB = sr == null ? "" : (sr.FullB.ToString()),
@ -452,8 +486,7 @@ namespace BMA.EHR.Report.Service.Controllers
//SumC = sr == null ? "" : (sr.SumC.ToString()),
SumScore = sr == null
? ""
//: (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0 ) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
})
.OrderBy(x => x.Number)
.Where(x => x.Id == id)
@ -462,10 +495,11 @@ namespace BMA.EHR.Report.Service.Controllers
if (data.Count == 0)
return Error("ไม่พบข้อมูลในระบบ");
var data_ = data.Select(x => new
{
x.ExamName,
Number = x.Number.ToThaiNumber(),
Number = x.Number.ToString().ToThaiNumber(),
x.ExamId,
x.FullName,
x.SumScore

View file

@ -75,23 +75,34 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var name = "";
var position = "";
var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
var _res = await client.SendAsync(_req);
var _result = await _res.Content.ReadAsStringAsync();
if (_res.IsSuccessStatusCode)
{
var org = JsonConvert.DeserializeObject<dynamic>(_result);
name = org.result.rootId == null ? "" : org.result.rootId;
position = org.result.rootId == null ? "" : org.result.rootId;
}
}
var _data = await _context.Recruits.AsQueryable()
.Include(x => x.RecruitImport)
.Where(x => x.RecruitImport.Id == id)
.Where(x => x.ExamId == examId)
.FirstOrDefaultAsync();
if (_data == null)
return Error("ไม่พบข้อมูลในระบบ");
// if (_data.AuthName == null || _data.AuthName == "")
// {
// var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
// using (var client = new HttpClient())
// {
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
// client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
// var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
// var _res = await client.SendAsync(_req);
// var _result = await _res.Content.ReadAsStringAsync();
// if (_res.IsSuccessStatusCode)
// {
// var org = JsonConvert.DeserializeObject<dynamic>(_result);
// _data.AuthName = org.result.name == null ? "" : org.result.name;
// _data.AuthPosition = org.result.position == null ? "" : org.result.position;
// await _context.SaveChangesAsync();
// }
// }
// }
var data = await _context.Recruits.AsQueryable()
.Include(x => x.RecruitImport)
.Where(x => x.RecruitImport.Id == id)
@ -109,8 +120,8 @@ namespace BMA.EHR.Report.Service.Controllers
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
ExamResult = sr == null ? "" : sr.ExamStatus,
EndDate = p.RecruitImport.RegisterEndDate == null ? "-" : p.RecruitImport.RegisterEndDate.Value.ToThaiFullDate3(),
AuthName = name,
AuthPosition = position
AuthName = p.RecruitImport.AuthName,
AuthPosition = p.RecruitImport.AuthPosition
})
.FirstOrDefaultAsync();
if (data == null)
@ -391,7 +402,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var data = await _context.Recruits.AsQueryable()
var data = await _context.Recruits.AsQueryable()
.Include(x => x.RecruitImport)
.ThenInclude(x => x.ScoreImport)
.Include(x => x.Documents)
@ -424,8 +435,7 @@ namespace BMA.EHR.Report.Service.Controllers
? ""
: $"{p.RecruitImport.Name} ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}",
Number = sr.Number == null ? "" : sr.Number,
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
//ExamCount = _recruitService.GetExamCount(p.CitizenId),
//ScoreExpire = p.RecruitImport.AnnouncementDate == null ? "" : p.RecruitImport.AnnouncementDate.Value.AddYears(2).ToThaiShortDate(),
@ -438,19 +448,20 @@ namespace BMA.EHR.Report.Service.Controllers
//SumC = sr.SumC == null ? 0.0 : sr.SumC,
SumScore = sr == null
? ""
: (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
})
.OrderBy(x => x.Number)
.Where(x => x.Id == id)
.Where(x => x.ExamResult == "ผ่าน")
.ToListAsync();
if (data.Count == 0) return Error("ไม่พบข้อมูลในระบบ");
if (data.Count == 0)
return Error("ไม่พบข้อมูลในระบบ");
var data_ = data.Select(x => new
{
x.ExamName,
Number = x.Number.ToThaiNumber(),
Number = x.Number.ToString().ToThaiNumber(),
x.ExamId,
x.FullName,
x.SumScore

View file

@ -78,5 +78,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Models.Disables
public DateTime ApplyDate { get; set; }
public string? PositionName { get; set; }
public string? PositionType { get; set; }
public string? PositionLevel { get; set; }
// public string? AuthName { get; set; }
// public string? AuthPosition { get; set; }
[Comment("บัญชีสอบ")]
public string? HddPosition { get; set; } = string.Empty;
[Comment("ประเภทการสอบภาค ก.")]
public string? typeTest { get; set; } = string.Empty;
}
}

View file

@ -88,6 +88,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Models
[Comment("สำนัก")]
public string? Category { get; set; }
public string? AuthName { get; set; }
public string? AuthPosition { get; set; }
[Comment("รายชื่อคนสม้ครในรอบ")]
public List<Candidate> Candidate { get; set; } = new List<Candidate>();

View file

@ -78,5 +78,15 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits
public DateTime ApplyDate { get; set; }
public string? PositionName { get; set; }
public string? PositionType { get; set; }
public string? PositionLevel { get; set; }
// public string? AuthName { get; set; }
// public string? AuthPosition { get; set; }
[Comment("บัญชีสอบ")]
public string? HddPosition { get; set; } = string.Empty;
[Comment("ประเภทการสอบภาค ก.")]
public string? typeTest { get; set; } = string.Empty;
}
}

View file

@ -6,16 +6,16 @@ using BMA.EHR.Report.Service.Models;
namespace BMA.EHR.Recruit.Service.Models.Recruits
{
public class RecruitImport : EntityBase
{
[Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)]
public int Year { get; set; }
public class RecruitImport : EntityBase
{
[Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)]
public int Year { get; set; }
[Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)]
public string Name { get; set; } = string.Empty;
[Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)]
public string Name { get; set; } = string.Empty;
[Required, Comment("ครั้งที่"), Column(Order = 3)]
public int Order { get; set; } = 1;
[Required, Comment("ครั้งที่"), Column(Order = 3)]
public int Order { get; set; } = 1;
[Column(Order = 4, TypeName = "text"), Comment("รายละเอียด")]
public string? Detail { get; set; }
@ -46,15 +46,17 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits
[Column(Order = 13, TypeName = "text"), Comment("หมายเหตุ")]
public string? Note { get; set; }
public string? AuthName { get; set; }
public string? AuthPosition { get; set; }
public DateTime? AnnouncementDate { get; set; }
public Document ImportFile { get; set; } = new Document();
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
public ScoreImport ScoreImport { get; set; }
public ScoreImport ScoreImport { get; set; }
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
}
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
}
}