api รายงานเครื่องราช

This commit is contained in:
Harid Promsri (Bright) 2023-09-08 15:44:43 +07:00
parent cba981e432
commit 2d5f1fc8be
8 changed files with 177 additions and 17 deletions

View file

@ -1,5 +1,6 @@
using BMA.EHR.Application.Repositories.Reports;
using BMA.EHR.Domain.Common;
using BMA.EHR.Domain.Models.Insignias;
using DocumentFormat.OpenXml.Drawing;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@ -13,7 +14,7 @@ namespace BMA.EHR.Report.Service.Controllers
[ApiVersion("2.0")]
[ApiController]
[Produces("application/json")]
[Authorize]
//[Authorize]
[SwaggerTag("API รายงานระบบเครื่องราชอิสริยาภรณ์")]
public class InsigniaReportController : BaseController
{
@ -88,7 +89,8 @@ namespace BMA.EHR.Report.Service.Controllers
{
_Khr1List.Add(new
{
RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data),
//RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data),
RowNo = _Khr1List.Count + 1,
DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data),
G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
@ -100,7 +102,7 @@ namespace BMA.EHR.Report.Service.Controllers
G4Female = _data.GetType().GetProperty("G4Female").GetValue(_data),
G5Male = _data.GetType().GetProperty("G5Male").GetValue(_data),
G5Female = _data.GetType().GetProperty("G5Female").GetValue(_data),
reason = string.Empty,
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
});
}
var tbl = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
@ -169,7 +171,6 @@ namespace BMA.EHR.Report.Service.Controllers
{
_Khr2List.Add(new
{
//RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data),
RowNo = _Khr2List.Count+1,
DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data),
G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
@ -190,6 +191,7 @@ namespace BMA.EHR.Report.Service.Controllers
G8Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
G9Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
G9Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
});
}
var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
@ -229,6 +231,9 @@ namespace BMA.EHR.Report.Service.Controllers
try
{
var data = await _repository.GetKhr3Report(id);
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
var TwoYearInsignalPeriod = await _repository.Get2YearInsigniaPeriod(id);
var Date = await _repository.GetDateInsigniaPeriod(id);
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@ -236,12 +241,47 @@ namespace BMA.EHR.Report.Service.Controllers
case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
}
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
ReportPackager reportPacker = new ReportPackager();
Telerik.Reporting.Report? report = null;
using (var sourceStream = System.IO.File.OpenRead(rptFile))
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
return File(contentData, mimeType, $"แบบ ขร3.{exportType.Trim().ToLower()}");
report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod;
report.ReportParameters["TwoYearInsignalPeriod"].Value = TwoYearInsignalPeriod;
report.ReportParameters["EndDate"].Value = Date.GetType().GetProperty("EndDate").GetValue(Date);
//int count = ((IEnumerable<object>)data).Count();
//int counter = 0;
//var _Khr3LeftList = new List<dynamic>();
//var _Khr3RightList = new List<dynamic>();
//foreach(var _data in data)
//{
// _Khr3LeftList.Add(new
// {
// RowNo = _Khr3LeftList.Count +1,
// FullName = _data.GetType().GetProperty("FullName").GetValue(_data),
// OCName = _data.GetType().GetProperty("OCName").GetValue(_data),
// InsigniaName = _data.GetType().GetProperty("InsigniaName").GetValue(_data),
// });
//}
//var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
//tbl1.DataSource = _Khr3LeftList;
//var tbl2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"];
//tbl2.DataSource = _Khr3RightList;
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);
return File(result.DocumentBytes, mimeType, $"แบบ ขร3.{exportType.Trim().ToLower()}");
}
catch
{
@ -266,6 +306,8 @@ namespace BMA.EHR.Report.Service.Controllers
try
{
var data = await _repository.GetKhr4Report(id);
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
var TwoYearInsignalPeriod = await _repository.Get2YearInsigniaPeriod(id);
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@ -281,9 +323,30 @@ namespace BMA.EHR.Report.Service.Controllers
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod;
report.ReportParameters["TwoYearInsignalPeriod"].Value = TwoYearInsignalPeriod;
var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
tbl1.DataSource = data;
var _Khr4List = new List<dynamic>();
foreach (var _data in data)
{
_Khr4List.Add(new
{
RowNo = _Khr4List.Count + 1,
FullName = _data.GetType().GetProperty("FullName").GetValue(_data),
CitizenId = _data.GetType().GetProperty("CitizenId").GetValue(_data),
Type = _data.GetType().GetProperty("Type").GetValue(_data),
Level = _data.GetType().GetProperty("Level").GetValue(_data),
DateStart = _data.GetType().GetProperty("DateStart").GetValue(_data),
SalaryAmount = _data.GetType().GetProperty("SalaryAmount").GetValue(_data),
Position = _data.GetType().GetProperty("Position").GetValue(_data),
InsigniaRecv = _data.GetType().GetProperty("InsigniaRecv").GetValue(_data),
InsigniaRecvDate = _data.GetType().GetProperty("InsigniaRecvDate").GetValue(_data),
InsigniaRequest = _data.GetType().GetProperty("InsigniaRequest").GetValue(_data),
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
});
}
tbl1.DataSource = _Khr4List;
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
InstanceReportSource instanceReportSource = new InstanceReportSource()
@ -354,7 +417,9 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var data = await _repository.GetSummaryCoinReport(id);
var SummaryTotal = await _repository.GetSummaryTotalCoinReport(id);
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@ -364,9 +429,41 @@ namespace BMA.EHR.Report.Service.Controllers
}
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
ReportPackager reportPacker = new ReportPackager();
Telerik.Reporting.Report? report = null;
using (var sourceStream = System.IO.File.OpenRead(rptFile))
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod;
return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}");
var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
var _Khr6List = new List<dynamic>();
foreach (var _data in data)
{
_Khr6List.Add(new
{
RowNo = _Khr6List.Count + 1,
DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data),
G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
G2Male = _data.GetType().GetProperty("G2Male").GetValue(_data),
G2Female = _data.GetType().GetProperty("G2Female").GetValue(_data),
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
});
}
tbl1.DataSource = _Khr6List;
var tbl2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"];
tbl2.DataSource = SummaryTotal;
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);
return File(result.DocumentBytes, mimeType, $"บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ{exportType.Trim().ToLower()}");
}
catch
@ -391,7 +488,8 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var data = await _repository.GetCoinReport(id);
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@ -401,9 +499,37 @@ namespace BMA.EHR.Report.Service.Controllers
}
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
ReportPackager reportPacker = new ReportPackager();
Telerik.Reporting.Report? report = null;
using (var sourceStream = System.IO.File.OpenRead(rptFile))
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}");
report.ReportParameters["YearInsignalPeriod"].Value = YearInsignalPeriod;
//var _Khr3List = new List<dynamic>();
//int maxRows = 25;
//for (int i = 0; i < maxRows; i++)
//{
// _Khr3List.Add(new
// {
// RowNo = i + 1,
// FullName = string.Empty
// });
//}
//var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"];
//tbl1.DataSource = _Khr3List;
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);
return File(result.DocumentBytes, mimeType, $"บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.{exportType.Trim().ToLower()}");
}
catch
@ -428,7 +554,8 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var profile = await _repository.GetProfileInsignia(id);
var data = await _repository.GetHistorySalaryReport(id);
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@ -438,9 +565,42 @@ namespace BMA.EHR.Report.Service.Controllers
}
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
ReportPackager reportPacker = new ReportPackager();
Telerik.Reporting.Report? report = null;
using (var sourceStream = System.IO.File.OpenRead(rptFile))
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}");
report.ReportParameters["FullName"].Value = profile.GetType().GetProperty("FullName").GetValue(profile);
report.ReportParameters["Position"].Value = profile.GetType().GetProperty("Position").GetValue(profile);
report.ReportParameters["OCName"].Value = profile.GetType().GetProperty("OCName").GetValue(profile);
report.ReportParameters["BirthDate"].Value = profile.GetType().GetProperty("BirthDate").GetValue(profile);
var historysalary = new List<dynamic>();
foreach (var _data in data)
{
historysalary.Add(new
{
DateTh = _data.GetType().GetProperty("DateTh").GetValue(_data),
Position = _data.GetType().GetProperty("Position").GetValue(_data),
OCName = _data.GetType().GetProperty("OCName").GetValue(_data),
Age = _data.GetType().GetProperty("Age").GetValue(_data),
Amount = _data.GetType().GetProperty("Amount").GetValue(_data),
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
});
}
var tbl1 = (Telerik.Reporting.Table)report.Items["detailsection1"].Items["table1"];
tbl1.DataSource = historysalary;
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);
return File(result.DocumentBytes, mimeType, $"ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.{exportType.Trim().ToLower()}");
}
catch