From 55a0f5c6ed940d1d662a9cebea3271aa374ea3b6 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 3 Sep 2023 20:54:12 +0700 Subject: [PATCH] Add Some Report --- .../Commands/CommandReportRepository.cs | 114 ++++++ .../Controllers/CommandReportController.cs | 371 +++++++++++++++++- .../Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp | Bin 2960 -> 2960 bytes ...สั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-5.trdp | Bin 28744 -> 28718 bytes ...สั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-6.trdp | Bin 2462 -> 2745 bytes ...งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-7.trdp | Bin 29212 -> 29018 bytes ...งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-8.trdp | Bin 2501 -> 2790 bytes ...งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ.trdp | Bin 2158 -> 29233 bytes 8 files changed, 465 insertions(+), 20 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs index efcca142..d0112a7c 100644 --- a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs @@ -346,6 +346,120 @@ namespace BMA.EHR.Application.Repositories.Commands } } + public async Task> GetCommandType08AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + + public async Task> GetCommandType09AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + public async Task> GetCommandType15AttachmentAsync(Guid id) { try diff --git a/BMA.EHR.Report.Service/Controllers/CommandReportController.cs b/BMA.EHR.Report.Service/Controllers/CommandReportController.cs index d8ba91f2..9224b3fe 100644 --- a/BMA.EHR.Report.Service/Controllers/CommandReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/CommandReportController.cs @@ -875,6 +875,327 @@ namespace BMA.EHR.Report.Service.Controllers #endregion + #region " C-PM-08 " + + private async Task GenerateCommandReportType08_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + ConclusionReturnNo = raw_data.ConclusionReturnNo, + ConclusionReturnDate = raw_data.ConclusionReturnDate == null ? "" : raw_data.ConclusionReturnDate.Value.ToThaiFullDate3(), + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-5.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType08_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType08AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-6.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType, instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-09 " + + private async Task GenerateCommandReportType09_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + ConclusionReturnNo = raw_data.ConclusionReturnNo, + ConclusionReturnDate = raw_data.ConclusionReturnDate == null ? "" : raw_data.ConclusionReturnDate.Value.ToThaiFullDate3(), + SourceOrganizationName = raw_data.SourceOrganizationName, + MilitaryCommandNo = raw_data.MilitaryCommandNo, + MilitaryCommanDate = raw_data.MilitaryCommanDate == null ? "" : raw_data.MilitaryCommanDate.Value.ToThaiFullDate3() + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-7.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType09_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType09AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-8.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType, instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-10 " + + private async Task GenerateCommandReportType10_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + + PlacementCommandIssuer = raw_data.PlacementCommandIssuer, + PlacementCommandNo = raw_data.PlacementCommandNo, + PlacementCommandDate = raw_data.PlacementCommandDate == null ? "" : raw_data.PlacementCommandDate.Value.ToThaiFullDate3(), + PlacementPositionName = raw_data.PlacementPositionName, + PlacementOrganizationName = raw_data.PlacementOrganizationName, + ProbationStartDate = raw_data.ProbationStartDate == null ? "" : raw_data.ProbationStartDate.Value.ToThaiFullDate3(), + ProbationEndDate = raw_data.ProbationEndDate == null ? "" : raw_data.ProbationEndDate.Value.ToThaiFullDate3(), + ChairManFullName = raw_data.ChairManFullName, + Member1FullName = raw_data.Member1FullName, + Member2FullName = raw_data.Member2FullName, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"10-แต่งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + #region " C-PM-15 " private async Task GenerateCommandReportType15_Cover(Guid commandId, string exportType) @@ -1923,7 +2244,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType08CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType08CoverReportAsync(Guid id, string exportType = "pdf") { try { @@ -1935,10 +2256,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-5.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType08_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -1960,7 +2283,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType08AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType08AttachmentReportAsync(Guid id, string exportType = "pdf") { try { @@ -1972,10 +2295,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-6.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType08_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -2001,7 +2326,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType09CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType09CoverReportAsync(Guid id, string exportType = "pdf") { try { @@ -2013,10 +2338,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-7.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType09_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -2038,7 +2365,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType09AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType09AttachmentReportAsync(Guid id, string exportType = "pdf") { try { @@ -2050,10 +2377,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-8.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType09_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -2079,7 +2408,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType10CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType10CoverReportAsync(Guid id, string exportType = "pdf") { try { @@ -2091,10 +2420,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"10-แต่งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType10_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { diff --git a/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp b/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp index 64bb8ecd980d399072dc0143f22945f483275f7f..c8ac9bdd35fa061da769149716377be45d692281 100644 GIT binary patch delta 42 tcmbOrK0%x(z?+#xgn@y9gF$-HMjlBnCh0|!)wv#lC~j^m5arJ82>`tk390}9 delta 42 tcmbOrK0%x(z?+#xgn@y9gFzv4Bab8(lS1ZXb*@JsiksUCM7eW&0syd%2-*Mu diff --git a/BMA.EHR.Report.Service/Reports/08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-5.trdp b/BMA.EHR.Report.Service/Reports/08-คำสั่งบรรจุและแต่งตั้งข้าราชการฯกลับเข้ารับราชการ-5.trdp index f069c900a3242b92ee636049cb92dec0acf813aa..9938d1b38df45668b99eec100cb8e4db09bbd6c8 100644 GIT binary patch delta 1530 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 U0000200IDg0000B2><{90B%bZ>Hq)$ diff --git a/BMA.EHR.Report.Service/Reports/09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-7.trdp b/BMA.EHR.Report.Service/Reports/09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-7.trdp index 56c43d298385e652563cb1a45e1a12036a8b83cb..443b6a1df489b30019ba18d3839d4760407a1b6f 100644 GIT binary patch delta 1857 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 j0Pg?*022TJ00000000000000`aFZ`_B?don00000I3eha diff --git a/BMA.EHR.Report.Service/Reports/09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-8.trdp b/BMA.EHR.Report.Service/Reports/09-คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ-8.trdp index c4864a0bd40f997d009c693b277c3f3e9ea982ad..f9616b6213b3d2e7f5a6591259276756e2d55350 100644 GIT binary patch delta 2453 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 diff --git a/BMA.EHR.Report.Service/Reports/10-แต่งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ.trdp b/BMA.EHR.Report.Service/Reports/10-แต่งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ.trdp index 4ae38b8b242f95bfcd7acc24d44d3418b1ea91ba..84e2c8c3e405c27b702c0df904f28e9ab20945a6 100644 GIT binary patch literal 29233 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 oaWBir2rN1Rd&M~+3LWEpE