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
System.IO.File.Copy(template_file, exportFile);
using (var excel = new ExcelPackage(new FileInfo(exportFile)))
{ {
var workSheet = excel.Workbook.Worksheets[0]; ExamId = x.ExamId,
CitizenId = x.CitizenId,
Fullname = $"{x.Prefix}{x.FirstName} {x.LastName}",
PositionName = x.PositionName
})
.ToList();
var _data = new
workSheet.Cells[1, 2].Value = header; {
var disables = data.Disables.OrderBy(x => x.ExamId).ToList(); template = "ExamList",
reportName = $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
var row = 4; // start at row 4 data = new
foreach (var item in disables) {
{ header = header,
workSheet.Cells[row, 1].Value = item.ExamId; data = disables
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 Success(_data);
{ //var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้มีสิทธิ์สอบได้!!");
} //var template_file = Path.Combine(template_dir, "ExamList.xlsx");
finally
{ //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (System.IO.File.Exists(exportFile)) //if (!Directory.Exists(tmpDir))
System.IO.File.Delete(exportFile); // Directory.CreateDirectory(tmpDir);
}
//var exportFile = Path.Combine(tmpDir, $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
//try
//{
// // 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 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,88 +1921,112 @@ 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 result = (from r in data.Disables.ToList()
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates"); 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
var template_file = Path.Combine(template_dir, "PassAExamList.xlsx"); select new
{
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp"); r.ExamId,
if (!Directory.Exists(tmpDir)) r.CitizenId,
Directory.CreateDirectory(tmpDir); r.Prefix,
r.FirstName,
var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); r.LastName,
s.FullA,
try s.SumA,
s.AStatus,
}).ToList();
var _data = new
{ {
var result = (from r in data.Disables.ToList() template = "PassAExamList",
join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId reportName = $"PassAExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
select new data = 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]; header = header,
data = result
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 Success(_data);
{ //var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!");
} //var template_file = Path.Combine(template_dir, "PassAExamList.xlsx");
finally
{ //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (System.IO.File.Exists(exportFile)) //if (!Directory.Exists(tmpDir))
System.IO.File.Delete(exportFile); // Directory.CreateDirectory(tmpDir);
}
//var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
//try
//{
// 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
// 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 result = (from r in data.Disables.ToList()
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates"); join s in data_pass.ScoreImport.Scores.Where(x => x.ExamStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
select new
var template_file = Path.Combine(template_dir, "PassExamList.xlsx"); {
ExamId = r.ExamId,
var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp"); CitizenId = r.CitizenId,
if (!Directory.Exists(tmpDir)) Fullname = $"{r.Prefix}{r.FirstName} {r.LastName}",
Directory.CreateDirectory(tmpDir); Full = s.FullA + s.FullB + s.FullC,
Sum = s.SumA + s.SumB + s.SumC,
var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); Status = s.ExamStatus,
Number = s.Number,
try PositionName = r.PositionName,
}).ToList()
.OrderBy(x => x.ExamId)
.ThenBy(x => x.PositionName)
.ThenByDescending(x => x.Sum)
.ToList();
var _data = new
{ {
var result = (from r in data.Disables.ToList() template = "PassExamList",
join s in data_pass.ScoreImport.Scores.Where(x => x.ExamStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId reportName = $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
select new data = 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]; header = header,
data = result
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 Success(_data);
{ //var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!");
} //var template_file = Path.Combine(template_dir, "PassExamList.xlsx");
finally
{ //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
if (System.IO.File.Exists(exportFile)) //if (!Directory.Exists(tmpDir))
System.IO.File.Delete(exportFile); // Directory.CreateDirectory(tmpDir);
}
//var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
//try
//{
// 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
// 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>