|
|
@@ -1571,36 +1571,44 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
@TenantIgnore
|
|
|
public InstitutionDashboardRespVO getInstitutionDashboard() {
|
|
|
Long tenantId = TenantContextHolder.getTenantId();
|
|
|
+ List<Long> tenantIdList = null;
|
|
|
+ if(tenantId == 1){
|
|
|
+ tenantIdList = groupTenantMapper.selectList(new LambdaQueryWrapperX<GroupTenantDO>().eq(GroupTenantDO::getDeleted, 0))
|
|
|
+ .stream().map(GroupTenantDO::getOrgTenantId).collect(Collectors.toList());
|
|
|
+ }else {
|
|
|
+ tenantIdList = Collections.singletonList(tenantId);
|
|
|
+ }
|
|
|
+
|
|
|
LocalDate today = LocalDate.now();
|
|
|
Date todayStartDate = Date.from(today.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
Date todayEndDate = Date.from(today.plusDays(1).atStartOfDay(ZoneId.systemDefault()).minusSeconds(1).toInstant());
|
|
|
|
|
|
long totalBedCount = Optional.ofNullable(buildBedMapper.selectCount(new LambdaQueryWrapperX<BuildBedDO>()
|
|
|
.eq(BuildBedDO::getOrgType, 1)
|
|
|
- .in(BuildBedDO::getTenantId, tenantId))).orElse(0L);
|
|
|
+ .in(BuildBedDO::getTenantId, tenantIdList))).orElse(0L);
|
|
|
|
|
|
long inHospitalCount = Optional.ofNullable(elderlyInfoMapper.selectCount(new LambdaQueryWrapperX<ElderlyInfoDO>()
|
|
|
.eq(ElderlyInfoDO::getInStatus, 1)
|
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
|
- .in(ElderlyInfoDO::getTenantId, tenantId))).orElse(0L);
|
|
|
+ .in(ElderlyInfoDO::getTenantId, tenantIdList))).orElse(0L);
|
|
|
|
|
|
long newCheckInCount = Optional.ofNullable(elderlyCheckInRecordMapper.selectCount(new LambdaQueryWrapperX<ElderlyCheckInRecordDO>()
|
|
|
.eq(ElderlyCheckInRecordDO::getStatus, 2)
|
|
|
- .in(ElderlyCheckInRecordDO::getTenantId, tenantId)
|
|
|
+ .in(ElderlyCheckInRecordDO::getTenantId, tenantIdList)
|
|
|
.between(ElderlyCheckInRecordDO::getCheckInTime, todayStartDate, todayEndDate))).orElse(0L);
|
|
|
|
|
|
long askLeaveCount = Optional.ofNullable(elderlyAskLeaveMapper.selectCount(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
|
|
|
- .in(ElderlyAskLeaveDO::getTenantId, tenantId)
|
|
|
+ .in(ElderlyAskLeaveDO::getTenantId, tenantIdList)
|
|
|
.le(ElderlyAskLeaveDO::getOutDate, todayEndDate)
|
|
|
.and(w -> w.gt(ElderlyAskLeaveDO::getUpdateDate, LocalDateTime.now()).or().isNull(ElderlyAskLeaveDO::getUpdateDate)))).orElse(0L);
|
|
|
|
|
|
long todayAskLeaveCount = Optional.ofNullable(elderlyAskLeaveMapper.selectCount(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
|
|
|
- .in(ElderlyAskLeaveDO::getTenantId, tenantId)
|
|
|
+ .in(ElderlyAskLeaveDO::getTenantId, tenantIdList)
|
|
|
.between(ElderlyAskLeaveDO::getOutDate, todayStartDate, todayEndDate))).orElse(0L);
|
|
|
|
|
|
long checkOutCount = Optional.ofNullable(elderlyRetreatRecordMapper.selectCount(new LambdaQueryWrapperX<ElderlyRetreatRecordDO>()
|
|
|
- .in(ElderlyRetreatRecordDO::getTenantId, tenantId)
|
|
|
+ .in(ElderlyRetreatRecordDO::getTenantId, tenantIdList)
|
|
|
.between(ElderlyRetreatRecordDO::getRetreatDate, today, today))).orElse(0L);
|
|
|
|
|
|
List<ElderlyInfoDO> inHospitalElders = elderlyInfoMapper.selectList(new LambdaQueryWrapperX<ElderlyInfoDO>()
|
|
|
@@ -1608,7 +1616,7 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
|
|
|
.eq(ElderlyInfoDO::getInStatus, 1)
|
|
|
.eq(ElderlyInfoDO::getDeleted, 0)
|
|
|
.eq(ElderlyInfoDO::getOrgType, 1)
|
|
|
- .in(ElderlyInfoDO::getTenantId, tenantId));
|
|
|
+ .in(ElderlyInfoDO::getTenantId, tenantIdList));
|
|
|
|
|
|
Map<Long, Long> nurseLevelCountMap = inHospitalElders.stream()
|
|
|
.map(ElderlyInfoDO::getNurseLevelId)
|