api เครื่องราช

This commit is contained in:
Kittapath 2023-07-20 20:18:09 +07:00
parent 6a572144ab
commit cb33987976
11 changed files with 5290 additions and 5321 deletions

View file

@ -14,7 +14,7 @@ namespace BMA.EHR.Application
services.AddTransient<OrganizationEmployeeRepository>();
services.AddTransient<MessageQueueRepository>();
services.AddTransient<PlacementCommandRepository>();
// services.AddTransient<InsigniaPeriodsRepository>();
services.AddTransient<InsigniaPeriodsRepository>();
return services;
}

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,6 @@ namespace BMA.EHR.Application.Requests
public string Year { get; set; }
public string RequestStatus { get; set; }
public string OrganizationName { get; set; }
public List<InsigniaRequestItem> Items { get; set; }
public List<dynamic> Items { get; set; }
}
}

View file

@ -2,13 +2,15 @@
using Microsoft.EntityFrameworkCore;
using BMA.EHR.Domain.Models.Base;
using BMA.EHR.Domain.Models.Documents;
using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Organizations;
namespace BMA.EHR.Domain.Models.HR
{
public class Profile : EntityBase
{
[Key]
public Guid Id { get; set; }
// [Key]
// public Guid Id { get; set; }
[MaxLength(13), Comment("รหัสบัตรประชาชน")]
public string? CitizenId { get; set; }
[MaxLength(50)]
@ -18,7 +20,7 @@ namespace BMA.EHR.Domain.Models.HR
[MaxLength(20), Comment("ประเภทลูกจ้าง")]
public string? EmployeeClass { get; set; }
[Comment("Id คำนำหน้า")]
public Guid? PrefixId { get; set; }
public Prefix? Prefix { get; set; }
[Required, MaxLength(100), Comment("ชื่อ")]
public string? FirstName { get; set; }
[Required, MaxLength(100), Comment("นามสกุล")]
@ -32,7 +34,7 @@ namespace BMA.EHR.Domain.Models.HR
[MaxLength(100)]
public string AvatarRef { get; set; }
[Comment("Id เพศ")]
public Guid? GenderId { get; set; }
public Gender? Gender { get; set; }
[MaxLength(100), Comment("สัญชาติ")]
public string? Nationality { get; set; }
[MaxLength(100), Comment("เชื้อชาติ")]
@ -127,13 +129,13 @@ namespace BMA.EHR.Domain.Models.HR
public Guid? OrganizationOrganizationId { get; set; }
public string? OrganizationOrganization { get; set; }
[Comment("Id ตำแหน่ง")]
public Guid? PositionId { get; set; }
[Comment("ตำแหน่ง")]
public string? Position { get; set; }
public PositionPath? Position { get; set; }
// [Comment("ตำแหน่ง")]
// public string? Position { get; set; }
[Comment("Id เลขที่ตำแหน่ง")]
public Guid? PosNoId { get; set; }
[Comment("เลขที่ตำแหน่ง")]
public string? PosNo { get; set; }
public PositionNumberEntity? PosNo { get; set; }
// [Comment("เลขที่ตำแหน่ง")]
// public string? PosNo { get; set; }
[Comment("เลขที่ตำแหน่งลูกจ้าง")]
public string? PosNoEmployee { get; set; }
[Comment("Id สายงาน")]
@ -144,14 +146,14 @@ namespace BMA.EHR.Domain.Models.HR
public Guid? PositionPathSideId { get; set; }
[Comment("ด้าน/สาขา")]
public string? PositionPathSide { get; set; }
[Comment("Id ประเภทตำแหน่ง")]
public Guid? PositionTypeId { get; set; }
// [Comment("Id ประเภทตำแหน่ง")]
// public Guid? PositionTypeId { get; set; }
[Comment("ประเภทตำแหน่ง")]
public string? PositionType { get; set; }
[Comment(" Id ระดับ")]
public Guid? PositionLevelId { get; set; }
public PositionType? PositionType { get; set; }
// [Comment(" Id ระดับ")]
// public Guid? PositionLevelId { get; set; }
[Comment("ระดับ")]
public string? PositionLevel { get; set; }
public PositionLevel? PositionLevel { get; set; }
[Comment("Id ตำแหน่งทางการบริหาร")]
public Guid? PositionExecutiveId { get; set; }
[Comment("ตำแหน่งทางการบริหาร")]

View file

@ -1,6 +1,7 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
using BMA.EHR.Domain.Models.Base;
using BMA.EHR.Domain.Models.MetaData;
namespace BMA.EHR.Domain.Models.HR
{
@ -27,8 +28,8 @@ namespace BMA.EHR.Domain.Models.HR
[Comment("ประเภท")]
public string? InsigniaType { get; set; }
[Comment("ชื่อเครื่องราชฯ")]
public string? Insignia { get; set; }
public Guid? InsigniaId { get; set; }
// public string? Insignia { get; set; }
public Insignia? Insignia { get; set; }
public virtual List<ProfileInsigniaHistory> ProfileInsigniaHistorys { get; set; } = new List<ProfileInsigniaHistory>();
public virtual Profile? Profile { get; set; }
}

View file

@ -1,4 +1,5 @@
using BMA.EHR.Domain.Models.Base;
using BMA.EHR.Domain.Models.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Domain.Models.HR
@ -7,6 +8,8 @@ namespace BMA.EHR.Domain.Models.HR
{
[Comment("วัน เดือน ปี รับตำแหน่ง")]
public DateTime? Date { get; set; }
[Comment("ลำดับ")]
public int? Order { get; set; }
[Comment("เงินเดือน")]
public double? Amount { get; set; }
[Comment("เงินประจำตำแหน่ง")]
@ -30,7 +33,7 @@ namespace BMA.EHR.Domain.Models.HR
[Comment("Id ประเภทตำแหน่ง")]
public Guid? PositionTypeId { get; set; }
[Comment("Id ระดับ")]
public Guid? PositionLevelId { get; set; }
public PositionLevel? PositionLevel { get; set; }
[Comment("Id ตำแหน่งทางการบริหาร")]
public Guid? PositionExecutiveId { get; set; }
[Comment("Id ด้านทางการบริหาร")]

View file

@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations;
using BMA.EHR.Domain.Models.Base;
using System.ComponentModel.DataAnnotations.Schema;
using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Organizations;
namespace BMA.EHR.Domain.Models.Insignias
{
@ -16,7 +17,7 @@ namespace BMA.EHR.Domain.Models.Insignias
public InsigniaPeriod Period { get; set; }
public OrganizationOrganization OrganizationOrganization { get; set; }
public OrganizationEntity Organization { get; set; }
public virtual List<InsigniaRequestProfile> RequestProfiles { get; set; } = new List<InsigniaRequestProfile>();
}

View file

@ -20,8 +20,8 @@ namespace BMA.EHR.Domain.Models.Placement
public string? Lastname { get; set; }
[Comment("Id เพศ")]
public Gender? Gender { get; set; }
[Comment("ลำดับที่สอบได้")]
public int? Number { get; set; }
// [Comment("ลำดับที่สอบได้")]
// public int? Number { get; set; }
[Comment("Id ตำแหน่งที่สอบได้")]
public PositionPath? PositionCandidate { get; set; }

View file

@ -68,6 +68,10 @@
public static readonly string InvalidInsigniaRequest = "ไม่พบข้อมูลการยื่นขอพระราชทานเครื่องราชย์ของหน่วยงานที่ระบุ!!";
public static readonly string InvalidInsigniaPeriod = "ไม่พบรอบการยื่นขอพระราชทานเครื่องราชย์อิสริยาภรณ์";
public static readonly string InvalidCoinPeriod = "ไม่พบรอบการขอพระราชทานเหรียญจักรพรรดิมาลาที่ระบุ!!";
public static readonly string InvalidOC = "ไม่พบหน่วยงานที่ระบุในระบบ";
#endregion
}

View file

@ -94,9 +94,9 @@ namespace BMA.EHR.Insignia.Service.Controllers
Name = periodName,
RequestStatus = requestStatus,
OrganizationName = result.OrganizationName,
Items = new List<InsigniaRequestItem>()
Items = new List<dynamic>()
};
var candidate = _repository.GetInsigniaCandidate(period, ocId);
var candidate = await _repository.GetInsigniaCandidate(period, ocId);
// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
if (requestStatus == null)
@ -106,15 +106,15 @@ namespace BMA.EHR.Insignia.Service.Controllers
}
if (role == "officer")
{
resend.Items = _repository.InsigniaHasProfile(period, ocId);
resend.Items = await _repository.InsigniaHasProfile(period, ocId);
return Success(resend);
}
else
{
var passData = _context.InsigniaRequests.AsQueryable()
.Include(x => x.OrganizationOrganization)
.Include(x => x.Organization)
.Include(x => x.RequestProfiles)
.Where(x => x.OrganizationOrganization.Id == ocId)
.Where(x => x.Organization.Id == ocId)
.Where(x => x.Period.Id == period)
.Select(ir => new
{
@ -122,8 +122,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
requstStatus = ir.RequestStatus,
requstStatusName = GetRequestlStatusText(ir.RequestStatus),
fkInstituteId = -1,
fkDivisionId = ir.OrganizationOrganization.Id,
fkDivision = ir.OrganizationOrganization.Name,
// fkDivisionId = ir.Organization.Id,
// fkDivision = ir.Organization.Name,
fkInstitute = "",
fkPeriodId = ir.Period.Id,
insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()
@ -169,9 +169,9 @@ namespace BMA.EHR.Insignia.Service.Controllers
.FirstOrDefault();
var failData = _context.InsigniaRequests.AsQueryable()
.Include(x => x.OrganizationOrganization)
.Include(x => x.Organization)
.Include(x => x.RequestProfiles)
.Where(x => x.OrganizationOrganization.Id == ocId)
.Where(x => x.Organization.Id == ocId)
.Where(x => x.Period.Id == period)
.Select(ir => new
{
@ -179,8 +179,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
requstStatus = ir.RequestStatus,
requstStatusName = GetRequestlStatusText(ir.RequestStatus),
fkInstituteId = -1,
fkDivisionId = ir.OrganizationOrganization.Id,
fkDivision = ir.OrganizationOrganization.Name,
// fkDivisionId = ir.Organization.Id,
// fkDivision = ir.Organization.Name,
fkInstitute = "",
fkPeriodId = ir.Period.Id,
insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()
@ -256,28 +256,28 @@ namespace BMA.EHR.Insignia.Service.Controllers
Name = periodName,
RequestStatus = requestStatus,
OrganizationName = result.OrganizationName,
Items = new List<InsigniaRequestItem>()
Items = new List<dynamic>()
};
var candidate = _repository.GetInsigniaCandidateBKK(period, ocId);
var candidate = await _repository.GetInsigniaCandidateBKK(period, ocId);
// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
if (requestStatus == null)
{
// บันทึกรายชื่อ
_repository.InsertCandidate(period, ocId, candidate);
await _repository.InsertCandidate(period, ocId, candidate);
}
if (role == "officer")
{
resend.Items = _repository.InsigniaHasProfile(period, ocId);
resend.Items = await _repository.InsigniaHasProfile(period, ocId);
return Success(resend);
}
else
{
var passData = _context.InsigniaRequests.AsQueryable()
.Include(x => x.OrganizationOrganization)
.Include(x => x.Organization)
.Include(x => x.RequestProfiles)
.Where(x => x.OrganizationOrganization.Id == ocId)
.Where(x => x.Organization.Id == ocId)
.Where(x => x.Period.Id == period)
.Select(ir => new
{
@ -285,8 +285,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
requstStatus = ir.RequestStatus,
requstStatusName = GetRequestlStatusText(ir.RequestStatus),
fkInstituteId = -1,
fkDivisionId = ir.OrganizationOrganization.Id,
fkDivision = ir.OrganizationOrganization.Name,
// fkDivisionId = ir.Organization.Id,
// fkDivision = ir.Organization.Name,
fkInstitute = "",
fkPeriodId = ir.Period.Id,
insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()
@ -333,9 +333,9 @@ namespace BMA.EHR.Insignia.Service.Controllers
.FirstOrDefault();
var failData = _context.InsigniaRequests.AsQueryable()
.Include(x => x.OrganizationOrganization)
.Include(x => x.Organization)
.Include(x => x.RequestProfiles)
.Where(x => x.OrganizationOrganization.Id == ocId)
.Where(x => x.Organization.Id == ocId)
.Where(x => x.Period.Id == period)
.Select(ir => new
{
@ -343,8 +343,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
requstStatus = ir.RequestStatus,
requstStatusName = GetRequestlStatusText(ir.RequestStatus),
fkInstituteId = -1,
fkDivisionId = ir.OrganizationOrganization.Id,
fkDivision = ir.OrganizationOrganization.Name,
// fkDivisionId = ir.Organization.Id,
// fkDivision = ir.Organization.Name,
fkInstitute = "",
fkPeriodId = ir.Period.Id,
insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable()

View file

@ -116,9 +116,21 @@ namespace BMA.EHR.Placement.Service.Controllers
BmaOfficer = x.IsOfficer,
StatusId = x.PlacementStatus,
Draft = x.Draft,
Number = x.Number,
ExamNumber = x.ExamNumber,
Deferment = x.IsRelief,
}).ToListAsync();
ContainDate = x.RecruitDate,
OrganizationPositionId = x.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationPosition.Id,
PosNoId = x.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionNumber.Id,
PositionId = x.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionPath.Id,
PositionLevelId = x.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionLevel.Id,
PositionLineId = x.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionLine.Id,
PositionPathSideId = x.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionPathSide.Id,
PositionTypeId = x.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionType.Id,
SalaryAmount = x.Amount,
MouthSalaryAmount = x.MouthSalaryAmount,
PositionSalaryAmount = x.PositionSalaryAmount,
}).OrderBy(x => x.ExamNumber).ToListAsync();
var result = new List<dynamic>();
foreach (var p in data)
@ -139,8 +151,20 @@ namespace BMA.EHR.Placement.Service.Controllers
BmaOfficer = await _documentService.CheckBmaOfficer(p.IdCard),
p.StatusId,
p.Draft,
p.Number,
p.ExamNumber,
p.Deferment,
p.ContainDate,
p.OrganizationPositionId,
p.PosNoId,
p.PositionId,
p.PositionLevelId,
p.PositionLineId,
p.PositionPathSideId,
p.PositionTypeId,
p.SalaryAmount,
p.MouthSalaryAmount,
p.PositionSalaryAmount,
};
result.Add(_data);
}
@ -157,6 +181,7 @@ namespace BMA.EHR.Placement.Service.Controllers
.Where(x => x.Placement.Id == examId)
.Where(x => x.OrganizationPosition != null)
.Where(x => x.OrganizationPosition.Organization != null)
.Where(x => x.Draft == true)
.Where(x => ocIdList.Contains(x.OrganizationPosition.Organization.Id))
.Select(x => new
{
@ -174,9 +199,21 @@ namespace BMA.EHR.Placement.Service.Controllers
BmaOfficer = x.IsOfficer,
StatusId = x.PlacementStatus,
Draft = x.Draft,
Number = x.Number,
ExamNumber = x.ExamNumber,
Deferment = x.IsRelief,
}).OrderBy(x => x.Number).ToListAsync();
ContainDate = x.RecruitDate,
OrganizationPositionId = x.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationPosition.Id,
PosNoId = x.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionNumber.Id,
PositionId = x.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionPath.Id,
PositionLevelId = x.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionLevel.Id,
PositionLineId = x.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionLine.Id,
PositionPathSideId = x.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionPathSide.Id,
PositionTypeId = x.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionType.Id,
SalaryAmount = x.Amount,
MouthSalaryAmount = x.MouthSalaryAmount,
PositionSalaryAmount = x.PositionSalaryAmount,
}).OrderBy(x => x.ExamNumber).ToListAsync();
var result = new List<dynamic>();
foreach (var p in data)
@ -197,8 +234,20 @@ namespace BMA.EHR.Placement.Service.Controllers
BmaOfficer = await _documentService.CheckBmaOfficer(p.IdCard),
p.StatusId,
p.Draft,
p.Number,
p.ExamNumber,
p.Deferment,
p.ContainDate,
p.OrganizationPositionId,
p.PosNoId,
p.PositionId,
p.PositionLevelId,
p.PositionLineId,
p.PositionPathSideId,
p.PositionTypeId,
p.SalaryAmount,
p.MouthSalaryAmount,
p.PositionSalaryAmount,
};
result.Add(_data);
}
@ -550,6 +599,8 @@ namespace BMA.EHR.Placement.Service.Controllers
var person = await _context.PlacementProfiles.FindAsync(req.PersonalId);
if (person == null)
return Error(GlobalMessages.DataNotFound, 404);
if (person.Draft == true)
return Error("ไม่สามารถแก้ไขข้อมูลนี้ได้เนื่องจากเผยแพร่ไปแล้ว");
if (req.PosNoId != null)
{