fix ระบบสรรหาฯ #876

This commit is contained in:
Bright 2024-12-23 18:19:37 +07:00
parent 5be7ad401a
commit 8b9bdf84f9

View file

@ -1813,69 +1813,91 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}";
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates"); var disables = data.Disables
.OrderBy(x => x.ExamId)
var template_file = Path.Combine(template_dir, "ExamList.xlsx"); .Select(x => new
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (!Directory.Exists(tmpDir))
Directory.CreateDirectory(tmpDir);
var exportFile = Path.Combine(tmpDir, $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
try
{ {
// copy template ExamId = x.ExamId,
System.IO.File.Copy(template_file, exportFile); CitizenId = x.CitizenId,
Fullname = $"{x.Prefix}{x.FirstName} {x.LastName}",
PositionName = x.PositionName
})
.ToList();
using (var excel = new ExcelPackage(new FileInfo(exportFile))) var _data = new
{ {
var workSheet = excel.Workbook.Worksheets[0]; template = "ExamList",
reportName = $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
data = new
workSheet.Cells[1, 2].Value = header;
var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
var row = 4; // start at row 4
foreach (var item in disables)
{ {
workSheet.Cells[row, 1].Value = item.ExamId; header = header,
workSheet.Cells[row, 2].Value = item.CitizenId; data = disables
workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
workSheet.Cells[row, 4].Value = item.PositionName;
row++;
} }
excel.Save();
using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
{
byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
var fname = Path.GetFileName(exportFile);
Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = fname
}; };
return Success(_data);
//var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return ret; //var template_file = Path.Combine(template_dir, "ExamList.xlsx");
}
} //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
} //if (!Directory.Exists(tmpDir))
catch (Exception ex) // Directory.CreateDirectory(tmpDir);
{
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้มีสิทธิ์สอบได้!!"); //var exportFile = Path.Combine(tmpDir, $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
} //try
finally //{
{ // // copy template
if (System.IO.File.Exists(exportFile)) // System.IO.File.Copy(template_file, exportFile);
System.IO.File.Delete(exportFile);
} // using (var excel = new ExcelPackage(new FileInfo(exportFile)))
// {
// var workSheet = excel.Workbook.Worksheets[0];
// workSheet.Cells[1, 2].Value = header;
// var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
// var row = 4; // start at row 4
// foreach (var item in disables)
// {
// workSheet.Cells[row, 1].Value = item.ExamId;
// workSheet.Cells[row, 2].Value = item.CitizenId;
// workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
// workSheet.Cells[row, 4].Value = item.PositionName;
// row++;
// }
// excel.Save();
// using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
// {
// byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
// fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
// fs.Close();
// var fname = Path.GetFileName(exportFile);
// Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
// var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
// {
// FileDownloadName = fname
// };
// return ret;
// }
// }
//}
//catch (Exception ex)
//{
// return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้มีสิทธิ์สอบได้!!");
//}
//finally
//{
// if (System.IO.File.Exists(exportFile))
// System.IO.File.Delete(exportFile);
//}
} }
[HttpGet("export/pass-exam/{id:length(36)}")] [HttpGet("export/pass-exam/{id:length(36)}")]
@ -1899,21 +1921,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}";
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
var template_file = Path.Combine(template_dir, "PassAExamList.xlsx");
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (!Directory.Exists(tmpDir))
Directory.CreateDirectory(tmpDir);
var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
try
{
var result = (from r in data.Disables.ToList() var result = (from r in data.Disables.ToList()
join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
orderby r.ExamId ascending, s.SumA descending
select new select new
{ {
r.ExamId, r.ExamId,
@ -1924,63 +1934,99 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
s.FullA, s.FullA,
s.SumA, s.SumA,
s.AStatus, s.AStatus,
}).ToList(); }).ToList();
var _data = new
// copy template
System.IO.File.Copy(template_file, exportFile);
using (var excel = new ExcelPackage(new FileInfo(exportFile)))
{ {
var workSheet = excel.Workbook.Worksheets[0]; template = "PassAExamList",
reportName = $"PassAExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
data = new
workSheet.Cells[1, 2].Value = header;
var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
var row = 4; // start at row 4
foreach (var item in result)
{ {
workSheet.Cells[row, 1].Value = item.ExamId; header = header,
workSheet.Cells[row, 2].Value = item.CitizenId; data = result
workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
workSheet.Cells[row, 4].Value = item.FullA;
workSheet.Cells[row, 5].Value = item.SumA;
workSheet.Cells[row, 6].Value = item.AStatus;
row++;
} }
excel.Save();
using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
{
byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
var fname = Path.GetFileName(exportFile);
Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = fname
}; };
return Success(_data);
//var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return ret; //var template_file = Path.Combine(template_dir, "PassAExamList.xlsx");
}
} //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
} //if (!Directory.Exists(tmpDir))
catch (Exception ex) // Directory.CreateDirectory(tmpDir);
{
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!"); //var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
}
finally //try
{ //{
if (System.IO.File.Exists(exportFile)) // var result = (from r in data.Disables.ToList()
System.IO.File.Delete(exportFile); // join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
} // select new
// {
// r.ExamId,
// r.CitizenId,
// r.Prefix,
// r.FirstName,
// r.LastName,
// s.FullA,
// s.SumA,
// s.AStatus,
// }).ToList();
// // copy template
// System.IO.File.Copy(template_file, exportFile);
// using (var excel = new ExcelPackage(new FileInfo(exportFile)))
// {
// var workSheet = excel.Workbook.Worksheets[0];
// workSheet.Cells[1, 2].Value = header;
// var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
// var row = 4; // start at row 4
// foreach (var item in result)
// {
// workSheet.Cells[row, 1].Value = item.ExamId;
// workSheet.Cells[row, 2].Value = item.CitizenId;
// workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
// workSheet.Cells[row, 4].Value = item.FullA;
// workSheet.Cells[row, 5].Value = item.SumA;
// workSheet.Cells[row, 6].Value = item.AStatus;
// row++;
// }
// excel.Save();
// using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
// {
// byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
// fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
// fs.Close();
// var fname = Path.GetFileName(exportFile);
// Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
// var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
// {
// FileDownloadName = fname
// };
// return ret;
// }
// }
//}
//catch (Exception ex)
//{
// return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!");
//}
//finally
//{
// if (System.IO.File.Exists(exportFile))
// System.IO.File.Delete(exportFile);
//}
} }
[HttpGet("export/pass/{id:length(36)}")] [HttpGet("export/pass/{id:length(36)}")]
@ -2004,91 +2050,118 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Round}/{data.Year.Value.ToThaiYear()}";
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
var template_file = Path.Combine(template_dir, "PassExamList.xlsx");
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (!Directory.Exists(tmpDir))
Directory.CreateDirectory(tmpDir);
var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
try
{
var result = (from r in data.Disables.ToList() var result = (from r in data.Disables.ToList()
join s in data_pass.ScoreImport.Scores.Where(x => x.ExamStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId join s in data_pass.ScoreImport.Scores.Where(x => x.ExamStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
select new select new
{ {
r.ExamId, ExamId = r.ExamId,
r.CitizenId, CitizenId = r.CitizenId,
r.Prefix, Fullname = $"{r.Prefix}{r.FirstName} {r.LastName}",
r.FirstName,
r.LastName,
Full = s.FullA + s.FullB + s.FullC, Full = s.FullA + s.FullB + s.FullC,
Sum = s.SumA + s.SumB + s.SumC, Sum = s.SumA + s.SumB + s.SumC,
Status = s.ExamStatus, Status = s.ExamStatus,
r.PositionName, Number = s.Number,
s.Number PositionName = r.PositionName,
}).ToList(); }).ToList()
.OrderBy(x => x.ExamId)
// copy template .ThenBy(x => x.PositionName)
System.IO.File.Copy(template_file, exportFile); .ThenByDescending(x => x.Sum)
.ToList();
using (var excel = new ExcelPackage(new FileInfo(exportFile))) var _data = new
{ {
var workSheet = excel.Workbook.Worksheets[0]; template = "PassExamList",
reportName = $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
data = new
workSheet.Cells[1, 2].Value = header;
var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
var row = 4; // start at row 4
foreach (var item in result)
{ {
workSheet.Cells[row, 1].Value = item.ExamId; header = header,
workSheet.Cells[row, 2].Value = item.CitizenId; data = result
workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
workSheet.Cells[row, 4].Value = item.Full;
workSheet.Cells[row, 5].Value = item.Sum;
workSheet.Cells[row, 6].Value = item.Status;
workSheet.Cells[row, 7].Value = item.Number;
workSheet.Cells[row, 8].Value = item.PositionName;
row++;
} }
excel.Save();
using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
{
byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
var fname = Path.GetFileName(exportFile);
Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = fname
}; };
return Success(_data);
//var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return ret; //var template_file = Path.Combine(template_dir, "PassExamList.xlsx");
}
} //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
} //if (!Directory.Exists(tmpDir))
catch (Exception ex) // Directory.CreateDirectory(tmpDir);
{
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!"); //var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
}
finally //try
{ //{
if (System.IO.File.Exists(exportFile)) // var result = (from r in data.Disables.ToList()
System.IO.File.Delete(exportFile); // join s in data_pass.ScoreImport.Scores.Where(x => x.ExamStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
} // select new
// {
// r.ExamId,
// r.CitizenId,
// r.Prefix,
// r.FirstName,
// r.LastName,
// Full = s.FullA + s.FullB + s.FullC,
// Sum = s.SumA + s.SumB + s.SumC,
// Status = s.ExamStatus,
// r.PositionName,
// s.Number
// }).ToList();
// // copy template
// System.IO.File.Copy(template_file, exportFile);
// using (var excel = new ExcelPackage(new FileInfo(exportFile)))
// {
// var workSheet = excel.Workbook.Worksheets[0];
// workSheet.Cells[1, 2].Value = header;
// var disables = data.Disables.OrderBy(x => x.ExamId).ToList();
// var row = 4; // start at row 4
// foreach (var item in result)
// {
// workSheet.Cells[row, 1].Value = item.ExamId;
// workSheet.Cells[row, 2].Value = item.CitizenId;
// workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
// workSheet.Cells[row, 4].Value = item.Full;
// workSheet.Cells[row, 5].Value = item.Sum;
// workSheet.Cells[row, 6].Value = item.Status;
// workSheet.Cells[row, 7].Value = item.Number;
// workSheet.Cells[row, 8].Value = item.PositionName;
// row++;
// }
// excel.Save();
// using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
// {
// byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
// fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
// fs.Close();
// var fname = Path.GetFileName(exportFile);
// Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
// var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
// {
// FileDownloadName = fname
// };
// return ret;
// }
// }
//}
//catch (Exception ex)
//{
// return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!");
//}
//finally
//{
// if (System.IO.File.Exists(exportFile))
// System.IO.File.Delete(exportFile);
//}
} }
/// <summary> /// <summary>