From 00877ec3cf9f5d115d7a8f1e2504b5311c6ab9ba Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Wed, 10 Jul 2024 16:05:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E9=80=81=E6=98=8E=E7=BB=86=E6=8A=A5=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/reader/DeliveryDetailReader.java | 9 ++-- .../logpm/report/service/IAsyncService.java | 4 ++ .../report/service/impl/AsyncServiceImpl.java | 41 +++++++++++++++++++ .../impl/ReportDeliverServiceImpl.java | 12 ++++-- 4 files changed, 58 insertions(+), 8 deletions(-) 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 8469c878c..c71a83ca4 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 @@ -1,9 +1,11 @@ package com.logpm.report.reader; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.logpm.report.mapper.ReportDeliverMapeer; import com.logpm.report.service.ExportReader; +import com.logpm.report.service.IAsyncService; import io.prometheus.client.CollectorRegistry; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +25,8 @@ public class DeliveryDetailReader implements ExportReader { private ReportDeliverMapeer reportDeliverMapeer; @Autowired private CollectorRegistry collectorRegistry; + @Autowired + private IAsyncService asyncService; @Override public Long getCount(Wrapper query) { @@ -34,10 +38,7 @@ public class DeliveryDetailReader implements ExportReader { @Override public List findList(Page page, Wrapper query) { - List detailsPage = reportDeliverMapeer.getDetailsPage(page, query); - List detailsZeroPage = reportDeliverMapeer.getDetailsZeroPage(page.getCurrent(), page.getSize(), query); - detailsPage.addAll(detailsZeroPage); - return detailsPage; + return asyncService.getdetailPages(page, query, Convert.toInt(page.getCurrent()), Convert.toInt(page.getTotal())); } } 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 ed9bb70e7..02843e1f4 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 @@ -1,7 +1,9 @@ package com.logpm.report.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.report.dto.DeliveryTrainLoadedScanDTO; +import com.logpm.report.vo.ReportDetailVO; import java.util.List; import java.util.Map; @@ -17,4 +19,6 @@ public interface IAsyncService { List getDeliveryTrainLoadSacnInvnByIds(List idBatch); List getDeliveryTrainLoadSacnByIds(List idBatch); + + List getdetailPages(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 983d28e7f..7e55ba191 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 @@ -2,12 +2,16 @@ package com.logpm.report.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.logpm.report.dto.DeliveryTrainLoadedScanDTO; import com.logpm.report.mapper.ReportDeliverMapeer; import com.logpm.report.service.ExportReader; import com.logpm.report.service.IAsyncService; +import com.logpm.report.vo.ReportDetailVO; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springblade.common.annotations.LogpmAsync; @@ -15,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; @@ -96,4 +101,40 @@ public class AsyncServiceImpl implements IAsyncService { public List getDeliveryTrainLoadSacnByIds(List idBatch) { return reportDeliverMapeer.getDeliveryTrainLoadSacnByIds(idBatch); } + + @Override + public List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size) { + List detailsPage = reportDeliverMapeer.getDetailsPage(page, queryWrapper); + // 包件总数 + long total = page.getTotal(); + // 零件总数 + 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; + } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java index ba575f5a5..ccf941343 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java @@ -19,6 +19,7 @@ import com.logpm.report.reader.DeliveryCustomerReader; import com.logpm.report.reader.DeliveryDetailReader; import com.logpm.report.reader.DeliveryTrainReader; import com.logpm.report.reader.StockOrderReader; +import com.logpm.report.service.IAsyncService; import com.logpm.report.service.ReportDataService; import com.logpm.report.service.ReportDeliverService; import com.logpm.report.util.QueryUtil; @@ -57,6 +58,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { private final IBasicdataWarehouseClient warehouseClient; private final ReportDataService reportDataService; private final ReportExcelUtil reportExcelUtil; + private final IAsyncService anAsyncService; @Override public IPage deliveryTrainPage(ReportDevilerVO vo, ReportDevilerQuery query) { @@ -168,6 +170,11 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { detailsCustomQuery(query, queryWrapper); // 仓库权限 ReportUtil.buildReportWarehouseAuth(vo.getWarehouseName(), query.getWarehouseNameRange(), queryWrapper, warehouseClient); + List detailsPage = anAsyncService.getdetailPages(page, queryWrapper, current, size); + return page.setRecords(detailsPage); + } + + private List getdetailPages(IPage page, QueryWrapper queryWrapper, Integer current, Integer size) { List detailsPage = reportDeliverMapeer.getDetailsPage(page, queryWrapper); // 包件总数 long total = page.getTotal(); @@ -182,8 +189,6 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { double div = NumberUtil.div(zeroTotal, size.doubleValue()); long zeroCurrent = (int) Math.ceil(div); int zeroSize = zeroTotal % size; - IPage page1 = Condition.getPage(query); - page1.setCurrent(zeroCurrent); long limitA = 0; long limitB = 0; if(zeroSize == 0){ @@ -194,7 +199,6 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { zeroSize = size; } limitB = zeroSize; - page1.setSize(zeroSize); List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); if(CollUtil.isEmpty(detailsPage)){ detailsPage = new ArrayList<>(); @@ -202,7 +206,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { detailsPage.addAll(zeroPage); } page.setTotal(allTotal); - return page.setRecords(detailsPage); + return detailsPage; } private void detailsCustomQuery(DevilerDetailsQuery query, QueryWrapper queryWrapper) { From e3ba0853c348652049556b4d7acb04f350ffa983 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Wed, 10 Jul 2024 16:11:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E6=9A=82=E5=AD=98=E5=8D=95=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml index 4fa61a11b..57cc82c32 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml @@ -15,7 +15,7 @@ select lta.*, lbc.client_name htMallName from logpm_trunkline_advance lta - left join logpm_basicdata_tripartite_mall lbtm on lbtm.tripartite_mall = lta.dealer_name and lbtm.brand_name = lta.brand and IFNULL(lta.dealer_code,'') = IFNULL(lbtm.tripartite_coding,'') and lbtm.is_deletd = 0 + left join logpm_basicdata_tripartite_mall lbtm on lbtm.tripartite_mall = lta.dealer_name and lbtm.brand_name = lta.brand and IFNULL(lta.dealer_code,'') = IFNULL(lbtm.tripartite_coding,'') and lbtm.is_deleted = 0 left join logpm_basicdata_client lbc on lbc.id = lbtm.client_id where lta.is_deleted = 0 and lta.waybill_status = 0