This commit is contained in:
AdisakKanthawilang 2024-12-16 14:46:53 +07:00
parent 79237c4a7f
commit a53f2b6a99

View file

@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MySqlConnector;
using MySqlX.XDevAPI.Common;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OfficeOpenXml;
@ -2235,6 +2236,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
{
try
{
var year_ = int.Parse(year) - 543;
List<ExamInfo> header = new List<ExamInfo>();
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
{
@ -2247,7 +2249,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
sb.Append(" Where score_year = @year");
sb.Append(" ORDER BY Position_name ASC");
cmd.CommandText = sb.ToString();
cmd.Parameters.Add(new MySqlParameter("@year", MySqlDbType.Int32) { Value = year });
cmd.Parameters.Add(new MySqlParameter("@year", MySqlDbType.Int32) { Value = year_ });
_context.Database.OpenConnection();
using (var reader = cmd.ExecuteReader())
{
@ -2268,24 +2270,32 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
var groupedResult = header
.GroupBy(x => new
{
x.PositionName,
x.Gender,
x.Age,
x.Degree
})
.Select(group => new
{
Group = group.Key,
Amount = group.Count()
})
.ToList();
var resultMap = groupedResult.ToDictionary(
x => string.Join("_", x.Group.PositionName, x.Group.Gender, x.Group.Age, x.Group.Degree),
x => x);
.GroupBy(x => new
{
x.PositionName,
x.Gender,
x.Age,
x.Degree
})
.Select(group => new
{
positionName = group.Key.PositionName,
gender = group.Key.Gender,
age = group.Key.Age,
degree = group.Key.Degree,
amount = group.Count()
})
.ToList();
return Success(resultMap);
var result = new
{
template = "recruit-officer-pre",
reportName = "xlsx-report",
data = new { list = groupedResult }
};
return Success(result);
}
catch (Exception ex)
@ -2310,6 +2320,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
{
try
{
var year_ = int.Parse(year) - 543;
List<ExamInfo> header = new List<ExamInfo>();
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
{
@ -2323,7 +2334,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
sb.Append(" AND result = 'ผ่าน'");
sb.Append(" ORDER BY Position_name ASC");
cmd.CommandText = sb.ToString();
cmd.Parameters.Add(new MySqlParameter("@year", MySqlDbType.Int32) { Value = year });
cmd.Parameters.Add(new MySqlParameter("@year", MySqlDbType.Int32) { Value = year_ });
_context.Database.OpenConnection();
using (var reader = cmd.ExecuteReader())
{
@ -2342,28 +2353,35 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
}
}
var groupedResult = header
.GroupBy(x => new
{
x.PositionName,
x.Gender,
x.Age,
x.Degree,
x.Result
})
.Select(group => new
{
Group = group.Key,
Amount = group.Count()
})
.ToList();
var resultMap = groupedResult.ToDictionary(
x => string.Join("_", x.Group.PositionName, x.Group.Gender, x.Group.Age, x.Group.Degree, x.Group.Result),
x => x);
.GroupBy(x => new
{
x.PositionName,
x.Gender,
x.Age,
x.Degree,
x.Result
})
.Select(group => new
{
positionName = group.Key.PositionName,
gender = group.Key.Gender,
age = group.Key.Age,
degree = group.Key.Degree,
result = group.Key.Result,
amount = group.Count()
})
.ToList();
return Success(resultMap);
var result = new
{
template = "recruit-officer-pass",
reportName = "xlsx-report",
data = new { list = groupedResult }
};
return Success(result);
}
catch (Exception ex)
{