เพิ่มบิ้วไฟล์excel
This commit is contained in:
parent
4b7715cc8a
commit
bd695abf24
8 changed files with 3127 additions and 332 deletions
|
|
@ -91,4 +91,16 @@
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="Templates\ExamList.xlsx">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Templates\PassAExamList.xlsx">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Templates\PassExamList.xlsx">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int GetExamCountTe(string citizenId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var count = _context.Candidates.AsQueryable()
|
||||||
|
.Where(x => x.CitizenId == citizenId)
|
||||||
|
.Count();
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task<int> GetExamCount(Guid exam)
|
private async Task<int> GetExamCount(Guid exam)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -358,71 +374,71 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
||||||
// .ThenInclude(x => x.Documents)
|
// .ThenInclude(x => x.Documents)
|
||||||
// .ThenInclude(x => x.DocumentFile)
|
// .ThenInclude(x => x.DocumentFile)
|
||||||
// .FirstOrDefaultAsync(x => x.Id == id);
|
// .FirstOrDefaultAsync(x => x.Id == id);
|
||||||
var periodExam = await _context.PeriodExams.AsQueryable()
|
var periodExam = await _context.PeriodExams.AsQueryable()
|
||||||
.Select(x => new PeriodExamCandidateResponseItem
|
.Select(x => new PeriodExamCandidateResponseItem
|
||||||
{
|
|
||||||
ExamDate = x.ExamDate,
|
|
||||||
AnnouncementEndDate = x.AnnouncementEndDate,
|
|
||||||
AnnouncementStartDate = x.AnnouncementStartDate,
|
|
||||||
AnnouncementDate = x.AnnouncementDate,
|
|
||||||
CheckDisability = x.CheckDisability,
|
|
||||||
CheckDocument = x.CheckDocument,
|
|
||||||
Detail = x.Detail,
|
|
||||||
Fee = x.Fee,
|
|
||||||
Id = x.Id,
|
|
||||||
IsActive = x.IsActive,
|
|
||||||
Name = x.Name,
|
|
||||||
Note = x.Note,
|
|
||||||
// OrganizationCodeId = x.OrganizationCodeId,
|
|
||||||
// OrganizationCodeName = x.OrganizationCodeName,
|
|
||||||
// OrganizationId = x.OrganizationId,
|
|
||||||
// OrganizationName = x.OrganizationName,
|
|
||||||
PaymentEndDate = x.PaymentEndDate,
|
|
||||||
// PaymentKrungThai = x.PaymentKrungThai,
|
|
||||||
AnnouncementExam = x.AnnouncementExam,
|
|
||||||
Category = x.Category,
|
|
||||||
PaymentStartDate = x.PaymentStartDate,
|
|
||||||
RegisterEndDate = x.RegisterEndDate,
|
|
||||||
RegisterStartDate = x.RegisterStartDate,
|
|
||||||
Round = x.Round,
|
|
||||||
// SetSeat = x.SetSeat,
|
|
||||||
Year = x.Year,
|
|
||||||
// BankExam = x.BankExam.OrderBy(o => o.CreatedAt).Select(b => new BankExam
|
|
||||||
// {
|
|
||||||
// Id = b.Id,
|
|
||||||
// AccountName = b.AccountName,
|
|
||||||
// AccountNumber = b.AccountNumber,
|
|
||||||
// BankName = b.BankName,
|
|
||||||
// }).ToList(),
|
|
||||||
// PositionExam = x.PositionExam.OrderBy(o => o.CreatedAt).Select(b => new PositionExam
|
|
||||||
// {
|
|
||||||
// Id = b.Id,
|
|
||||||
// TypeId = b.TypeId,
|
|
||||||
// TypeName = b.TypeName,
|
|
||||||
// PositionId = b.PositionId,
|
|
||||||
// PositionName = b.PositionName,
|
|
||||||
// }).ToList(),
|
|
||||||
Documents = x.PeriodExamDocuments.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
|
|
||||||
{
|
{
|
||||||
Id = b.Document == null ? "" : b.Document.Id.ToString(),
|
ExamDate = x.ExamDate,
|
||||||
FileName = b.Document == null ? "" : b.Document.FileName,
|
AnnouncementEndDate = x.AnnouncementEndDate,
|
||||||
FileSize = b.Document == null ? 0 : b.Document.FileSize,
|
AnnouncementStartDate = x.AnnouncementStartDate,
|
||||||
FileType = b.Document == null ? "" : b.Document.FileType,
|
AnnouncementDate = x.AnnouncementDate,
|
||||||
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
|
CheckDisability = x.CheckDisability,
|
||||||
}).ToList(),
|
CheckDocument = x.CheckDocument,
|
||||||
Images = x.PeriodExamImages.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
|
Detail = x.Detail,
|
||||||
{
|
Fee = x.Fee,
|
||||||
Id = b.Document == null ? "" : b.Document.Id.ToString(),
|
Id = x.Id,
|
||||||
FileName = b.Document == null ? "" : b.Document.FileName,
|
IsActive = x.IsActive,
|
||||||
FileSize = b.Document == null ? 0 : b.Document.FileSize,
|
Name = x.Name,
|
||||||
FileType = b.Document == null ? "" : b.Document.FileType,
|
Note = x.Note,
|
||||||
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
|
// OrganizationCodeId = x.OrganizationCodeId,
|
||||||
}).ToList(),
|
// OrganizationCodeName = x.OrganizationCodeName,
|
||||||
})
|
// OrganizationId = x.OrganizationId,
|
||||||
.FirstOrDefaultAsync(x => x.Id == id);
|
// OrganizationName = x.OrganizationName,
|
||||||
|
PaymentEndDate = x.PaymentEndDate,
|
||||||
|
// PaymentKrungThai = x.PaymentKrungThai,
|
||||||
|
AnnouncementExam = x.AnnouncementExam,
|
||||||
|
Category = x.Category,
|
||||||
|
PaymentStartDate = x.PaymentStartDate,
|
||||||
|
RegisterEndDate = x.RegisterEndDate,
|
||||||
|
RegisterStartDate = x.RegisterStartDate,
|
||||||
|
Round = x.Round,
|
||||||
|
// SetSeat = x.SetSeat,
|
||||||
|
Year = x.Year,
|
||||||
|
// BankExam = x.BankExam.OrderBy(o => o.CreatedAt).Select(b => new BankExam
|
||||||
|
// {
|
||||||
|
// Id = b.Id,
|
||||||
|
// AccountName = b.AccountName,
|
||||||
|
// AccountNumber = b.AccountNumber,
|
||||||
|
// BankName = b.BankName,
|
||||||
|
// }).ToList(),
|
||||||
|
// PositionExam = x.PositionExam.OrderBy(o => o.CreatedAt).Select(b => new PositionExam
|
||||||
|
// {
|
||||||
|
// Id = b.Id,
|
||||||
|
// TypeId = b.TypeId,
|
||||||
|
// TypeName = b.TypeName,
|
||||||
|
// PositionId = b.PositionId,
|
||||||
|
// PositionName = b.PositionName,
|
||||||
|
// }).ToList(),
|
||||||
|
Documents = x.PeriodExamDocuments.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
|
||||||
|
{
|
||||||
|
Id = b.Document == null ? "" : b.Document.Id.ToString(),
|
||||||
|
FileName = b.Document == null ? "" : b.Document.FileName,
|
||||||
|
FileSize = b.Document == null ? 0 : b.Document.FileSize,
|
||||||
|
FileType = b.Document == null ? "" : b.Document.FileType,
|
||||||
|
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
|
||||||
|
}).ToList(),
|
||||||
|
Images = x.PeriodExamImages.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
|
||||||
|
{
|
||||||
|
Id = b.Document == null ? "" : b.Document.Id.ToString(),
|
||||||
|
FileName = b.Document == null ? "" : b.Document.FileName,
|
||||||
|
FileSize = b.Document == null ? 0 : b.Document.FileSize,
|
||||||
|
FileType = b.Document == null ? "" : b.Document.FileType,
|
||||||
|
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
|
||||||
|
}).ToList(),
|
||||||
|
})
|
||||||
|
.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
|
||||||
if (periodExam == null)
|
if (periodExam == null)
|
||||||
throw new Exception(GlobalMessages.ExamNotFound);
|
throw new Exception(GlobalMessages.ExamNotFound);
|
||||||
|
|
||||||
return Success(periodExam);
|
return Success(periodExam);
|
||||||
}
|
}
|
||||||
|
|
@ -1601,7 +1617,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
||||||
ExamYear = p.PeriodExam.Year == null ? 0 : p.PeriodExam.Year.Value.ToThaiYear(),
|
ExamYear = p.PeriodExam.Year == null ? 0 : p.PeriodExam.Year.Value.ToThaiYear(),
|
||||||
Score = sr == null ? 0 : sr.SumA + sr.SumB + sr.SumC,
|
Score = sr == null ? 0 : sr.SumA + sr.SumB + sr.SumC,
|
||||||
Number = sr == null ? "" : sr.Number,
|
Number = sr == null ? "" : sr.Number,
|
||||||
ExamCount = _disableService.GetExamCount(p.CitizenId),
|
CitizenId = p.CitizenId,
|
||||||
|
ExamCount = 0,
|
||||||
ScoreExpire = p.PeriodExam.AnnouncementDate == null ? "" : p.PeriodExam.AnnouncementDate.AddYears(2).ToThaiShortDate(),
|
ScoreExpire = p.PeriodExam.AnnouncementDate == null ? "" : p.PeriodExam.AnnouncementDate.AddYears(2).ToThaiShortDate(),
|
||||||
ScoreResult = sr == null ? null : new
|
ScoreResult = sr == null ? null : new
|
||||||
{
|
{
|
||||||
|
|
@ -1623,7 +1640,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
||||||
})
|
})
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
|
||||||
return Success(data);
|
return Success(new { data, ExamCount = data == null || data.CitizenId == "" ? 0 : GetExamCountTe(data.CitizenId) });
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
|
||||||
{
|
{
|
||||||
// disable relation setup
|
// disable relation setup
|
||||||
modelBuilder.Entity<PeriodExam>().HasMany(x => x.Disables).WithOne(x => x.PeriodExam).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<PeriodExam>().HasMany(x => x.Disables).WithOne(x => x.PeriodExam).OnDelete(DeleteBehavior.Cascade);
|
||||||
modelBuilder.Entity<Models.Disables.Disable>().HasMany(x => x.Educations).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<Disable>().HasMany(x => x.Educations).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
||||||
modelBuilder.Entity<Models.Disables.Disable>().HasMany(x => x.Occupations).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<Disable>().HasMany(x => x.Occupations).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
||||||
modelBuilder.Entity<Models.Disables.Disable>().HasMany(x => x.Addresses).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<Disable>().HasMany(x => x.Addresses).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
||||||
modelBuilder.Entity<Models.Disables.Disable>().HasMany(x => x.Certificates).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<Disable>().HasMany(x => x.Certificates).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
||||||
modelBuilder.Entity<Models.Disables.Disable>().HasMany(x => x.Payments).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
modelBuilder.Entity<Disable>().HasMany(x => x.Payments).WithOne(x => x.Disable).OnDelete(DeleteBehavior.Cascade);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public DbSet<Prefix> Prefixes { get; set; }
|
// public DbSet<Prefix> Prefixes { get; set; }
|
||||||
|
|
@ -63,7 +63,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
|
||||||
|
|
||||||
public DbSet<CMSGovernment> CMSGovernments { get; set; }
|
public DbSet<CMSGovernment> CMSGovernments { get; set; }
|
||||||
|
|
||||||
public DbSet<Models.Disables.Disable> Disables { get; set; }
|
public DbSet<Disable> Disables { get; set; }
|
||||||
|
|
||||||
public DbSet<DisableAddress> DisableAddresses { get; set; }
|
public DbSet<DisableAddress> DisableAddresses { get; set; }
|
||||||
|
|
||||||
|
|
|
||||||
2741
Migrations/20230502083957_update table disable add model.Designer.cs
generated
Normal file
2741
Migrations/20230502083957_update table disable add model.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load diff
22
Migrations/20230502083957_update table disable add model.cs
Normal file
22
Migrations/20230502083957_update table disable add model.cs
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace BMA.EHR.Recurit.Exam.Service.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class updatetabledisableaddmodel : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace BMA.EHR.Recurit.Exam.Service.Models.Disables
|
namespace BMA.EHR.Recurit.Exam.Service.Models.Disables
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,31 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using BMA.EHR.Recurit.Exam.Service.Data;
|
using BMA.EHR.Recurit.Exam.Service.Data;
|
||||||
using BMA.EHR.Recurit.Exam.Service.Models.Disables;
|
using System.Data;
|
||||||
|
|
||||||
namespace BMA.EHR.Recurit.Exam.Service.Services
|
namespace BMA.EHR.Recurit.Exam.Service.Services
|
||||||
{
|
{
|
||||||
public class DisableService
|
public class DisableService
|
||||||
{
|
{
|
||||||
private readonly ApplicationDbContext _context;
|
private readonly ApplicationDbContext _context;
|
||||||
|
private readonly IConfiguration _configuration;
|
||||||
|
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||||
|
|
||||||
public DisableService(ApplicationDbContext context)
|
public DisableService(ApplicationDbContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment webHostEnvironment)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
|
_configuration = configuration;
|
||||||
|
_webHostEnvironment = webHostEnvironment;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetExamCount(string citizenId)
|
public int GetExamCount(string citizenId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var count = _context.Disables.AsQueryable()
|
var count = _context.Candidates.AsQueryable()
|
||||||
.Where(x => x.CitizenId == citizenId)
|
.Where(x => x.CitizenId == citizenId)
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue