Prechádzať zdrojové kódy

监控调阅统计报表查询优化

jingyuanchao 1 rok pred
rodič
commit
f7d978bcbf

+ 16 - 20
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java

@@ -106,30 +106,25 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
             monitoringAccessDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }
         Long orgId = monitoringAccessDTO.getOrgId();
-        List<SysOrgVO> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
-        // 创建一个Map来存储SysOrgVO的ID和对象
-        Map<Long, SysOrgVO> sysOrgMap = cacheList.stream()
-                .collect(Collectors.toMap(SysOrgVO::getId, Function.identity()));
         //判断机构类型,如果机构类型大于行社,都展示行社数据
-        Optional<SysOrgVO> first = cacheList.stream().filter(s -> ObjectUtil.equal(s.getId(), monitoringAccessDTO.getOrgId())).findFirst();
-        if (!first.isPresent()){
-            return Collections.emptyList();
-        }
-        SysOrgVO sysOrg=first.get();
-        List<SysOrgVO> sysOrgs;
+        SysOrg sysOrg = remoteOrgService.selectSysOrgById(monitoringAccessDTO.getOrgId(), SecurityConstants.INNER);
+        List<SysOrg> sysOrgs;
         if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
-            sysOrgs = cacheList.stream().filter(r->ObjectUtil.equal(r.getType(),3)).filter(r->r.getPath().startsWith(sysOrg.getPath())).collect(Collectors.toList());
+            sysOrgs = remoteOrgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
         } else if (sysOrg.getType() == 3) {
-            sysOrgs = cacheList.stream().filter(r->ObjectUtil.equal(r.getType(),4)).filter(r->r.getPath().startsWith(sysOrg.getPath())).collect(Collectors.toList());
+            sysOrgs = remoteOrgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
         } else {
             return Collections.emptyList();
         }
-
-       /* sysOrgs.forEach(s -> {
-        Long condOrgId=monitoringAccessDTO.getOrgId();
+        List<SysOrgVO> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        // 创建一个Map来存储SysOrgVO的ID和对象
+        Map<Long, SysOrgVO> sysOrgMap = cacheList.stream()
+                .collect(Collectors.toMap(SysOrgVO::getId, Function.identity()));
+       /* List<MonitoringAccessVO> monitoringAccessVOList = new ArrayList<MonitoringAccessVO>();
+        sysOrgs.forEach(s -> {
             MonitoringAccessVO monitoringAccessVO = new MonitoringAccessVO();
             SysOrg sysOrg1;
             if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
@@ -143,7 +138,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
             monitoringAccessVO.setCity(sysOrg1.getShortName().indexOf("地区行社") == -1 ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
             Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
             monitoringAccessDTO.setOrgPath(s.getPath());
-            Long condOrgId=monitoringAccessDTO.getOrgId();
+            Long condOrgId = monitoringAccessDTO.getOrgId();
             monitoringAccessDTO.setOrgId(null);
             MonitoringAccessVO monitoringAccessVO1 = monitorAccessReportMapper.selectAll(monitoringAccessDTO);
             String avg = monitorAccessReportMapper.avg(monitoringAccessDTO);
@@ -163,8 +158,8 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
             monitoringAccessVOList.add(monitoringAccessVO);
 
             monitoringAccessDTO.setOrgId(condOrgId);
-        });*/
-
+        });
+        return monitoringAccessVOList;*/
 
 
         // 使用流式处理来遍历sysOrgs
@@ -188,10 +183,11 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
 
 
                     monitoringAccessVO.setCity(getCityName(sysOrg1));
-                    int orgNum = (int) cacheList.stream()
+                    /*int orgNum = (int) cacheList.stream()
                             .filter(r -> ObjectUtil.equal(OrgTypeEnum.YINGYE_WANGDIAN.getCode(), r.getType()))
                             .filter(r -> r.getPath().startsWith(s.getPath()))
-                            .count();
+                            .count();*/
+                    int orgNum=monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
                     monitoringAccessDTO.setOrgPath(s.getPath());
                     MonitoringAccessVO monitoringAccessVO1;
                     String avg;