report insignia5
This commit is contained in:
parent
f953e24515
commit
da9ed437dc
2 changed files with 162 additions and 23 deletions
|
|
@ -1137,28 +1137,28 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
/*var orgResponse = JsonConvert.DeserializeObject<dynamic>(_result);*/
|
||||
var orgResponse = JObject.Parse(_result);
|
||||
var resultItems = orgResponse["result"];
|
||||
/* if (orgResponse != null && orgResponse.result != null)
|
||||
{*/
|
||||
var matchedData = resultItems
|
||||
.Where(item => item["profileId"].ToString() == d.ProfileId.ToString())
|
||||
.FirstOrDefault();
|
||||
/*
|
||||
if (matchedData != null)
|
||||
{
|
||||
// แสดงข้อมูลที่ตรงกัน
|
||||
var receiver = new CommandReceiver
|
||||
{
|
||||
Sequence = seq,
|
||||
CitizenId = matchedData.citizenId ?? "",
|
||||
Prefix = matchedData.prefix ?? "",
|
||||
FirstName = matchedData.firstName ?? "",
|
||||
LastName = matchedData.lastName ?? "",
|
||||
RefPlacementProfileId = Guid.Parse(matchedData.profileId.ToString()),
|
||||
};
|
||||
/* if (orgResponse != null && orgResponse.result != null)
|
||||
{*/
|
||||
var matchedData = resultItems
|
||||
.Where(item => item["profileId"].ToString() == d.ProfileId.ToString())
|
||||
.FirstOrDefault();
|
||||
/*
|
||||
if (matchedData != null)
|
||||
{
|
||||
// แสดงข้อมูลที่ตรงกัน
|
||||
var receiver = new CommandReceiver
|
||||
{
|
||||
Sequence = seq,
|
||||
CitizenId = matchedData.citizenId ?? "",
|
||||
Prefix = matchedData.prefix ?? "",
|
||||
FirstName = matchedData.firstName ?? "",
|
||||
LastName = matchedData.lastName ?? "",
|
||||
RefPlacementProfileId = Guid.Parse(matchedData.profileId.ToString()),
|
||||
};
|
||||
|
||||
seq++;
|
||||
resultData.Add(receiver);
|
||||
}*/
|
||||
seq++;
|
||||
resultData.Add(receiver);
|
||||
}*/
|
||||
/*}*/
|
||||
|
||||
return matchedData;
|
||||
|
|
@ -1369,6 +1369,80 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
}
|
||||
}
|
||||
}
|
||||
public async Task<dynamic> GetKhr5TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
|
||||
{
|
||||
var period = await _dbContext.Set<InsigniaPeriod>()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (period == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
|
||||
var data_insigniaQuery = _dbContext.Set<InsigniaRequestProfile>()
|
||||
.Include(x => x.Request)
|
||||
.Include(x => x.RequestInsignia)
|
||||
.ThenInclude(x => x.InsigniaType)
|
||||
.Where(x => x.Request.Period.Id == period.Id)
|
||||
.Where(x => x.IsApprove == true)
|
||||
.Where(x => x.Status == "PENDING")
|
||||
.Where(x => x.RequestInsignia.InsigniaType != null);
|
||||
|
||||
if (type == "officer")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "officer");
|
||||
}
|
||||
else if (type == "employee")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "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,
|
||||
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
||||
OcId = x.Request.OrganizationId
|
||||
}).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 = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false),
|
||||
InsigniaTypeName = g.Key.InsigniaTypeName,
|
||||
RequestInsigniaName = g.Key.RequestInsigniaName,
|
||||
Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0),
|
||||
Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0),
|
||||
Remark = "",
|
||||
}).ToList();
|
||||
|
||||
return insignia;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -367,6 +367,69 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
|||
{
|
||||
try
|
||||
{
|
||||
var insignalPeriod = await _repository.GetKhr5TotalReport(req.roundId, type, req.node, req.nodeId);
|
||||
var yearInsignalPeriod = await _repository.GetYearInsigniaPeriod(req.roundId);
|
||||
var detailList = new List<dynamic>();
|
||||
var male = 0;
|
||||
var feMale = 0;
|
||||
var _male = 0;
|
||||
var _feMale = 0;
|
||||
var maleSum = 0;
|
||||
var feMaleSum = 0;
|
||||
var nameType = "";
|
||||
var org = "";
|
||||
foreach (var _data in insignalPeriod)
|
||||
{
|
||||
if (nameType != "" && nameType != _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data))
|
||||
{
|
||||
org = _data.GetType().GetProperty("DepartmentName").GetValue(_data);
|
||||
detailList.Add(new
|
||||
{
|
||||
type = "",
|
||||
name = "รวม",
|
||||
male = male.ToString().ToThaiNumber(),
|
||||
feMale = feMale.ToString().ToThaiNumber(),
|
||||
sum = (male + feMale).ToString().ToThaiNumber(),
|
||||
});
|
||||
maleSum = maleSum + male;
|
||||
feMaleSum = maleSum + feMale;
|
||||
male = 0;
|
||||
feMale = 0;
|
||||
}
|
||||
nameType = _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data);
|
||||
|
||||
_male = _data.GetType().GetProperty("Male").GetValue(_data);
|
||||
_feMale = _data.GetType().GetProperty("Female").GetValue(_data);
|
||||
detailList.Add(new
|
||||
{
|
||||
type = _data.GetType().GetProperty("InsigniaTypeName").GetValue(_data),
|
||||
name = _data.GetType().GetProperty("RequestInsigniaName").GetValue(_data),
|
||||
male = _male.ToString().ToThaiNumber(),
|
||||
feMale = _feMale.ToString().ToThaiNumber(),
|
||||
sum = (_male + _feMale).ToString().ToThaiNumber(),
|
||||
});
|
||||
male = male + _data.GetType().GetProperty("Male").GetValue(_data);
|
||||
feMale = feMale + _data.GetType().GetProperty("Female").GetValue(_data);
|
||||
}
|
||||
detailList.Add(new
|
||||
{
|
||||
type = "",
|
||||
name = "รวม",
|
||||
male = male.ToString().ToThaiNumber(),
|
||||
feMale = feMale.ToString().ToThaiNumber(),
|
||||
sum = (male + feMale).ToString().ToThaiNumber(),
|
||||
});
|
||||
maleSum = maleSum + male;
|
||||
feMaleSum = maleSum + feMale;
|
||||
detailList.Add(new
|
||||
{
|
||||
type = "",
|
||||
name = "รวมทั้งหมด",
|
||||
male = maleSum.ToString().ToThaiNumber(),
|
||||
feMale = feMaleSum.ToString().ToThaiNumber(),
|
||||
sum = (maleSum + feMaleSum).ToString().ToThaiNumber(),
|
||||
});
|
||||
|
||||
var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||
var result = new
|
||||
{
|
||||
|
|
@ -374,9 +437,11 @@ namespace BMA.EHR.Insignia.Service.Controllers
|
|||
reportName = "reportInsignia5",
|
||||
data = new
|
||||
{
|
||||
yearInsignalPeriod = "",
|
||||
profileType = type == "employee" ? "ลูกจ้างประจำ" : "ข้าราชการสามัญกรุงเทพมหานคร",
|
||||
org = org,
|
||||
year = yearInsignalPeriod,
|
||||
date = date,
|
||||
data = "",
|
||||
data = detailList,
|
||||
}
|
||||
};
|
||||
return Success(result);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue