add field to support cms and change sum api

This commit is contained in:
Suphonchai Phoonsawat 2023-04-23 12:00:07 +07:00
parent 6d9f252f1a
commit b8109e80ac
16 changed files with 2132 additions and 23 deletions

View file

@ -386,6 +386,16 @@ namespace BMA.EHR.Recruit.Service.Controllers
Year = req.Year,
Name = req.Name,
Order = req.Order,
Detail = req.Detail,
Fee = req.Fee,
AnnouncementStartDate = req.AnnouncementStartDate,
AnnouncementEndDate = req.AnnouncementEndDate,
RegisterStartDate = req.RegisterStartDate,
RegisterEndDate = req.RegisterEndDate,
ExamDate = req.ExamDate,
PaymentStartDate = req.PaymentStartDate,
PaymentEndDate = req.PaymentEndDate,
Note = req.Note,
});
await _context.SaveChangesAsync();
@ -398,6 +408,55 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
}
/// <summary>
/// แก้ไขข้อมูลรอบการจัดสอบแข่งขัน
/// </summary>
/// <param name="id">รหัสรอบการสอบแข่งขัน</param>
/// <param name="req">Request parameters</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการเพิ่มข้อมูลสำเร็จ</response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("period/{id:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> PutPeriodAsync(Guid id, [FromBody] PostRecruitImportRequest req)
{
try
{
var data = await _context.RecruitImports.AsQueryable().FirstOrDefaultAsync(x => x.Id == id);
if (data == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
data.Name = req.Name;
data.Year = req.Year;
data.Order = req.Order;
data.Detail = req.Detail;
data.Fee = req.Fee;
data.AnnouncementEndDate = req.AnnouncementEndDate;
data.AnnouncementStartDate = req.AnnouncementStartDate;
data.RegisterStartDate = req.RegisterStartDate;
data.RegisterEndDate = req.RegisterEndDate;
data.PaymentEndDate = req.PaymentEndDate;
data.PaymentStartDate = req.PaymentStartDate;
data.ExamDate = req.ExamDate;
data.Note = req.Note;
await _context.SaveChangesAsync();
return Success();
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ลบข้อมูลรอบการจัดสอบแข่งขัน
@ -806,6 +865,223 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
}
/// <summary>
/// นำเข้ารายชื่อผู้สมัครสอบแข่งขัน
/// </summary>
/// <param name="id">รหัสรอบการสอบแข่งขัน</param>
/// <returns></returns>
/// <response code="200">เมื่อทำนำเข้าข้อมูลสำเร็จ</response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("candidate/{id:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> ImportCandidateFileByIdAsync(Guid id)
{
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (!Directory.Exists(tmpDir))
Directory.CreateDirectory(tmpDir);
var importFile = Path.Combine(tmpDir, $"c_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.xlsx");
var import_doc_id = "";
try
{
if (Request.Form.Files == null || Request.Form.Files.Count == 0)
{
return Error(GlobalMessages.NoFileToUpload);
}
var imported = await _context.RecruitImports.AsQueryable()
.Include(x => x.ImportHostories)
.Include(x => x.ImportFile)
.Include(x => x.Recruits)
.ThenInclude(x => x.Addresses)
.Include(x => x.Recruits)
.ThenInclude(x => x.Occupations)
.Include(x => x.Recruits)
.ThenInclude(x => x.Certificates)
.Include(x => x.Recruits)
.ThenInclude(x => x.Educations)
.Include(x => x.Recruits)
.ThenInclude(x => x.Payments)
.Include(x => x.Recruits)
.FirstOrDefaultAsync(x => x.Id == id);
if (imported == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
if (imported.Recruits != null)
{
// remove old score data
_context.Recruits.RemoveRange(imported.Recruits);
await _context.SaveChangesAsync();
}
var file = Request.Form.Files[0];
var doc = await _minioService.UploadFileAsync(file);
import_doc_id = doc.Id.ToString("D");
var fileContent = (await _minioService.DownloadFileAsync(doc.Id)).FileContent;
// สร้างรอบการบรรจุ โดยเอาเข้ามูลมาใส่จาก Request
imported.ImportHostories.Add(new RecruitImportHistory
{
Description = "นำเข้าข้อมูลผู้สมัครสอบแข่งขัน",
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "System Administrator",
});
//await _context.RecruitImports.AddAsync(imported);
// import datafile
System.IO.File.WriteAllBytes(importFile, fileContent);
using (var c_package = new ExcelPackage(new FileInfo(importFile)))
{
// loop from sheet2 to end
for (int i = 1; i < c_package.Workbook.Worksheets.Count; i++)
{
var workSheet = c_package.Workbook.Worksheets[i];
var totalRows = workSheet.Dimension.Rows;
var cols = workSheet.GetHeaderColumns();
int row = 2;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var r = new Models.Recruits.Recruit();
r.ExamId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ExamID)]?.GetValue<string>();
r.CitizenId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalID)]?.GetValue<string>();
r.Prefix = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Prefix)]?.GetValue<string>();
r.FirstName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.FirstName)]?.GetValue<string>();
r.LastName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.LastName)]?.GetValue<string>();
r.Gendor = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Gender)]?.GetValue<string>();
r.National = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.National)]?.GetValue<string>().IsNull("");
r.Race = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Race)]?.GetValue<string>().IsNull("");
r.Religion = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Religion)]?.GetValue<string>().IsNull("");
r.DateOfBirth = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.DateOfBirth)]?.GetValue<string>().ToDateTime(DateTimeFormat.Ymd, "-"));
r.Marry = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Marry)]?.GetValue<string>();
r.Isspecial = "N";
r.CitizenCardIssuer = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardIssue)]?.GetValue<string>();
r.CitizenCardExpireDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardExpireDate)]?.GetValue<string>().ToDateTime(DateTimeFormat.Ymd, "-"));
r.ApplyDate = (DateTime)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ApplyDate)]?.GetValue<DateTime>();
// address
r.Addresses.Add(new RecruitAddress()
{
Address = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Address)]?.GetValue<string>() ?? "",
Moo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Moo)]?.GetValue<string>() ?? "",
Soi = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Soi)]?.GetValue<string>() ?? "",
Road = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Road)]?.GetValue<string>() ?? "",
District = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.District)]?.GetValue<string>() ?? "",
Amphur = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amphur)]?.GetValue<string>() ?? "",
Province = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Province)]?.GetValue<string>() ?? "",
ZipCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ZipCode)]?.GetValue<string>() ?? "",
Telephone = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Telephone)]?.GetValue<string>() ?? "",
Mobile = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Mobile)]?.GetValue<string>() ?? "",
Address1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Address1)]?.GetValue<string>() ?? "",
Moo1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Moo1)]?.GetValue<string>() ?? "",
Soi1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Soi1)]?.GetValue<string>() ?? "",
Road1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Road1)]?.GetValue<string>() ?? "",
District1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.District1)]?.GetValue<string>() ?? "",
Amphur1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amphur1)]?.GetValue<string>() ?? "",
Province1 = "",
ZipCode1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ZipCode1)]?.GetValue<string>() ?? "",
});
// payment
r.Payments.Add(new RecruitPayment()
{
PaymentId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PaymentID)]?.GetValue<string>() ?? "",
CompanyCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CompanyCode)]?.GetValue<string>() ?? "",
TextFile = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TextFile)]?.GetValue<string>() ?? "",
BankCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.BankCode)]?.GetValue<string>() ?? "",
AccountNumber = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.AccouontNumer)]?.GetValue<string>() ?? "",
TransDate = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TransDate)]?.GetValue<string>() ?? "",
TransTime = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TransTime)]?.GetValue<string>() ?? "",
CustomerName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CustomerName)]?.GetValue<string>() ?? "",
RefNo1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.RefNo1)]?.GetValue<string>() ?? "",
TermBranch = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TermBranch)]?.GetValue<string>() ?? "",
TellerId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TellerID)]?.GetValue<string>() ?? "",
CreditDebit = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CreditDebit)]?.GetValue<string>() ?? "",
PaymentType = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Type)]?.GetValue<string>(),
ChequeNo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ChequeNo)]?.GetValue<string>() ?? "",
Amount = (decimal)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amount)]?.GetValue<decimal>(),
ChqueBankCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ChqBankCode)]?.GetValue<string>() ?? ""
});
// occupation
r.Occupations.Add(new RecruitOccupation()
{
Occupation = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Occupation)]?.GetValue<string>() ?? "",
Position = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Position)]?.GetValue<string>() ?? "",
Workplace = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Workplace)]?.GetValue<string>() ?? "",
Telephone = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.WorkplaceTelephone)]?.GetValue<string>() ?? "",
WorkAge = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.WorkAge)]?.GetValue<string>() ?? "",
});
// certificate
r.Certificates.Add(new RecruitCertificate()
{
CertificateNo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateNo)]?.GetValue<string>() ?? "",
Description = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateDesc)]?.GetValue<string>() ?? "",
IssueDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateIssueDate)]?.GetValue<string>().ToDateTime(DateTimeFormat.Ymd, "-")),
ExpiredDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateExpireDate)]?.GetValue<string>().ToDateTime(DateTimeFormat.Ymd, "-"))
});
r.Educations.Add(new RecruitEducation()
{
Degree = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Degree)]?.GetValue<string>() ?? "",
Major = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Major)]?.GetValue<string>() ?? "",
MajorGroupId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.MajorGroupID)]?.GetValue<string>() ?? "",
MajorGroupName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.MajorGroupName)]?.GetValue<string>() ?? "",
University = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.University)]?.GetValue<string>() ?? "",
GPA = (double)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.GPA)]?.GetValue<double>(),
Specialist = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.SpecialList)]?.GetValue<string>() ?? "",
HighDegree = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.HighDegree)]?.GetValue<string>() ?? "",
BachelorDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.BachelorDate)]?.GetValue<string>().ToDateTime(DateTimeFormat.Ymd, "-"))
});
r.RecruitImport = imported;
_context.Recruits.Add(r);
//imported.Recruits.Add(r);
row++;
}
}
}
// finally save to database
_context.SaveChanges();
return Success();
}
catch (Exception ex)
{
await _minioService.DeleteFileAsync(Guid.Parse(import_doc_id));
return Error(ex);
}
finally
{
if (System.IO.File.Exists(importFile))
System.IO.File.Delete(importFile);
}
}
#endregion
#region " Score File "
@ -829,6 +1105,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
var rec_import = await _context.RecruitImports.AsQueryable()
.Include(x => x.ScoreImport)
.ThenInclude(x => x.Scores)
.Include(x => x.ImportHostories)
.FirstOrDefaultAsync(x => x.Id == id);
@ -836,7 +1113,14 @@ namespace BMA.EHR.Recruit.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
if (rec_import.ScoreImport != null)
return Error($"มีการนำเข้าข้อมูลเอาไว้ก่อนหน้านี้แล้ว ไม่สามารถนำเข้าได้!!");
{
// remove old score data
if (rec_import.ScoreImport.Scores != null)
{
_context.RecruitScores.RemoveRange(rec_import.ScoreImport.Scores);
await _context.SaveChangesAsync();
}
}
var file = Request.Form.Files[0];
var doc = await _minioService.UploadFileAsync(file);
@ -916,6 +1200,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
catch (Exception ex)
{
await _minioService.DeleteFileAsync(Guid.Parse(import_doc_id));
return Error(ex);
}
finally

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,188 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Recruit.Service.Migrations
{
/// <inheritdoc />
public partial class AddFieldtoRecruitImportTableforSupportCMS : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "Year",
table: "RecruitImports",
type: "int",
nullable: false,
comment: "ปีงบประมาณที่จัดสอบ",
oldClrType: typeof(int),
oldType: "int",
oldComment: "ปีที่จัดการสอบ");
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "RecruitImports",
type: "varchar(250)",
maxLength: 250,
nullable: false,
comment: "รอบการสอบ",
oldClrType: typeof(string),
oldType: "varchar(250)",
oldMaxLength: 250,
oldComment: "ชื่อการสอบ")
.Annotation("MySql:CharSet", "utf8mb4")
.OldAnnotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<DateTime>(
name: "AnnouncementEndDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันสิ้นสุดประกาศ")
.Annotation("Relational:ColumnOrder", 7);
migrationBuilder.AddColumn<DateTime>(
name: "AnnouncementStartDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันเริ่มประกาศ")
.Annotation("Relational:ColumnOrder", 6);
migrationBuilder.AddColumn<string>(
name: "Detail",
table: "RecruitImports",
type: "text",
nullable: true,
comment: "รายละเอียด")
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<DateTime>(
name: "ExamDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันที่สอบ")
.Annotation("Relational:ColumnOrder", 12);
migrationBuilder.AddColumn<int>(
name: "Fee",
table: "RecruitImports",
type: "int",
nullable: false,
defaultValue: 0,
comment: "ค่าธรรมเนียม")
.Annotation("Relational:ColumnOrder", 5);
migrationBuilder.AddColumn<string>(
name: "Note",
table: "RecruitImports",
type: "text",
nullable: true,
comment: "หมายเหตุ")
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<DateTime>(
name: "PaymentEndDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันสิ้นสุดชำระเงิน")
.Annotation("Relational:ColumnOrder", 9);
migrationBuilder.AddColumn<DateTime>(
name: "PaymentStartDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันเริ่มชำระเงิน")
.Annotation("Relational:ColumnOrder", 8);
migrationBuilder.AddColumn<DateTime>(
name: "RegisterEndDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันสิ้นสุดสมัครสอบ")
.Annotation("Relational:ColumnOrder", 11);
migrationBuilder.AddColumn<DateTime>(
name: "RegisterStartDate",
table: "RecruitImports",
type: "datetime(6)",
nullable: true,
comment: "วันเริ่มสมัครสอบ")
.Annotation("Relational:ColumnOrder", 10);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "AnnouncementEndDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "AnnouncementStartDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "Detail",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "ExamDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "Fee",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "Note",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "PaymentEndDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "PaymentStartDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "RegisterEndDate",
table: "RecruitImports");
migrationBuilder.DropColumn(
name: "RegisterStartDate",
table: "RecruitImports");
migrationBuilder.AlterColumn<int>(
name: "Year",
table: "RecruitImports",
type: "int",
nullable: false,
comment: "ปีที่จัดการสอบ",
oldClrType: typeof(int),
oldType: "int",
oldComment: "ปีงบประมาณที่จัดสอบ");
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "RecruitImports",
type: "varchar(250)",
maxLength: 250,
nullable: false,
comment: "ชื่อการสอบ",
oldClrType: typeof(string),
oldType: "varchar(250)",
oldMaxLength: 250,
oldComment: "รอบการสอบ")
.Annotation("MySql:CharSet", "utf8mb4")
.OldAnnotation("MySql:CharSet", "utf8mb4");
}
}
}

View file

@ -593,6 +593,16 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime?>("AnnouncementEndDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(7)
.HasComment("วันสิ้นสุดประกาศ");
b.Property<DateTime?>("AnnouncementStartDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(6)
.HasComment("วันเริ่มประกาศ");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
@ -612,6 +622,21 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<string>("Detail")
.HasColumnType("text")
.HasColumnOrder(4)
.HasComment("รายละเอียด");
b.Property<DateTime?>("ExamDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(12)
.HasComment("วันที่สอบ");
b.Property<int>("Fee")
.HasColumnType("int")
.HasColumnOrder(5)
.HasComment("ค่าธรรมเนียม");
b.Property<Guid>("ImportFileId")
.HasColumnType("char(36)");
@ -639,17 +664,42 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasMaxLength(250)
.HasColumnType("varchar(250)")
.HasColumnOrder(2)
.HasComment("ชื่อการสอบ");
.HasComment("รอบการสอบ");
b.Property<string>("Note")
.HasColumnType("text")
.HasColumnOrder(13)
.HasComment("หมายเหตุ");
b.Property<int>("Order")
.HasColumnType("int")
.HasColumnOrder(3)
.HasComment("ครั้งที่");
b.Property<DateTime?>("PaymentEndDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(9)
.HasComment("วันสิ้นสุดชำระเงิน");
b.Property<DateTime?>("PaymentStartDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(8)
.HasComment("วันเริ่มชำระเงิน");
b.Property<DateTime?>("RegisterEndDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(11)
.HasComment("วันสิ้นสุดสมัครสอบ");
b.Property<DateTime?>("RegisterStartDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(10)
.HasComment("วันเริ่มสมัครสอบ");
b.Property<int>("Year")
.HasColumnType("int")
.HasColumnOrder(1)
.HasComment("ปีที่จัดการสอบ");
.HasComment("ปีงบประมาณที่จัดสอบ");
b.HasKey("Id");

View file

@ -5,23 +5,53 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace BMA.EHR.Recruit.Service.Models.Recruits
{
public class RecruitImport : EntityBase
{
[Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)]
public int Year { get; set; }
public class RecruitImport : EntityBase
{
[Required, Comment("ปีงบประมาณที่จัดสอบ"), Column(Order = 1)]
public int Year { get; set; }
[Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)]
public string Name { get; set; } = string.Empty;
[Required, MaxLength(250), Comment("รอบการสอบ"), Column(Order = 2)]
public string Name { get; set; } = string.Empty;
[Required, Comment("ครั้งที่"), Column(Order = 3)]
public int Order { get; set; } = 1;
[Required, Comment("ครั้งที่"), Column(Order = 3)]
public int Order { get; set; } = 1; // Round
public Document ImportFile { get; set; } = new Document();
[Column(Order = 4, TypeName = "text"), Comment("รายละเอียด")]
public string? Detail { get; set; }
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
[Column(Order = 5), Comment("ค่าธรรมเนียม")]
public int Fee { get; set; } = 0;
public ScoreImport ScoreImport { get; set; }
[Column(Order = 6), Comment("วันเริ่มประกาศ")]
public DateTime? AnnouncementStartDate { get; set; }
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
}
[Column(Order = 7), Comment("วันสิ้นสุดประกาศ")]
public DateTime? AnnouncementEndDate { get; set; }
[Column(Order = 8), Comment("วันเริ่มชำระเงิน")]
public DateTime? PaymentStartDate { get; set; }
[Column(Order = 9), Comment("วันสิ้นสุดชำระเงิน")]
public DateTime? PaymentEndDate { get; set; }
[Column(Order = 10), Comment("วันเริ่มสมัครสอบ")]
public DateTime? RegisterStartDate { get; set; }
[Column(Order = 11), Comment("วันสิ้นสุดสมัครสอบ")]
public DateTime? RegisterEndDate { get; set; }
[Column(Order = 12), Comment("วันที่สอบ")]
public DateTime? ExamDate { get; set; }
[Column(Order = 13, TypeName = "text"), Comment("หมายเหตุ")]
public string? Note { get; set; }
public Document ImportFile { get; set; } = new Document();
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
public ScoreImport ScoreImport { get; set; }
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
}
}

View file

@ -11,13 +11,13 @@ namespace BMA.EHR.Recruit.Service.Requests.Recruits
public class PostRecruitImportRequest
{
/// <summary>
/// ปีที่จัดการสอบ
/// ปีงบประมาณที่จัดสอบ
/// </summary>
[Required]
public int Year { get; set; }
/// <summary>
/// ชื่อการสอบ
/// รอบการสอบ
/// </summary>
[Required, MaxLength(250)]
public string Name { get; set; } = string.Empty;
@ -27,5 +27,55 @@ namespace BMA.EHR.Recruit.Service.Requests.Recruits
/// </summary>
[Required]
public int Order { get; set; } = 1;
/// <summary>
/// รายละเอียด
/// </summary>
public string? Detail { get; set; }
/// <summary>
/// ค่าธรรมเนียม
/// </summary>
public int Fee { get; set; } = 0;
/// <summary>
/// วันเริ่มประกาศ
/// </summary>
public DateTime? AnnouncementStartDate { get; set; }
/// <summary>
/// วันสิ้นสุดประกาศ
/// </summary>
public DateTime? AnnouncementEndDate { get; set; }
/// <summary>
/// วันเริ่มชำระเงิน
/// </summary>
public DateTime? PaymentStartDate { get; set; }
/// <summary>
/// วันสิ้นสุดชำระเงิน
/// </summary>
public DateTime? PaymentEndDate { get; set; }
/// <summary>
/// วันเริ่มสมัครสอบ
/// </summary>
public DateTime? RegisterStartDate { get; set; }
/// <summary>
/// วันสิ้นสุดสมัครสอบ
/// </summary>
public DateTime? RegisterEndDate { get; set; }
/// <summary>
/// วันที่สอบ
/// </summary>
public DateTime? ExamDate { get; set; }
/// <summary>
/// หมายเหตุ
/// </summary>
public string? Note { get; set; }
}
}

View file

@ -68,6 +68,18 @@
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.PutPeriodAsync(System.Guid,BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest)">
<summary>
แก้ไขข้อมูลรอบการจัดสอบแข่งขัน
</summary>
<param name="id">รหัสรอบการสอบแข่งขัน</param>
<param name="req">Request parameters</param>
<returns></returns>
<response code="200">เมื่อทำการเพิ่มข้อมูลสำเร็จ</response>
<response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.DeletePeriodAsync(System.Guid)">
<summary>
ลบข้อมูลรอบการจัดสอบแข่งขัน
@ -121,6 +133,17 @@
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.ImportCandidateFileByIdAsync(System.Guid)">
<summary>
นำเข้ารายชื่อผู้สมัครสอบแข่งขัน
</summary>
<param name="id">รหัสรอบการสอบแข่งขัน</param>
<returns></returns>
<response code="200">เมื่อทำนำเข้าข้อมูลสำเร็จ</response>
<response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.GetExamResultAsync">
<summary>
แสดงข้อมูลสำหรับหน้าจอ : รายการข้อมูลผู้สมัครสอบ
@ -222,6 +245,18 @@
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddImportHistory.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
<inheritdoc />
</member>
<member name="T:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
<inheritdoc />
</member>
<member name="T:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest">
<summary>
ตัวแปรสำหรับสร้างข้อมูลการสอบแข่งขัน
@ -229,12 +264,12 @@
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Year">
<summary>
ปีที่จัดการสอบ
ปีงบประมาณที่จัดสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Name">
<summary>
ชื่อการสอบ
รอบการสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Order">
@ -242,6 +277,56 @@
ครั้งที่
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Detail">
<summary>
รายละเอียด
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Fee">
<summary>
ค่าธรรมเนียม
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.AnnouncementStartDate">
<summary>
วันเริ่มประกาศ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.AnnouncementEndDate">
<summary>
วันสิ้นสุดประกาศ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.PaymentStartDate">
<summary>
วันเริ่มชำระเงิน
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.PaymentEndDate">
<summary>
วันสิ้นสุดชำระเงิน
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.RegisterStartDate">
<summary>
วันเริ่มสมัครสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.RegisterEndDate">
<summary>
วันสิ้นสุดสมัครสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.ExamDate">
<summary>
วันที่สอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Note">
<summary>
หมายเหตุ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.RecruitExamRequest.ExamAttribute">
<summary>
ข้อมูลคุณสมบัติของผู้เข้าสอบ โดยส่งมาจากหน้าจอ 'มีคุณสมบัติ' 'ขาดคุณสมบัติ'

View file

@ -1 +1 @@
4ba1a3139507015ee4acea2f4d9539569c6e322a
64f21d3b57f158bdc0838033ac2cfe760996c5e9

View file

@ -68,6 +68,18 @@
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.PutPeriodAsync(System.Guid,BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest)">
<summary>
แก้ไขข้อมูลรอบการจัดสอบแข่งขัน
</summary>
<param name="id">รหัสรอบการสอบแข่งขัน</param>
<param name="req">Request parameters</param>
<returns></returns>
<response code="200">เมื่อทำการเพิ่มข้อมูลสำเร็จ</response>
<response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.DeletePeriodAsync(System.Guid)">
<summary>
ลบข้อมูลรอบการจัดสอบแข่งขัน
@ -121,6 +133,17 @@
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.ImportCandidateFileByIdAsync(System.Guid)">
<summary>
นำเข้ารายชื่อผู้สมัครสอบแข่งขัน
</summary>
<param name="id">รหัสรอบการสอบแข่งขัน</param>
<returns></returns>
<response code="200">เมื่อทำนำเข้าข้อมูลสำเร็จ</response>
<response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
<response code="401">ไม่ได้ Login เข้าระบบ</response>
<response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
</member>
<member name="M:BMA.EHR.Recruit.Service.Controllers.RecruitController.GetExamResultAsync">
<summary>
แสดงข้อมูลสำหรับหน้าจอ : รายการข้อมูลผู้สมัครสอบ
@ -222,6 +245,18 @@
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddImportHistory.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
<inheritdoc />
</member>
<member name="T:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
<inheritdoc />
</member>
<member name="M:BMA.EHR.Recruit.Service.Migrations.AddFieldtoRecruitImportTableforSupportCMS.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
<inheritdoc />
</member>
<member name="T:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest">
<summary>
ตัวแปรสำหรับสร้างข้อมูลการสอบแข่งขัน
@ -229,12 +264,12 @@
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Year">
<summary>
ปีที่จัดการสอบ
ปีงบประมาณที่จัดสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Name">
<summary>
ชื่อการสอบ
รอบการสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Order">
@ -242,6 +277,56 @@
ครั้งที่
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Detail">
<summary>
รายละเอียด
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Fee">
<summary>
ค่าธรรมเนียม
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.AnnouncementStartDate">
<summary>
วันเริ่มประกาศ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.AnnouncementEndDate">
<summary>
วันสิ้นสุดประกาศ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.PaymentStartDate">
<summary>
วันเริ่มชำระเงิน
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.PaymentEndDate">
<summary>
วันสิ้นสุดชำระเงิน
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.RegisterStartDate">
<summary>
วันเริ่มสมัครสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.RegisterEndDate">
<summary>
วันสิ้นสุดสมัครสอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.ExamDate">
<summary>
วันที่สอบ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.PostRecruitImportRequest.Note">
<summary>
หมายเหตุ
</summary>
</member>
<member name="P:BMA.EHR.Recruit.Service.Requests.Recruits.RecruitExamRequest.ExamAttribute">
<summary>
ข้อมูลคุณสมบัติของผู้เข้าสอบ โดยส่งมาจากหน้าจอ 'มีคุณสมบัติ' 'ขาดคุณสมบัติ'

View file

@ -1,6 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.