update model profile

This commit is contained in:
Kittapath 2023-10-12 02:54:36 +07:00
parent fde95f3b86
commit 0d7ea6d32b
5 changed files with 282 additions and 76 deletions

View file

@ -36,6 +36,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
}
public DbSet<BMA.EHR.Profile.Service.Models.HR.ProfileOrganization> ProfileOrganizations { get; set; }
public DbSet<BMA.EHR.Profile.Service.Models.HR.Profile> Profiles { get; set; }
public DbSet<BMA.EHR.Profile.Service.Models.HR.ProfileSalary> ProfileSalaries { get; set; }
public DbSet<BMA.EHR.Profile.Service.Models.HR.OrganizationEntity> Organizations { get; set; }
public DbSet<Prefix> Prefixes { get; set; }
@ -63,5 +64,6 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
public DbSet<PlacementType> PlacementTypes { get; set; }
public DbSet<PositionPath> PositionPaths { get; set; }
public DbSet<Gender> Genders { get; set; }
public DbSet<Document> Documents { get; set; }
}
}

View file

@ -1,117 +1,120 @@
using BMA.EHR.Recurit.Exam.Service.Models;

using System.ComponentModel.DataAnnotations;
using BMA.EHR.Recurit.Exam.Service.Models;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Profile.Service.Models.HR
{
public class Profile : EntityBase
{
[Key]
public Guid Id { get; set; }
[MaxLength(13)]
{ // [Key]
// public Guid Id { get; set; }
[MaxLength(13), Comment("รหัสบัตรประชาชน")]
public string? CitizenId { get; set; }
[MaxLength(50)]
public string? ProfileType { get; set; }
[MaxLength(20)]
[MaxLength(20), Comment("ประเภทการจ้าง")]
public string? EmployeeType { get; set; }
[MaxLength(20)]
[MaxLength(20), Comment("ประเภทลูกจ้าง")]
public string? EmployeeClass { get; set; }
public Guid? PrefixId { get; set; }
[MaxLength(100)]
[Required]
// [Comment("Id คำนำหน้า")]
// public Prefix? Prefix { get; set; }
[Required, MaxLength(100), Comment("ชื่อ")]
public string? FirstName { get; set; }
[MaxLength(100)]
[Required]
[Required, MaxLength(100), Comment("นามสกุล")]
public string? LastName { get; set; }
[Comment("Id คำนำหน้า(เดิม)")]
public Guid? PrefixOldId { get; set; }
[Required, MaxLength(100), Comment("ชื่อ(เดิม)")]
public string? FirstNameOld { get; set; }
[Required, MaxLength(100), Comment("นามสกุล(เดิม)")]
public string? LastNameOld { get; set; }
[MaxLength(100)]
public string AvatarRef { get; set; }
public Guid? GenderId { get; set; }
[MaxLength(100)]
// [Comment("Id เพศ")]
// public Gender? Gender { get; set; }
[MaxLength(100), Comment("สัญชาติ")]
public string? Nationality { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("เชื้อชาติ")]
public string? Race { get; set; }
[Comment("Id ศาสนา")]
public Guid? ReligionId { get; set; }
[Required]
[Required, Comment("วันเกิด")]
public DateTime BirthDate { get; set; }
[Comment("Id กลุ่มเลือด")]
public Guid? BloodGroupId { get; set; }
[Comment("Id สถานะภาพ")]
public Guid? RelationshipId { get; set; }
[MaxLength(50)]
[MaxLength(50), Comment("เบอร์โทร")]
public string? TelephoneNumber { get; set; }
[Comment("คู่สมรส")]
public bool? Couple { get; set; }
[Comment("Id คำนำหน้าคู่สมรส")]
public Guid? CouplePrefixId { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("ชื่อคู่สมรส")]
public string? CoupleFirstName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("นามสกุลคู่สมรส")]
public string? CoupleLastName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("นามสกุลคู่สมรส(เดิม)")]
public string? CoupleLastNameOld { get; set; }
[MaxLength(100), Comment("อาชีพคู่สมรส")]
public string? CoupleCareer { get; set; }
[MaxLength(20), Comment("เลขที่บัตรประชาชนคู่สมรส")]
public string? CoupleCitizenId { get; set; }
[Comment("มีชีวิตคู่สมรส")]
public bool CoupleLive { get; set; } = true;
[Comment("Id คำนำหน้าบิดา")]
public Guid? FatherPrefixId { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("ชื่อบิดา")]
public string? FatherFirstName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("นามสกุลบิดา")]
public string? FatherLastName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("อาชีพบิดา")]
public string? FatherCareer { get; set; }
[MaxLength(20), Comment("เลขที่บัตรประชาชนบิดา")]
public string? FatherCitizenId { get; set; }
[Comment("มีชีวิตบิดา")]
public bool FatherLive { get; set; } = true;
[Comment("Id คำนำหน้ามารดา")]
public Guid? MotherPrefixId { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("ชื่อมารดา")]
public string? MotherFirstName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("นามสกุลมารดา")]
public string? MotherLastName { get; set; }
[MaxLength(100)]
[MaxLength(100), Comment("อาชีพมารดา")]
public string? MotherCareer { get; set; }
[MaxLength(20), Comment("เลขที่บัตรประชาชนมารดา")]
public string? MotherCitizenId { get; set; }
[MaxLength(200)]
[Comment("มีชีวิตมารดา")]
public bool MotherLive { get; set; } = true;
[MaxLength(200), Comment("ที่อยู่ปัจจุบัน")]
public string? CurrentAddress { get; set; }
[Comment("Id แขวงปัจจุบัน")]
public Guid? CurrentSubDistrictId { get; set; }
[Comment("Id เขตปัจจุบัน")]
public Guid? CurrentDistrictId { get; set; }
[Comment("Id จังหวัดปัจจุบัน")]
public Guid? CurrentProvinceId { get; set; }
[MaxLength(5)]
[MaxLength(5), Comment("รหัสไปรษณีย์ปัจจุบัน")]
public string? CurrentZipCode { get; set; }
[Comment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่")]
public bool? RegistrationSame { get; set; } = false;
[MaxLength(200)]
[MaxLength(200), Comment("Id แขวงตามทะเบียนบ้าน")]
public string? RegistrationAddress { get; set; }
[Comment("แขวงตามทะเบียนบ้าน")]
public Guid? RegistrationSubDistrictId { get; set; }
[Comment("Id เขตตามทะเบียนบ้าน")]
public Guid? RegistrationDistrictId { get; set; }
[Comment("Id จังหวัดตามทะเบียนบ้าน")]
public Guid? RegistrationProvinceId { get; set; }
[MaxLength(5)]
[MaxLength(5), Comment("รหัสไปรษณีย์ตามทะเบียนบ้าน")]
public string? RegistrationZipCode { get; set; }
public DateTime? DateAppoint { get; set; }
@ -120,6 +123,7 @@ namespace BMA.EHR.Profile.Service.Models.HR
public DateTime? DateRetire { get; set; }
public string? ReasonSameDate { get; set; }
// public Guid? AffiliationId { get; set; }
// public Guid? PositionId { get; set; }
// public Guid? WorkId { get; set; }
@ -127,36 +131,72 @@ namespace BMA.EHR.Profile.Service.Models.HR
// public Guid? LevelId { get; set; }
// public Guid? NumberId { get; set; }
// public Guid? BusinessId { get; set; }
// public Guid? OcId { get; set; }
// public Guid? PositionId { get; set; }
// public Guid? PosNoId { get; set; }
[Comment("Id สังกัด")]
public Guid? OcId { get; set; }
[Comment("สังกัด")]
public string? Oc { get; set; }
public Guid? OrganizationShortNameId { get; set; }
public string? OrganizationShortName { get; set; }
public string? GovernmentCode { get; set; }
public Guid? OrganizationOrganizationId { get; set; }
public string? OrganizationOrganization { get; set; }
public Guid? PositionId { get; set; }
public string? Position { get; set; }
public Guid? PosNoId { get; set; }
public string? PosNo { get; set; }
// [Comment("Id ตำแหน่ง")]
// public PositionPath? Position { get; set; }
// // [Comment("ตำแหน่ง")]
// // public string? Position { get; set; }
// [Comment("Id เลขที่ตำแหน่ง")]
// public PositionNumberEntity? PosNo { get; set; }
// [Comment("เลขที่ตำแหน่ง")]
// public string? PosNo { get; set; }
[Comment("เลขที่ตำแหน่งลูกจ้าง")]
public string? PosNoEmployee { get; set; }
[Comment("Id สายงาน")]
public Guid? PositionLineId { get; set; }
[Comment("สายงาน")]
public string? PositionLine { get; set; }
[Comment("Id ด้าน/สาขา")]
public Guid? PositionPathSideId { get; set; }
[Comment("ด้าน/สาขา")]
public string? PositionPathSide { get; set; }
public Guid? PositionTypeId { get; set; }
public string? PositionType { get; set; }
public Guid? PositionLevelId { get; set; }
public string? PositionLevel { get; set; }
// [Comment("Id ประเภทตำแหน่ง")]
// public Guid? PositionTypeId { get; set; }
// [Comment("ประเภทตำแหน่ง")]
// public PositionType? PositionType { get; set; }
// // [Comment(" Id ระดับ")]
// // public Guid? PositionLevelId { get; set; }
// [Comment("ระดับ")]
// public PositionLevel? PositionLevel { get; set; }
[Comment("Id ตำแหน่งทางการบริหาร")]
public Guid? PositionExecutiveId { get; set; }
[Comment("ตำแหน่งทางการบริหาร")]
public string? PositionExecutive { get; set; }
[Comment("Id ด้านทางการบริหาร")]
public Guid? PositionExecutiveSideId { get; set; }
[Comment("ด้านทางการบริหาร")]
public string? PositionExecutiveSide { get; set; }
[MaxLength(100)]
// [Comment("Id ตำแหน่ง")]
// public PositionEmployeePosition? PositionEmployeePosition { get; set; }
// // [Comment("ตำแหน่ง")]
// // public string? PositionEmployeePosition { get; set; }
// [Comment("Id ด้านของตำแหน่ง")]
// public PositionEmployeePositionSide? PositionEmployeePositionSide { get; set; }
// // [Comment("ด้านของตำแหน่ง")]
// // public string? PositionEmployeePositionSide { get; set; }
// [Comment(" Id ระดับชั้นงาน")]
// public PositionEmployeeLevel? PositionEmployeeLevel { get; set; }
// // [Comment("ระดับชั้นงาน")]
// // public string? PositionEmployeeLevel { get; set; }
// [Comment("Id กลุ่มงาน")]
// public PositionEmployeeGroup? PositionEmployeeGroup { get; set; }
// // [Comment("กลุ่มงาน")]
// // public string? PositionEmployeeGroup { get; set; }
// [Comment("Id สายงาน")]
// public PositionEmployeeLine? PositionEmployeeLine { get; set; }
// // [Comment("สายงาน")]
// // public string? PositionEmployeeLine { get; set; }
[MaxLength(100), Comment("สถานภาพทางกาย")]
public string Physical { get; set; }
[MaxLength(100)]
@ -170,6 +210,9 @@ namespace BMA.EHR.Profile.Service.Models.HR
[MaxLength(1000)]
public string? LeaveReason { get; set; }
public string? LeaveDetail { get; set; }
public string? LeaveNumberOrder { get; set; }
public DateTime? LeaveDateOrder { get; set; }
public DateTime? CreatedDate { get; set; }
@ -204,7 +247,80 @@ namespace BMA.EHR.Profile.Service.Models.HR
public DateTime? VerifiedDate { get; set; }
// public Document? Avatar { get; set; }
public bool IsProbation { get; set; } = true;
// public PositionType PositionType { get; set; } // ประเภทตำแหน่ง
// public PositionLevel PositionLevel { get; set; } // ระดับ
// public OrganizationPositionEntity? OrganizationPosition { get; set; }
// public LimitLeave? LimitLeave { get; set; }
public Guid? KeycloakId { get; set; }
[Comment("สังกัด")]
public string? EmployeeOc { get; set; }
[Comment("ค่าจ้าง")]
public double? EmployeeWage { get; set; }
[Comment("ประเภทบุคคล")]
public string? EmployeeTypeIndividual { get; set; }
[Comment("เงินเพิ่มการครองชีพชั่วคราว")]
public double? EmployeeMoneyIncrease { get; set; }
[Comment("เงินช่วยเหลือค่าครองชีพชั่วคราว")]
public double? EmployeeMoneyAllowance { get; set; }
[Comment("เงินสมทบประกันสังคม(ลูกจ้าง)")]
public double? EmployeeMoneyEmployee { get; set; }
[Comment("เงินสมทบประกันสังคม(นายจ้าง)")]
public double? EmployeeMoneyEmployer { get; set; }
// public virtual List<ProfileEducation> Educations { get; set; } = new List<ProfileEducation>();
// public virtual List<ProfileHonor> Honors { get; set; } = new List<ProfileHonor>();
// public virtual List<ProfileAssessment> Assessments { get; set; } = new List<ProfileAssessment>();
// public virtual List<ProfileDiscipline> Disciplines { get; set; } = new List<ProfileDiscipline>();
// public virtual List<ProfileCertificate> Certificates { get; set; } = new List<ProfileCertificate>();
// public virtual List<ProfileTraining> Trainings { get; set; } = new List<ProfileTraining>();
// public virtual List<ProfileInsignia> Insignias { get; set; } = new List<ProfileInsignia>();
public virtual List<ProfileSalary> Salaries { get; set; } = new List<ProfileSalary>();
// public virtual List<ProfileHistory> ProfileHistory { get; set; } = new List<ProfileHistory>();
// public virtual List<ProfileCoupleHistory> CoupleHistory { get; set; } = new List<ProfileCoupleHistory>();
// public virtual List<ProfileFatherHistory> FatherHistory { get; set; } = new List<ProfileFatherHistory>();
// public virtual List<ProfileMotherHistory> MotherHistory { get; set; } = new List<ProfileMotherHistory>();
// public virtual List<ProfileFamilyHistory> FamilyHistory { get; set; } = new List<ProfileFamilyHistory>();
// public virtual List<ProfileGovernmentHistory> GovernmentHistory { get; set; } = new List<ProfileGovernmentHistory>();
// public virtual List<ProfileLeave> Leaves { get; set; } = new List<ProfileLeave>();
// public virtual List<ProfileCurrentAddressHistory> CurrentAddressHistory { get; set; } = new List<ProfileCurrentAddressHistory>();
// public virtual List<ProfileRegistrationAddressHistory> RegistrationAddressHistory { get; set; } = new List<ProfileRegistrationAddressHistory>();
// public virtual List<ProfileAddressHistory> AddressHistory { get; set; } = new List<ProfileAddressHistory>();
// public virtual List<ProfileOther> Others { get; set; } = new List<ProfileOther>();
// public virtual List<ProfileAbility> Abilitys { get; set; } = new List<ProfileAbility>();
// public virtual List<ProfileDuty> Dutys { get; set; } = new List<ProfileDuty>();
// public virtual List<ProfileNopaid> Nopaids { get; set; } = new List<ProfileNopaid>();
// public virtual List<ProfileAvatarHistory> AvatarHistory { get; set; } = new List<ProfileAvatarHistory>();
// public virtual List<ProfilePaper> Papers { get; set; } = new List<ProfilePaper>();
// public virtual List<ProfileChildren> Childrens { get; set; } = new List<ProfileChildren>();
// public virtual List<ProfileChangeName> ChangeNames { get; set; } = new List<ProfileChangeName>();
}
}

View file

@ -0,0 +1,68 @@
using BMA.EHR.Recurit.Exam.Service.Models;
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Profile.Service.Models.HR
{
public class ProfileSalary : EntityBase
{
[Comment("วัน เดือน ปี รับตำแหน่ง")]
public DateTime? Date { get; set; }
[Comment("ลำดับ")]
public int? Order { get; set; }
[Comment("เงินเดือน")]
public double? Amount { get; set; }
[Comment("เงินประจำตำแหน่ง")]
public double? PositionSalaryAmount { get; set; }
[Comment("เงินค่าตอบแทนรายเดือน")]
public double? MouthSalaryAmount { get; set; }
[Comment("Id สังกัด")]
public Guid? OcId { get; set; }
[Comment("Id ชื่อย่อหน่วยงาน")]
public Guid? OrganizationShortNameId { get; set; }
[Comment("Id ตำแหน่ง")]
public Guid? PositionId { get; set; }
[Comment("Id เลขที่ตำแหน่ง")]
public Guid? PosNoId { get; set; }
[Comment("เลขที่ตำแหน่งลูกจ้าง")]
public string? PosNoEmployee { get; set; }
[Comment("Id สายงาน")]
public Guid? PositionLineId { get; set; }
[Comment("Id ด้าน/สาขา")]
public Guid? PositionPathSideId { get; set; }
[Comment("Id ประเภทตำแหน่ง")]
public Guid? PositionTypeId { get; set; }
// [Comment("Id ระดับ")]
// public PositionLevel? PositionLevel { get; set; }
[Comment("Id ตำแหน่งทางการบริหาร")]
public Guid? PositionExecutiveId { get; set; }
[Comment("Id ด้านทางการบริหาร")]
public Guid? PositionExecutiveSideId { get; set; }
[Comment("Id ตำแหน่ง")]
public Guid? PositionEmployeePositionId { get; set; }
[Comment("Id ด้านของตำแหน่ง")]
public Guid? PositionEmployeePositionSideId { get; set; }
[Comment(" Id ระดับชั้นงาน")]
public Guid? PositionEmployeeLevelId { get; set; }
[Comment("Id กลุ่มงาน")]
public Guid? PositionEmployeeGroupId { get; set; }
[Comment("ตำแหน่ง (รายละเอียด)")]
public string? SalaryClass { get; set; }
[Comment("เอกสารอ้างอิง")]
public string? SalaryRef { get; set; }
// public virtual List<ProfileSalaryHistory> ProfileSalaryHistorys { get; set; } = new List<ProfileSalaryHistory>();
public virtual Profile? Profile { get; set; }
[Comment("เลขที่คำสั่ง")]
public string CommandNo { get; set; }
[Comment("ประเภทคำสั่ง")]
public string CommandTypeName { get; set; }
[Comment("ประเภทตำแหน่งกรณีพิเศษ")]
public string? SalaryStatus { get; set; }
public bool IsActive { get; set; } = true;
}
}

View file

@ -239,6 +239,12 @@ namespace BMA.EHR.Domain.Models.Placement
[Comment("Id รูปโปรไฟล์")]
public virtual Document? ProfileImg { get; set; }
[Comment("หมายเหตุแนวตั้ง")]
public string? RemarkVertical { get; set; }
[Comment("หมายเหตุแนวนอน")]
public string? RemarkHorizontal { get; set; }
public virtual List<PlacementCertificate> PlacementCertificates { get; set; } = new List<PlacementCertificate>();
public virtual List<PlacementEducation> PlacementEducations { get; set; } = new List<PlacementEducation>();
}

View file

@ -1985,6 +1985,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
await _contextMetadata.Placements.AddAsync(placement);
foreach (var candidate in periodExam.Candidate.Where(x => x.Status == "done" && x.Pass == "ได้"))
{
var profile = await _contextMetadata.Profiles
.Include(x => x.Salaries)
.FirstOrDefaultAsync(p => p.CitizenId == candidate.CitizenId);
var placementProfile = new PlacementProfile
{
Placement = placement,
@ -2049,6 +2052,10 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
IsRelief = false,
PlacementStatus = "UN-CONTAIN",
Pass = candidate.Pass,
RemarkHorizontal = "โดยมีเงื่อนไขว่าต้องปฏิบัติงานให้กรุงเทพมหานครเป็นระยะเวลาไม่น้อยกว่า ๕ ปี นับแต่วันที่ได้รับการบรรจุและแต่งตั้ง โดยห้ามโอนไปหน่วยงานหรือส่วนราชการอื่น เว้นเเต่ลาออกจากราชการ",
Amount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
PositionSalaryAmount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount,
MouthSalaryAmount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().MouthSalaryAmount,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",
@ -2139,6 +2146,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
.FirstOrDefaultAsync(x => x.ExamId == candidate.ExamId && x.ScoreImport == scoreImport);
if (disableScore == null)
continue;
var profile = await _contextMetadata.Profiles
.Include(x => x.Salaries)
.FirstOrDefaultAsync(p => p.CitizenId == candidate.CitizenId);
var placementProfile = new PlacementProfile
{
Placement = placement,
@ -2206,7 +2216,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
IsRelief = false,
PlacementStatus = "UN-CONTAIN",
Pass = disableScore == null ? null : disableScore.ExamStatus,
RemarkHorizontal = "โดยมีเงื่อนไขว่าต้องปฏิบัติงานให้กรุงเทพมหานครเป็นระยะเวลาไม่น้อยกว่า ๕ ปี นับแต่วันที่ได้รับการบรรจุและแต่งตั้ง โดยห้ามโอนไปหน่วยงานหรือส่วนราชการอื่น เว้นเเต่ลาออกจากราชการ",
// ReportingDate = DateTime.Now,
Amount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
PositionSalaryAmount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount,
MouthSalaryAmount = profile == null || profile.Salaries.Count() == 0 ? 0 : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().MouthSalaryAmount,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",