Merge branch 'develop' into working

This commit is contained in:
Suphonchai Phoonsawat 2026-01-07 12:07:21 +07:00
commit 14eb80a30e
4 changed files with 945 additions and 845 deletions

File diff suppressed because it is too large Load diff

View file

@ -157,7 +157,7 @@ namespace BMA.EHR.Application.Repositories
return null; return null;
} }
catch(Exception ex) catch (Exception ex)
{ {
throw; throw;
} }
@ -520,7 +520,7 @@ namespace BMA.EHR.Application.Repositories
} }
} }
public async Task<List<GetProfileByKeycloakIdRootDto>> GetProfileByAdminRole(string? accessToken, int? node, string? nodeId, string role, string? revisionId, int? reqNode, string? reqNodeId,DateTime? startDate, DateTime? endDate) public async Task<List<GetProfileByKeycloakIdRootDto>> GetProfileByAdminRole(string? accessToken, int? node, string? nodeId, string role, string? revisionId, int? reqNode, string? reqNodeId, DateTime? startDate, DateTime? endDate)
{ {
try try
{ {
@ -556,6 +556,44 @@ namespace BMA.EHR.Application.Repositories
} }
} }
public async Task<List<GetProfileByKeycloakIdRootDto>> GetProfileByAdminRolev2(string? accessToken, int? node, string? nodeId, string role, string? revisionId, int? reqNode, string? reqNodeId, DateTime? startDate, DateTime? endDate)
{
try
{
var apiPath = $"{_configuration["API"]}/org/dotnet/officer-by-admin-rolev2";
var apiKey = _configuration["API_KEY"];
var body = new
{
node = node,
nodeId = nodeId,
role = role,
// revisionId = revisionId,
reqNode = reqNode,
reqNodeId = reqNodeId,
// startDate = startDate,
// endDate = endDate
date = endDate
};
Console.WriteLine(body);
var profiles = new List<SearchProfileDto>();
var apiResult = await PostExternalAPIAsync(apiPath, accessToken, body, apiKey);
if (apiResult != null)
{
var raw = JsonConvert.DeserializeObject<GetListProfileByKeycloakIdRootResultDto>(apiResult);
if (raw != null)
return raw.Result;
}
return new List<GetProfileByKeycloakIdRootDto>();
}
catch
{
throw;
}
}
public async Task<List<GetProfileByKeycloakIdRootDto>> GetProfileWithKeycloakAllOfficerRetireFilterAndRevision(string? accessToken, int? node, string? nodeId, bool isAll, bool? isRetirement, string? revisionId) public async Task<List<GetProfileByKeycloakIdRootDto>> GetProfileWithKeycloakAllOfficerRetireFilterAndRevision(string? accessToken, int? node, string? nodeId, bool isAll, bool? isRetirement, string? revisionId)
{ {
try try
@ -688,7 +726,7 @@ namespace BMA.EHR.Application.Repositories
} }
} }
public async Task<List<GetProfileByKeycloakIdRootDto>> GetEmployeeByAdminRole(string? accessToken, int? node, string? nodeId, string role, string? revisionId, int? reqNode, string? reqNodeId,DateTime? startDate, DateTime? endDate) public async Task<List<GetProfileByKeycloakIdRootDto>> GetEmployeeByAdminRole(string? accessToken, int? node, string? nodeId, string role, string? revisionId, int? reqNode, string? reqNodeId, DateTime? startDate, DateTime? endDate)
{ {
try try
{ {
@ -946,7 +984,7 @@ namespace BMA.EHR.Application.Repositories
{ {
try try
{ {
var apiPath = $"{_configuration["API"]}/org/find/all"; var apiPath = $"{_configuration["API"]}/org/find/allv2";
var apiKey = _configuration["API_KEY"]; var apiKey = _configuration["API_KEY"];
var body = new var body = new
{ {

View file

@ -935,7 +935,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
var result = new var result = new
{ {
template = "แบบใบขอยกเลิกวันลา", template = "แบบใบขอยกเลิกวันลา",
@ -956,6 +956,22 @@ namespace BMA.EHR.Leave.Service.Controllers
profileType = data.ProfileType, profileType = data.ProfileType,
leaveReasonDelete = data.LeaveCancelComment == null ? "" : data.LeaveCancelComment!.ToThaiNumber(), leaveReasonDelete = data.LeaveCancelComment == null ? "" : data.LeaveCancelComment!.ToThaiNumber(),
leaveDetail = data.LeaveDetail.ToThaiNumber(), leaveDetail = data.LeaveDetail.ToThaiNumber(),
Type1 = profile.ProfileType == "OFFICER" ? "🗹" : "☐",
Type2 = profile.ProfileType != "OFFICER" ? "🗹" : "☐",
Type3 = "☐",
approve = approveResult,
approverComment = !string.IsNullOrEmpty(data.LeaveDirectorComment)
? data.LeaveDirectorComment.Replace("\r", "").Replace("\n", "").Trim()
: "......................",
approverUpdatedAt = data.LastUpdatedAt.HasValue
? data.LastUpdatedAt.Value.ToThaiShortDate().ToThaiNumber()
: "...... /...... /......",
leaveStatus = data.LeaveCancelStatus != null && data.LeaveCancelStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveCancelStatus != null && data.LeaveCancelStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
@ -1658,7 +1674,7 @@ namespace BMA.EHR.Leave.Service.Controllers
if (type.Trim().ToUpper() == "OFFICER") if (type.Trim().ToUpper() == "OFFICER")
{ {
profile = await _userProfileRepository.GetProfileByAdminRole(AccessToken, profileAdmin?.Node, nodeId, role, req.revisionId, req.node, req.nodeId, req.StartDate.Date, req.EndDate.Date); profile = await _userProfileRepository.GetProfileByAdminRolev2(AccessToken, profileAdmin?.Node, nodeId, role, req.revisionId, req.node, req.nodeId, req.StartDate.Date, req.EndDate.Date);
} }
else else
{ {
@ -1778,7 +1794,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper(); var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if(leaveRange != leaveRangeEnd) if (leaveRange != leaveRangeEnd)
{ {
if (leaveRangeEnd == "MORNING") if (leaveRangeEnd == "MORNING")
remarkStr += " - ครึ่งวันเช้า"; remarkStr += " - ครึ่งวันเช้า";
@ -1999,7 +2015,7 @@ namespace BMA.EHR.Leave.Service.Controllers
if (type.Trim().ToUpper() == "OFFICER") if (type.Trim().ToUpper() == "OFFICER")
{ {
profile = await _userProfileRepository.GetProfileByAdminRole(AccessToken, profileAdmin?.Node, nodeId, role, req.revisionId, req.node, req.nodeId, req.StartDate.Date, req.EndDate.Date); profile = await _userProfileRepository.GetProfileByAdminRolev2(AccessToken, profileAdmin?.Node, nodeId, role, req.revisionId, req.node, req.nodeId, req.StartDate.Date, req.EndDate.Date);
} }
else else
{ {
@ -2114,7 +2130,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// remarkStr += "ครึ่งวันบ่าย"; // remarkStr += "ครึ่งวันบ่าย";
var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper(); var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if(leaveRange != leaveRangeEnd) if (leaveRange != leaveRangeEnd)
{ {
if (leaveRangeEnd == "MORNING") if (leaveRangeEnd == "MORNING")
remarkStr += " - ครึ่งวันเช้า"; remarkStr += " - ครึ่งวันเช้า";
@ -2241,7 +2257,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}"; var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}";
var org = _userProfileRepository.GetOc(Guid.Parse(req.nodeId), req.node, AccessToken); var org = _userProfileRepository.GetOc(Guid.Parse(req.nodeId), req.node, AccessToken);
var organizationName = $"{(!string.IsNullOrEmpty(org.Child4) ? org.Child4 + "/" : "")}{(!string.IsNullOrEmpty(org.Child3) ? org.Child3 + "/" : "")}{(!string.IsNullOrEmpty(org.Child2) ? org.Child2 + "/" : "")}{(!string.IsNullOrEmpty(org.Child1) ? org.Child1 + "/" : "")}{org.Root ?? ""}"; var organizationName = org == null ? "" : $"{(!string.IsNullOrEmpty(org.Child4) ? org.Child4 + "/" : "")}{(!string.IsNullOrEmpty(org.Child3) ? org.Child3 + "/" : "")}{(!string.IsNullOrEmpty(org.Child2) ? org.Child2 + "/" : "")}{(!string.IsNullOrEmpty(org.Child1) ? org.Child1 + "/" : "")}{org.Root ?? ""}";
var dateTimeStamp = $"ประจำ ณ วัน{req.StartDate.Date.GetThaiDayOfWeek()} ที่ {req.StartDate.Date.ToThaiShortDate()}{enddate}"; var dateTimeStamp = $"ประจำ ณ วัน{req.StartDate.Date.GetThaiDayOfWeek()} ที่ {req.StartDate.Date.ToThaiShortDate()}{enddate}";
var templatePath = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", "TimeStampRecords.xlsx"); var templatePath = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", "TimeStampRecords.xlsx");

View file

@ -553,18 +553,23 @@ namespace BMA.EHR.Placement.Service.Controllers
// placementReceive.citizenId = org.result.citizenId; // placementReceive.citizenId = org.result.citizenId;
placementReceive.rootOld = org.result.root; placementReceive.rootOld = org.result.root;
placementReceive.rootOldId = org.result.rootId; placementReceive.rootOldId = org.result.rootId;
placementReceive.rootDnaId = org.result.rootDnaId;
placementReceive.rootShortNameOld = org.result.rootShortName; placementReceive.rootShortNameOld = org.result.rootShortName;
placementReceive.child1Old = org.result.child1; placementReceive.child1Old = org.result.child1;
placementReceive.child1OldId = org.result.child1Id; placementReceive.child1OldId = org.result.child1Id;
placementReceive.child1DnaId = org.result.child1DnaId;
placementReceive.child1ShortNameOld = org.result.child1ShortName; placementReceive.child1ShortNameOld = org.result.child1ShortName;
placementReceive.child2Old = org.result.child2; placementReceive.child2Old = org.result.child2;
placementReceive.child2OldId = org.result.child2Id; placementReceive.child2OldId = org.result.child2Id;
placementReceive.child2DnaId = org.result.child2DnaId;
placementReceive.child2ShortNameOld = org.result.child2ShortName; placementReceive.child2ShortNameOld = org.result.child2ShortName;
placementReceive.child3Old = org.result.child3; placementReceive.child3Old = org.result.child3;
placementReceive.child3OldId = org.result.child3Id; placementReceive.child3OldId = org.result.child3Id;
placementReceive.child4DnaId = org.result.child4DnaId;
placementReceive.child3ShortNameOld = org.result.child3ShortName; placementReceive.child3ShortNameOld = org.result.child3ShortName;
placementReceive.child4Old = org.result.child4; placementReceive.child4Old = org.result.child4;
placementReceive.child4OldId = org.result.child4Id; placementReceive.child4OldId = org.result.child4Id;
placementReceive.child4DnaId = org.result.child4DnaId;
placementReceive.child4ShortNameOld = org.result.child4ShortName; placementReceive.child4ShortNameOld = org.result.child4ShortName;
placementReceive.posMasterNoOld = org.result.posMasterNo; placementReceive.posMasterNoOld = org.result.posMasterNo;
placementReceive.posTypeOldId = org.result.posTypeId; placementReceive.posTypeOldId = org.result.posTypeId;