|
@@ -89,9 +89,6 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
|
|
|
List<String> faultNoList = list2.stream().map(FhzgFaultPowerCutVO::getFaultId).collect(Collectors.toList());
|
|
List<String> faultNoList = list2.stream().map(FhzgFaultPowerCutVO::getFaultId).collect(Collectors.toList());
|
|
|
//根据faultId获取idList,fhzg_fault_power_cut.id
|
|
//根据faultId获取idList,fhzg_fault_power_cut.id
|
|
|
List<FaultPowerCut> faultList = this.list(new LambdaQueryWrapper<FaultPowerCut>().in(FaultPowerCut::getFaultNo, faultNoList));
|
|
List<FaultPowerCut> faultList = this.list(new LambdaQueryWrapper<FaultPowerCut>().in(FaultPowerCut::getFaultNo, faultNoList));
|
|
|
- //根据FaultNo分组
|
|
|
|
|
- Map<String,List<Long>> faultCollect = faultList.stream().collect(Collectors.groupingBy(FaultPowerCut::getFaultNo,
|
|
|
|
|
- Collectors.mapping(FaultPowerCut::getId,Collectors.toList())));
|
|
|
|
|
List<Long> idList = faultList.stream().map(FaultPowerCut::getId).collect(Collectors.toList());
|
|
List<Long> idList = faultList.stream().map(FaultPowerCut::getId).collect(Collectors.toList());
|
|
|
//获取开关信息
|
|
//获取开关信息
|
|
|
List<FhzgFaultPowerCutSectionVO> faultPowerCutSectionList = switchInfoListMapper.querySectionsSwitchByFaultId(idList);
|
|
List<FhzgFaultPowerCutSectionVO> faultPowerCutSectionList = switchInfoListMapper.querySectionsSwitchByFaultId(idList);
|
|
@@ -112,9 +109,7 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
|
|
|
//故障id
|
|
//故障id
|
|
|
String fId = e.getFaultId();
|
|
String fId = e.getFaultId();
|
|
|
List<FhzgFaultPowerCutSectionVO> faultPowerCuts = null != sectionMap.get(fId) ? sectionMap.get(fId) : new ArrayList<>();
|
|
List<FhzgFaultPowerCutSectionVO> faultPowerCuts = null != sectionMap.get(fId) ? sectionMap.get(fId) : new ArrayList<>();
|
|
|
- faultPowerCuts.forEach(section->{
|
|
|
|
|
- Optional.of(fileListMap).ifPresent(f->section.setFileList(Objects.nonNull(f.get(section.getFaultId()))?f.get(section.getFaultId()): Lists.newArrayList()));
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ faultPowerCuts.forEach(section-> Optional.of(fileListMap).ifPresent(f->section.setFileList(Objects.nonNull(f.get(section.getFaultId()))?f.get(section.getFaultId()): Lists.newArrayList())));
|
|
|
e.setSectionList(faultPowerCuts);
|
|
e.setSectionList(faultPowerCuts);
|
|
|
});
|
|
});
|
|
|
} else {
|
|
} else {
|
|
@@ -122,65 +117,41 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
|
|
|
}
|
|
}
|
|
|
//查询统计,用户数量,重要用户数量,敏感用户数量,用户负荷
|
|
//查询统计,用户数量,重要用户数量,敏感用户数量,用户负荷
|
|
|
List<FhzgFaultAwaitTransferUsersCountDTO> usersCountDTOList = faultAwaitTransferUsersMapper.selectAwaitUserCountByFaultId(idList);
|
|
List<FhzgFaultAwaitTransferUsersCountDTO> usersCountDTOList = faultAwaitTransferUsersMapper.selectAwaitUserCountByFaultId(idList);
|
|
|
- if (CollUtil.isNotEmpty(usersCountDTOList)) {
|
|
|
|
|
- Map<Long, FhzgFaultAwaitTransferUsersCountDTO> fusersCountMap = usersCountDTOList.stream().collect(Collectors.toMap(FhzgFaultAwaitTransferUsersCountDTO::getFaultId, Function.identity(), (k1, k2) -> k2));
|
|
|
|
|
- list2.forEach(e -> {
|
|
|
|
|
-// FhzgFaultAwaitTransferUsersCountDTO userCountDTO = fusersCountMap.get(e.getId());
|
|
|
|
|
-// if (!Objects.isNull(userCountDTO)) {
|
|
|
|
|
-// e.setTransferCriticalUsers(userCountDTO.getTransferCriticalUsers());//重要用户数量
|
|
|
|
|
-// e.setTransferSensitiveUsers(userCountDTO.getTransferSensitiveUsers());//敏感用户
|
|
|
|
|
-// e.setUserCount(userCountDTO.getUserCount());//用户数量
|
|
|
|
|
-// e.setUserLoads(userCountDTO.getUserLoads());//用户负荷
|
|
|
|
|
-// e.setProtectUsers(userCountDTO.getProtectUsers());//保电用户数量
|
|
|
|
|
-// }
|
|
|
|
|
- //故障id
|
|
|
|
|
- String fId = e.getFaultId();
|
|
|
|
|
- List<Long> ids = faultCollect.get(fId);
|
|
|
|
|
- List<FhzgFaultAwaitTransferUsersCountDTO> dtoList = ids.stream().map(fusersCountMap::get).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
|
|
- if(!dtoList.isEmpty()){
|
|
|
|
|
- Integer maxTransferCriticalUsers = dtoList.stream().map(FhzgFaultAwaitTransferUsersCountDTO::getTransferCriticalUsers)
|
|
|
|
|
- .filter(Objects::nonNull).max(Integer::compareTo).orElse(null);
|
|
|
|
|
- Integer maxTransferSensitiveUsers = dtoList.stream().map(FhzgFaultAwaitTransferUsersCountDTO::getTransferSensitiveUsers)
|
|
|
|
|
- .filter(Objects::nonNull).max(Integer::compareTo).orElse(null);
|
|
|
|
|
- Integer maxUserCount = dtoList.stream().map(FhzgFaultAwaitTransferUsersCountDTO::getUserCount)
|
|
|
|
|
- .filter(Objects::nonNull).max(Integer::compareTo).orElse(null);
|
|
|
|
|
- BigDecimal maxUserLoads = dtoList.stream().map(FhzgFaultAwaitTransferUsersCountDTO::getUserLoads)
|
|
|
|
|
- .filter(Objects::nonNull).max(BigDecimal::compareTo).orElse(null);
|
|
|
|
|
- Integer maxProtectUsers = dtoList.stream().map(FhzgFaultAwaitTransferUsersCountDTO::getProtectUsers)
|
|
|
|
|
- .filter(Objects::nonNull).max(Integer::compareTo).orElse(null);
|
|
|
|
|
- e.setTransferCriticalUsers(maxTransferCriticalUsers);//重要用户数量
|
|
|
|
|
- e.setTransferSensitiveUsers(maxTransferSensitiveUsers);//敏感用户
|
|
|
|
|
- e.setUserCount(maxUserCount);//用户数量
|
|
|
|
|
- e.setUserLoads(maxUserLoads);//用户负荷
|
|
|
|
|
- e.setProtectUsers(maxProtectUsers);//保电用户数量
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- log.info("未查询到待转供用户数量faultIdList:{}", idList);
|
|
|
|
|
- }
|
|
|
|
|
//查询停电计划对应的光伏用户数量
|
|
//查询停电计划对应的光伏用户数量
|
|
|
List<FaultPowerCutPvUsers> countCutPvUsers = faultPowerCutPvUsersService.countByFaultId(idList);
|
|
List<FaultPowerCutPvUsers> countCutPvUsers = faultPowerCutPvUsersService.countByFaultId(idList);
|
|
|
- if (CollUtil.isNotEmpty(countCutPvUsers)) {
|
|
|
|
|
- Map<Long, FaultPowerCutPvUsers> cutPvUsersMap = countCutPvUsers.stream().collect(Collectors.toMap(FaultPowerCutPvUsers::getFaultId, Function.identity(), (k1, k2) -> k2));
|
|
|
|
|
- list2.forEach(e -> {
|
|
|
|
|
-// FaultPowerCutPvUsers faultPowerCutPvUsers = cutPvUsersMap.get(e.getId());
|
|
|
|
|
-// Integer count = Objects.isNull(faultPowerCutPvUsers) ? 0 : Objects.isNull(faultPowerCutPvUsers.getCount()) ? 0 : faultPowerCutPvUsers.getCount();
|
|
|
|
|
-// e.setPvUsers(count);
|
|
|
|
|
- String fId = e.getFaultId();
|
|
|
|
|
- List<Long> ids = faultCollect.get(fId);
|
|
|
|
|
- List<FaultPowerCutPvUsers> usersList = ids.stream().map(cutPvUsersMap::get).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
|
|
- Integer count = usersList.stream().map(FaultPowerCutPvUsers::getCount).filter(Objects::nonNull).max(Integer::compareTo).orElse(0);
|
|
|
|
|
- e.setPvUsers(count);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Map<Long, FhzgFaultAwaitTransferUsersCountDTO> fusersCountMap = usersCountDTOList.stream().collect(Collectors.toMap(FhzgFaultAwaitTransferUsersCountDTO::getFaultId, Function.identity(), (k1, k2) -> k2));
|
|
|
|
|
+ Map<Long, FaultPowerCutPvUsers> cutPvUsersMap = countCutPvUsers.stream().collect(Collectors.toMap(FaultPowerCutPvUsers::getFaultId, Function.identity(), (k1, k2) -> k2));
|
|
|
|
|
+
|
|
|
|
|
+ list2.forEach(e -> {
|
|
|
|
|
+ // FhzgFaultAwaitTransferUsersCountDTO userCountDTO = fusersCountMap.get(e.getId());
|
|
|
|
|
+ // if (!Objects.isNull(userCountDTO)) {
|
|
|
|
|
+ // e.setTransferCriticalUsers(userCountDTO.getTransferCriticalUsers());//重要用户数量
|
|
|
|
|
+ // e.setTransferSensitiveUsers(userCountDTO.getTransferSensitiveUsers());//敏感用户
|
|
|
|
|
+ // e.setUserCount(userCountDTO.getUserCount());//用户数量
|
|
|
|
|
+ // e.setUserLoads(userCountDTO.getUserLoads());//用户负荷
|
|
|
|
|
+ // e.setProtectUsers(userCountDTO.getProtectUsers());//保电用户数量
|
|
|
|
|
+ // }
|
|
|
|
|
+ List<FhzgFaultPowerCutSectionVO> sectionList = e.getSectionList();
|
|
|
|
|
+ BigDecimal multiplyNumber = new BigDecimal("1000");
|
|
|
|
|
+ sectionList.forEach(section->{
|
|
|
|
|
+ FhzgFaultAwaitTransferUsersCountDTO userCountDTO = fusersCountMap.get(section.getFaultId());
|
|
|
|
|
+ FaultPowerCutPvUsers faultPowerCutPvUsers = cutPvUsersMap.get(section.getFaultId());
|
|
|
|
|
+ Integer count = Objects.isNull(faultPowerCutPvUsers) ? 0 : Objects.isNull(faultPowerCutPvUsers.getCount()) ? 0 : faultPowerCutPvUsers.getCount();
|
|
|
|
|
+ section.setPvUsers(count);
|
|
|
|
|
+ if (Objects.nonNull(userCountDTO)) {
|
|
|
|
|
+ section.setTransferCriticalUsers(userCountDTO.getTransferCriticalUsers());//重要用户数量
|
|
|
|
|
+ section.setTransferSensitiveUsers(userCountDTO.getTransferSensitiveUsers());//敏感用户
|
|
|
|
|
+ section.setUserCount(userCountDTO.getUserCount());//用户数量
|
|
|
|
|
+ section.setUserLoads(Objects.isNull(userCountDTO.getUserLoads())?BigDecimal.ZERO:userCountDTO.getUserLoads().multiply(multiplyNumber));//用户负荷
|
|
|
|
|
+ section.setProtectUsers(userCountDTO.getProtectUsers());//保电用户数量
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
- } else {
|
|
|
|
|
- log.info("未查询到光伏用户数量faultIdList:{}", idList);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
log.info("查询故障停电数据为空condition:{}", obj);
|
|
log.info("查询故障停电数据为空condition:{}", obj);
|
|
|
}
|
|
}
|
|
|
- BigDecimal multiplyNumber = new BigDecimal("1000");
|
|
|
|
|
- list2 = list2.stream().filter(i -> i.getUserLoads()!= null && i.getUserLoads().compareTo(BigDecimal.ZERO) != 0).peek(i->i.setUserLoads(i.getUserLoads().multiply(multiplyNumber))).collect(Collectors.toList());
|
|
|
|
|
return page.setRecords(list2);
|
|
return page.setRecords(list2);
|
|
|
}
|
|
}
|
|
|
|
|
|