report insignia6
This commit is contained in:
parent
da9ed437dc
commit
76c824e2ac
2 changed files with 182 additions and 18 deletions
|
|
@ -134,6 +134,26 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
return thaiYear;
|
return thaiYear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<dynamic> GetNameInsigniaNote(Guid id)
|
||||||
|
{
|
||||||
|
var note = await _dbContext.Set<InsigniaNote>()
|
||||||
|
.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
if (note == null)
|
||||||
|
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||||
|
string name = note.Name.ToString().ToThaiNumber();
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<dynamic> GetYearInsigniaNote(Guid id)
|
||||||
|
{
|
||||||
|
var note = await _dbContext.Set<InsigniaNote>()
|
||||||
|
.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
if (note == null)
|
||||||
|
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||||
|
string thaiYear = note.Year.ToThaiYear().ToString().ToThaiNumber();
|
||||||
|
return thaiYear;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<dynamic> Get2YearInsigniaPeriod(Guid id)
|
public async Task<dynamic> Get2YearInsigniaPeriod(Guid id)
|
||||||
{
|
{
|
||||||
var period = await _dbContext.Set<InsigniaPeriod>()
|
var period = await _dbContext.Set<InsigniaPeriod>()
|
||||||
|
|
@ -1371,27 +1391,26 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
}
|
}
|
||||||
public async Task<dynamic> GetKhr5TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
|
public async Task<dynamic> GetKhr5TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
|
||||||
{
|
{
|
||||||
var period = await _dbContext.Set<InsigniaPeriod>()
|
var period = await _dbContext.Set<InsigniaNote>()
|
||||||
.FirstOrDefaultAsync(x => x.Id == id);
|
.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
if (period == null)
|
if (period == null)
|
||||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||||
|
|
||||||
var data_insigniaQuery = _dbContext.Set<InsigniaRequestProfile>()
|
var data_insigniaQuery = _dbContext.Set<InsigniaNoteProfile>()
|
||||||
.Include(x => x.Request)
|
|
||||||
.Include(x => x.RequestInsignia)
|
.Include(x => x.RequestInsignia)
|
||||||
.ThenInclude(x => x.InsigniaType)
|
.ThenInclude(x => x.InsigniaType)
|
||||||
.Where(x => x.Request.Period.Id == period.Id)
|
.Where(x => x.InsigniaNote.Id == period.Id)
|
||||||
.Where(x => x.IsApprove == true)
|
// .Where(x => x.IsApprove == true)
|
||||||
.Where(x => x.Status == "PENDING")
|
.Where(x => x.Status == "DONE")
|
||||||
.Where(x => x.RequestInsignia.InsigniaType != null);
|
.Where(x => x.RequestInsignia.InsigniaType != null);
|
||||||
|
|
||||||
if (type == "officer")
|
if (type == "officer")
|
||||||
{
|
{
|
||||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "officer");
|
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "OFFICER");
|
||||||
}
|
}
|
||||||
else if (type == "employee")
|
else if (type == "employee")
|
||||||
{
|
{
|
||||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "employee");
|
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "EMPLOYEE");
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (node)
|
switch (node)
|
||||||
|
|
@ -1426,14 +1445,14 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
InsigniaTypeName = x.RequestInsignia.InsigniaType.Name,
|
InsigniaTypeName = x.RequestInsignia.InsigniaType.Name,
|
||||||
RequestInsigniaName = x.RequestInsignia.Name,
|
RequestInsigniaName = x.RequestInsignia.Name,
|
||||||
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
||||||
OcId = x.Request.OrganizationId
|
OcId = x.Root
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
var insignia = (from r in data
|
var insignia = (from r in data
|
||||||
group r by new { OcId = r.OcId, r.InsigniaTypeName, r.RequestInsigniaName } into g
|
group r by new { OcId = r.OcId, r.InsigniaTypeName, r.RequestInsigniaName } into g
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
RowNo = 1,
|
RowNo = 1,
|
||||||
DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false),
|
DepartmentName = g.Key.OcId,
|
||||||
InsigniaTypeName = g.Key.InsigniaTypeName,
|
InsigniaTypeName = g.Key.InsigniaTypeName,
|
||||||
RequestInsigniaName = g.Key.RequestInsigniaName,
|
RequestInsigniaName = g.Key.RequestInsigniaName,
|
||||||
Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0),
|
Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0),
|
||||||
|
|
@ -1443,6 +1462,80 @@ namespace BMA.EHR.Application.Repositories.Reports
|
||||||
|
|
||||||
return insignia;
|
return insignia;
|
||||||
}
|
}
|
||||||
|
public async Task<dynamic> GetKhr6TotalReport(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.IsApprove == true)
|
||||||
|
.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
|
||||||
|
{
|
||||||
|
Gendor = x.Gender ?? "",
|
||||||
|
InsigniaTypeName = x.RequestInsignia.InsigniaType.Name,
|
||||||
|
RequestInsigniaName = x.RequestInsignia.Name,
|
||||||
|
IsApprove = x.IsApprove,
|
||||||
|
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
||||||
|
OcId = x.Root
|
||||||
|
}).ToListAsync();
|
||||||
|
var insignia = (from r in data
|
||||||
|
group r by new { OcId = r.OcId, r.InsigniaTypeName, r.RequestInsigniaName } into g
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
RowNo = 1,
|
||||||
|
DepartmentName = g.Key.OcId,
|
||||||
|
InsigniaTypeName = g.Key.InsigniaTypeName,
|
||||||
|
RequestInsigniaName = g.Key.RequestInsigniaName,
|
||||||
|
Pending = g.Sum(x => x.IsApprove == false ? 1 : 0),
|
||||||
|
Done = g.Sum(x => x.IsApprove == true ? 1 : 0),
|
||||||
|
Remark = "",
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
return insignia;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -368,7 +368,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var insignalPeriod = await _repository.GetKhr5TotalReport(req.roundId, type, req.node, req.nodeId);
|
var insignalPeriod = await _repository.GetKhr5TotalReport(req.roundId, type, req.node, req.nodeId);
|
||||||
var yearInsignalPeriod = await _repository.GetYearInsigniaPeriod(req.roundId);
|
var yearInsignalNote = await _repository.GetYearInsigniaNote(req.roundId);
|
||||||
var detailList = new List<dynamic>();
|
var detailList = new List<dynamic>();
|
||||||
var male = 0;
|
var male = 0;
|
||||||
var feMale = 0;
|
var feMale = 0;
|
||||||
|
|
@ -439,13 +439,12 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
{
|
{
|
||||||
profileType = type == "employee" ? "ลูกจ้างประจำ" : "ข้าราชการสามัญกรุงเทพมหานคร",
|
profileType = type == "employee" ? "ลูกจ้างประจำ" : "ข้าราชการสามัญกรุงเทพมหานคร",
|
||||||
org = org,
|
org = org,
|
||||||
year = yearInsignalPeriod,
|
year = yearInsignalNote,
|
||||||
date = date,
|
date = date,
|
||||||
data = detailList,
|
data = detailList,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return Success(result);
|
return Success(result);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
|
@ -469,6 +468,77 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var insignalPeriod = await _repository.GetKhr6TotalReport(req.roundId, type, req.node, req.nodeId);
|
||||||
|
var nameNote = await _repository.GetNameInsigniaNote(req.roundId);
|
||||||
|
var detailList = new List<dynamic>();
|
||||||
|
var pending = 0;
|
||||||
|
var done = 0;
|
||||||
|
var _pending = 0;
|
||||||
|
var _done = 0;
|
||||||
|
var pendingSum = 0;
|
||||||
|
var doneSum = 0;
|
||||||
|
var row = 1;
|
||||||
|
var nameType = "";
|
||||||
|
var org = "";
|
||||||
|
foreach (var _data in insignalPeriod)
|
||||||
|
{
|
||||||
|
// return Success("result");
|
||||||
|
if (nameType != "" && nameType != _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data))
|
||||||
|
{
|
||||||
|
org = _data.GetType().GetProperty("DepartmentName").GetValue(_data);
|
||||||
|
detailList.Add(new
|
||||||
|
{
|
||||||
|
row = "",
|
||||||
|
type = "",
|
||||||
|
name = "รวม",
|
||||||
|
pending = pending.ToString().ToThaiNumber(),
|
||||||
|
done = done.ToString().ToThaiNumber(),
|
||||||
|
sum = (pending + done).ToString().ToThaiNumber(),
|
||||||
|
});
|
||||||
|
pendingSum = pendingSum + pending;
|
||||||
|
doneSum = pendingSum + done;
|
||||||
|
pending = 0;
|
||||||
|
done = 0;
|
||||||
|
row = 1;
|
||||||
|
}
|
||||||
|
nameType = _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data);
|
||||||
|
|
||||||
|
_pending = _data.GetType().GetProperty("Pending").GetValue(_data);
|
||||||
|
_done = _data.GetType().GetProperty("Done").GetValue(_data);
|
||||||
|
detailList.Add(new
|
||||||
|
{
|
||||||
|
row = row.ToString().ToThaiNumber(),
|
||||||
|
type = _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data),
|
||||||
|
name = _data.GetType().GetProperty("RequestInsigniaName").GetValue(_data),
|
||||||
|
pending = _pending.ToString().ToThaiNumber(),
|
||||||
|
done = _done.ToString().ToThaiNumber(),
|
||||||
|
sum = (_pending + _done).ToString().ToThaiNumber(),
|
||||||
|
});
|
||||||
|
pending = pending + _data.GetType().GetProperty("Pending").GetValue(_data);
|
||||||
|
done = done + _data.GetType().GetProperty("Done").GetValue(_data);
|
||||||
|
row = row + 1;
|
||||||
|
}
|
||||||
|
detailList.Add(new
|
||||||
|
{
|
||||||
|
row = "",
|
||||||
|
type = "",
|
||||||
|
name = "รวม",
|
||||||
|
pending = pending.ToString().ToThaiNumber(),
|
||||||
|
done = done.ToString().ToThaiNumber(),
|
||||||
|
sum = (pending + done).ToString().ToThaiNumber(),
|
||||||
|
});
|
||||||
|
pendingSum = pendingSum + pending;
|
||||||
|
doneSum = pendingSum + done;
|
||||||
|
detailList.Add(new
|
||||||
|
{
|
||||||
|
row = "",
|
||||||
|
type = "",
|
||||||
|
name = "รวมทั้งหมด",
|
||||||
|
pending = pendingSum.ToString().ToThaiNumber(),
|
||||||
|
done = doneSum.ToString().ToThaiNumber(),
|
||||||
|
sum = (pendingSum + doneSum).ToString().ToThaiNumber(),
|
||||||
|
});
|
||||||
|
|
||||||
var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}";
|
var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||||
var result = new
|
var result = new
|
||||||
{
|
{
|
||||||
|
|
@ -476,13 +546,14 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
||||||
reportName = "reportInsignia6",
|
reportName = "reportInsignia6",
|
||||||
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