diff --git a/.github/workflows/release_discipline.yaml b/.github/workflows/release_discipline.yaml
index 2dc3f5db..6d240854 100644
--- a/.github/workflows/release_discipline.yaml
+++ b/.github/workflows/release_discipline.yaml
@@ -67,21 +67,21 @@ jobs:
docker-compose pull
docker-compose up -d
echo "${{ steps.gen_ver.outputs.image_ver }}"> success
- # - uses: snow-actions/line-notify@v1.1.0
- # if: success()
- # with:
- # access_token: ${{ env.TOKEN_LINE }}
- # message: |
- # -Success✅✅✅
- # Image: ${{env.IMAGE_NAME}}
- # Version: ${{ github.event.inputs.IMAGE_VER }}
- # By: ${{secrets.DOCKER_USER}}
- # - uses: snow-actions/line-notify@v1.1.0
- # if: failure()
- # with:
- # access_token: ${{ env.TOKEN_LINE }}
- # message: |
- # -Failure❌❌❌
- # Image: ${{env.IMAGE_NAME}}
- # Version: ${{ github.event.inputs.IMAGE_VER }}
- # By: ${{secrets.DOCKER_USER}}
+ - uses: snow-actions/line-notify@v1.1.0
+ if: success()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Success✅✅✅
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
+ - uses: snow-actions/line-notify@v1.1.0
+ if: failure()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Failure❌❌❌
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
diff --git a/BMA.EHR.Discipline.Service/Controllers/DisciplineComplaintController.cs b/BMA.EHR.Discipline.Service/Controllers/DisciplineComplaintController.cs
index 02909fa8..f1570f0f 100644
--- a/BMA.EHR.Discipline.Service/Controllers/DisciplineComplaintController.cs
+++ b/BMA.EHR.Discipline.Service/Controllers/DisciplineComplaintController.cs
@@ -70,6 +70,7 @@ namespace BMA.EHR.DisciplineComplaint.Service.Controllers
CreatedAt = x.CreatedAt,//วันที่สร้างเรื่องร้องเรียน
LevelConsideration = x.LevelConsideration,//ระดับการพิจารณา
DateConsideration = x.DateConsideration,//วันที่กำหนดพิจารณา
+ DateReceived = x.DateReceived,//วันที่รับเรื่อง
Status = x.Status,//สถานะเรื่องร้องเรียน มีดังนี้ ใหม่ (NEW), ยุติเรื่อง (STOP), มีมูลส่งไปสืบสวนแล้ว (SEND_INVESTIGATE)
Result = x.Result,
})
@@ -393,8 +394,8 @@ namespace BMA.EHR.DisciplineComplaint.Service.Controllers
var persons = data.DisciplineComplaint_Profiles.Where(x => req.persons.Contains(x.Id)).ToList();
foreach (var item in persons)
{
- disciplineInvestigate.DisciplineInvestigate_Profiles.Add(
- new DisciplineInvestigate_Profile
+ disciplineInvestigate.DisciplineInvestigate_ProfileComplaints.Add(
+ new DisciplineInvestigate_ProfileComplaint
{
PersonId = item.PersonId,
CitizenId = item.CitizenId,
@@ -507,7 +508,7 @@ namespace BMA.EHR.DisciplineComplaint.Service.Controllers
}
///
- /// ลบอัพไฟล์เอกสารร้องเรียนวินัย
+ /// ลบไฟล์เอกสารร้องเรียนวินัย
///
///
///
@@ -533,8 +534,12 @@ namespace BMA.EHR.DisciplineComplaint.Service.Controllers
await _context.SaveChangesAsync();
await _documentService.DeleteFileAsync(docId);
await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
}
- return Success();
}
}
}
diff --git a/BMA.EHR.Discipline.Service/Controllers/DisciplineDisciplinaryController.cs b/BMA.EHR.Discipline.Service/Controllers/DisciplineDisciplinaryController.cs
new file mode 100644
index 00000000..2982cf8d
--- /dev/null
+++ b/BMA.EHR.Discipline.Service/Controllers/DisciplineDisciplinaryController.cs
@@ -0,0 +1,1278 @@
+using BMA.EHR.Application.Repositories;
+using BMA.EHR.Application.Repositories.MessageQueue;
+using BMA.EHR.Discipline.Service.Requests;
+using BMA.EHR.Domain.Common;
+using BMA.EHR.Domain.Models.Discipline;
+using BMA.EHR.Domain.Shared;
+using BMA.EHR.Infrastructure.Persistence;
+// using BMA.EHR.Placement.Service.Requests;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Swashbuckle.AspNetCore.Annotations;
+using System.Security.Claims;
+
+namespace BMA.EHR.DisciplineDisciplinary.Service.Controllers
+{
+ [Route("api/v{version:apiVersion}/discipline/disciplinary")]
+ [ApiVersion("1.0")]
+ [ApiController]
+ [Produces("application/json")]
+ [Authorize]
+ [SwaggerTag("ระบบวินัยเรื่องสอบสวน")]
+ public class DisciplineDisciplinaryController : BaseController
+ {
+ private readonly DisciplineDbContext _context;
+ private readonly MinIODisciplineService _documentService;
+ private readonly IHttpContextAccessor _httpContextAccessor;
+
+ public DisciplineDisciplinaryController(DisciplineDbContext context,
+ MinIODisciplineService documentService,
+ IHttpContextAccessor httpContextAccessor)
+ {
+ // _repository = repository;
+ _context = context;
+ _documentService = documentService;
+ _httpContextAccessor = httpContextAccessor;
+ }
+
+ #region " Properties "
+
+ private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
+
+ private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value;
+
+ #endregion
+
+ ///
+ /// list รายการวินัยเรื่องสอบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet()]
+ public async Task> GetDisciplineDisciplinary(int page = 1, int pageSize = 25, string keyword = "")
+ {
+ var data_search = (from x in _context.DisciplineDisciplinarys
+ where x.Title.Contains(keyword) ||
+ x.DisciplinaryFaultLevel.Contains(keyword) ||
+ x.DisciplinaryCaseFault.Contains(keyword)
+ select x).ToList();
+ var data = data_search
+ .Select(x => new
+ {
+ Id = x.Id,//id ข้อมูลเรื่องสอบสวน
+ Title = x.Title,//ชื่อเรื่อง
+ RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
+ OffenseDetails = x.OffenseDetails,//ลักษณะความผิด
+ DisciplinaryFaultLevel = x.DisciplinaryFaultLevel,//ระดับโทษความผิด
+ DisciplinaryCaseFault = x.DisciplinaryCaseFault,//กรณีความผิด
+ Status = x.Status,//สถานะหรือผลการสอบสวน
+ CreatedAt = x.CreatedAt,//วันที่สร้างเรื่องสอบสวน
+ })
+ .OrderByDescending(x => x.CreatedAt)
+ .Skip((page - 1) * pageSize)
+ .Take(pageSize)
+ .ToList();
+ return Success(new { data, total = data_search.Count() });
+ }
+
+ ///
+ /// get รายการวินัยเรื่องร้องเรียน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("complaint/{id:guid}")]
+ public async Task> GetByDisciplineDisciplinaryComplaint(Guid id)
+ {
+ var _data = await _context.DisciplineDisciplinarys
+ .Select(x => new
+ {
+ Id = x.Id,//id ข้อมูลเรื่องสอบสวน
+ IdInvestigate = x.DisciplineInvestigate.Id,//id ข้อมูลเรื่องสืบสวน
+ IdComplaint = x.DisciplineInvestigate.DisciplineComplaint.Id,//id ข้อมูลเรื่องร้องเรียน
+ RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
+ Persons = x.DisciplineDisciplinary_ProfileComplaintInvestigates.Select(p => new
+ {
+ Id = p.Id,
+ Idcard = p.CitizenId,
+ Name = $"{p.Prefix}{p.FirstName} {p.LastName}",
+ Prefix = p.Prefix,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ Position = p.Position,
+ PositionLevel = p.PositionLevel,
+ Salary = p.Salary,
+ PersonId = p.PersonId,
+ PosNo = p.PosNo,
+ Organization = p.Organization,
+ }),//รายการข้อมูลบุคลผู้ถูกสืบสวน
+ OrganizationId = x.Organization,//id หน่วยงานกรณี type เป็นหน่วยงาน
+ ConsideredAgency = x.ConsideredAgency,//หน่วยงานที่พิจารณา จะเปลี่ยนไปตามผู้ถูกร้องดูรายละเอียดด้านล่าง
+ Title = x.Title,//ชื่อเรื่อง
+ Description = x.Description,//รายละเอียด
+ DateReceived = x.DateReceived,//วันที่รับเรื่อง
+ LevelConsideration = x.LevelConsideration,//ระดับการพัฒนา
+ DateConsideration = x.DateConsideration,//วันที่กำหนดพิจารณา
+ OffenseDetails = x.OffenseDetails,//ลักษณะความผิด
+ DateNotification = x.DateNotification,//วันแจ้งเตือนล่วงหน้า
+ ComplaintFrom = x.ComplaintFrom,//รับเรื่องสืบสวนจาก
+ Appellant = x.Appellant,//ผู้ถูกสืบสวน
+ Result = x.ResultComplaint,//ผลการตรวจสอบ
+ Status = x.Status,//สถานะเรื่องสืบสวน
+ DisciplineDisciplinaryDocComplaintInvestigates = x.DisciplineDisciplinary_DocComplaintInvestigates.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ })
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (_data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+
+ var disciplineDisciplinaryDocComplaintInvestigates = new List();
+ foreach (var doc in _data.DisciplineDisciplinaryDocComplaintInvestigates)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinaryDocComplaintInvestigates.Add(_doc);
+ }
+ var data = new
+ {
+ _data.Id,
+ _data.IdInvestigate,
+ _data.IdComplaint,
+ _data.RespondentType,
+ _data.Persons,
+ _data.OrganizationId,
+ _data.ConsideredAgency,
+ _data.Title,
+ _data.Description,
+ _data.DateReceived,
+ _data.LevelConsideration,
+ _data.DateConsideration,
+ _data.OffenseDetails,
+ _data.DateNotification,
+ _data.ComplaintFrom,
+ _data.Appellant,
+ _data.Result,
+ _data.Status,
+ disciplineDisciplinaryDocComplaintInvestigates,
+ };
+ return Success(data);
+ }
+
+ ///
+ /// แก้ไขรายการวินัยเรื่องร้องเรียน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("complaint/{id:guid}")]
+ public async Task> UpdateDisciplineDisciplinaryComplaint([FromBody] DisciplineDisciplinaryComplaintRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys.Include(x => x.DisciplineDisciplinary_ProfileComplaintInvestigates).Where(x => x.Id == id).FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ data.Title = req.title;
+ data.Description = req.description;
+ data.OffenseDetails = req.offenseDetails.Trim().ToUpper();
+ data.LastUpdateFullName = FullName ?? "System Administrator";
+ data.LastUpdateUserId = UserId ?? "";
+ data.LastUpdatedAt = DateTime.Now;
+ _context.DisciplineDisciplinary_ProfileComplaintInvestigates.RemoveRange(data.DisciplineDisciplinary_ProfileComplaintInvestigates);
+ if (data.RespondentType.Trim().ToUpper() == "PERSON")
+ {
+ foreach (var item in req.persons)
+ {
+ data.DisciplineDisciplinary_ProfileComplaintInvestigates.Add(
+ new DisciplineDisciplinary_ProfileComplaintInvestigate
+ {
+ CitizenId = item.idcard,
+ Prefix = item.prefix,
+ FirstName = item.firstName,
+ LastName = item.lastName,
+ Organization = item.organization,
+ Position = item.position,
+ PositionLevel = item.positionLevel,
+ Salary = item.salary,
+ PersonId = item.personId,
+ PosNo = item.posNo,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ }
+ );
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success(data.Id);
+ }
+
+ ///
+ /// get รายการวินัยเรื่องสืบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("investigate/{id:guid}")]
+ public async Task> GetByDisciplineDisciplinaryInvestigate(Guid id)
+ {
+ var _data = await _context.DisciplineDisciplinarys
+ .Select(x => new
+ {
+ Id = x.Id,//id ข้อมูลเรื่องสอบสวน
+ IdInvestigate = x.DisciplineInvestigate.Id,//id ข้อมูลเรื่องสืบสวน
+ IdComplaint = x.DisciplineInvestigate.DisciplineComplaint.Id,//id ข้อมูลเรื่องร้องเรียน
+ InvestigationDetail = x.InvestigationDetail,
+ InvestigationDetailOther = x.InvestigationDetailOther,
+ InvestigationDateStart = x.InvestigationDateStart,
+ InvestigationDateEnd = x.InvestigationDateEnd,
+ InvestigationDescription = x.InvestigationDescription,
+ InvestigationStatusResult = x.InvestigationStatusResult,
+ InvestigationCauseText = x.InvestigationCauseText,
+ Status = x.Status,//สถานะเรื่องสืบสวน
+ Result = x.Result,//ผลการตรวจสอบ
+ Director = x.DisciplineDisciplinary_DirectorInvestigates.Select(d => new
+ {
+ Id = d.Id,
+ DirectorId = d.DisciplineDirector.Id,
+ Prefix = d.DisciplineDirector.Prefix,
+ FirstName = d.DisciplineDirector.FirstName,
+ LastName = d.DisciplineDirector.LastName,
+ Position = d.DisciplineDirector.Position,
+ Email = d.DisciplineDirector.Email,
+ Duty = "",
+ Phone = d.DisciplineDirector.Phone,
+ Total = d.DisciplineDirector.DisciplineDisciplinary_DirectorInvestigates.Count(),
+ }).ToList(),
+ DisciplineDisciplinaryDocInvestigates = x.DisciplineDisciplinary_DocInvestigates.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ DisciplineDisciplinaryDocInvestigateRelevants = x.DisciplineDisciplinary_DocInvestigateRelevants.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ })
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (_data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+
+ var disciplineDisciplinaryDocInvestigates = new List();
+ foreach (var doc in _data.DisciplineDisciplinaryDocInvestigates)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinaryDocInvestigates.Add(_doc);
+ }
+
+ var disciplineDisciplinaryDocInvestigateRelevants = new List();
+ foreach (var doc in _data.DisciplineDisciplinaryDocInvestigateRelevants)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinaryDocInvestigateRelevants.Add(_doc);
+ }
+ var data = new
+ {
+ _data.Id,
+ _data.IdInvestigate,
+ _data.IdComplaint,
+ _data.InvestigationDetail,
+ _data.InvestigationDetailOther,
+ _data.InvestigationDateStart,
+ _data.InvestigationDateEnd,
+ _data.InvestigationDescription,
+ _data.InvestigationStatusResult,
+ _data.InvestigationCauseText,
+ _data.Status,
+ _data.Result,
+ _data.Director,
+ disciplineDisciplinaryDocInvestigates,
+ disciplineDisciplinaryDocInvestigateRelevants,
+ };
+ return Success(data);
+ }
+
+ ///
+ /// แก้ไขรายการวินัยเรื่องสืบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("investigate/{id:guid}")]
+ public async Task> UpdateDisciplineDisciplinaryInvestigate([FromBody] DisciplineDisciplinaryInvestigateRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DirectorInvestigates)
+ .ThenInclude(x => x.DisciplineDirector)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ data.InvestigationDetail = req.investigationDetail.Trim().ToUpper();
+ data.InvestigationDetailOther = req.investigationDetailOther;
+ data.InvestigationDateStart = req.investigationDateStart;
+ data.InvestigationDateEnd = req.investigationDateEnd;
+ data.InvestigationDescription = req.investigationDescription;
+ data.InvestigationStatusResult = req.investigationStatusResult.Trim().ToUpper();
+ data.InvestigationCauseText = req.investigationCauseText.Trim().ToUpper();
+ data.Result = req.result;
+ data.LastUpdateFullName = FullName ?? "System Administrator";
+ data.LastUpdateUserId = UserId ?? "";
+ data.LastUpdatedAt = DateTime.Now;
+ _context.DisciplineDisciplinary_DirectorInvestigates.RemoveRange(data.DisciplineDisciplinary_DirectorInvestigates);
+ foreach (var item in req.directors)
+ {
+ var director = await _context.DisciplineDirectors.AsQueryable()
+ .FirstOrDefaultAsync(x => x.Id == item);
+ if (director != null)
+ {
+ data.DisciplineDisciplinary_DirectorInvestigates.Add(
+ new DisciplineDisciplinary_DirectorInvestigate
+ {
+ DisciplineDirector = director,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ }
+ );
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success(data.Id);
+ }
+
+ ///
+ /// get รายการวินัยเรื่องสอบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("{id:guid}")]
+ public async Task> GetByDisciplineDisciplinary(Guid id)
+ {
+ var _data = await _context.DisciplineDisciplinarys
+ .Select(x => new
+ {
+ Id = x.Id,//id ข้อมูลเรื่องสอบสวน
+ IdInvestigate = x.DisciplineInvestigate.Id,//id ข้อมูลเรื่องสืบสวน
+ IdComplaint = x.DisciplineInvestigate.DisciplineComplaint.Id,//id ข้อมูลเรื่องร้องเรียน
+ DisciplinaryWitnesses = x.DisciplinaryWitnesses,
+ DisciplinaryRecordAccuser = x.DisciplinaryRecordAccuser,
+ DisciplinarySummaryEvidence = x.DisciplinarySummaryEvidence,
+ DisciplinaryRefLaw = x.DisciplinaryRefLaw,
+ DisciplinaryFaultLevel = x.DisciplinaryFaultLevel,
+ DisciplinaryInvestigateAt = x.DisciplinaryInvestigateAt,
+ DisciplinaryCaseFault = x.DisciplinaryCaseFault,
+ DisciplinaryDateEvident = x.DisciplinaryDateEvident,
+ DisciplinaryDateAllegation = x.DisciplinaryDateAllegation,
+ Result = x.Result,
+ Director = x.DisciplineDisciplinary_DirectorInvestigates.Select(d => new
+ {
+ Id = d.Id,
+ DirectorId = d.DisciplineDirector.Id,
+ Prefix = d.DisciplineDirector.Prefix,
+ FirstName = d.DisciplineDirector.FirstName,
+ LastName = d.DisciplineDirector.LastName,
+ Position = d.DisciplineDirector.Position,
+ Email = d.DisciplineDirector.Email,
+ Duty = "",
+ Phone = d.DisciplineDirector.Phone,
+ Total = d.DisciplineDirector.DisciplineDisciplinary_DirectorInvestigates.Count(),
+ }).ToList(),
+ RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
+ Persons = x.DisciplineDisciplinary_ProfileComplaintInvestigates.Select(p => new
+ {
+ Id = p.Id,
+ Idcard = p.CitizenId,
+ Name = $"{p.Prefix}{p.FirstName} {p.LastName}",
+ Prefix = p.Prefix,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ Position = p.Position,
+ PositionLevel = p.PositionLevel,
+ Salary = p.Salary,
+ PersonId = p.PersonId,
+ PosNo = p.PosNo,
+ Organization = p.Organization,
+ }),//รายการข้อมูลบุคลผู้ถูกสืบสวน
+ OrganizationId = x.Organization,//id หน่วยงานกรณี type เป็นหน่วยงาน
+ DisciplineDisciplinary_DocSummaryEvidences = x.DisciplineDisciplinary_DocSummaryEvidences.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ DisciplineDisciplinary_DocRecordAccusers = x.DisciplineDisciplinary_DocRecordAccusers.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ DisciplineDisciplinary_DocWitnessess = x.DisciplineDisciplinary_DocWitnessess.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ DisciplineDisciplinary_DocOthers = x.DisciplineDisciplinary_DocOthers.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
+ })
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (_data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+
+ var disciplineDisciplinary_DocSummaryEvidences = new List();
+ foreach (var doc in _data.DisciplineDisciplinary_DocSummaryEvidences)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinary_DocSummaryEvidences.Add(_doc);
+ }
+ var disciplineDisciplinary_DocRecordAccusers = new List();
+ foreach (var doc in _data.DisciplineDisciplinary_DocRecordAccusers)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinary_DocRecordAccusers.Add(_doc);
+ }
+ var disciplineDisciplinary_DocWitnessess = new List();
+ foreach (var doc in _data.DisciplineDisciplinary_DocWitnessess)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinary_DocWitnessess.Add(_doc);
+ }
+ var disciplineDisciplinary_DocOthers = new List();
+ foreach (var doc in _data.DisciplineDisciplinary_DocOthers)
+ {
+ var _doc = new
+ {
+ doc.Id,
+ doc.FileName,
+ PathName = await _documentService.ImagesPath(doc.Id)
+ };
+ disciplineDisciplinary_DocOthers.Add(_doc);
+ }
+ var data = new
+ {
+ _data.Id,
+ _data.IdInvestigate,
+ _data.IdComplaint,
+ _data.DisciplinaryWitnesses,
+ _data.DisciplinaryRecordAccuser,
+ _data.DisciplinarySummaryEvidence,
+ _data.DisciplinaryRefLaw,
+ _data.DisciplinaryFaultLevel,
+ _data.DisciplinaryInvestigateAt,
+ _data.DisciplinaryCaseFault,
+ _data.DisciplinaryDateEvident,
+ _data.DisciplinaryDateAllegation,
+ _data.Result,
+ _data.Director,
+ _data.RespondentType,
+ _data.Persons,
+ _data.OrganizationId,
+ disciplineDisciplinary_DocSummaryEvidences,
+ disciplineDisciplinary_DocRecordAccusers,
+ disciplineDisciplinary_DocWitnessess,
+ disciplineDisciplinary_DocOthers,
+ };
+ return Success(data);
+ }
+
+ ///
+ /// แก้ไขรายการวินัยเรื่องสอบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("{id:guid}")]
+ public async Task> UpdateDisciplineDisciplinary([FromBody] DisciplineDisciplinaryRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DirectorInvestigates)
+ .ThenInclude(x => x.DisciplineDirector)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ data.DisciplinaryWitnesses = req.DisciplinaryWitnesses;
+ data.DisciplinaryRecordAccuser = req.DisciplinaryRecordAccuser;
+ data.DisciplinarySummaryEvidence = req.DisciplinarySummaryEvidence;
+ data.DisciplinaryRefLaw = req.DisciplinaryRefLaw;
+ data.DisciplinaryFaultLevel = req.DisciplinaryFaultLevel;
+ data.DisciplinaryInvestigateAt = req.DisciplinaryInvestigateAt;
+ data.DisciplinaryCaseFault = req.DisciplinaryCaseFault;
+ data.DisciplinaryDateEvident = req.DisciplinaryDateEvident;
+ data.DisciplinaryDateAllegation = req.DisciplinaryDateAllegation;
+ data.Result = req.Result;
+ data.LastUpdateFullName = FullName ?? "System Administrator";
+ data.LastUpdateUserId = UserId ?? "";
+ data.LastUpdatedAt = DateTime.Now;
+ _context.DisciplineDisciplinary_DirectorInvestigates.RemoveRange(data.DisciplineDisciplinary_DirectorInvestigates);
+ foreach (var item in req.directors)
+ {
+ var director = await _context.DisciplineDirectors.AsQueryable()
+ .FirstOrDefaultAsync(x => x.Id == item);
+ if (director != null)
+ {
+ data.DisciplineDisciplinary_DirectorInvestigates.Add(
+ new DisciplineDisciplinary_DirectorInvestigate
+ {
+ DisciplineDirector = director,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ }
+ );
+ }
+ }
+ data.Organization = req.organizationId;
+ data.RespondentType = req.respondentType;
+ _context.DisciplineDisciplinary_ProfileComplaintInvestigates.RemoveRange(data.DisciplineDisciplinary_ProfileComplaintInvestigates);
+ if (data.RespondentType.Trim().ToUpper() == "PERSON")
+ {
+ foreach (var item in req.persons)
+ {
+ data.DisciplineDisciplinary_ProfileComplaintInvestigates.Add(
+ new DisciplineDisciplinary_ProfileComplaintInvestigate
+ {
+ CitizenId = item.idcard,
+ Prefix = item.prefix,
+ FirstName = item.firstName,
+ LastName = item.lastName,
+ Organization = item.organization,
+ Position = item.position,
+ PositionLevel = item.positionLevel,
+ Salary = item.salary,
+ PersonId = item.personId,
+ PosNo = item.posNo,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ }
+ );
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success(data.Id);
+ }
+
+ ///
+ /// ยุติเรื่อง
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("reject/{id:guid}")]
+ public async Task> RejectDisciplineDisciplinary(Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถยุติเรื่องได้"), (int)StatusCodes.Status500InternalServerError);
+ if (data.InvestigationStatusResult == null || data.InvestigationStatusResult.Trim().ToUpper() != "NO_CAUSE")
+ return Error(new Exception("ไม่สามารถยุติเรื่องได้"), (int)StatusCodes.Status500InternalServerError);
+ data.Status = "STOP";
+
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ส่งเรื่องสอบสวน
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("approve/{id:guid}")]
+ public async Task> ApproveDisciplineDisciplinary(Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถเสร็จสิ้นสอบสวนได้"), (int)StatusCodes.Status500InternalServerError);
+ data.Status = "DONE";
+
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ยกเลิกการยุติเรื่อง
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("resume/{id:guid}")]
+ public async Task> ResumeDisciplineDisciplinary(Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "STOP")
+ return Error(new Exception("รายการนี้ยังไม่ถูกยุติเรื่อง"), (int)StatusCodes.Status500InternalServerError);
+ data.Status = "NEW";
+
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// อัพไฟล์เอกสารสืบสวนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryInvestigate([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocInvestigate = new DisciplineDisciplinary_DocInvestigate
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocInvestigates.AddAsync(disciplineDisciplinary_DocInvestigate);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์เอกสารสืบสวนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryInvestigate(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocInvestigates)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigate)
+ .ThenInclude(x => x.DisciplineInvestigate_Docs)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocInvestigates.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocInvestigates.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ var dataDocComplaint = data.DisciplineInvestigate.DisciplineInvestigate_Docs.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDocComplaint == null)
+ {
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์เอกสารร้องเรียนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("complaint/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryComplaint([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocComplaintInvestigate = new DisciplineDisciplinary_DocComplaintInvestigate
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocComplaintInvestigates.AddAsync(disciplineDisciplinary_DocComplaintInvestigate);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์เอกสารร้องเรียนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("complaint/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryComplaint(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocComplaintInvestigates)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigate)
+ .ThenInclude(x => x.DisciplineComplaint)
+ .ThenInclude(x => x.DisciplineComplaint_Docs)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocComplaintInvestigates.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocComplaintInvestigates.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ var dataDocComplaint = data.DisciplineInvestigate.DisciplineComplaint.DisciplineComplaint_Docs.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDocComplaint == null)
+ {
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์เอกสารเกี่ยวข้องสืบสวนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("relevant/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryInvestigateRelevant([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocInvestigateRelevant = new DisciplineDisciplinary_DocInvestigateRelevant
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocInvestigateRelevants.AddAsync(disciplineDisciplinary_DocInvestigateRelevant);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์เอกสารเกี่ยวข้องสืบสวนวินัย
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("relevant/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryInvestigateRelevant(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocInvestigateRelevants)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigate)
+ .ThenInclude(x => x.DisciplineInvestigateRelevant_Docs)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocInvestigateRelevants.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocInvestigateRelevants.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ var dataDocComplaint = data.DisciplineInvestigate.DisciplineInvestigateRelevant_Docs.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDocComplaint == null)
+ {
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์หลักฐานสนับสนุนข้อกล่าวหา
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("summaryEvidence/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinarySummaryEvidences([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocSummaryEvidence = new DisciplineDisciplinary_DocSummaryEvidence
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocSummaryEvidences.AddAsync(disciplineDisciplinary_DocSummaryEvidence);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบหลักฐานสนับสนุนข้อกล่าวหา
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("summaryEvidence/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinarySummaryEvidences(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocSummaryEvidences)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocSummaryEvidences.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocSummaryEvidences.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์บันทึกถ้อยคำของผู้กล่าวหา
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("recordAccuser/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryRecordAccusers([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocRecordAccuser = new DisciplineDisciplinary_DocRecordAccuser
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocRecordAccusers.AddAsync(disciplineDisciplinary_DocRecordAccuser);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์บันทึกถ้อยคำของผู้กล่าวหา
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("recordAccuser/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryRecordAccusers(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocRecordAccusers)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocRecordAccusers.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocRecordAccusers.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์พยานและการบันทึกถ้อยคำ
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("witnesses/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryWitnessess([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocWitnesses = new DisciplineDisciplinary_DocWitnesses
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocWitnessess.AddAsync(disciplineDisciplinary_DocWitnesses);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์พยานและการบันทึกถ้อยคำ
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("witnesses/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryWitnessess(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocWitnessess)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocWitnessess.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocWitnessess.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+
+ ///
+ /// อัพไฟล์เอกสารหลักฐานอื่น ๆ
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("other/file/{id:guid}")]
+ public async Task> UploadFileDisciplineDisciplinaryOther([FromForm] DisciplineFileRequest req, Guid id)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+
+ if (Request.Form.Files != null && Request.Form.Files.Count != 0)
+ {
+ foreach (var file in Request.Form.Files)
+ {
+ 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 disciplineDisciplinary_DocOther = new DisciplineDisciplinary_DocOther
+ {
+ DisciplineDisciplinary = data,
+ Document = _doc,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ await _context.DisciplineDisciplinary_DocOthers.AddAsync(disciplineDisciplinary_DocOther);
+ }
+ }
+ }
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+
+ ///
+ /// ลบไฟล์เอกสารหลักฐานอื่น ๆ
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("other/file/{id:guid}/{docId:guid}")]
+ public async Task> DeleteFileDisciplineDisciplinaryOther(Guid id, Guid docId)
+ {
+ var data = await _context.DisciplineDisciplinarys
+ .Include(x => x.DisciplineDisciplinary_DocOthers)
+ .ThenInclude(x => x.Document)
+ .Where(x => x.Id == id)
+ .FirstOrDefaultAsync();
+ if (data == null)
+ return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
+ if (data.Status.Trim().ToUpper() != "NEW")
+ return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError);
+ var dataDoc = data.DisciplineDisciplinary_DocOthers.Where(x => x.Document.Id == docId).FirstOrDefault();
+ if (dataDoc != null)
+ {
+ _context.DisciplineDisciplinary_DocOthers.Remove(dataDoc);
+ await _context.SaveChangesAsync();
+ await _documentService.DeleteFileAsync(docId);
+ await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
+ }
+ }
+ }
+}
diff --git a/BMA.EHR.Discipline.Service/Controllers/DisciplineInvestigateController.cs b/BMA.EHR.Discipline.Service/Controllers/DisciplineInvestigateController.cs
index 3d4ee3e4..bf585bf5 100644
--- a/BMA.EHR.Discipline.Service/Controllers/DisciplineInvestigateController.cs
+++ b/BMA.EHR.Discipline.Service/Controllers/DisciplineInvestigateController.cs
@@ -57,21 +57,13 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
{
var data_search = (from x in _context.DisciplineInvestigates
where x.Title.Contains(keyword)
- // x.Description.Contains(keyword) ||
- // x.Appellant.Contains(keyword)
- // TextOffenseDetails(x.OffenseDetails).Contains(keyword) ||
- // x.CreatedAt.Contains(keyword) ||
- // TextLevelConsideration(x.LevelConsideration).Contains(keyword) ||
- // x.DateConsideration.Contains(keyword) ||
- // TextStatus(x.Status).Contains(keyword) ||
- // x.RejectReason == null ? false : x.RejectReason.Contains(keyword)
select x).ToList();
var data = data_search
.Select(x => new
{
Id = x.Id,//id ข้อมูลเรื่องสืบสวน
Title = x.Title,//ชื่อเรื่อง
- RespondentType = x.RespondentType,
+ RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
OffenseDetails = x.OffenseDetails,//ลักษณะความผิด
Status = x.Status,//สถานะหรือผลการสืบสวน
InvestigationDateStart = x.InvestigationDateStart,
@@ -104,7 +96,7 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
Id = x.Id,//id ข้อมูลเรื่องสืบสวน
IdComplaint = x.DisciplineComplaint.Id,//id ข้อมูลเรื่องร้องเรียน
RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
- Persons = x.DisciplineInvestigate_Profiles.Select(p => new
+ Persons = x.DisciplineInvestigate_ProfileComplaints.Select(p => new
{
Id = p.Id,
Idcard = p.CitizenId,
@@ -183,9 +175,9 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
[HttpPut("complaint/{id:guid}")]
- public async Task> UpdateDisciplineInvestigate([FromBody] DisciplineInvestigateComplaintRequest req, Guid id)
+ public async Task> UpdateDisciplineInvestigateComplaint([FromBody] DisciplineInvestigateComplaintRequest req, Guid id)
{
- var data = await _context.DisciplineInvestigates.Include(x => x.DisciplineInvestigate_Profiles).Where(x => x.Id == id).FirstOrDefaultAsync();
+ var data = await _context.DisciplineInvestigates.Include(x => x.DisciplineInvestigate_ProfileComplaints).Where(x => x.Id == id).FirstOrDefaultAsync();
if (data == null)
return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
if (data.Status.Trim().ToUpper() != "NEW")
@@ -197,13 +189,13 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
data.LastUpdateFullName = FullName ?? "System Administrator";
data.LastUpdateUserId = UserId ?? "";
data.LastUpdatedAt = DateTime.Now;
- _context.DisciplineInvestigate_Profiles.RemoveRange(data.DisciplineInvestigate_Profiles);
+ _context.DisciplineInvestigate_ProfileComplaints.RemoveRange(data.DisciplineInvestigate_ProfileComplaints);
if (data.RespondentType.Trim().ToUpper() == "PERSON")
{
foreach (var item in req.persons)
{
- data.DisciplineInvestigate_Profiles.Add(
- new DisciplineInvestigate_Profile
+ data.DisciplineInvestigate_ProfileComplaints.Add(
+ new DisciplineInvestigate_ProfileComplaint
{
CitizenId = item.idcard,
Prefix = item.prefix,
@@ -267,6 +259,23 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
Phone = d.DisciplineDirector.Phone,
Total = d.DisciplineDirector.DisciplineInvestigate_Directors.Count(),
}).ToList(),
+ RespondentType = x.RespondentType,//ผู้ถูกสืบสวน
+ Persons = x.DisciplineInvestigate_ProfileComplaints.Select(p => new
+ {
+ Id = p.Id,
+ Idcard = p.CitizenId,
+ Name = $"{p.Prefix}{p.FirstName} {p.LastName}",
+ Prefix = p.Prefix,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ Position = p.Position,
+ PositionLevel = p.PositionLevel,
+ Salary = p.Salary,
+ PersonId = p.PersonId,
+ PosNo = p.PosNo,
+ Organization = p.Organization,
+ }),//รายการข้อมูลบุคลผู้ถูกสืบสวน
+ OrganizationId = x.Organization,//id หน่วยงานกรณี type เป็นหน่วยงาน
DisciplineInvestigateDocs = x.DisciplineInvestigate_Docs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
DisciplineInvestigateRelevantDocs = x.DisciplineInvestigateRelevant_Docs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
@@ -312,6 +321,9 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
_data.Status,
_data.Result,
_data.Director,
+ _data.RespondentType,
+ _data.Persons,
+ _data.OrganizationId,
disciplineInvestigateDocs,
disciplineInvestigateRelevantDocs,
};
@@ -345,7 +357,7 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
data.InvestigationDateEnd = req.investigationDateEnd;
data.InvestigationDescription = req.investigationDescription;
data.InvestigationStatusResult = req.investigationStatusResult.Trim().ToUpper();
- data.InvestigationCauseText = req.investigationCauseText.Trim().ToUpper();
+ data.InvestigationCauseText = req.investigationCauseText;
data.Result = req.result;
data.LastUpdateFullName = FullName ?? "System Administrator";
data.LastUpdateUserId = UserId ?? "";
@@ -371,6 +383,36 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
);
}
}
+ data.Organization = req.organizationId;
+ data.RespondentType = req.respondentType;
+ _context.DisciplineInvestigate_ProfileComplaints.RemoveRange(data.DisciplineInvestigate_ProfileComplaints);
+ if (data.RespondentType.Trim().ToUpper() == "PERSON")
+ {
+ foreach (var item in req.persons)
+ {
+ data.DisciplineInvestigate_ProfileComplaints.Add(
+ new DisciplineInvestigate_ProfileComplaint
+ {
+ CitizenId = item.idcard,
+ Prefix = item.prefix,
+ FirstName = item.firstName,
+ LastName = item.lastName,
+ Organization = item.organization,
+ Position = item.position,
+ PositionLevel = item.positionLevel,
+ Salary = item.salary,
+ PersonId = item.personId,
+ PosNo = item.posNo,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ }
+ );
+ }
+ }
await _context.SaveChangesAsync();
return Success(data.Id);
}
@@ -409,17 +451,144 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
/// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("approve/{id:guid}")]
- public async Task> ApproveDisciplineInvestigate(Guid id)
+ [HttpPut("approve/{id:guid}")]
+ public async Task> ApproveDisciplineInvestigate([FromBody] DisciplinePersonIdRequest req, Guid id)
{
var data = await _context.DisciplineInvestigates
+ .Include(x => x.DisciplineInvestigate_DocComplaints)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigate_Docs)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigateRelevant_Docs)
+ .ThenInclude(x => x.Document)
+ .Include(x => x.DisciplineInvestigate_ProfileComplaints)
+ .Include(x => x.DisciplineInvestigate_Directors)
+ .ThenInclude(x => x.DisciplineDirector)
.Where(x => x.Id == id)
.FirstOrDefaultAsync();
if (data == null)
return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound);
if (data.Status.Trim().ToUpper() != "NEW")
- return Error(new Exception("ไม่สามารถส่งต่อไปสืบสวนได้"), (int)StatusCodes.Status500InternalServerError);
- data.Status = "SEND_INVESTIGATE";
+ return Error(new Exception("ไม่สามารถส่งต่อไปสอบสวนได้"), (int)StatusCodes.Status500InternalServerError);
+ data.Status = "SEND_DISCIPLINARY";
+
+ var disciplineDisciplinary = new Domain.Models.Discipline.DisciplineDisciplinary
+ {
+ RespondentType = data.RespondentType.Trim().ToUpper(),
+ Organization = data.Organization,
+ ConsideredAgency = data.ConsideredAgency,
+ Title = data.Title,
+ Description = data.Description,
+ DateReceived = data.DateReceived,
+ LevelConsideration = data.LevelConsideration.Trim().ToUpper(),
+ DateConsideration = data.DateConsideration,
+ OffenseDetails = data.OffenseDetails.Trim().ToUpper(),
+ DateNotification = data.DateNotification,
+ ComplaintFrom = data.ComplaintFrom,
+ Appellant = data.Appellant,
+ ResultComplaint = data.ResultComplaint,
+ ResultInvestigate = data.Result,
+
+ InvestigationDetail = data.InvestigationDetail,
+ InvestigationDetailOther = data.InvestigationDetailOther,
+ InvestigationDateStart = data.InvestigationDateStart,
+ InvestigationDateEnd = data.InvestigationDateEnd,
+ InvestigationDescription = data.InvestigationDescription,
+ InvestigationStatusResult = data.InvestigationStatusResult,
+ InvestigationCauseText = data.InvestigationCauseText,
+
+ Status = "NEW",
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ };
+ var persons = data.DisciplineInvestigate_ProfileComplaints.Where(x => req.persons.Contains(x.Id)).ToList();
+ foreach (var item in persons)
+ {
+ disciplineDisciplinary.DisciplineDisciplinary_ProfileComplaintInvestigates.Add(
+ new DisciplineDisciplinary_ProfileComplaintInvestigate
+ {
+ PersonId = item.PersonId,
+ CitizenId = item.CitizenId,
+ Prefix = item.Prefix,
+ FirstName = item.FirstName,
+ LastName = item.LastName,
+ Organization = item.Organization,
+ Salary = item.Salary,
+ PosNo = item.PosNo,
+ Position = item.Position,
+ PositionLevel = item.PositionLevel,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ });
+ }
+ foreach (var item in data.DisciplineInvestigate_DocComplaints)
+ {
+ disciplineDisciplinary.DisciplineDisciplinary_DocComplaintInvestigates.Add(
+ new DisciplineDisciplinary_DocComplaintInvestigate
+ {
+ Document = item.Document,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ });
+ }
+ foreach (var item in data.DisciplineInvestigate_Docs)
+ {
+ disciplineDisciplinary.DisciplineDisciplinary_DocInvestigates.Add(
+ new DisciplineDisciplinary_DocInvestigate
+ {
+ Document = item.Document,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ });
+ }
+ foreach (var item in data.DisciplineInvestigateRelevant_Docs)
+ {
+ disciplineDisciplinary.DisciplineDisciplinary_DocInvestigateRelevants.Add(
+ new DisciplineDisciplinary_DocInvestigateRelevant
+ {
+ Document = item.Document,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ });
+ }
+ foreach (var item in data.DisciplineInvestigate_Directors)
+ {
+ disciplineDisciplinary.DisciplineDisciplinary_DirectorInvestigates.Add(
+ new DisciplineDisciplinary_DirectorInvestigate
+ {
+ DisciplineDirector = item.DisciplineDirector,
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+ });
+ }
+
+ data.DisciplineDisciplinarys.Add(disciplineDisciplinary);
+ await _context.SaveChangesAsync();
+ return Success(disciplineDisciplinary.Id);
await _context.SaveChangesAsync();
return Success();
@@ -498,7 +667,7 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
}
///
- /// ลบอัพไฟล์เอกสารสืบสวนวินัย
+ /// ลบไฟล์เอกสารสืบสวนวินัย
///
///
///
@@ -524,8 +693,12 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
await _context.SaveChangesAsync();
await _documentService.DeleteFileAsync(docId);
await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
}
- return Success();
}
///
@@ -577,7 +750,7 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
}
///
- /// ลบอัพไฟล์เอกสารร้องเรียนวินัย
+ /// ลบไฟล์เอกสารร้องเรียนวินัย
///
///
///
@@ -610,8 +783,12 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
await _documentService.DeleteFileAsync(docId);
await _context.SaveChangesAsync();
}
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
}
- return Success();
}
///
@@ -663,7 +840,7 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
}
///
- /// ลบอัพไฟล์เอกสารเกี่ยวข้องสืบสวนวินัย
+ /// ลบไฟล์เอกสารเกี่ยวข้องสืบสวนวินัย
///
///
///
@@ -689,8 +866,12 @@ namespace BMA.EHR.DisciplineInvestigate.Service.Controllers
await _context.SaveChangesAsync();
await _documentService.DeleteFileAsync(docId);
await _context.SaveChangesAsync();
+ return Success();
+ }
+ else
+ {
+ return Error(new Exception("ไม่พอไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound);
}
- return Success();
}
}
}
diff --git a/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryComplaintRequest.cs b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryComplaintRequest.cs
new file mode 100644
index 00000000..1dca1c56
--- /dev/null
+++ b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryComplaintRequest.cs
@@ -0,0 +1,25 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Discipline.Service.Requests
+{
+ public class DisciplineDisciplinaryComplaintRequest
+ {
+ public DisciplineDisciplinaryInvestigateComplaintProfileRequest[] persons { get; set; }// กรณีบุคคลใส่ id คน มาใน array แต่ถ้าเป็น type อื่นจะ null
+ public string title { get; set; }// *เรื่องที่ร้องเรียน
+ public string description { get; set; }// *รายละเอียดของเรื่องร้องเรียน
+ public string offenseDetails { get; set; }// *ลักษณะความผิดครั้งแรกจะเป็น "ยังไม่ระบุ" (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)
+ }
+ public class DisciplineDisciplinaryInvestigateComplaintProfileRequest
+ {
+ public Guid? personId { get; set; }
+ public string? idcard { get; set; }
+ public string? prefix { get; set; }
+ public string? firstName { get; set; }
+ public string? lastName { get; set; }
+ public string? organization { get; set; }
+ public string? position { get; set; }
+ public string? positionLevel { get; set; }
+ public string? posNo { get; set; }
+ public double? salary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryInvestigateRequest.cs b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryInvestigateRequest.cs
new file mode 100644
index 00000000..f9663745
--- /dev/null
+++ b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryInvestigateRequest.cs
@@ -0,0 +1,18 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Discipline.Service.Requests
+{
+ public class DisciplineDisciplinaryInvestigateRequest
+ {
+ public string investigationDetail { get; set; }
+ public string? investigationDetailOther { get; set; }
+ public DateTime investigationDateStart { get; set; }
+ public DateTime investigationDateEnd { get; set; }
+ public string investigationDescription { get; set; }
+ public string investigationStatusResult { get; set; }
+ public string? investigationCauseText { get; set; }
+ public string? result { get; set; }
+ public Guid[] directors { get; set; }
+
+ }
+}
diff --git a/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryRequest.cs b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryRequest.cs
new file mode 100644
index 00000000..588640ae
--- /dev/null
+++ b/BMA.EHR.Discipline.Service/Requests/DisciplineDisciplinaryRequest.cs
@@ -0,0 +1,23 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Discipline.Service.Requests
+{
+ public class DisciplineDisciplinaryRequest
+ {
+ public string? DisciplinaryWitnesses { get; set; }
+ public string? DisciplinaryRecordAccuser { get; set; }
+ public string? DisciplinarySummaryEvidence { get; set; }
+ public string? DisciplinaryRefLaw { get; set; }
+ public string? DisciplinaryFaultLevel { get; set; }
+ public string? DisciplinaryInvestigateAt { get; set; }
+ public string? DisciplinaryCaseFault { get; set; }
+ public DateTime DisciplinaryDateEvident { get; set; }
+ public DateTime DisciplinaryDateAllegation { get; set; }
+ public string? Result { get; set; }
+ public Guid[] directors { get; set; }
+ public DisciplineDisciplinaryInvestigateComplaintProfileRequest[] persons { get; set; }// กรณีบุคคลใส่ id คน มาใน array แต่ถ้าเป็น type อื่นจะ null
+ public Guid? organizationId { get; set; }// กรณีหน่วยงานใส่ id ของหน่วยงาน
+ public string respondentType { get; set; }// *ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)
+
+ }
+}
diff --git a/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateComplaintRequest.cs b/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateComplaintRequest.cs
index 53233f2a..4731e4b0 100644
--- a/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateComplaintRequest.cs
+++ b/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateComplaintRequest.cs
@@ -4,7 +4,7 @@ namespace BMA.EHR.Discipline.Service.Requests
{
public class DisciplineInvestigateComplaintRequest
{
- public DisciplineComplaintProfileRequest[] persons { get; set; }// กรณีบุคคลใส่ id คน มาใน array แต่ถ้าเป็น type อื่นจะ null
+ public DisciplineInvestigateComplaintProfileRequest[] persons { get; set; }// กรณีบุคคลใส่ id คน มาใน array แต่ถ้าเป็น type อื่นจะ null
public string title { get; set; }// *เรื่องที่ร้องเรียน
public string description { get; set; }// *รายละเอียดของเรื่องร้องเรียน
public string offenseDetails { get; set; }// *ลักษณะความผิดครั้งแรกจะเป็น "ยังไม่ระบุ" (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)
diff --git a/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateRequest.cs b/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateRequest.cs
index 92daa621..e7a4be02 100644
--- a/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateRequest.cs
+++ b/BMA.EHR.Discipline.Service/Requests/DisciplineInvestigateRequest.cs
@@ -5,14 +5,17 @@ namespace BMA.EHR.Discipline.Service.Requests
public class DisciplineInvestigateRequest
{
public string investigationDetail { get; set; }
- public string investigationDetailOther { get; set; }
+ public string? investigationDetailOther { get; set; }
public DateTime investigationDateStart { get; set; }
public DateTime investigationDateEnd { get; set; }
public string investigationDescription { get; set; }
public string investigationStatusResult { get; set; }
- public string investigationCauseText { get; set; }
- public string result { get; set; }
+ public string? investigationCauseText { get; set; }
+ public string? result { get; set; }
public Guid[] directors { get; set; }
+ public DisciplineInvestigateComplaintProfileRequest[] persons { get; set; }// กรณีบุคคลใส่ id คน มาใน array แต่ถ้าเป็น type อื่นจะ null
+ public Guid? organizationId { get; set; }// กรณีหน่วยงานใส่ id ของหน่วยงาน
+ public string respondentType { get; set; }// *ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDirector.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDirector.cs
index ed7a783a..d26c6c2b 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineDirector.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDirector.cs
@@ -25,5 +25,6 @@ namespace BMA.EHR.Domain.Models.Discipline
[Required, Comment("เบอร์โทรศัพท์")]
public string Phone { get; set; } = string.Empty;
public virtual List DisciplineInvestigate_Directors { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DirectorInvestigates { get; set; } = new List();
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary.cs
new file mode 100644
index 00000000..9dc5d180
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary.cs
@@ -0,0 +1,113 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary : EntityBase
+ {
+
+ [Required, Comment("สถานะเรื่องร้องเรียน มีดังนี้ ใหม่ (NEW), ยุติเรื่อง (STOP), มีมูลส่งไปสืบสวนแล้ว (SEND_INVESTIGATE)")]
+ public string Status { get; set; } = string.Empty;
+ [Required, Comment("ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)")]
+ public string RespondentType { get; set; } = string.Empty;
+
+ [Required, Comment("เรื่องที่ร้องเรียน"), Column(TypeName = "text")]
+ public string Title { get; set; } = string.Empty;
+
+ [Required, Comment("รายละเอียดของเรื่องร้องเรียน"), Column(TypeName = "text")]
+ public string Description { get; set; } = string.Empty;
+
+ [Required, Comment("วันที่รับเรื่อง เป็นวันที่ถือเป็นจุดเริ่มต้นของวินัยนั้น ๆ")]
+ public DateTime DateReceived { get; set; }
+ [Required, Comment("ระดับการพิจารณา 'ยังไม่ระบุ' (NORMAL คือ ปกติ, URGENT คือ ด่วน, VERY_URGENT คือ ด่วนมาก)")]
+ public string LevelConsideration { get; set; } = string.Empty;
+
+ [Comment("วันที่กำหนดพิจารณา")]
+ public DateTime? DateConsideration { get; set; }
+ [Required, Comment("ลักษณะความผิดครั้งแรกจะเป็น 'ยังไม่ระบุ' (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)")]
+ public string OffenseDetails { get; set; } = string.Empty;
+
+ [Required, Comment("วันแจ้งเตือนล่วงหน้า")]
+ public DateTime DateNotification { get; set; }
+ [Required, Comment("รับเรื่องร้องเรียนจาก ระบุว่ารับเรื่องมาจากใคร/หน่วยงานไหน (สตง., ปปช., ปปท., จดหมาย, อีเมล, โทรศัพท์, บอกกล่าว)")]
+ public string ComplaintFrom { get; set; } = string.Empty;
+
+ [Required, Comment("ผู้ร้องเรียน")]
+ public string Appellant { get; set; } = string.Empty;
+
+ // [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ // public Document Document { get; set; }
+
+ [Comment("ผลการตรวจสอบเรื่องร้องเรียน")]
+ public string? ResultComplaint { get; set; }
+
+ [Comment("ผลการตรวจสอบเรื่องสืบสวน")]
+ public string? ResultInvestigate { get; set; }
+
+ [Comment("ผลการตรวจสอบ")]
+ public string? Result { get; set; }
+
+ [Comment("กรณีหน่วยงานใส่ id ของหน่วยงาน")]
+ public Guid? Organization { get; set; }
+
+ [Required, Comment("หน่วยงานที่พิจารณา จะเปลี่ยนไปตามผู้ถูกร้องดูรายละเอียดด้านล่าง")]
+ public Guid ConsideredAgency { get; set; }
+
+
+ [Comment("ลักษณะการสืบสวน (APPOINT_DIRECTORS คือ แต่งตั้งกรรมการสืบสวน, SECRET_INVESTIGATION คือ สืบสวนทางลับ, OTHER คือ อื่น ๆ)")]
+ public string? InvestigationDetail { get; set; }
+
+ [Comment("ลักษณะการสืบสวนกรณีเลือกอื่นๆ")]
+ public string? InvestigationDetailOther { get; set; }
+
+ [Comment("วันที่เริ่มการสืบสวน")]
+ public DateTime? InvestigationDateStart { get; set; }
+
+ [Comment("วันที่สิ้นสุดการสืบสวน")]
+ public DateTime? InvestigationDateEnd { get; set; }
+
+ [Comment("รายละเอียดเกี่ยวกับการสืบสวน")]
+ public string? InvestigationDescription { get; set; }
+
+ [Comment("สถานะหรือผลการสืบสวน (NOT_SPECIFIED คือ ยังไม่ระบุ, HAVE_CAUSE คือ มีมูล, NO_CAUSE คือ ไม่มีมูล")]
+ public string? InvestigationStatusResult { get; set; }
+
+ [Comment("กรณีมีมูลต้องเลือกว่า 'ร้ายแรง' หรือ 'ไม่ร้ายแรง'")]
+ public string? InvestigationCauseText { get; set; }
+
+
+ [Comment("พยานและบันทึกถ้อยคำพยาน")]
+ public string? DisciplinaryWitnesses { get; set; }
+ [Comment("บันทึกถ้อยคำของผู้กล่าวหา")]
+ public string? DisciplinaryRecordAccuser { get; set; }
+ [Comment("สรุปพยานหลักฐานสนับสนุนข้อกล่าวหา")]
+ public string? DisciplinarySummaryEvidence { get; set; }
+ [Comment("อ้างอิงมาตราตามกฎหมาย")]
+ public string? DisciplinaryRefLaw { get; set; }
+ [Comment("ระดับโทษความผิด กรณีไม่ร้ายแรง: ภาคทัณฑ์, ตัดเงินเดือน, ลดขั้นเงินเดือน | กรณีร้ายแรง: ปลดออก, ไล่ออก")]
+ public string? DisciplinaryFaultLevel { get; set; }
+ [Comment("สอบสวนที่")]
+ public string? DisciplinaryInvestigateAt { get; set; }
+ [Comment("กรณีความผิด")]
+ public string? DisciplinaryCaseFault { get; set; }
+ [Comment("วันที่สรุปพยานหลักฐาน")]
+ public DateTime? DisciplinaryDateEvident { get; set; }
+ [Comment("วันที่รับทราบข้อกล่าวหา")]
+ public DateTime? DisciplinaryDateAllegation { get; set; }
+
+ public DisciplineInvestigate DisciplineInvestigate { get; set; }
+ public virtual List DisciplineDisciplinary_ProfileComplaintInvestigates { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocComplaintInvestigates { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocInvestigates { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocInvestigateRelevants { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DirectorInvestigates { get; set; } = new List();
+
+ public virtual List DisciplineDisciplinary_DocSummaryEvidences { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocRecordAccusers { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocWitnessess { get; set; } = new List();
+ public virtual List DisciplineDisciplinary_DocOthers { get; set; } = new List();
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DirectorInvestigate.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DirectorInvestigate.cs
new file mode 100644
index 00000000..f9f8c22f
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DirectorInvestigate.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DirectorInvestigate : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสกรรมการ")]
+ public DisciplineDirector DisciplineDirector { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocComplaintInvestigate.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocComplaintInvestigate.cs
new file mode 100644
index 00000000..5af97e3e
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocComplaintInvestigate.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocComplaintInvestigate : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigate.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigate.cs
new file mode 100644
index 00000000..ddc1d85f
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigate.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocInvestigate : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigateRelevant.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigateRelevant.cs
new file mode 100644
index 00000000..2f8e97c8
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocInvestigateRelevant.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocInvestigateRelevant : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocOther.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocOther.cs
new file mode 100644
index 00000000..3c20f52c
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocOther.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocOther : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocRecordAccuser.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocRecordAccuser.cs
new file mode 100644
index 00000000..3d6a50ed
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocRecordAccuser.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocRecordAccuser : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocSummaryEvidence.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocSummaryEvidence.cs
new file mode 100644
index 00000000..412e0a1b
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocSummaryEvidence.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocSummaryEvidence : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocWitnesses.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocWitnesses.cs
new file mode 100644
index 00000000..7301f9a9
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_DocWitnesses.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_DocWitnesses : EntityBase
+ {
+ [Required, Comment("อ้างอิงรหัสเอกสาร")]
+ public Document Document { get; set; }
+ [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_ProfileComplaintInvestigate.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_ProfileComplaintInvestigate.cs
new file mode 100644
index 00000000..874efd26
--- /dev/null
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineDisciplinary_ProfileComplaintInvestigate.cs
@@ -0,0 +1,35 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using BMA.EHR.Domain.Models.Base;
+using BMA.EHR.Domain.Models.MetaData;
+using BMA.EHR.Domain.Models.Organizations;
+using Microsoft.EntityFrameworkCore;
+
+namespace BMA.EHR.Domain.Models.Discipline
+{
+ public class DisciplineDisciplinary_ProfileComplaintInvestigate : EntityBase
+ {
+ [Comment("id อ้างอิง profile")]
+ public Guid? PersonId { get; set; }
+ [MaxLength(13), Comment("รหัสบัตรประชาชน")]
+ public string? CitizenId { get; set; }
+ [Comment("คำนำหน้า")]
+ public string? Prefix { get; set; }
+ [Required, MaxLength(100), Comment("ชื่อ")]
+ public string? FirstName { get; set; }
+ [Required, MaxLength(100), Comment("นามสกุล")]
+ public string? LastName { get; set; }
+ [Comment("สังกัด")]
+ public string? Organization { get; set; }
+ [Comment("ตำแหน่ง")]
+ public string? Position { get; set; }
+ [Comment("เลขที่ตำแหน่ง")]
+ public string? PosNo { get; set; }
+ [Comment("ระดับ")]
+ public string? PositionLevel { get; set; }
+ [Comment("เงินเดือน")]
+ public double? Salary { get; set; }
+ [Required, Comment("Id เรื่องสอบสวน")]
+ public DisciplineDisciplinary DisciplineDisciplinary { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate.cs
index 4e975a32..ad693868 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate.cs
@@ -60,10 +60,10 @@ namespace BMA.EHR.Domain.Models.Discipline
[Comment("ลักษณะการสืบสวนกรณีเลือกอื่นๆ")]
public string? InvestigationDetailOther { get; set; }
- [Comment("วันที่เริ่มการสอบสวน")]
+ [Comment("วันที่เริ่มการสืบสวน")]
public DateTime? InvestigationDateStart { get; set; }
- [Comment("วันที่สิ้นสุดการสอบสวน")]
+ [Comment("วันที่สิ้นสุดการสืบสวน")]
public DateTime? InvestigationDateEnd { get; set; }
[Comment("รายละเอียดเกี่ยวกับการสืบสวน")]
@@ -75,10 +75,11 @@ namespace BMA.EHR.Domain.Models.Discipline
[Comment("กรณีมีมูลต้องเลือกว่า 'ร้ายแรง' หรือ 'ไม่ร้ายแรง'")]
public string? InvestigationCauseText { get; set; }
public DisciplineComplaint DisciplineComplaint { get; set; }
- public virtual List DisciplineInvestigate_Profiles { get; set; } = new List();
+ public virtual List DisciplineInvestigate_ProfileComplaints { get; set; } = new List();
public virtual List DisciplineInvestigate_DocComplaints { get; set; } = new List();
public virtual List DisciplineInvestigate_Docs { get; set; } = new List();
public virtual List DisciplineInvestigateRelevant_Docs { get; set; } = new List();
public virtual List DisciplineInvestigate_Directors { get; set; } = new List();
+ public virtual List DisciplineDisciplinarys { get; set; } = new List();
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigateRelevant_Doc.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigateRelevant_Doc.cs
index 86d2a05a..9041e183 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigateRelevant_Doc.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigateRelevant_Doc.cs
@@ -10,7 +10,7 @@ namespace BMA.EHR.Domain.Models.Discipline
{
[Required, Comment("อ้างอิงรหัสเอกสาร")]
public Document Document { get; set; }
- [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ [Required, Comment("อ้างอิงเรื่องสืบสวน")]
public DisciplineInvestigate DisciplineInvestigate { get; set; }
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Director.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Director.cs
index 783b6a38..3dc15cf2 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Director.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Director.cs
@@ -10,7 +10,7 @@ namespace BMA.EHR.Domain.Models.Discipline
{
[Required, Comment("อ้างอิงรหัสกรรมการ")]
public DisciplineDirector DisciplineDirector { get; set; }
- [Required, Comment("อ้างอิงเรื่องร้องเรียน")]
+ [Required, Comment("อ้างอิงเรื่องสืบสวน")]
public DisciplineInvestigate DisciplineInvestigate { get; set; }
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Doc.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Doc.cs
index 7547d7d8..dea11d6d 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Doc.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Doc.cs
@@ -10,7 +10,7 @@ namespace BMA.EHR.Domain.Models.Discipline
{
[Required, Comment("อ้างอิงรหัสเอกสาร")]
public Document Document { get; set; }
- [Required, Comment("อ้างอิงเรื่องสอบสวน")]
+ [Required, Comment("อ้างอิงเรื่องสืบสวน")]
public DisciplineInvestigate DisciplineInvestigate { get; set; }
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_DocComplaint.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_DocComplaint.cs
index 472f3386..bbfdb413 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_DocComplaint.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_DocComplaint.cs
@@ -10,7 +10,7 @@ namespace BMA.EHR.Domain.Models.Discipline
{
[Required, Comment("อ้างอิงรหัสเอกสาร")]
public Document Document { get; set; }
- [Required, Comment("อ้างอิงเรื่องร้องเรียน")]
+ [Required, Comment("อ้างอิงเรื่องสืบสวน")]
public DisciplineInvestigate DisciplineInvestigate { get; set; }
}
}
diff --git a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Profile.cs b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_ProfileComplaint.cs
similarity index 90%
rename from BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Profile.cs
rename to BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_ProfileComplaint.cs
index d137ca76..47572169 100644
--- a/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_Profile.cs
+++ b/BMA.EHR.Domain/Models/Discipline/DisciplineInvestigate_ProfileComplaint.cs
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Domain.Models.Discipline
{
- public class DisciplineInvestigate_Profile : EntityBase
+ public class DisciplineInvestigate_ProfileComplaint : EntityBase
{
[Comment("id อ้างอิง profile")]
public Guid? PersonId { get; set; }
@@ -29,7 +29,7 @@ namespace BMA.EHR.Domain.Models.Discipline
public string? PositionLevel { get; set; }
[Comment("เงินเดือน")]
public double? Salary { get; set; }
- [Required, Comment("Id เรื่องร้องเรียน")]
+ [Required, Comment("Id เรื่องสืบสวน")]
public DisciplineInvestigate DisciplineInvestigate { get; set; }
}
}
diff --git a/BMA.EHR.Infrastructure/Migrations/DisciplineDb/20231123133022_add table DisciplineDisciplinary.Designer.cs b/BMA.EHR.Infrastructure/Migrations/DisciplineDb/20231123133022_add table DisciplineDisciplinary.Designer.cs
new file mode 100644
index 00000000..254fd34f
--- /dev/null
+++ b/BMA.EHR.Infrastructure/Migrations/DisciplineDb/20231123133022_add table DisciplineDisciplinary.Designer.cs
@@ -0,0 +1,10654 @@
+//
+using System;
+using BMA.EHR.Infrastructure.Persistence;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace BMA.EHR.Infrastructure.Migrations.DisciplineDb
+{
+ [DbContext(typeof(DisciplineDbContext))]
+ [Migration("20231123133022_add table DisciplineDisciplinary")]
+ partial class addtableDisciplineDisciplinary
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.9")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineComplaint", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("Appellant")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ร้องเรียน");
+
+ b.Property("ComplaintFrom")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("รับเรื่องร้องเรียนจาก ระบุว่ารับเรื่องมาจากใคร/หน่วยงานไหน (สตง., ปปช., ปปท., จดหมาย, อีเมล, โทรศัพท์, บอกกล่าว)");
+
+ b.Property("ConsideredAgency")
+ .HasColumnType("char(36)")
+ .HasComment("หน่วยงานที่พิจารณา จะเปลี่ยนไปตามผู้ถูกร้องดูรายละเอียดด้านล่าง");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DateConsideration")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่กำหนดพิจารณา");
+
+ b.Property("DateNotification")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันแจ้งเตือนล่วงหน้า");
+
+ b.Property("DateReceived")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่รับเรื่อง เป็นวันที่ถือเป็นจุดเริ่มต้นของวินัยนั้น ๆ");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasComment("รายละเอียดของเรื่องร้องเรียน");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("LevelConsideration")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ระดับการพิจารณา 'ยังไม่ระบุ' (NORMAL คือ ปกติ, URGENT คือ ด่วน, VERY_URGENT คือ ด่วนมาก)");
+
+ b.Property("OffenseDetails")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะความผิดครั้งแรกจะเป็น 'ยังไม่ระบุ' (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)");
+
+ b.Property("Organization")
+ .HasColumnType("char(36)")
+ .HasComment("กรณีหน่วยงานใส่ id ของหน่วยงาน");
+
+ b.Property("RespondentType")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)");
+
+ b.Property("Result")
+ .HasColumnType("longtext")
+ .HasComment("ผลการตรวจสอบ");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("สถานะเรื่องร้องเรียน มีดังนี้ ใหม่ (NEW), ยุติเรื่อง (STOP), มีมูลส่งไปสืบสวนแล้ว (SEND_INVESTIGATE)");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasComment("เรื่องที่ร้องเรียน");
+
+ b.HasKey("Id");
+
+ b.ToTable("DisciplineComplaints");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineComplaint_Channel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ชื่อประเภทการร้องเรียน");
+
+ b.HasKey("Id");
+
+ b.ToTable("DisciplineComplaint_Channels");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineComplaint_Doc", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineComplaintId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineComplaintId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("DisciplineComplaint_Docs");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineComplaint_Profile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CitizenId")
+ .HasMaxLength(13)
+ .HasColumnType("varchar(13)")
+ .HasComment("รหัสบัตรประชาชน");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineComplaintId")
+ .HasColumnType("char(36)");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อ");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Organization")
+ .HasColumnType("longtext")
+ .HasComment("สังกัด");
+
+ b.Property("PersonId")
+ .HasColumnType("char(36)")
+ .HasComment("id อ้างอิง profile");
+
+ b.Property("PosNo")
+ .HasColumnType("longtext")
+ .HasComment("เลขที่ตำแหน่ง");
+
+ b.Property("Position")
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่ง");
+
+ b.Property("PositionLevel")
+ .HasColumnType("longtext")
+ .HasComment("ระดับ");
+
+ b.Property("Prefix")
+ .HasColumnType("longtext")
+ .HasComment("คำนำหน้า");
+
+ b.Property("Salary")
+ .HasColumnType("double")
+ .HasComment("เงินเดือน");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineComplaintId");
+
+ b.ToTable("DisciplineComplaint_Profiles");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDirector", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("อีเมล");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ชื่อ");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("นามสกุล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Phone")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("เบอร์โทรศัพท์");
+
+ b.Property("Position")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่ง");
+
+ b.Property("Prefix")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("คำนำหน้าชื่อ");
+
+ b.HasKey("Id");
+
+ b.ToTable("DisciplineDirectors");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("Appellant")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ร้องเรียน");
+
+ b.Property("ComplaintFrom")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("รับเรื่องร้องเรียนจาก ระบุว่ารับเรื่องมาจากใคร/หน่วยงานไหน (สตง., ปปช., ปปท., จดหมาย, อีเมล, โทรศัพท์, บอกกล่าว)");
+
+ b.Property("ConsideredAgency")
+ .HasColumnType("char(36)")
+ .HasComment("หน่วยงานที่พิจารณา จะเปลี่ยนไปตามผู้ถูกร้องดูรายละเอียดด้านล่าง");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DateConsideration")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่กำหนดพิจารณา");
+
+ b.Property("DateNotification")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันแจ้งเตือนล่วงหน้า");
+
+ b.Property("DateReceived")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่รับเรื่อง เป็นวันที่ถือเป็นจุดเริ่มต้นของวินัยนั้น ๆ");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasComment("รายละเอียดของเรื่องร้องเรียน");
+
+ b.Property("DisciplineComplaintId")
+ .HasColumnType("char(36)");
+
+ b.Property("InvestigationCauseText")
+ .HasColumnType("longtext")
+ .HasComment("กรณีมีมูลต้องเลือกว่า 'ร้ายแรง' หรือ 'ไม่ร้ายแรง'");
+
+ b.Property("InvestigationDateEnd")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่สิ้นสุดการสอบสวน");
+
+ b.Property("InvestigationDateStart")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่เริ่มการสอบสวน");
+
+ b.Property("InvestigationDescription")
+ .HasColumnType("longtext")
+ .HasComment("รายละเอียดเกี่ยวกับการสืบสวน");
+
+ b.Property("InvestigationDetail")
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะการสืบสวน (appoint_directors คือ แต่งตั้งกรรมการสืบสวน, secret_investigation คือ สืบสวนทางลับ, other คือ อื่น ๆ)");
+
+ b.Property("InvestigationDetailOther")
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะการสืบสวนกรณีเลือกอื่นๆ");
+
+ b.Property("InvestigationStatusResult")
+ .HasColumnType("longtext")
+ .HasComment("สถานะหรือผลการสืบสวน (not_specified คือ ยังไม่ระบุ, have_cause คือ มีมูล, no_cause คือ ไม่มีมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("LevelConsideration")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ระดับการพิจารณา 'ยังไม่ระบุ' (NORMAL คือ ปกติ, URGENT คือ ด่วน, VERY_URGENT คือ ด่วนมาก)");
+
+ b.Property("OffenseDetails")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะความผิดครั้งแรกจะเป็น 'ยังไม่ระบุ' (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)");
+
+ b.Property("Organization")
+ .HasColumnType("char(36)")
+ .HasComment("กรณีหน่วยงานใส่ id ของหน่วยงาน");
+
+ b.Property("RespondentType")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)");
+
+ b.Property("Result")
+ .HasColumnType("longtext")
+ .HasComment("ผลการตรวจสอบ");
+
+ b.Property("ResultComplaint")
+ .HasColumnType("longtext")
+ .HasComment("ผลการตรวจสอบเรื่องร้องเรียน");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("สถานะเรื่องร้องเรียน มีดังนี้ ใหม่ (NEW), ยุติเรื่อง (STOP), มีมูลส่งไปสืบสวนแล้ว (SEND_INVESTIGATE)");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasComment("เรื่องที่ร้องเรียน");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineComplaintId");
+
+ b.ToTable("DisciplineDisciplinarys");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary_DirectorInvestigate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineDirectorId")
+ .HasColumnType("char(36)");
+
+ b.Property("DisciplineInvestigateId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineDirectorId");
+
+ b.HasIndex("DisciplineInvestigateId");
+
+ b.ToTable("DisciplineDisciplinary_DirectorInvestigates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary_DocComplaintInvestigate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineInvestigateId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineInvestigateId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("DisciplineDisciplinary_DocComplaintInvestigates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary_DocInvestigate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineInvestigateId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineInvestigateId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("DisciplineDisciplinary_DocInvestigates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary_DocInvestigateRelevant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineInvestigateId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineInvestigateId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("DisciplineDisciplinary_DocInvestigateRelevants");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineDisciplinary_ProfileComplaintInvestigate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CitizenId")
+ .HasMaxLength(13)
+ .HasColumnType("varchar(13)")
+ .HasComment("รหัสบัตรประชาชน");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DisciplineInvestigateId")
+ .HasColumnType("char(36)");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อ");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Organization")
+ .HasColumnType("longtext")
+ .HasComment("สังกัด");
+
+ b.Property("PersonId")
+ .HasColumnType("char(36)")
+ .HasComment("id อ้างอิง profile");
+
+ b.Property("PosNo")
+ .HasColumnType("longtext")
+ .HasComment("เลขที่ตำแหน่ง");
+
+ b.Property("Position")
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่ง");
+
+ b.Property("PositionLevel")
+ .HasColumnType("longtext")
+ .HasComment("ระดับ");
+
+ b.Property("Prefix")
+ .HasColumnType("longtext")
+ .HasComment("คำนำหน้า");
+
+ b.Property("Salary")
+ .HasColumnType("double")
+ .HasComment("เงินเดือน");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DisciplineInvestigateId");
+
+ b.ToTable("DisciplineDisciplinary_ProfileComplaintInvestigates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Discipline.DisciplineInvestigate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("Appellant")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ร้องเรียน");
+
+ b.Property("ComplaintFrom")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("รับเรื่องร้องเรียนจาก ระบุว่ารับเรื่องมาจากใคร/หน่วยงานไหน (สตง., ปปช., ปปท., จดหมาย, อีเมล, โทรศัพท์, บอกกล่าว)");
+
+ b.Property("ConsideredAgency")
+ .HasColumnType("char(36)")
+ .HasComment("หน่วยงานที่พิจารณา จะเปลี่ยนไปตามผู้ถูกร้องดูรายละเอียดด้านล่าง");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DateConsideration")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่กำหนดพิจารณา");
+
+ b.Property("DateNotification")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันแจ้งเตือนล่วงหน้า");
+
+ b.Property("DateReceived")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่รับเรื่อง เป็นวันที่ถือเป็นจุดเริ่มต้นของวินัยนั้น ๆ");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasComment("รายละเอียดของเรื่องร้องเรียน");
+
+ b.Property("DisciplineComplaintId")
+ .HasColumnType("char(36)");
+
+ b.Property("InvestigationCauseText")
+ .HasColumnType("longtext")
+ .HasComment("กรณีมีมูลต้องเลือกว่า 'ร้ายแรง' หรือ 'ไม่ร้ายแรง'");
+
+ b.Property("InvestigationDateEnd")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่สิ้นสุดการสอบสวน");
+
+ b.Property("InvestigationDateStart")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่เริ่มการสอบสวน");
+
+ b.Property("InvestigationDescription")
+ .HasColumnType("longtext")
+ .HasComment("รายละเอียดเกี่ยวกับการสืบสวน");
+
+ b.Property("InvestigationDetail")
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะการสืบสวน (appoint_directors คือ แต่งตั้งกรรมการสืบสวน, secret_investigation คือ สืบสวนทางลับ, other คือ อื่น ๆ)");
+
+ b.Property("InvestigationDetailOther")
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะการสืบสวนกรณีเลือกอื่นๆ");
+
+ b.Property("InvestigationStatusResult")
+ .HasColumnType("longtext")
+ .HasComment("สถานะหรือผลการสืบสวน (not_specified คือ ยังไม่ระบุ, have_cause คือ มีมูล, no_cause คือ ไม่มีมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("LevelConsideration")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ระดับการพิจารณา 'ยังไม่ระบุ' (NORMAL คือ ปกติ, URGENT คือ ด่วน, VERY_URGENT คือ ด่วนมาก)");
+
+ b.Property("OffenseDetails")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ลักษณะความผิดครั้งแรกจะเป็น 'ยังไม่ระบุ' (NOT_SPECIFIED คือ ยังไม่ระบุ, NOT_DEADLY คือ ไม่ร้ายแรง, DEADLY คือ ร้ายแรง)");
+
+ b.Property("Organization")
+ .HasColumnType("char(36)")
+ .HasComment("กรณีหน่วยงานใส่ id ของหน่วยงาน");
+
+ b.Property("RespondentType")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ผู้ถูกร้องเรียน (PERSON คือ บุคคล, ORGANIZATION คือ หน่วยงาน, BANGKOK คือ กรุงเทพมหานคร)");
+
+ b.Property("Result")
+ .HasColumnType("longtext")
+ .HasComment("ผลการตรวจสอบ");
+
+ b.Property("ResultComplaint")
+ .HasColumnType("longtext")
+ .HasComment("ผลการตรวจสอบเรื่องร้องเรียน");
+
+ b.Property