insignia4
Some checks failed
release-dev / release-dev (push) Failing after 14s

This commit is contained in:
kittapath 2025-02-13 17:20:58 +07:00
parent 077d20a779
commit 764a27fbd5
2 changed files with 88 additions and 3 deletions

View file

@ -1536,6 +1536,67 @@ namespace BMA.EHR.Application.Repositories.Reports
return insignia;
}
public async Task<dynamic> GetKhr4TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
{
var period = await _dbContext.Set<InsigniaNote>()
.FirstOrDefaultAsync(x => x.Id == id);
if (period == null)
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
var data_insigniaQuery = _dbContext.Set<InsigniaNoteProfile>()
.Include(x => x.RequestInsignia)
.ThenInclude(x => x.InsigniaType)
.Where(x => x.InsigniaNote.Id == period.Id)
.Where(x => x.Status == "DONE")
.Where(x => x.RequestInsignia.InsigniaType != null);
if (type == "officer")
{
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "OFFICER");
}
else if (type == "employee")
{
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "EMPLOYEE");
}
switch (node)
{
case 0:
data_insigniaQuery = data_insigniaQuery.Where(r => r.RootDnaId == nodeId);
break;
case 1:
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child1DnaId == nodeId);
break;
case 2:
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child2DnaId == nodeId);
break;
case 3:
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child3DnaId == nodeId);
break;
case 4:
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child4DnaId == nodeId);
break;
default:
break;
}
var data = await data_insigniaQuery.Select(x => new
{
CitizenId = x.CitizenId,
FullName = $"{x.Prefix}{x.FirstName} {x.LastName}",
PosTypeName = x.PosTypeName,
PosLevelName = x.PosLevelName,
Position = x.Position,
Root = x.Root
}).ToListAsync();
return data;
}
#endregion
}
}

View file

@ -330,6 +330,29 @@ namespace BMA.EHR.Insignia.Service.Controllers
{
try
{
var insignalPeriod = await _repository.GetKhr4TotalReport(req.roundId, type, req.node, req.nodeId);
var nameNote = await _repository.GetNameInsigniaNote(req.roundId);
var detailList = new List<dynamic>();
var row = 1;
var org = "";
var citizenId = "0";
foreach (var _data in insignalPeriod)
{
citizenId = _data.GetType().GetProperty("CitizenId").GetValue(_data);
org = _data.GetType().GetProperty("Root").GetValue(_data);
detailList.Add(new
{
row = row.ToString().ToThaiNumber(),
citizenId = citizenId.ToString().ToThaiNumber(),
fullName = _data.GetType().GetProperty("FullName").GetValue(_data),
posTypeName = _data.GetType().GetProperty("PosTypeName").GetValue(_data),
posLevelName = _data.GetType().GetProperty("PosLevelName").GetValue(_data),
position = _data.GetType().GetProperty("Position").GetValue(_data),
root = _data.GetType().GetProperty("Root").GetValue(_data),
});
row = row + 1;
}
var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}";
var result = new
{
@ -337,13 +360,14 @@ namespace BMA.EHR.Insignia.Service.Controllers
reportName = "reportInsignia4",
data = new
{
yearInsignalPeriod = "",
profileType = type == "employee" ? "ลูกจ้างประจำ" : "ข้าราชการสามัญกรุงเทพมหานคร",
org = org,
name = nameNote,
date = date,
data = "",
data = detailList,
}
};
return Success(result);
}
catch
{