fix : เครื่องราชย์ เก็บข้อมูลจากทะเบียนประวัติลง Field **** ยังไม่ได้ run migrate ****

This commit is contained in:
Suphonchai Phoonsawat 2024-07-05 16:49:50 +07:00
parent 0b13d5ccf2
commit d858010414
5 changed files with 5878 additions and 4398 deletions

File diff suppressed because it is too large Load diff

View file

@ -6,28 +6,46 @@ namespace BMA.EHR.Application.Requests
{ {
public Guid ProfileId { get; set; } public Guid ProfileId { get; set; }
public string Prefix { get; set; } public string CitizenId { get; set; } = String.Empty;
public string FullName { get; set; } public string Prefix { get; set; } = String.Empty;
public string Position { get; set; } public string FirstName { get; set; } = String.Empty;
public string Rank { get; set; } public string LastName { get; set; } = String.Empty;
public string GovAge { get; set; } public DateTime? BirthDate { get; set; }
public DateTime? DateAppoint { get; set; }
public string? ProfileType { get; set; }
public string? PosTypeName { get; set; }
public string? PosLevelName { get; set; }
public string FullName { get; set; } = String.Empty;
public string Position { get; set; } = String.Empty;
public string Rank { get; set; } = String.Empty;
public string GovAge { get; set; } = String.Empty;
public double? Salary { get; set; } public double? Salary { get; set; }
public string LastInsignia { get; set; } public double? PositionSalary { get; set; }
public string LastInsignia { get; set; } = String.Empty;
public Guid? LastInsigniaId { get; set; } public Guid? LastInsigniaId { get; set; }
//public Guid PosNo { get; set; } //public Guid PosNo { get; set; }
public string PosNo { get; set; } public string PosNo { get; set; } = String.Empty;
public InsigniaItem RequestInsignia { get; set; } public InsigniaItem RequestInsignia { get; set; } = new();
public string Gender { get; set; } public string Gender { get; set; } = String.Empty;
public int Seq { get; set; } public int Seq { get; set; }

View file

@ -71,5 +71,7 @@ namespace BMA.EHR.Domain.Models.Insignias
public string? PosNo { get; set; } public string? PosNo { get; set; }
public double? Amount { get; set; } public double? Amount { get; set; }
public double? PositionSalaryAmount { get; set; } public double? PositionSalaryAmount { get; set; }
public string? LastInsigniaName { get; set; }
} }
} }

View file

@ -9,6 +9,7 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile> <GenerateDocumentationFile>True</GenerateDocumentationFile>
<DockerfileContext>.</DockerfileContext> <DockerfileContext>.</DockerfileContext>
<RootNamespace>BMA.EHR.Insignia.Service</RootNamespace> <RootNamespace>BMA.EHR.Insignia.Service</RootNamespace>
<AssemblyName>BMA.EHR.Insignia</AssemblyName>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -220,7 +220,19 @@ namespace BMA.EHR.Insignia.Service.Controllers
isApprove = irp.IsApprove, isApprove = irp.IsApprove,
statusInstitute = irp.IsApprove.ToString(), statusInstitute = irp.IsApprove.ToString(),
request_date = irp.RequestDate, request_date = irp.RequestDate,
profile = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken),
profileId = irp.ProfileId,
citizenId = irp.CitizenId,
prefix = irp.Prefix,
firstname = irp.FirstName,
lastname = irp.LastName,
type = irp.ProfileType,
position = irp.Position,
posno = irp.PosNo,
rank = $"{irp.PosTypeName}/{irp.PosLevelName}",
lastInsigniaName = irp.LastInsigniaName,
//profile = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken),
instituteName = "", instituteName = "",
instituteId = -1, instituteId = -1,
requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name,
@ -231,44 +243,45 @@ namespace BMA.EHR.Insignia.Service.Controllers
requestSalary = irp.Salary, requestSalary = irp.Salary,
matchingConditions = JsonConvert.DeserializeObject<List<MatchingCondition>>(irp.MatchingConditions) matchingConditions = JsonConvert.DeserializeObject<List<MatchingCondition>>(irp.MatchingConditions)
}) })
.OrderBy(x => x.citizenId)
.ToList(); .ToList();
var dataResult = rawData // var dataResult = rawData
.Select(irp => new // .Select(irp => new
{ // {
irp.request_id, // irp.request_id,
irp.isApprove, // irp.isApprove,
irp.statusInstitute, // irp.statusInstitute,
irp.request_date, // irp.request_date,
profileId = irp.profile == null ? Guid.Empty : irp.profile.Id, // profileId = irp.profile == null ? Guid.Empty : irp.profile.Id,
citizenId = irp.profile == null ? "" : irp.profile.CitizenId, // citizenId = irp.profile == null ? "" : irp.profile.CitizenId,
prefix = irp.profile == null ? "" : irp.profile.Prefix, // prefix = irp.profile == null ? "" : irp.profile.Prefix,
firstname = irp.profile == null ? "" : irp.profile.FirstName, // firstname = irp.profile == null ? "" : irp.profile.FirstName,
lastname = irp.profile == null ? "" : irp.profile.LastName, // lastname = irp.profile == null ? "" : irp.profile.LastName,
type = irp.profile == null ? "" : irp.profile.ProfileType, // type = irp.profile == null ? "" : irp.profile.ProfileType,
position = irp.profile == null ? "" : irp.profile.Position, // position = irp.profile == null ? "" : irp.profile.Position,
posno = irp.profile == null ? "" : // posno = irp.profile == null ? "" :
irp.profile.ProfileSalary == null || irp.profile.ProfileSalary.Count == 0 ? "" : // irp.profile.ProfileSalary == null || irp.profile.ProfileSalary.Count == 0 ? "" :
irp.profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo, // irp.profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,
rank = irp.profile == null ? "" : $"{irp.profile.PosType.PosTypeName}/{irp.profile.PosLevel.PosLevelName}", // rank = irp.profile == null ? "" : $"{irp.profile.PosType.PosTypeName}/{irp.profile.PosLevel.PosLevelName}",
irp.instituteName, // irp.instituteName,
irp.instituteId, // irp.instituteId,
lastInsigniaName = irp.profile == null ? "" : // lastInsigniaName = irp.profile == null ? "" :
irp.profile.ProfileInsignia == null || irp.profile.ProfileInsignia.Count == 0 ? "" : // irp.profile.ProfileInsignia == null || irp.profile.ProfileInsignia.Count == 0 ? "" :
_insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value) == null ? "" : // _insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value) == null ? "" :
_insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, // _insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name,
irp.requestInsigniaLevel, // irp.requestInsigniaLevel,
irp.requestInsigniaName, // irp.requestInsigniaName,
irp.requestQua, // irp.requestQua,
irp.requestDoc, // irp.requestDoc,
irp.requestNote, // irp.requestNote,
irp.requestSalary, // irp.requestSalary,
irp.matchingConditions // irp.matchingConditions
}) // })
.OrderBy(y => y.citizenId) // .OrderBy(y => y.citizenId)
.ToList(); // .ToList();
return dataResult; return rawData;
} }
#endregion #endregion
@ -292,168 +305,6 @@ namespace BMA.EHR.Insignia.Service.Controllers
#region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ " #region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ "
// [HttpGet("old/{role}/{ocId:length(36)}")]
// public async Task<ActionResult<ResponseObject>> GetInsignaiRequest(Guid id, Guid ocId, string role)
// {
// var result = await _repository.GetInsigniaRequest(id, ocId);
// if (result != null)
// {
// Guid period = result.PeriodId;
// string periodName = result.Name;
// string requestStatus = result.RequestStatus;
// var resend = new InsigniaResults
// {
// PeriodId = period,
// Year = result.Year,
// Name = periodName,
// RequestStatus = requestStatus,
// OrganizationName = result.OrganizationName,
// Items = new List<dynamic>()
// };
// var candidate = await _repository.GetInsigniaCandidate(period, ocId);
// // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
// if (requestStatus == null)
// {
// // บันทึกรายชื่อ
// _repository.InsertCandidate(period, ocId, candidate);
// }
// if (role == "officer")
// {
// resend.Items = await _repository.InsigniaHasProfile(period, ocId);
// return Success(resend);
// }
// else
// {
// var passData = _context.InsigniaRequests.AsQueryable()
// .Include(x => x.Organization)
// .Include(x => x.RequestProfiles)
// .Where(x => x.Organization.Id == ocId)
// .Where(x => x.Period.Id == period)
// .Select(ir => new
// {
// requstID = ir.Id,
// requstStatus = ir.RequestStatus,
// requstStatusName = GetRequestlStatusText(ir.RequestStatus),
// fkInstituteId = -1,
// // fkDivisionId = ir.Organization.Id,
// // fkDivision = ir.Organization.Name,
// fkInstitute = "",
// fkPeriodId = ir.Period.Id,
// insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()
// .Include(x => x.Profile)
// .ThenInclude(x => x.Position)
// .Include(x => x.Profile)
// // .ThenInclude(x => x.PositionNumber)
// .Include(x => x.Profile)
// // .ThenInclude(x => x.AcademicStanding)
// .Include(x => x.RequestInsignia)
// .ThenInclude(x => x.InsigniaType)
// .Select(irp => new
// {
// request_id = irp.Request.Id,
// isApprove = irp.IsApprove,
// statusInstitute = irp.IsApprove.ToString(),
// request_date = irp.RequestDate,
// profileId = irp.Profile.Id,
// // prefix = irp.Profile.Prefix,
// firstname = irp.Profile.FirstName,
// lastname = irp.Profile.LastName,
// // posno = irp.Profile.PositionNumber.Id,
// type = irp.Profile.ProfileType,
// // position = irp.Profile.Position.Name,
// // rank = irp.Profile.AcademicStanding.Name,
// instituteName = "",
// instituteId = -1,
// // divisionName = irp.Profile.OrganizationOrganization.Name,
// // divisionId = irp.Profile.OrganizationOrganization.Id,
// lastInsigniaName = "",
// requestInsigniaLevel = irp.RequestInsignia.InsigniaType == null ? null : irp.RequestInsignia.InsigniaType.Name,
// requestInsigniaName = irp.RequestInsignia.Name,
// requestQua = irp.QualificationStatus,
// requestDoc = irp.DocumentStatus,
// requestNote = irp.Note,
// requestSalary = irp.Salary,
// })
// .Where(x => x.isApprove)
// .OrderBy(y => y.profileId)
// .ToList()
// })
// .ToList()
// .FirstOrDefault();
// var failData = _context.InsigniaRequests.AsQueryable()
// .Include(x => x.Organization)
// .Include(x => x.RequestProfiles)
// .Where(x => x.Organization.Id == ocId)
// .Where(x => x.Period.Id == period)
// .Select(ir => new
// {
// requstID = ir.Id,
// requstStatus = ir.RequestStatus,
// requstStatusName = GetRequestlStatusText(ir.RequestStatus),
// fkInstituteId = -1,
// // fkDivisionId = ir.Organization.Id,
// // fkDivision = ir.Organization.Name,
// fkInstitute = "",
// fkPeriodId = ir.Period.Id,
// insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()
// .Include(x => x.Profile)
// .ThenInclude(x => x.Position)
// .Include(x => x.Profile)
// // .ThenInclude(x => x.PositionNumber)
// .Include(x => x.Profile)
// // .ThenInclude(x => x.AcademicStanding)
// .Include(x => x.RequestInsignia)
// .ThenInclude(x => x.InsigniaType)
// .Select(irp => new
// {
// request_id = irp.Request.Id,
// isApprove = irp.IsApprove,
// statusInstitute = irp.IsApprove.ToString(),
// request_date = irp.RequestDate,
// profileId = irp.Profile.Id,
// // prefix = irp.Profile.Prefix,
// firstname = irp.Profile.FirstName,
// lastname = irp.Profile.LastName,
// // posno = irp.Profile.PositionNumber.Id,
// type = irp.Profile.ProfileType,
// // position = irp.Profile.Position.Name,
// // rank = irp.Profile.AcademicStanding.Name,
// instituteName = "",
// instituteId = -1,
// // divisionName = irp.Profile.OrganizationOrganization.Name,
// // divisionId = irp.Profile.OrganizationOrganization.Id,
// lastInsigniaName = "",
// requestInsigniaLevel = irp.RequestInsignia.InsigniaType == null ? null : irp.RequestInsignia.InsigniaType.Name,
// requestInsigniaName = irp.RequestInsignia.Name,
// requestQua = irp.QualificationStatus,
// requestDoc = irp.DocumentStatus,
// requestNote = irp.Note,
// requestSalary = irp.Salary,
// })
// .Where(x => !x.isApprove)
// .OrderBy(y => y.profileId)
// .ToList()
// })
// .ToList()
// .FirstOrDefault();
// var period_data = (from p in _context.InsigniaPeriods.AsQueryable()
// where p.Id == period
// select new
// {
// periodName = p.Name,
// periodYear = p.Year,
// }).FirstOrDefault();
// return Success(new { passData = passData, failData = failData, period = period_data });
// }
// // select data to display
// }
// return Success();
// }
/// <summary> /// <summary>
/// list รายการคำขอเครื่องราช ผู้ได้รับ,คนไม่ยื่น,คนที่ถูกลบ /// list รายการคำขอเครื่องราช ผู้ได้รับ,คนไม่ยื่น,คนที่ถูกลบ
/// </summary> /// </summary>
@ -666,49 +517,48 @@ namespace BMA.EHR.Insignia.Service.Controllers
[HttpGet("{insigniaPeriodId:length(36)}")] [HttpGet("{insigniaPeriodId:length(36)}")]
public async Task<ActionResult<ResponseObject>> UpdateInsigniaRequestBkk(Guid insigniaPeriodId) public async Task<ActionResult<ResponseObject>> UpdateInsigniaRequestBkk(Guid insigniaPeriodId)
{ {
// jack add เพื่อให้ทำการรันแค่เขตพระนคร // // jack add เพื่อให้ทำการรันแค่เขตพระนคร
// TODO : ต้องมาเอาบรรทัดนี้ออกในภายหลัง // // TODO : ต้องมาเอาบรรทัดนี้ออกในภายหลัง
var ocId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"); // var ocId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3");
var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId); // var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId);
if (result != null)
{
Guid period = result.PeriodId;
string requestStatus = result.RequestStatus;
var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, ocId);
// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
if (requestStatus == null)
{
// บันทึกรายชื่อ
await _repository.InsertCandidate(period, ocId, candidate);
}
}
// TODO: original code use this in production
//var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken);
//foreach (var organization in organizations)
//{
// if (organization == null)
// continue;
// if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue;
// var result = await _repository.GetInsigniaRequest(insigniaPeriodId, organization.Id);
// if (result != null) // if (result != null)
// { // {
// Guid period = result.PeriodId; // Guid period = result.PeriodId;
// string requestStatus = result.RequestStatus; // string requestStatus = result.RequestStatus;
// var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, organization.Id); // var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, ocId);
// // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new // // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
// if (requestStatus == null) // if (requestStatus == null)
// { // {
// // บันทึกรายชื่อ // // บันทึกรายชื่อ
// await _repository.InsertCandidate(period, organization.Id, candidate); // await _repository.InsertCandidate(period, ocId, candidate);
// }
// } // }
// } // }
// TODO: original code use this in production
var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken);
foreach (var organization in organizations)
{
if (organization == null)
continue;
//if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue;
var result = await _repository.GetInsigniaRequest(insigniaPeriodId, organization.Id);
if (result != null)
{
Guid period = result.PeriodId;
string requestStatus = result.RequestStatus;
var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, organization.Id);
// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
if (requestStatus == null)
{
// บันทึกรายชื่อ
await _repository.InsertCandidate(period, organization.Id, candidate);
}
}
}
return Success(); return Success();
} }
@ -732,6 +582,13 @@ namespace BMA.EHR.Insignia.Service.Controllers
#region " บันทึกรายชื่อครูในการขอยื่นเครื่องราชฯ เเต่ยังไม่ส่งไปยัง ผอ.โรงเรียน " #region " บันทึกรายชื่อครูในการขอยื่นเครื่องราชฯ เเต่ยังไม่ส่งไปยัง ผอ.โรงเรียน "
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="ocId"></param>
/// <param name="items"></param>
/// <returns></returns>
[HttpPut("approve/{ocId:length(36)}")] [HttpPut("approve/{ocId:length(36)}")]
public async Task<ActionResult<ResponseObject>> SaveRequestList(Guid id, Guid ocId, InsigniaApproveRequest items) public async Task<ActionResult<ResponseObject>> SaveRequestList(Guid id, Guid ocId, InsigniaApproveRequest items)
{ {