|
@@ -199,51 +199,32 @@ public class ReportServiceImpl implements ReportService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PageResult<ReportRespVO> getReportMePage(ReportPageQueryDTO reqVO) {
|
|
public PageResult<ReportRespVO> getReportMePage(ReportPageQueryDTO reqVO) {
|
|
- //获取当前用户接收的报告Id
|
|
|
|
- List<ReportReceiveRespVO> userReportReceiveList = reportReceiveService.getUserReportReceiveList(SecurityFrameworkUtils.getLoginUserId());
|
|
|
|
- if (CollectionUtil.isEmpty(userReportReceiveList)) {
|
|
|
|
- return new PageResult<>();
|
|
|
|
- }
|
|
|
|
- List<Long> reportIdList = userReportReceiveList.stream().filter(c -> c.getReportId() != null).limit(2000).map(ReportReceiveRespVO::getReportId).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
//获取报告分页列表
|
|
//获取报告分页列表
|
|
- LambdaQueryWrapper<ReportDO> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper.eq(ReportDO::getDeleted, 0);
|
|
|
|
- queryWrapper.eq(ReportDO::getIsTemp, 0);
|
|
|
|
-// queryWrapper.in(ReportDO::getId, reportIdList);
|
|
|
|
- // 每1000个元素分一个List (oracle的in最多接收1000)
|
|
|
|
- int chunkSize = 1000;
|
|
|
|
- List<List<Long>> reportIdGroupList = IntStream.range(0, (reportIdList.size() + chunkSize - 1) / chunkSize).mapToObj(i -> reportIdList.subList(i * chunkSize, Math.min((i + 1) * chunkSize, reportIdList.size()))).collect(Collectors.toList());
|
|
|
|
- int lastIndex = reportIdGroupList.size() - 1;
|
|
|
|
- queryWrapper.and(qw -> {
|
|
|
|
- for (int i = 0; i <= lastIndex; i++) {
|
|
|
|
- List<Long> idList = reportIdGroupList.get(i);
|
|
|
|
- qw.in(ReportDO::getId, idList);
|
|
|
|
- // 判断是否是最后一个元素
|
|
|
|
- if (i != lastIndex) {
|
|
|
|
- qw.or();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- queryWrapper.eq(StrUtil.isNotBlank(reqVO.getReportType()), ReportDO::getReportType, reqVO.getReportType());
|
|
|
|
- queryWrapper.orderByDesc(ReportDO::getUpdateTime);
|
|
|
|
|
|
+ QueryWrapper<ReportDO> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("REPORT.DELETED", 0);
|
|
|
|
+ queryWrapper.eq("REPORT.IS_TEMP", 0);
|
|
|
|
+ queryWrapper.eq("RECEIVE.DELETED", 0);
|
|
|
|
+ queryWrapper.eq("RECEIVE.RECEIVE_USER_ID", SecurityFrameworkUtils.getLoginUserId());
|
|
|
|
+ queryWrapper.eq(StrUtil.isNotBlank(reqVO.getReportType()),"REPORT.REPORT_TYPE", reqVO.getReportType());
|
|
|
|
+ queryWrapper.orderByDesc("REPORT.UPDATE_TIME");
|
|
if (reqVO.getReportYear() != null) {
|
|
if (reqVO.getReportYear() != null) {
|
|
if (StrUtil.isNotBlank(reqVO.getReportType())) {
|
|
if (StrUtil.isNotBlank(reqVO.getReportType())) {
|
|
if ("daily".equals(reqVO.getReportType())) {
|
|
if ("daily".equals(reqVO.getReportType())) {
|
|
- queryWrapper.between(ReportDO::getReportStartDate, DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
|
|
|
|
+ queryWrapper.between("REPORT.REPORT_START_DATE", DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
} else {
|
|
} else {
|
|
- queryWrapper.eq(ReportDO::getReportYear, reqVO.getReportYear()).eq(ReportDO::getReportMonth, reqVO.getReportMonth()).eq(ReportDO::getReportWeek, reqVO.getReportWeek());
|
|
|
|
|
|
+ queryWrapper.eq("REPORT.REPORT_YEAR", reqVO.getReportYear()).eq("REPORT.REPORT_MONTH", reqVO.getReportMonth());
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
queryWrapper.and(qw -> {
|
|
queryWrapper.and(qw -> {
|
|
- qw.eq(ReportDO::getReportType, "daily").between(ReportDO::getReportStartDate, DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
|
|
|
|
+ qw.eq("REPORT.REPORT_TYPE", "daily").between("REPORT.REPORT_START_DATE", DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
qw.or();
|
|
qw.or();
|
|
- qw.eq(ReportDO::getReportType, "weekly").eq(ReportDO::getReportYear, reqVO.getReportYear()).eq(ReportDO::getReportMonth, reqVO.getReportMonth());
|
|
|
|
|
|
+ qw.eq("REPORT.REPORT_TYPE", "weekly").eq("REPORT.REPORT_YEAR", reqVO.getReportYear()).eq("REPORT.REPORT_MONTH", reqVO.getReportMonth());
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- PageResult<ReportRespVO> reportPageResult = ReportConvert.INSTANCE.convertPage(reportMapper.selectPage(reqVO, queryWrapper));
|
|
|
|
|
|
+ Page<ReportDO> reportDOPage = reportMapper.getReportList(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), queryWrapper);
|
|
|
|
+ PageResult<ReportRespVO> reportPageResult = ReportConvert.INSTANCE.convertPage(new PageResult<>(reportDOPage.getRecords(), reportDOPage.getTotal()));
|
|
if (reportPageResult.getTotal() == 0L) {
|
|
if (reportPageResult.getTotal() == 0L) {
|
|
return reportPageResult;
|
|
return reportPageResult;
|
|
}
|
|
}
|