fix: Leave Optimize

This commit is contained in:
Suphonchai Phoonsawat 2024-07-12 11:58:32 +07:00
parent 8e6a45952a
commit 1a6fe487aa
5 changed files with 1206 additions and 16 deletions

View file

@ -160,5 +160,7 @@ namespace BMA.EHR.Domain.Models.Leave.Requests
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? CitizenId { get; set; }
}
}

View file

@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations.LeaveDb
{
/// <inheritdoc />
public partial class AddCitizenIdtoLeaveRequest : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "CitizenId",
table: "LeaveRequests",
type: "longtext",
nullable: true)
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CitizenId",
table: "LeaveRequests");
}
}
}

View file

@ -217,6 +217,9 @@ namespace BMA.EHR.Infrastructure.Migrations.LeaveDb
.HasColumnType("longtext")
.HasComment("เขียนที่ (ขอยกเลิก)");
b.Property<string>("CitizenId")
.HasColumnType("longtext");
b.Property<string>("CoupleDayCountryHistory")
.IsRequired()
.HasColumnType("longtext");

View file

@ -181,6 +181,7 @@ namespace BMA.EHR.Leave.Service.Controllers
Prefix = profile.Prefix,
FirstName = profile.FirstName,
LastName = profile.LastName,
CitizenId = profile.CitizenId,
};
// get leave last
@ -826,10 +827,10 @@ namespace BMA.EHR.Leave.Service.Controllers
//var thisYear = DateTime.Now.Year;
var data = await _leaveRequestRepository.GetLeaveRequestByYearAsync(req.Year);
var profileList = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
// var profileList = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
var resultData = (from d in data
join p in profileList on d.KeycloakUserId equals p.Keycloak
//join p in profileList on d.KeycloakUserId equals p.Keycloak
select new GetLeaveRequestCalendarResultDto
{
Id = d.Id,
@ -837,7 +838,7 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveTypeName = d.Type.Name,
DateSendLeave = d.CreatedAt.Date,
Status = d.LeaveStatus,
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
FullName = $"{d.Prefix}{d.FirstName} {d.LastName}",
LeaveEndDate = d.LeaveEndDate,
LeaveStartDate = d.LeaveStartDate,
KeycloakId = d.KeycloakUserId
@ -897,11 +898,11 @@ namespace BMA.EHR.Leave.Service.Controllers
{
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
// var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
// if (profile == null)
// {
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
// }
var rawData =
await _leaveRequestRepository.GetLeaveRequestByUserIdAsync(userId, req.Year, req.Type, req.Status);
@ -915,7 +916,7 @@ namespace BMA.EHR.Leave.Service.Controllers
Id = item.Id,
LeaveTypeId = item.Type.Id,
LeaveTypeName = item.Type.Name,
FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}",
FullName = $"{item.Prefix}{item.FirstName} {item.LastName}",
DateSendLeave = item.CreatedAt.Date,
IsDelete = item.LeaveStatus == "DELETE",
Status = item.LeaveStatus,
@ -983,7 +984,7 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveRange = rawData.LeaveRange ?? "",
LeaveTypeName = rawData.Type.Name,
LeaveTypeId = rawData.Type.Id,
FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}",
FullName = $"{rawData.Prefix}{rawData.FirstName} {rawData.LastName}",
DateSendLeave = rawData.CreatedAt,
Status = rawData.LeaveStatus,
LeaveStartDate = rawData.LeaveStartDate,
@ -1092,7 +1093,7 @@ namespace BMA.EHR.Leave.Service.Controllers
foreach (var item in rawData)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken);
// Get Organization
//var org = await _userProfileRepository.GetOrganizationById(profile.OcId ?? Guid.Empty);
@ -1112,11 +1113,11 @@ namespace BMA.EHR.Leave.Service.Controllers
FullName = $"{item.Prefix}{item.FirstName} {item.LastName}",
DateSendLeave = item.CreatedAt.Date,
Status = item.LeaveStatus,
CitizenId = profile.CitizenId ?? "",
CitizenId = item.CitizenId ?? "",
LeaveStartDate = item.LeaveStartDate,
LeaveEndDate = item.LeaveEndDate,
Position = profile.Position == null ? "" : profile.Position,
Level = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName,
Position = item.PositionName ?? "-",
Level = item.PositionLevelName ?? "-",
Agency = "-", //agency == null ? "" : agency.Name,
Org = "-", //gov_agency == null ? "" : gov_agency.Name,
LeaveRange = item.LeaveRange ?? "ALL"
@ -1217,9 +1218,9 @@ namespace BMA.EHR.Leave.Service.Controllers
Id = item.Id,
LeaveTypeId = item.Type.Id,
LeaveTypeName = item.Type.Name,
FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}",
FullName = $"{item.Prefix}{item.FirstName} {item.LastName}",
DateSendLeave = item.CreatedAt.Date,
Status = item.LeaveCancelStatus
Status = item.LeaveCancelStatus ?? ""
};
result.Add(res);
}