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

This commit is contained in:
Bright 2024-12-23 18:18:42 +07:00
parent e076d577f9
commit 99fbac8dde

View file

@ -1833,69 +1833,91 @@ namespace BMA.EHR.Recruit.Service.Controllers
var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}";
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates"); var recruits = data.Recruits
.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 recruits = data.Recruits.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 recruits) {
{ header = header,
workSheet.Cells[row, 1].Value = item.ExamId; data = recruits
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 recruits = data.Recruits.OrderBy(x => x.ExamId).ToList();
// var row = 4; // start at row 4
// foreach (var item in recruits)
// {
// 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)}")]
@ -1920,89 +1942,113 @@ namespace BMA.EHR.Recruit.Service.Controllers
return Error(GlobalMessages.InvalidExamScore, StatusCodes.Status404NotFound); return Error(GlobalMessages.InvalidExamScore, StatusCodes.Status404NotFound);
var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}";
var result = (from r in data.Recruits.ToList()
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
{
ExamId = r.ExamId,
CitizenId = r.CitizenId,
Fullname = $"{r.Prefix}{r.FirstName} {r.LastName}",
FullA = s.FullA,
SumA = s.SumA,
AStatus = s.AStatus,
}).ToList();
var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates"); var _data = new
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.Recruits.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")}",
orderby s.SumA descending data = new
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]; header = header,
data = result
workSheet.Cells[1, 2].Value = header;
var recruits = data.Recruits.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);
{
return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!"); //var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
}
finally //var template_file = Path.Combine(template_dir, "PassAExamList.xlsx");
{
if (System.IO.File.Exists(exportFile)) //var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
System.IO.File.Delete(exportFile); //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.Recruits.ToList()
// join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
// orderby s.SumA descending
// 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 recruits = data.Recruits.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)}")]
@ -2027,94 +2073,122 @@ namespace BMA.EHR.Recruit.Service.Controllers
return Error(GlobalMessages.InvalidExamScore, StatusCodes.Status404NotFound); return Error(GlobalMessages.InvalidExamScore, StatusCodes.Status404NotFound);
var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}"; var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}";
var result = (from r in data.Recruits.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.Recruits.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()
.OrderBy(x => x.PositionName)
.ThenByDescending(x => x.Sum)
.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 recruits = data.Recruits.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.Recruits.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()
// .OrderBy(x => x.ExamId)
// .ThenBy (x => x.PositionName)
// .ThenByDescending(x => x.Sum)
// .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 recruits = data.Recruits.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);
//}
} }
#endregion #endregion