ทmark alet insignia

This commit is contained in:
Kittapath 2023-09-27 13:20:00 +07:00
parent b7027ebe55
commit 9692af553b
9 changed files with 16687 additions and 241 deletions

View file

@ -5858,6 +5858,7 @@ namespace BMA.EHR.Application.Repositories
Status = h.Status, Status = h.Status,
RequestNote = h.ReasonReject, RequestNote = h.ReasonReject,
Reason = h.Reason, Reason = h.Reason,
MarkALert = h.MarkALert == null ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(h.MarkALert),
// Docs = GetDocFile(h.Profile.Id), // Docs = GetDocFile(h.Profile.Id),
MatchingConditions = h.MatchingConditions == null ? null : JsonConvert.DeserializeObject<List<MatchingCondition>>(h.MatchingConditions) MatchingConditions = h.MatchingConditions == null ? null : JsonConvert.DeserializeObject<List<MatchingCondition>>(h.MatchingConditions)
})).ToList(); })).ToList();

View file

@ -1,4 +1,5 @@
using BMA.EHR.Application.Common.Interfaces; using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Application.Messaging;
using BMA.EHR.Application.Responses; using BMA.EHR.Application.Responses;
using BMA.EHR.Application.Responses.Messages; using BMA.EHR.Application.Responses.Messages;
using BMA.EHR.Domain.Models.HR; using BMA.EHR.Domain.Models.HR;
@ -17,16 +18,19 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
private readonly IApplicationDBContext _dbContext; private readonly IApplicationDBContext _dbContext;
private readonly IHttpContextAccessor _httpContextAccessor; private readonly IHttpContextAccessor _httpContextAccessor;
private readonly EmailSenderService _emailSenderService;
#endregion #endregion
#region " Constructor and Destuctor " #region " Constructor and Destuctor "
public NotificationRepository(IApplicationDBContext dbContext, public NotificationRepository(IApplicationDBContext dbContext,
EmailSenderService emailSenderService,
IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor) IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor)
{ {
_dbContext = dbContext; _dbContext = dbContext;
_httpContextAccessor = httpContextAccessor; _httpContextAccessor = httpContextAccessor;
_emailSenderService = emailSenderService;
} }
#endregion #endregion
@ -130,19 +134,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
} }
if (IsSendMail == true) if (IsSendMail == true)
{ {
// _context.Notifications.Add(new Notification _emailSenderService.SendMail(Subject, Body, "kittapath@frappet.com");
// {
// Body = req.Body,
// ReceiverUserId = req.ReceiverUserId,
// Type = "",
// Payload = "",
// CreatedUserId = UserId ?? "System Administrator",
// CreatedFullName = FullName ?? "",
// CreatedAt = DateTime.Now,
// LastUpdateFullName = FullName ?? "System Administrator",
// LastUpdateUserId = UserId ?? "",
// LastUpdatedAt = DateTime.Now,
// });
} }
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
} }

View file

@ -18,6 +18,7 @@
public string Status { get; set; } public string Status { get; set; }
public bool IsApprove { get; set; } public bool IsApprove { get; set; }
public DateTime? RequestDate { get; set; } public DateTime? RequestDate { get; set; }
public List<string> MarkALert { get; set; }
public string? RequestNote { get; set; } public string? RequestNote { get; set; }
public string? Reason { get; set; } public string? Reason { get; set; }
public List<InsigniaRequestDoc>? Docs { get; set; } public List<InsigniaRequestDoc>? Docs { get; set; }

View file

@ -40,6 +40,9 @@ namespace BMA.EHR.Domain.Models.Insignias
[Comment("เหตุผลการได้รับเครื่องราชฯ")] [Comment("เหตุผลการได้รับเครื่องราชฯ")]
public string? Reason { get; set; } public string? Reason { get; set; }
[Comment("มาร์คแจ้งเตือนความผิด")]
public string? MarkALert { get; set; }
public Profile Profile { get; set; } public Profile Profile { get; set; }
public Insignia RequestInsignia { get; set; } public Insignia RequestInsignia { get; set; }

View file

@ -0,0 +1,30 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class updatetableinsignianoteprofileaddalert : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "MarkALert",
table: "InsigniaRequestProfiles",
type: "longtext",
nullable: true,
comment: "มาร์คแจ้งเตือนความผิด")
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "MarkALert",
table: "InsigniaRequestProfiles");
}
}
}

View file

@ -6004,6 +6004,10 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasColumnOrder(102) .HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("MarkALert")
.HasColumnType("longtext")
.HasComment("มาร์คแจ้งเตือนความผิด");
b.Property<string>("MatchingConditions") b.Property<string>("MatchingConditions")
.HasColumnType("text") .HasColumnType("text")
.HasComment("รายละเอียดเครื่องราชฯที่ขอ"); .HasComment("รายละเอียดเครื่องราชฯที่ขอ");

View file

@ -866,6 +866,30 @@ namespace BMA.EHR.Insignia.Service.Controllers
// } // }
// #endregion // #endregion
/// <summary>
/// Mark แจ้งเตือนเงื่อนไขได้รับเครื่องราช
/// </summary>
/// <param name="insigniaRequestProfileId">Id รายชื่อคนที่ยื่นของในรอบ</param>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("alert/{insigniaRequestProfileId:length(36)}")]
public async Task<ActionResult<ResponseObject>> MarkAlertProfileInsignia([FromBody] InsigniaMarkAlertRequest req, Guid insigniaRequestProfileId)
{
var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.Id == insigniaRequestProfileId);
if (insigniaRequestProfile == null)
return Error(GlobalMessages.InsigniaRequestProfileNotFound);
insigniaRequestProfile.MarkALert = JsonConvert.SerializeObject(req.Alert);
insigniaRequestProfile.LastUpdateFullName = FullName ?? "System Administrator";
insigniaRequestProfile.LastUpdateUserId = UserId ?? "";
insigniaRequestProfile.LastUpdatedAt = DateTime.Now;
_context.SaveChanges();
return Success();
}
/// <summary> /// <summary>
/// ย้ายขอมูลไปเป็น คนที่ไม่ยื่นขอ /// ย้ายขอมูลไปเป็น คนที่ไม่ยื่นขอ
/// </summary> /// </summary>
@ -880,7 +904,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
{ {
var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.Id == insigniaRequestProfileId); var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.Id == insigniaRequestProfileId);
if (insigniaRequestProfile == null) if (insigniaRequestProfile == null)
return Error(GlobalMessages.InsigniaPeriodNotFound); return Error(GlobalMessages.InsigniaRequestProfileNotFound);
insigniaRequestProfile.Status = "REJECT"; insigniaRequestProfile.Status = "REJECT";
insigniaRequestProfile.ReasonReject = req.Reason; insigniaRequestProfile.ReasonReject = req.Reason;
insigniaRequestProfile.LastUpdateFullName = FullName ?? "System Administrator"; insigniaRequestProfile.LastUpdateFullName = FullName ?? "System Administrator";
@ -904,7 +928,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
{ {
var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.Id == insigniaRequestProfileId); var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.Id == insigniaRequestProfileId);
if (insigniaRequestProfile == null) if (insigniaRequestProfile == null)
return Error(GlobalMessages.InsigniaPeriodNotFound); return Error(GlobalMessages.InsigniaRequestProfileNotFound);
insigniaRequestProfile.Status = "DELETE"; insigniaRequestProfile.Status = "DELETE";
insigniaRequestProfile.ReasonReject = req.Reason; insigniaRequestProfile.ReasonReject = req.Reason;
insigniaRequestProfile.LastUpdateFullName = FullName ?? "System Administrator"; insigniaRequestProfile.LastUpdateFullName = FullName ?? "System Administrator";
@ -2216,12 +2240,16 @@ namespace BMA.EHR.Insignia.Service.Controllers
[HttpPut("note/return/{insigniaNoteProfileId:length(36)}"), DisableRequestSizeLimit] [HttpPut("note/return/{insigniaNoteProfileId:length(36)}"), DisableRequestSizeLimit]
public async Task<ActionResult<ResponseObject>> UpdateReturnNoteInsignia([FromForm] InsigniaNoteReturnRequest req, Guid insigniaNoteProfileId) public async Task<ActionResult<ResponseObject>> UpdateReturnNoteInsignia([FromForm] InsigniaNoteReturnRequest req, Guid insigniaNoteProfileId)
{ {
var insigniaNoteProfile = await _context.InsigniaNoteProfiles.Where(x => x.Id == insigniaNoteProfileId).FirstOrDefaultAsync(); var insigniaNoteProfile = await _context.InsigniaNoteProfiles.Include(x => x.DocReturnInsignia).Where(x => x.Id == insigniaNoteProfileId).FirstOrDefaultAsync();
if (insigniaNoteProfile == null) if (insigniaNoteProfile == null)
return Error(GlobalMessages.InsigniaRequestProfileNotFound, 404); return Error(GlobalMessages.InsigniaRequestProfileNotFound, 404);
if (Request.Form.Files != null && Request.Form.Files.Count != 0) if (Request.Form.Files != null && Request.Form.Files.Count != 0)
{ {
if (insigniaNoteProfile.DocReturnInsignia != null)
{
await _documentService.DeleteFileAsync(insigniaNoteProfile.DocReturnInsignia.Id);
}
var file = Request.Form.Files[0]; var file = Request.Form.Files[0];
var fileExtension = Path.GetExtension(file.FileName); var fileExtension = Path.GetExtension(file.FileName);
@ -2250,12 +2278,17 @@ namespace BMA.EHR.Insignia.Service.Controllers
[HttpPut("note/receive/{insigniaNoteProfileId:length(36)}"), DisableRequestSizeLimit] [HttpPut("note/receive/{insigniaNoteProfileId:length(36)}"), DisableRequestSizeLimit]
public async Task<ActionResult<ResponseObject>> UpdateReceiveNoteInsignia([FromForm] InsigniaNoteReturnRequest req, Guid insigniaNoteProfileId) public async Task<ActionResult<ResponseObject>> UpdateReceiveNoteInsignia([FromForm] InsigniaNoteReturnRequest req, Guid insigniaNoteProfileId)
{ {
var insigniaNoteProfile = await _context.InsigniaNoteProfiles.Where(x => x.Id == insigniaNoteProfileId).FirstOrDefaultAsync(); var insigniaNoteProfile = await _context.InsigniaNoteProfiles.Include(x => x.DocReceiveInsignia).Where(x => x.Id == insigniaNoteProfileId).FirstOrDefaultAsync();
if (insigniaNoteProfile == null) if (insigniaNoteProfile == null)
return Error(GlobalMessages.InsigniaRequestProfileNotFound, 404); return Error(GlobalMessages.InsigniaRequestProfileNotFound, 404);
if (Request.Form.Files != null && Request.Form.Files.Count != 0) if (Request.Form.Files != null && Request.Form.Files.Count != 0)
{ {
if (insigniaNoteProfile.DocReceiveInsignia != null)
{
await _documentService.DeleteFileAsync(insigniaNoteProfile.DocReceiveInsignia.Id);
}
var file = Request.Form.Files[0]; var file = Request.Form.Files[0];
var fileExtension = Path.GetExtension(file.FileName); var fileExtension = Path.GetExtension(file.FileName);

View file

@ -0,0 +1,10 @@
using BMA.EHR.Domain.Models.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Insignia.Service.Requests
{
public class InsigniaMarkAlertRequest
{
public string[] Alert { get; set; }
}
}