Quellcode durchsuchen

BUGFIX
1、解决获取机构看板统计(院内动态、护理情况)在集团机构中无法看到所有院区数据的问题

liangwenxuan vor 2 Wochen
Ursprung
Commit
48e5fd08c4

+ 15 - 7
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyInfoServiceImpl.java

@@ -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)