This commit is contained in:
parent
077d20a779
commit
764a27fbd5
2 changed files with 88 additions and 3 deletions
|
|
@ -1536,6 +1536,67 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
|
|
||||||
return insignia;
|
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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -330,6 +330,29 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
{
|
{
|
||||||
try
|
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 date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||||
var result = new
|
var result = new
|
||||||
{
|
{
|
||||||
|
|
@ -337,13 +360,14 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
reportName = "reportInsignia4",
|
reportName = "reportInsignia4",
|
||||||
data = new
|
data = new
|
||||||
{
|
{
|
||||||
yearInsignalPeriod = "",
|
profileType = type == "employee" ? "ลูกจ้างประจำ" : "ข้าราชการสามัญกรุงเทพมหานคร",
|
||||||
|
org = org,
|
||||||
|
name = nameNote,
|
||||||
date = date,
|
date = date,
|
||||||
data = "",
|
data = detailList,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return Success(result);
|
return Success(result);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue