no message
This commit is contained in:
parent
938bfe0c4f
commit
14b3c386e0
1 changed files with 223 additions and 2 deletions
|
|
@ -1447,7 +1447,7 @@ namespace BMA.EHR.Placement.Service.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ส่งรายชื่อออกคำสั่ง
|
/// ส่งรายชื่อออกคำสั่ง C-PM-01
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <response code="200"></response>
|
/// <response code="200"></response>
|
||||||
|
|
@ -1458,7 +1458,11 @@ namespace BMA.EHR.Placement.Service.Controllers
|
||||||
public async Task<ActionResult<ResponseObject>> PostReportRecruit([FromBody] ReportPersonRequest req)
|
public async Task<ActionResult<ResponseObject>> PostReportRecruit([FromBody] ReportPersonRequest req)
|
||||||
{
|
{
|
||||||
var placementProfiles = await _context.PlacementProfiles
|
var placementProfiles = await _context.PlacementProfiles
|
||||||
|
.Include(x => x.Placement)
|
||||||
|
.ThenInclude(x => x.PlacementType)
|
||||||
.Where(x => req.refIds.Contains(x.Id.ToString()))
|
.Where(x => req.refIds.Contains(x.Id.ToString()))
|
||||||
|
.Where(x => x.Placement!.PlacementType!.Name != "สอบแข่งขัน")
|
||||||
|
.Where(x => x.typeCommand.Trim().ToUpper() == "APPOINTED")
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
foreach (var placementProfile in placementProfiles)
|
foreach (var placementProfile in placementProfiles)
|
||||||
{
|
{
|
||||||
|
|
@ -1470,7 +1474,7 @@ namespace BMA.EHR.Placement.Service.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ออกคำสั่ง
|
/// ออกคำสั่ง C-PM-01
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <response code="200"></response>
|
/// <response code="200"></response>
|
||||||
|
|
@ -1658,5 +1662,222 @@ namespace BMA.EHR.Placement.Service.Controllers
|
||||||
return Success();
|
return Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ส่งรายชื่อออกคำสั่ง C-PM-02
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <response code="200"></response>
|
||||||
|
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
|
||||||
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||||
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||||
|
[HttpPost("candidate/report")]
|
||||||
|
public async Task<ActionResult<ResponseObject>> PostReportCandidate([FromBody] ReportPersonRequest req)
|
||||||
|
{
|
||||||
|
var placementProfiles = await _context.PlacementProfiles
|
||||||
|
.Include(x => x.Placement)
|
||||||
|
.ThenInclude(x => x.PlacementType)
|
||||||
|
.Where(x => req.refIds.Contains(x.Id.ToString()))
|
||||||
|
.Where(x => x.Placement!.PlacementType!.Name != "สอบแข่งขัน")
|
||||||
|
.Where(x => x.typeCommand.Trim().ToUpper() == "APPOINTED")
|
||||||
|
.ToListAsync();
|
||||||
|
foreach (var placementProfile in placementProfiles)
|
||||||
|
{
|
||||||
|
// update placementstatus
|
||||||
|
placementProfile.PlacementStatus = "PREPARE-CONTAIN";
|
||||||
|
}
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
return Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ออกคำสั่ง C-PM-02
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <response code="200"></response>
|
||||||
|
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
|
||||||
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||||
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||||
|
[HttpPost("candidate/report/excecute")]
|
||||||
|
public async Task<ActionResult<ResponseObject>> PostReportExecuteCandidate([FromBody] ReportExecuteRequest req)
|
||||||
|
{
|
||||||
|
// create new profile
|
||||||
|
foreach (var recv in req.refIds)
|
||||||
|
{
|
||||||
|
// query placement Profile
|
||||||
|
var placementProfile = await _context.PlacementProfiles
|
||||||
|
.Include(x => x.PlacementCertificates)
|
||||||
|
.Include(x => x.PlacementEducations)
|
||||||
|
.ThenInclude(x => x.EducationLevel)
|
||||||
|
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
|
||||||
|
|
||||||
|
if (placementProfile == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/*ข้อมูล Profile ใหม่*/
|
||||||
|
var apiUrl = $"{_configuration["API"]}/org/profile/all";
|
||||||
|
var profileId = string.Empty;
|
||||||
|
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.Post, apiUrl);
|
||||||
|
var _res = await client.PostAsJsonAsync(apiUrl, new
|
||||||
|
{
|
||||||
|
rank = string.Empty,
|
||||||
|
prefix = placementProfile.Prefix == null ? string.Empty : placementProfile.Prefix,
|
||||||
|
firstName = placementProfile.Firstname == null ? string.Empty : placementProfile.Firstname,
|
||||||
|
lastName = placementProfile.Lastname == null ? string.Empty : placementProfile.Lastname,
|
||||||
|
citizenId = placementProfile.CitizenId == null ? string.Empty : placementProfile.CitizenId,
|
||||||
|
position = placementProfile.positionName == null ? string.Empty : placementProfile.positionName,
|
||||||
|
posLevelId = placementProfile.posLevelId == null ? string.Empty : placementProfile.posLevelId,
|
||||||
|
posTypeId = placementProfile.posTypeId == null ? string.Empty : placementProfile.posTypeId,
|
||||||
|
email = placementProfile.Email == null ? string.Empty : placementProfile.Email,
|
||||||
|
phone = placementProfile.MobilePhone == null ? string.Empty : placementProfile.MobilePhone,
|
||||||
|
keycloak = string.Empty,
|
||||||
|
isProbation = true,
|
||||||
|
isLeave = false,
|
||||||
|
dateRetire = (DateTime?)null,
|
||||||
|
dateAppoint = recv.commandAffectDate,
|
||||||
|
dateStart = recv.commandAffectDate,
|
||||||
|
govAgeAbsent = 0,
|
||||||
|
govAgePlus = 0,
|
||||||
|
birthDate = placementProfile.DateOfBirth == null ? (DateTime?)null : placementProfile.DateOfBirth,
|
||||||
|
reasonSameDate = (DateTime?)null,
|
||||||
|
ethnicity = placementProfile.Race == null ? string.Empty : placementProfile.Race,
|
||||||
|
telephoneNumber = placementProfile.Telephone == null ? string.Empty : placementProfile.Telephone,
|
||||||
|
nationality = placementProfile.Nationality == null ? string.Empty : placementProfile.Nationality,
|
||||||
|
gender = placementProfile.Gender == null ? string.Empty : placementProfile.Gender,
|
||||||
|
relationship = placementProfile.Relationship == null ? string.Empty : placementProfile.Relationship,
|
||||||
|
religion = placementProfile.Religion == null ? string.Empty : placementProfile.Religion,
|
||||||
|
bloodGroup = string.Empty,
|
||||||
|
registrationAddress = placementProfile.RegistAddress == null ? string.Empty : placementProfile.RegistAddress,
|
||||||
|
registrationProvinceId = (String?)null,
|
||||||
|
registrationDistrictId = (String?)null,
|
||||||
|
registrationSubDistrictId = (String?)null,
|
||||||
|
registrationZipCode = placementProfile.RegistZipCode == null ? string.Empty : placementProfile.RegistZipCode,
|
||||||
|
currentAddress = placementProfile.CurrentAddress == null ? string.Empty : placementProfile.CurrentAddress,
|
||||||
|
currentProvinceId = (String?)null,
|
||||||
|
currentDistrictId = (String?)null,
|
||||||
|
currentSubDistrictId = (String?)null,
|
||||||
|
currentZipCode = placementProfile.CurrentZipCode == null ? string.Empty : placementProfile.CurrentZipCode,
|
||||||
|
});
|
||||||
|
var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
profileId = JsonConvert.DeserializeObject<PlacementProfileId>(_result).result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (placementProfile.PlacementEducations != null)
|
||||||
|
{
|
||||||
|
var apiUrlEdu = $"{_configuration["API"]}/org/profile/educations";
|
||||||
|
using (var client = new HttpClient())
|
||||||
|
{
|
||||||
|
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||||
|
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
||||||
|
foreach (var edu in placementProfile.PlacementEducations)
|
||||||
|
{
|
||||||
|
var _res = await client.PostAsJsonAsync(apiUrlEdu, new
|
||||||
|
{
|
||||||
|
profileId = profileId,
|
||||||
|
country = edu.Country == null ? string.Empty : edu.Country,
|
||||||
|
degree = edu.Degree == null ? string.Empty : edu.Degree,
|
||||||
|
duration = edu.Duration == null ? string.Empty : edu.Duration,
|
||||||
|
durationYear = edu.DurationYear == null ? 0 : edu.DurationYear,
|
||||||
|
field = edu.Field == null ? string.Empty : edu.Field,
|
||||||
|
finishDate = edu.FinishDate == null ? (DateTime?)null : edu.FinishDate,
|
||||||
|
fundName = edu.FundName == null ? string.Empty : edu.FundName,
|
||||||
|
gpa = edu.Gpa == null ? string.Empty : edu.Gpa,
|
||||||
|
institute = edu.Institute == null ? string.Empty : edu.Institute,
|
||||||
|
other = edu.Other == null ? string.Empty : edu.Other,
|
||||||
|
startDate = edu.StartDate == null ? (DateTime?)null : edu.StartDate,
|
||||||
|
endDate = edu.EndDate == null ? (DateTime?)null : edu.EndDate,
|
||||||
|
educationLevel = edu.EducationLevel == null ? string.Empty : edu.EducationLevel.Name,
|
||||||
|
educationLevelId = string.Empty,
|
||||||
|
positionPath = edu.PositionPath == null ? null : edu.PositionPath,
|
||||||
|
positionPathId = string.Empty,
|
||||||
|
isDate = edu.IsDate,
|
||||||
|
isEducation = edu.IsEducation,
|
||||||
|
note = string.Empty,
|
||||||
|
});
|
||||||
|
var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (placementProfile.PlacementCertificates != null)
|
||||||
|
{
|
||||||
|
var apiUrlCer = $"{_configuration["API"]}/org/profile/certificate";
|
||||||
|
using (var client = new HttpClient())
|
||||||
|
{
|
||||||
|
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||||
|
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
||||||
|
foreach (var cer in placementProfile.PlacementCertificates)
|
||||||
|
{
|
||||||
|
var _res = await client.PostAsJsonAsync(apiUrlCer, new
|
||||||
|
{
|
||||||
|
profileId = profileId,
|
||||||
|
expireDate = cer.ExpireDate == null ? (DateTime?)null : cer.ExpireDate,
|
||||||
|
issueDate = cer.IssueDate == null ? (DateTime?)null : cer.IssueDate,
|
||||||
|
certificateNo = cer.CertificateNo == null ? string.Empty : cer.CertificateNo,
|
||||||
|
certificateType = cer.CertificateType == null ? string.Empty : cer.CertificateType,
|
||||||
|
issuer = cer.Issuer == null ? string.Empty : cer.Issuer,
|
||||||
|
});
|
||||||
|
var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var apiUrlSalary = $"{_configuration["API"]}/org/profile/salary";
|
||||||
|
using (var client = new HttpClient())
|
||||||
|
{
|
||||||
|
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||||
|
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
||||||
|
var _res = await client.PostAsJsonAsync(apiUrlSalary, new
|
||||||
|
{
|
||||||
|
profileId = profileId,
|
||||||
|
date = recv.commandAffectDate,
|
||||||
|
amount = placementProfile.Amount,
|
||||||
|
positionSalaryAmount = placementProfile.PositionSalaryAmount,
|
||||||
|
mouthSalaryAmount = placementProfile.MouthSalaryAmount,
|
||||||
|
posNo = placementProfile.posMasterNo == null ? "" :
|
||||||
|
placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
|
||||||
|
placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
|
||||||
|
placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
|
||||||
|
placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
|
||||||
|
placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
|
||||||
|
position = placementProfile.positionName == null ? string.Empty : placementProfile.positionName,
|
||||||
|
positionLine = string.Empty,
|
||||||
|
positionPathSide = string.Empty,
|
||||||
|
positionExecutive = string.Empty,
|
||||||
|
positionType = placementProfile.posTypeName == null ? string.Empty : placementProfile.posTypeName,
|
||||||
|
positionLevel = placementProfile.posLevelName == null ? string.Empty : placementProfile.posLevelName,
|
||||||
|
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
|
||||||
|
templateDoc = recv.templateDoc,
|
||||||
|
});
|
||||||
|
var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
var baseAPIOrg = _configuration["API"];
|
||||||
|
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
|
||||||
|
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.Post, apiUrlOrg);
|
||||||
|
var _res = await client.PostAsJsonAsync(apiUrlOrg, new
|
||||||
|
{
|
||||||
|
posmasterId = placementProfile.posmasterId,
|
||||||
|
positionId = placementProfile.positionId,
|
||||||
|
profileId = profileId,
|
||||||
|
});
|
||||||
|
var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
// update placementstatus
|
||||||
|
placementProfile.PlacementStatus = "CONTAIN";//DONE
|
||||||
|
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
return Success();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue