get บรรจุ ตามตำแหน่ง
This commit is contained in:
parent
85bc0fd359
commit
c9e36b1792
6 changed files with 10505 additions and 18 deletions
|
|
@ -5,17 +5,19 @@ using BMA.EHR.Domain.Models.Placement;
|
|||
using BMA.EHR.Domain.Shared;
|
||||
using BMA.EHR.Infrastructure.Persistence;
|
||||
using BMA.EHR.Placement.Service.Requests;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Swashbuckle.AspNetCore.Annotations;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace BMA.EHR.Placement.Service.Controllers
|
||||
{
|
||||
[Route("api/[controller]/placement")]
|
||||
[ApiController]
|
||||
[Produces("application/json")]
|
||||
//[Authorize]
|
||||
[Authorize]
|
||||
[SwaggerTag("ระบบบรรจุ")]
|
||||
public class PlacementController : BaseController
|
||||
{
|
||||
|
|
@ -41,6 +43,8 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
|
||||
private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value;
|
||||
|
||||
private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1");
|
||||
|
||||
#endregion
|
||||
|
||||
[HttpGet]
|
||||
|
|
@ -92,23 +96,54 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
[HttpGet("pass/{examId:length(36)}")]
|
||||
public async Task<ActionResult<ResponseObject>> GetExamByPlacement(Guid examId)
|
||||
{
|
||||
var data = await _context.PlacementProfiles.Where(x => x.Placement.Id == examId).Select(x => new
|
||||
if (PlacementAdmin == true)
|
||||
{
|
||||
PersonalId = x.Id,
|
||||
FullName = x.Prefix == null ? null : x.Prefix.Name + $"{x.Firstname} {x.Lastname}",
|
||||
IdCard = x.CitizenId,
|
||||
ProfilePhoto = x.Id,
|
||||
OrganizationName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationOrganization == null ? null : x.OrganizationPosition.Organization.OrganizationOrganization.Name)),////
|
||||
OrganizationShortName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationShortName == null ? null : x.OrganizationPosition.Organization.OrganizationShortName.Name)),////
|
||||
PositionNumber = x.PositionNumber == null ? null : x.PositionNumber.Name,
|
||||
PositionPath = x.PositionPath == null ? null : x.PositionPath.Name,
|
||||
ReportingDate = x.ReportingDate,
|
||||
BmaOfficer = x.IsOfficer,
|
||||
StatusId = x.PlacementStatus,
|
||||
Disclaim = x.IsRelief,
|
||||
}).ToListAsync();
|
||||
|
||||
return Success(data);
|
||||
var data = await _context.PlacementProfiles.Where(x => x.Placement.Id == examId).Select(x => new
|
||||
{
|
||||
PersonalId = x.Id,
|
||||
FullName = x.Prefix == null ? null : x.Prefix.Name + $"{x.Firstname} {x.Lastname}",
|
||||
IdCard = x.CitizenId,
|
||||
ProfilePhoto = x.Id,
|
||||
OrganizationName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationOrganization == null ? null : x.OrganizationPosition.Organization.OrganizationOrganization.Name)),////
|
||||
OrganizationShortName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationShortName == null ? null : x.OrganizationPosition.Organization.OrganizationShortName.Name)),////
|
||||
PositionNumber = x.PositionNumber == null ? null : x.PositionNumber.Name,
|
||||
PositionPath = x.PositionPath == null ? null : x.PositionPath.Name,
|
||||
ReportingDate = x.ReportingDate,
|
||||
BmaOfficer = x.IsOfficer,
|
||||
StatusId = x.PlacementStatus,
|
||||
Disclaim = x.IsRelief,
|
||||
}).ToListAsync();
|
||||
return Success(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
var profileOrg = await _context.Profiles.FirstOrDefaultAsync(x => x.KeycloakId == Guid.Parse(UserId ?? "00000000-0000-0000-0000-000000000000"));
|
||||
if (profileOrg == null)
|
||||
return Error(GlobalMessages.DataNotFound, 404);
|
||||
// var ocIdList = _documentService.GetAllIdByRoot(profileOrg.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : profileOrg.OcId);
|
||||
var ocIdList = _documentService.GetAllIdByRoot(profileOrg.OcId);
|
||||
var data = await _context.PlacementProfiles
|
||||
.Where(x => x.Placement.Id == examId)
|
||||
.Where(x => x.OrganizationPosition != null)
|
||||
.Where(x => x.OrganizationPosition.Organization != null)
|
||||
.Where(x => ocIdList.Contains(x.OrganizationPosition.Organization.Id))
|
||||
.Select(x => new
|
||||
{
|
||||
PersonalId = x.Id,
|
||||
FullName = x.Prefix == null ? null : x.Prefix.Name + $"{x.Firstname} {x.Lastname}",
|
||||
IdCard = x.CitizenId,
|
||||
ProfilePhoto = x.Id,
|
||||
OrganizationName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationOrganization == null ? null : x.OrganizationPosition.Organization.OrganizationOrganization.Name)),////
|
||||
OrganizationShortName = x.OrganizationPosition == null ? null : (x.OrganizationPosition.Organization == null ? null : (x.OrganizationPosition.Organization.OrganizationShortName == null ? null : x.OrganizationPosition.Organization.OrganizationShortName.Name)),////
|
||||
PositionNumber = x.PositionNumber == null ? null : x.PositionNumber.Name,
|
||||
PositionPath = x.PositionPath == null ? null : x.PositionPath.Name,
|
||||
ReportingDate = x.ReportingDate,
|
||||
BmaOfficer = x.IsOfficer,
|
||||
StatusId = x.PlacementStatus,
|
||||
Disclaim = x.IsRelief,
|
||||
}).ToListAsync();
|
||||
return Success(data);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("personal/{personalId:length(36)}")]
|
||||
|
|
@ -279,7 +314,7 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
|
||||
person.IsRelief = true;
|
||||
person.ReliefReason = Request.Form.ContainsKey("note") ? Request.Form["note"] : "";
|
||||
person.PlacementStatus = "UN-CONTAIN";
|
||||
person.PlacementStatus = "PREPARE-CONTAIN";
|
||||
if (Request.Form.Files != null && Request.Form.Files.Count != 0)
|
||||
{
|
||||
var file = Request.Form.Files[0];
|
||||
|
|
@ -405,6 +440,7 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
person.MouthSalaryAmount = req.MouthSalaryAmount;
|
||||
person.PositionSalaryAmount = req.PositionSalaryAmount;
|
||||
person.RecruitDate = req.ContainDate;
|
||||
person.PlacementStatus = "PREPARE-CONTAIN";
|
||||
person.LastUpdateFullName = FullName ?? "System Administrator";
|
||||
person.LastUpdateUserId = UserId ?? "";
|
||||
person.LastUpdatedAt = DateTime.Now;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue