Merge branch 'develop' into working

This commit is contained in:
DESKTOP-2S5P7D1\Windows 10 2023-08-30 17:54:10 +07:00
commit fd682007f8
9 changed files with 16344 additions and 38 deletions

View file

@ -4612,6 +4612,7 @@ namespace BMA.EHR.Application.Repositories
var type3_level11 = await GetInsigniaCandidate_Type3_Level11(periodId, ocId); var type3_level11 = await GetInsigniaCandidate_Type3_Level11(periodId, ocId);
var type4_level10 = await GetInsigniaCandidate_Type4_Level10(periodId, ocId); var type4_level10 = await GetInsigniaCandidate_Type4_Level10(periodId, ocId);
var type4_level11 = await GetInsigniaCandidate_Type4_Level11(periodId, ocId); var type4_level11 = await GetInsigniaCandidate_Type4_Level11(periodId, ocId);
var type_coin = await GetInsigniaCandidate(periodId, ocId);
// union result // union result
foreach (var r in type4_level11) foreach (var r in type4_level11)
@ -4698,6 +4699,10 @@ namespace BMA.EHR.Application.Repositories
if (old == null) if (old == null)
result_candidate.Add(r); result_candidate.Add(r);
} }
foreach (var r in type_coin)
{
result_candidate.Add(r);
}
return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList(); return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
} }

View file

@ -4,6 +4,7 @@ using BMA.EHR.Domain.Models.Base;
using BMA.EHR.Domain.Models.MetaData; using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Organizations; using BMA.EHR.Domain.Models.Organizations;
using BMA.EHR.Domain.Models.HR; using BMA.EHR.Domain.Models.HR;
using BMA.EHR.Domain.Models.Documents;
namespace BMA.EHR.Domain.Models.Placement namespace BMA.EHR.Domain.Models.Placement
{ {
@ -11,6 +12,8 @@ namespace BMA.EHR.Domain.Models.Placement
{ {
[Required, Comment("Id User")] [Required, Comment("Id User")]
public Profile Profile { get; set; } public Profile Profile { get; set; }
[Comment("Fk Table Document")]
public Document? Avatar { get; set; }
[Required, MaxLength(20), Comment("เลขประจำตัวประชาชน")] [Required, MaxLength(20), Comment("เลขประจำตัวประชาชน")]
public string CitizenId { get; set; } public string CitizenId { get; set; }
[Required, Comment("คำนำหน้า")] [Required, Comment("คำนำหน้า")]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,50 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class updatetableplacementaddavatar : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "AvatarId",
table: "PlacementReceives",
type: "char(36)",
nullable: true,
collation: "ascii_general_ci");
migrationBuilder.CreateIndex(
name: "IX_PlacementReceives_AvatarId",
table: "PlacementReceives",
column: "AvatarId");
migrationBuilder.AddForeignKey(
name: "FK_PlacementReceives_Documents_AvatarId",
table: "PlacementReceives",
column: "AvatarId",
principalTable: "Documents",
principalColumn: "Id");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_PlacementReceives_Documents_AvatarId",
table: "PlacementReceives");
migrationBuilder.DropIndex(
name: "IX_PlacementReceives_AvatarId",
table: "PlacementReceives");
migrationBuilder.DropColumn(
name: "AvatarId",
table: "PlacementReceives");
}
}
}

View file

@ -11718,6 +11718,9 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasColumnType("double") .HasColumnType("double")
.HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน");
b.Property<Guid?>("AvatarId")
.HasColumnType("char(36)");
b.Property<Guid?>("BloodGroupId") b.Property<Guid?>("BloodGroupId")
.HasColumnType("char(36)"); .HasColumnType("char(36)");
@ -11870,6 +11873,8 @@ namespace BMA.EHR.Infrastructure.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("AvatarId");
b.HasIndex("BloodGroupId"); b.HasIndex("BloodGroupId");
b.HasIndex("GenderId"); b.HasIndex("GenderId");
@ -15190,6 +15195,10 @@ namespace BMA.EHR.Infrastructure.Migrations
modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b =>
{ {
b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Avatar")
.WithMany()
.HasForeignKey("AvatarId");
b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup")
.WithMany() .WithMany()
.HasForeignKey("BloodGroupId"); .HasForeignKey("BloodGroupId");
@ -15246,6 +15255,8 @@ namespace BMA.EHR.Infrastructure.Migrations
.WithMany() .WithMany()
.HasForeignKey("ReligionId"); .HasForeignKey("ReligionId");
b.Navigation("Avatar");
b.Navigation("BloodGroup"); b.Navigation("BloodGroup");
b.Navigation("Gender"); b.Navigation("Gender");

View file

@ -153,22 +153,23 @@ namespace BMA.EHR.Placement.Service.Controllers
p.PositionLevelOld, p.PositionLevelOld,
p.PositionNumberOld, p.PositionNumberOld,
p.OrganizationPositionOld, p.OrganizationPositionOld,
PlacementReceiveDocs = p.PlacementReceiveDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), Avatar = p.Avatar == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Avatar.Id,
// PlacementReceiveDocs = p.PlacementReceiveDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
}) })
.FirstOrDefaultAsync(); .FirstOrDefaultAsync();
if (data == null) if (data == null)
return Error(GlobalMessages.DataNotFound, 404); return Error(GlobalMessages.DataNotFound, 404);
var placementReceiveDocs = new List<dynamic>(); // var placementReceiveDocs = new List<dynamic>();
foreach (var doc in data.PlacementReceiveDocs) // foreach (var doc in data.PlacementReceiveDocs)
{ // {
var _doc = new // var _doc = new
{ // {
doc.FileName, // doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id) // PathName = await _documentService.ImagesPath(doc.Id)
}; // };
placementReceiveDocs.Add(_doc); // placementReceiveDocs.Add(_doc);
} // }
var _data = new var _data = new
{ {
data.Id, data.Id,
@ -204,7 +205,8 @@ namespace BMA.EHR.Placement.Service.Controllers
data.PositionLevelOld, data.PositionLevelOld,
data.PositionNumberOld, data.PositionNumberOld,
data.OrganizationPositionOld, data.OrganizationPositionOld,
Docs = placementReceiveDocs, Avatar = data.Avatar == Guid.Parse("00000000-0000-0000-0000-000000000000") ? null : await _documentService.ImagesPath(data.Avatar),
// Docs = placementReceiveDocs,
}; };
return Success(_data); return Success(_data);
@ -269,30 +271,31 @@ namespace BMA.EHR.Placement.Service.Controllers
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
if (Request.Form.Files != null && Request.Form.Files.Count != 0) if (Request.Form.Files != null && Request.Form.Files.Count != 0)
{ {
foreach (var file in Request.Form.Files) // foreach (var file in Request.Form.Files)
// {
var file = Request.Form.Files[0];
var fileExtension = Path.GetExtension(file.FileName);
var doc = await _documentService.UploadFileAsync(file, file.FileName);
var _doc = await _context.Documents.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == doc.Id);
if (_doc != null)
{ {
var fileExtension = Path.GetExtension(file.FileName); // var placementReceiveDoc = new PlacementReceiveDoc
// {
var doc = await _documentService.UploadFileAsync(file, file.FileName); // PlacementReceive = placementReceive,
var _doc = await _context.Documents.AsQueryable() // Document = _doc,
.FirstOrDefaultAsync(x => x.Id == doc.Id); // CreatedUserId = FullName ?? "",
if (_doc != null) // CreatedFullName = UserId ?? "System Administrator",
{ // CreatedAt = DateTime.Now,
var placementReceiveDoc = new PlacementReceiveDoc // LastUpdateFullName = FullName ?? "System Administrator",
{ // LastUpdateUserId = UserId ?? "",
PlacementReceive = placementReceive, // LastUpdatedAt = DateTime.Now,
Document = _doc, // };
CreatedUserId = FullName ?? "", // await _context.PlacementReceiveDocs.AddAsync(placementReceiveDoc);
CreatedFullName = UserId ?? "System Administrator", placementReceive.Avatar = _doc;
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
};
await _context.PlacementReceiveDocs.AddAsync(placementReceiveDoc);
}
} }
// }
} }
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();

View file

@ -54,12 +54,12 @@ namespace BMA.EHR.Report.Service.Controllers
switch (retire.GetType().GetProperty("Type").GetValue(retire)) switch (retire.GetType().GetProperty("Type").GetValue(retire))
{ {
case "OFFICER": case "OFFICER":
if (retire.GetType().GetProperty("TypeReport").GetValue(retire) == "ADD") if (string.IsNullOrEmpty(retire.GetType().GetProperty("TypeReport").GetValue(retire)))
{ {
reportfile = $"31-ประกาศเกษียณข้าราชการ-1.trdp"; reportfile = $"31-ประกาศเกษียณข้าราชการ-1.trdp";
returnfile = $"ประกาศเกษียณข้าราชการ.{exportType}"; returnfile = $"ประกาศเกษียณข้าราชการ.{exportType}";
} }
else if (retire.GetType().GetProperty("TypeReport").GetValue(retire) == "EDIT") else if (retire.GetType().GetProperty("TypeReport").GetValue(retire) == "ADD" || retire.GetType().GetProperty("TypeReport").GetValue(retire) == "EDIT")
{ {
reportfile = $"31-ประกาศเกษียณข้าราชการ-2.trdp"; reportfile = $"31-ประกาศเกษียณข้าราชการ-2.trdp";
returnfile = $"แก้ไขประกาศเกษียณข้าราชการ.{exportType}"; returnfile = $"แก้ไขประกาศเกษียณข้าราชการ.{exportType}";
@ -71,7 +71,7 @@ namespace BMA.EHR.Report.Service.Controllers
} }
else else
{ {
return Error(retire.GetType().GetProperty("TypeReport").ToString()); return Error(retire.GetType().GetProperty("TypeReport").GetValue(retire));
} }
break; break;
case "EMPLOYEE": case "EMPLOYEE":
@ -79,7 +79,7 @@ namespace BMA.EHR.Report.Service.Controllers
returnfile = $"ประกาศเกษียณลูกจ้าง.{exportType}"; returnfile = $"ประกาศเกษียณลูกจ้าง.{exportType}";
break; break;
default: default:
return BadRequest(retire); return Error(retire.GetType().GetProperty("Type").GetValue(retire));
} }
var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", reportfile); var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", reportfile);

View file

@ -0,0 +1,271 @@
using BMA.EHR.Domain.Common;
using BMA.EHR.Domain.Extensions;
using BMA.EHR.Domain.Shared;
using BMA.EHR.Application.Repositories.Reports;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
using Swashbuckle.AspNetCore.Annotations;
using DocumentFormat.OpenXml.Drawing;
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.IO;
namespace BMA.EHR.Report.Service.Controllers
{
[Route("api/v{version:apiVersion}/report/transfer")]
[ApiVersion("2.0")]
[ApiController]
[Produces("application/json")]
[Authorize]
[SwaggerTag("API รายงานรายการขอโอน")]
public class TransferReportController : BaseController
{
#region " Fields "
private readonly IWebHostEnvironment _hostingEnvironment;
private readonly IConfiguration _configuration;
private readonly GenericReportGenerator _reportGenerator;
#endregion
#region " Constuctor and Destructor "
public TransferReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, GenericReportGenerator reportGenerator)
{
_hostingEnvironment = hostingEnvironment;
_configuration = configuration;
_reportGenerator = reportGenerator;
}
#endregion
#region " Methods "
#region
/// <summary>
/// คําร้องขอโอนไปถึงส่วนราชการอื่นนอก กรุงเทพมหานครที่ข้าราชการประสงค์ขอโอน
/// </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("1/{exportType}/{id}")]
public IActionResult GetTransfer1ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#region
/// <summary>
/// หนังสือแจ้งสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานคร ให้ทราบตําแหน่งและตําแหน่งเลขที่ที่ดําเนินการให้โอน
/// </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("2/{exportType}/{id}")]
public IActionResult GetTransfer2ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#region
/// <summary>
/// หนังสือยินยอมให้โอนและวันที่พร้อมจะให้โอนไปยัง หน่วยงานที่รับโอน
/// </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("3/{exportType}/{id}")]
public IActionResult GetTransfer3ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#region
/// <summary>
/// หนังสือแจ้งสหกรณ์ออมทรัพย์กรุงเทพมหานครเพื่อขอ ตรวจสอบภาระหนี้สินสหกรณ์ออมทรัพย์
/// </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("4/{exportType}/{id}")]
public IActionResult GetTransfer4ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#region
/// <summary>
/// หนังสือถึงสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานครเพื่อขอตรวจสอบพฤติการณ์ทางวินัย และภาระหนี้สินสวัสดิการ
/// </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("5/{exportType}/{id}")]
public IActionResult GetTransfer5ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#region
/// <summary>
/// หนังสือถึงสถาบันพัฒนาข้าราชการกรุงเทพมหานครเพื่อขอตรวจสอบเรื่องภาระผูกพันการรับทุนและการลา ศึกษาต่อกับทางกรุงเทพมหานคร
/// </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("6/{exportType}/{id}")]
public IActionResult GetTransfer6ConvertReportAsync(Guid id, string exportType = "pdf")
{
try
{
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 rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"27-คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ-1.trdp");
var contentData = _reportGenerator.GenerateReport(rptFile, exportType);
return File(contentData, mimeType, $"transfer.{exportType.Trim().ToLower()}");
}
catch
{
throw;
}
}
#endregion
#endregion
}
}