diff --git a/Controllers/RecruitController.cs b/Controllers/RecruitController.cs index 1e67750..5868c40 100644 --- a/Controllers/RecruitController.cs +++ b/Controllers/RecruitController.cs @@ -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 header = new List(); 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 header = new List(); 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) {