diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java index 8925195be..bd6a6bacc 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java @@ -68,4 +68,8 @@ public interface ReportDeliverMapeer extends BaseMapper { List getDeliveryTrainLoadSacnByIds(@Param("idBatch") List idBatch); List getDeliveryTrainLoadSacnInvnByIds(@Param("idBatch") List idBatch); + + Long getDetailsPageCount(@Param("ew") Wrapper query); + + List getDetailsPageExport(@Param("ew") Wrapper queryWrapper, @Param("current") Integer current, @Param("size") Integer size); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index 115015632..6c8fd701c 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -303,7 +303,7 @@ ) t ${ew.customSqlSegment} - + select @@ -828,4 +831,15 @@ group by t.delivery_id order by null + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java index 7774621c8..978650871 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java @@ -31,14 +31,14 @@ public class DeliveryDetailReader implements ExportReader { @Override public Long getCount(Wrapper query) { Page page = new Page(1, 1); - reportDeliverMapeer.getDetailsPage(page, query); + Long detailsPageCount = reportDeliverMapeer.getDetailsPageCount(query); Long detailsZeroPageCount = reportDeliverMapeer.getDetailsZeroPageCount(query); - return page.getTotal() + detailsZeroPageCount; + return detailsPageCount + detailsZeroPageCount; } @Override public List findList(Page page, Wrapper query) { - return asyncService.getdetailPages(page, query, Convert.toInt(page.getCurrent()), Convert.toInt(page.getSize())); + return asyncService.getdetailPagesExport(page, query, Convert.toInt(page.getCurrent()), Convert.toInt(page.getSize())); } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java index 02843e1f4..cb5480546 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java @@ -21,4 +21,6 @@ public interface IAsyncService { List getDeliveryTrainLoadSacnByIds(List idBatch); List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size); + + List getdetailPagesExport(IPage page, Wrapper queryWrapper, Integer current, Integer size); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java index 630a26f66..90bba2334 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java @@ -52,7 +52,7 @@ public class AsyncServiceImpl implements IAsyncService { }, asyncExecutor); future.thenAccept(list -> { - if(CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list)) { // 获取组装的数据列表 List detailVo = pageMap.get(finalI); // 将查询数据添加到本地缓存 @@ -92,11 +92,11 @@ public class AsyncServiceImpl implements IAsyncService { countDownLatch.countDown(); } - @Override + @Override // @LogpmAsync("asyncExecutor") - public List getDeliveryTrainLoadSacnInvnByIds(List idBatch) { - return reportDeliverMapeer.getDeliveryTrainLoadSacnInvnByIds(idBatch); - } + public List getDeliveryTrainLoadSacnInvnByIds(List idBatch) { + return reportDeliverMapeer.getDeliveryTrainLoadSacnInvnByIds(idBatch); + } @Override // @LogpmAsync("asyncExecutor") @@ -105,8 +105,8 @@ public class AsyncServiceImpl implements IAsyncService { return reportDeliverMapeer.getDeliveryTrainLoadSacnByIds(idBatch); } - @Override - public List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size) { + @Override + public List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size) { List detailsPage = reportDeliverMapeer.getDetailsPage(page, queryWrapper); // 包件总数 long total = page.getTotal(); @@ -123,7 +123,7 @@ public class AsyncServiceImpl implements IAsyncService { int zeroSize = zeroTotal % size; long limitA = 0; long limitB = 0; - if(zeroSize == 0){ + if (zeroSize == 0) { zeroSize = size; } if (!NumberUtil.equals(zeroCurrent, 1)) { @@ -132,12 +132,50 @@ public class AsyncServiceImpl implements IAsyncService { } limitB = zeroSize; List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); - if(CollUtil.isEmpty(detailsPage)){ + if (CollUtil.isEmpty(detailsPage)) { detailsPage = new ArrayList<>(); } detailsPage.addAll(zeroPage); } page.setTotal(allTotal); return detailsPage; - } + } + + @Override + public List getdetailPagesExport(IPage page, Wrapper queryWrapper, Integer current, Integer size) { + List detailsPage = reportDeliverMapeer.getDetailsPageExport(queryWrapper, (current - 1) * size, size); + // 包件总数 + long total = detailsPage.size(); + // 零件总数 + Long detailsZeroPageCount = reportDeliverMapeer.getDetailsZeroPageCount(queryWrapper); + long allTotal = total + detailsZeroPageCount; + // 包件没数据查零担 + int pageSize = current * size; + if (total < pageSize) { + // 剩余需要查询的数量 + int zeroTotal = Convert.toInt(pageSize - total); + double div = NumberUtil.div(zeroTotal, size.doubleValue()); + long zeroCurrent = (int) Math.ceil(div); + int zeroSize = zeroTotal % size; + long limitA = 0; + long limitB = 0; + if (zeroSize == 0) { + zeroSize = size; + } + if (!NumberUtil.equals(zeroCurrent, 1)) { + limitA = zeroSize + (zeroCurrent - 2) * size; + zeroSize = size; + } + limitB = zeroSize; + List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); + if (CollUtil.isEmpty(detailsPage)) { + detailsPage = new ArrayList<>(); + } + detailsPage.addAll(zeroPage); + } + page.setTotal(allTotal); + return detailsPage; + } + + }