report de retire
Some checks failed
release-dev / release-dev (push) Failing after 11s

This commit is contained in:
kittapath 2025-02-03 17:22:27 +07:00
parent 056a768ac9
commit ce5f2e3389

View file

@ -3,10 +3,6 @@ using BMA.EHR.Application.Repositories.MessageQueue;
using BMA.EHR.Application.Repositories.Reports;
using BMA.EHR.Application.Responses;
using BMA.EHR.Domain.Common;
using BMA.EHR.Domain.Extensions;
using BMA.EHR.Domain.Models.HR;
using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Notifications;
using BMA.EHR.Domain.Models.Retirement;
using BMA.EHR.Domain.Shared;
using BMA.EHR.Infrastructure.Persistence;
@ -18,10 +14,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Swashbuckle.AspNetCore.Annotations;
using System.Net.Http.Headers;
using System.Reflection.Metadata;
using System.Security.Claims;
using System.Security.Cryptography;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace BMA.EHR.Retirement.Service.Controllers
{
@ -747,5 +740,63 @@ namespace BMA.EHR.Retirement.Service.Controllers
return Success();
}
/// <summary>
/// 36-บันทึกเวียนแจ้งการถึงแก่กรรม
/// </summary>
/// <param name="id">Id รายการบันทึกเวียนแจ้งการถึงแก่กรรม</param>
/// <param name="exportType">pdf, docx หรือ xlsx</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("36/{exportType}/{id}")]
public async Task<ActionResult<ResponseObject>> GetDeceasedReportAsync(Guid id, string exportType = "pdf")
{
try
{
var head = await _repositoryRetireReport.GetHeadRetirementDeceasedAsync(id);
var detail = await _repositoryRetireReport.GetRetirementDeceasedAsync(id);
if (detail != null && head != null)
{
var mergeData = new
{
Oc = head.GetType().GetProperty("Oc").GetValue(head),
Number = head.GetType().GetProperty("Number").GetValue(head),
Date = head.GetType().GetProperty("Date").GetValue(head),
Subject = head.GetType().GetProperty("Subject").GetValue(head),
Send = head.GetType().GetProperty("Send").GetValue(head),
FullName = detail.GetType().GetProperty("FullName").GetValue(detail),
Position = detail.GetType().GetProperty("Position").GetValue(detail),
Reason = detail.GetType().GetProperty("Reason").GetValue(detail),
DeceasedDate = detail.GetType().GetProperty("Date").GetValue(detail),
CurrentDate = detail.GetType().GetProperty("CurrentDate").GetValue(detail),
DeceasedNumber = detail.GetType().GetProperty("Number").GetValue(detail),
Location = detail.GetType().GetProperty("Location").GetValue(detail),
};
var mimeType = "";
switch (exportType.Trim().ToLower())
{
case "pdf": mimeType = "application/pdf"; break;
case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
}
var data = new
{
template = "deceased",
reportName = "docx-report",
data = mergeData
};
return Success(data);
}
else
{
return NotFound();
}
}
catch
{
throw;
}
}
}
}