diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java index 554256b55e..683347a350 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java @@ -37,6 +37,7 @@ import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.BizPointTotalDetailService; import com.epmet.service.BizPointUserTotalDetailService; import com.epmet.service.UserPointActionLogService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -182,6 +183,9 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl totalDetailList = baseDao.selectList(wrapper); Result> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId()); + if (!groupList.success() || CollectionUtils.isEmpty(groupList.getData())) { + return Collections.emptyList(); + } list = groupList.getData().stream().map(item -> { GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO(); dto.setGroupId(item.getId()); @@ -194,14 +198,16 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl totalDetailList.stream().filter(detail -> item.getGroupId().equals(detail.getObjectId())).forEach(total -> { - item.setPoint(total.getTotalPoint().toString()); + if (CollectionUtils.isNotEmpty(totalDetailList)) { + list.forEach(item -> totalDetailList.stream().filter(detail -> item.getGroupId().equals(detail.getObjectId())).forEach(total -> { + item.setPoint(total.getTotalPoint().toString()); - })); + })); + } list = list.stream().sorted(Comparator.comparing(GroupPointRankingResultDTO :: getPoint, Comparator.comparingInt(Integer::parseInt)).reversed() .thenComparing(GroupPointRankingResultDTO::getGroupName, Collator.getInstance(Locale.CHINA))) - .collect(Collectors.toList()); + .collect(Collectors.toList()); AtomicInteger i = new AtomicInteger(1); list.forEach(dto -> { dto.setRanking(String.valueOf(i.getAndIncrement()));