โอนคนสรรหาไปบรรจุ
This commit is contained in:
parent
9a53f34107
commit
7fbdf971fa
13 changed files with 530 additions and 312 deletions
|
|
@ -1919,13 +1919,13 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
|
|||
OccupationEmail = candidate.OccupationEmail,
|
||||
OccupationTelephone = candidate.OccupationTelephone,
|
||||
OccupationPosition = candidate.OccupationPosition,
|
||||
PointTotalA = Convert.ToDouble(candidate.PointTotalA),
|
||||
PointA = Convert.ToDouble(candidate.PointA),
|
||||
PointTotalB = Convert.ToDouble(candidate.PointTotalB),
|
||||
PointB = Convert.ToDouble(candidate.PointB),
|
||||
PointTotalC = Convert.ToDouble(candidate.PointTotalC),
|
||||
PointC = Convert.ToDouble(candidate.PointC),
|
||||
ExamNumber = Convert.ToInt32(candidate.Number),
|
||||
PointTotalA = candidate.PointTotalA == null ? null : Convert.ToDouble(candidate.PointTotalA),
|
||||
PointA = candidate.PointA == null ? null : Convert.ToDouble(candidate.PointA),
|
||||
PointTotalB = candidate.PointTotalB == null ? null : Convert.ToDouble(candidate.PointTotalB),
|
||||
PointB = candidate.PointB == null ? null : Convert.ToDouble(candidate.PointB),
|
||||
PointTotalC = candidate.PointTotalC == null ? null : Convert.ToDouble(candidate.PointTotalC),
|
||||
PointC = candidate.PointC == null ? null : Convert.ToDouble(candidate.PointC),
|
||||
ExamNumber = candidate.Number == null ? null : Convert.ToInt32(candidate.Number),
|
||||
ExamRound = 1,
|
||||
IsRelief = false,
|
||||
PlacementStatus = "UN-CONTAIN",
|
||||
|
|
@ -1963,6 +1963,181 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
|
|||
}
|
||||
await _contextMetadata.SaveChangesAsync();
|
||||
}
|
||||
|
||||
public async Task UpdateAsyncDisableToPlacement(Guid examId)
|
||||
{
|
||||
var periodExam = await _context.PeriodExams.AsQueryable()
|
||||
.Where(x => x.CheckDisability == true)
|
||||
.FirstOrDefaultAsync(x => x.Id == examId);
|
||||
|
||||
if (periodExam == null)
|
||||
throw new Exception(GlobalMessages.ExamNotFound);
|
||||
|
||||
var _placement = await _contextMetadata.Placements.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Name == periodExam.Name && x.Year == ((int)(periodExam.Year == null ? 0 : periodExam.Year)));
|
||||
if (_placement != null)
|
||||
throw new Exception("รอบการสอบนี้ได้ทำการบรรจุไปแล้ว");
|
||||
|
||||
var placement = new Placement
|
||||
{
|
||||
Name = periodExam.Name,
|
||||
Round = periodExam.Round == null ? "" : periodExam.Round.ToString(),
|
||||
Year = (int)(periodExam.Year == null ? 0 : periodExam.Year),
|
||||
Number = await _context.Disables.AsQueryable().Where(x => x.PeriodExam == periodExam).CountAsync(),
|
||||
PlacementType = await _contextMetadata.PlacementTypes.FirstOrDefaultAsync(x => x.Name.Trim().ToUpper().Contains("ผู้พิการ")) == null ? await _contextMetadata.PlacementTypes.FirstOrDefaultAsync() : await _contextMetadata.PlacementTypes.FirstOrDefaultAsync(x => x.Name.Trim().ToUpper().Contains("ผู้พิการ")),
|
||||
StartDate = DateTime.Now,
|
||||
EndDate = DateTime.Now.AddYears(2).AddDays(-1),
|
||||
CreatedAt = DateTime.Now,
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedFullName = FullName ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdateFullName = FullName ?? "",
|
||||
};
|
||||
await _contextMetadata.Placements.AddAsync(placement);
|
||||
var candidates = await _context.Disables.AsQueryable()
|
||||
.Include(x => x.Addresses)
|
||||
.Include(x => x.Certificates)
|
||||
.Include(x => x.Educations)
|
||||
.Include(x => x.Occupations)
|
||||
.Where(x => x.PeriodExam == periodExam)
|
||||
.ToListAsync();
|
||||
foreach (var candidate in candidates)
|
||||
{
|
||||
var Address = candidate.Addresses.FirstOrDefault() == null ? null : $"{candidate.Addresses.FirstOrDefault().Address}";
|
||||
var Moo = candidate.Addresses.FirstOrDefault() == null ? null : $" หมู่ {candidate.Addresses.FirstOrDefault().Moo}";
|
||||
var Soi = candidate.Addresses.FirstOrDefault() == null ? null : $" ซอย {candidate.Addresses.FirstOrDefault().Soi}";
|
||||
var Road = candidate.Addresses.FirstOrDefault() == null ? null : $" ถนน {candidate.Addresses.FirstOrDefault().Road}";
|
||||
var Address1 = candidate.Addresses.FirstOrDefault() == null ? null : $"{candidate.Addresses.FirstOrDefault().Address1}";
|
||||
var Moo1 = candidate.Addresses.FirstOrDefault() == null ? null : $" หมู่ {candidate.Addresses.FirstOrDefault().Moo1}";
|
||||
var Soi1 = candidate.Addresses.FirstOrDefault() == null ? null : $" ซอย {candidate.Addresses.FirstOrDefault().Soi1}";
|
||||
var Road1 = candidate.Addresses.FirstOrDefault() == null ? null : $" ถนน {candidate.Addresses.FirstOrDefault().Road1}";
|
||||
var scoreImport = await _context.ScoreImports.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.PeriodExam == periodExam);
|
||||
var disableScore = await _context.DisableScores.AsQueryable()
|
||||
.Where(x => x.ScoreImport == scoreImport)
|
||||
.Where(x => x.ExamId == candidate.ExamId)
|
||||
.FirstOrDefaultAsync(x => x.ExamId == candidate.ExamId && x.ScoreImport == scoreImport);
|
||||
var placementProfile = new PlacementProfile
|
||||
{
|
||||
Placement = placement,
|
||||
PositionCandidate = await _contextMetadata.PositionPaths.FirstOrDefaultAsync(x => x.Name == candidate.PositionName),
|
||||
Prefix = await _contextMetadata.Prefixes.FirstOrDefaultAsync(x => x.Name == candidate.Prefix),
|
||||
Firstname = candidate.FirstName,
|
||||
Lastname = candidate.LastName,
|
||||
Gender = await _contextMetadata.Genders.FirstOrDefaultAsync(x => x.Name == candidate.Gendor),
|
||||
Nationality = candidate.National,
|
||||
Race = candidate.Race,
|
||||
Religion = await _contextMetadata.Religions.FirstOrDefaultAsync(x => x.Name == candidate.Religion),
|
||||
DateOfBirth = candidate.DateOfBirth,
|
||||
Relationship = await _contextMetadata.Relationships.FirstOrDefaultAsync(x => x.Name == candidate.Marry),
|
||||
// Email = candidate.Email,
|
||||
CitizenId = candidate.CitizenId,
|
||||
// CitizenDistrict = await _contextMetadata.Districts.FirstOrDefaultAsync(x => x.Id == candidate.CitizenDistrictId),
|
||||
CitizenProvince = await _contextMetadata.Provinces.FirstOrDefaultAsync(x => x.Name == candidate.CitizenCardIssuer),
|
||||
CitizenDate = candidate.CitizenCardExpireDate,
|
||||
Telephone = candidate.Addresses.FirstOrDefault() == null ? null : candidate.Addresses.FirstOrDefault().Telephone,
|
||||
MobilePhone = candidate.Addresses.FirstOrDefault() == null ? null : candidate.Addresses.FirstOrDefault().Mobile,
|
||||
// Knowledge = candidate.Knowledge,
|
||||
RegistAddress = $"{Address}{Moo}{Soi}{Road}",
|
||||
RegistProvince = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.Provinces.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().Province),
|
||||
RegistDistrict = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.Districts.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().District),
|
||||
RegistSubDistrict = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.SubDistricts.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().Amphur),
|
||||
RegistZipCode = candidate.Addresses.FirstOrDefault() == null ? null : candidate.Addresses.FirstOrDefault().ZipCode,
|
||||
RegistSame = false,
|
||||
CurrentAddress = $"{Address1}{Moo1}{Soi1}{Road1}",
|
||||
CurrentProvince = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.Provinces.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().Province1),
|
||||
CurrentDistrict = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.Districts.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().District1),
|
||||
CurrentSubDistrict = candidate.Addresses.FirstOrDefault() == null ? null : await _contextMetadata.SubDistricts.FirstOrDefaultAsync(x => x.Name == candidate.Addresses.FirstOrDefault().Amphur1),
|
||||
CurrentZipCode = candidate.Addresses.FirstOrDefault() == null ? null : candidate.Addresses.FirstOrDefault().ZipCode1,
|
||||
Marry = candidate.Marry.Contains("สมรส"),
|
||||
// MarryPrefix = await _contextMetadata.Prefixes.FirstOrDefaultAsync(x => x.Id == candidate.MarryPrefixId),
|
||||
// MarryFirstName = candidate.MarryFirstName,
|
||||
// MarryLastName = candidate.MarryLastName,
|
||||
// MarryOccupation = candidate.MarryOccupation,
|
||||
// MarryNationality = candidate.MarryNationality,
|
||||
// FatherPrefix = await _contextMetadata.Prefixes.FirstOrDefaultAsync(x => x.Id == candidate.FatherPrefixId),
|
||||
// FatherFirstName = candidate.FatherFirstName,
|
||||
// FatherLastName = candidate.FatherLastName,
|
||||
// FatherOccupation = candidate.FatherOccupation,
|
||||
// FatherNationality = candidate.FatherNationality,
|
||||
// MotherPrefix = await _contextMetadata.Prefixes.FirstOrDefaultAsync(x => x.Id == candidate.MotherPrefixId),
|
||||
// MotherFirstName = candidate.MotherFirstName,
|
||||
// MotherLastName = candidate.MotherLastName,
|
||||
// MotherOccupation = candidate.MotherOccupation,
|
||||
// MotherNationality = candidate.MotherNationality,
|
||||
OccupationType = "other",
|
||||
// OccupationCompany = candidate.OccupationCompany,
|
||||
OccupationDepartment = candidate.Occupations.FirstOrDefault() == null ? null : candidate.Occupations.FirstOrDefault().Workplace,
|
||||
// OccupationEmail = candidate.OccupationEmail,
|
||||
OccupationTelephone = candidate.Occupations.FirstOrDefault() == null ? null : candidate.Occupations.FirstOrDefault().Telephone,
|
||||
OccupationPosition = candidate.Occupations.FirstOrDefault() == null ? null : candidate.Occupations.FirstOrDefault().Position,
|
||||
PointTotalA = disableScore == null ? null : Convert.ToDouble(disableScore.FullA),
|
||||
PointA = disableScore == null ? null : Convert.ToDouble(disableScore.SumA),
|
||||
PointTotalB = disableScore == null ? null : Convert.ToDouble(disableScore.FullB),
|
||||
PointB = disableScore == null ? null : Convert.ToDouble(disableScore.SumB),
|
||||
PointTotalC = disableScore == null ? null : Convert.ToDouble(disableScore.FullC),
|
||||
PointC = disableScore == null ? null : Convert.ToDouble(disableScore.SumC),
|
||||
ExamNumber = disableScore == null || int.TryParse(disableScore.Number, out int n) == false ? null : Convert.ToInt32(disableScore.Number),
|
||||
ExamRound = null,
|
||||
IsRelief = false,
|
||||
PlacementStatus = "UN-CONTAIN",
|
||||
Pass = disableScore == null ? null : disableScore.ExamStatus,
|
||||
ReportingDate = DateTime.Now,
|
||||
CreatedAt = DateTime.Now,
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedFullName = FullName ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdateFullName = FullName ?? "",
|
||||
};
|
||||
await _contextMetadata.PlacementProfiles.AddAsync(placementProfile);
|
||||
|
||||
var placementEducation = new PlacementEducation
|
||||
{
|
||||
PlacementProfile = placementProfile,
|
||||
EducationLevel = await _contextMetadata.EducationLevels.FirstOrDefaultAsync(x => x.Name == (candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().HighDegree)),
|
||||
Field = candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().Major,
|
||||
Gpa = candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().GPA.ToString(),
|
||||
Institute = candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().University,
|
||||
Degree = candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().Degree,
|
||||
// Country = education.Name,
|
||||
// Duration = education.Name,
|
||||
// Other = education.Name,
|
||||
// FundName = education.Name,
|
||||
// DurationYear = education.Name,
|
||||
FinishDate = candidate.Educations.FirstOrDefault() == null ? null : candidate.Educations.FirstOrDefault().BachelorDate,
|
||||
IsDate = true,
|
||||
// StartDate = education.DurationStart,
|
||||
// EndDate = education.DurationEnd,
|
||||
CreatedAt = DateTime.Now,
|
||||
CreatedUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
CreatedFullName = FullName ?? "",
|
||||
LastUpdateFullName = FullName ?? "",
|
||||
};
|
||||
await _contextMetadata.PlacementEducations.AddAsync(placementEducation);
|
||||
|
||||
var placementCertificate = new PlacementCertificate
|
||||
{
|
||||
PlacementProfile = placementProfile,
|
||||
CertificateNo = candidate.Certificates.FirstOrDefault() == null ? null : candidate.Certificates.FirstOrDefault().CertificateNo,
|
||||
// Issuer = candidate.Certificates.FirstOrDefault() == null ? null : candidate.Certificates.FirstOrDefault().Issuer,
|
||||
IssueDate = candidate.Certificates.FirstOrDefault() == null ? null : candidate.Certificates.FirstOrDefault().IssueDate,
|
||||
ExpireDate = candidate.Certificates.FirstOrDefault() == null ? null : candidate.Certificates.FirstOrDefault().ExpiredDate,
|
||||
CertificateType = candidate.Certificates.FirstOrDefault() == null ? null : candidate.Certificates.FirstOrDefault().Description,
|
||||
CreatedAt = DateTime.Now,
|
||||
CreatedUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
CreatedFullName = FullName ?? "",
|
||||
LastUpdateFullName = FullName ?? "",
|
||||
};
|
||||
await _contextMetadata.PlacementCertificates.AddAsync(placementCertificate);
|
||||
}
|
||||
await _contextMetadata.SaveChangesAsync();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue