From ef37fe14fb4d021b8fd4fffab4895df00ba1e4a3 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 20 Dec 2024 13:36:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(all):=20=E8=BD=A6=E6=AC=A1=E6=88=90?= =?UTF-8?q?=E6=9C=AC=E6=98=8E=E7=BB=86=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 修改报表逻辑 --- .../feign/DistributionReservationClient.java | 2 -- .../receiver/report/PlanReportListener.java | 33 ++++++++++++++----- .../factory/jobhandler/FactoryXxlJob.java | 21 +++++------- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java index df57878f0..2f08d3bd1 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java @@ -22,7 +22,6 @@ import com.logpm.distribution.dto.DistributionCancelReservationPackageDTO; import com.logpm.distribution.entity.DistributionReservationEntity; import com.logpm.distribution.service.IDistributionNodeWorkService; import com.logpm.distribution.service.IDistributionReservationService; -import com.logpm.distribution.vo.DistributionRetentionScanVo; import lombok.AllArgsConstructor; import org.springblade.common.model.NodeFanoutMsg; import org.springblade.common.model.ReservationVO; @@ -31,7 +30,6 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.Func; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java index 7b9cdc8c6..c18e1c7ca 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java @@ -77,9 +77,28 @@ public class PlanReportListener implements ReportService { Map> cmpMap = new HashMap<>(); Map> ltlMap = new HashMap<>(); Map> invMap = new HashMap<>(); + Integer totalNum = 0; + for (ReservationVO reservationVO : reservationVOList) { + List details = reservationVO.getPackageDataList(); + if (CollUtil.isNotEmpty(details)) { + totalNum = totalNum + 1; + } + } if (CollUtil.isNotEmpty(reservationCodeSet)) { List qualityDeliverEntities = qualityDeliverService.list(Wrappers.lambdaQuery().in(QualityDeliverEntity::getPlanReservationCode, reservationCodeSet)); if (CollUtil.isNotEmpty(qualityDeliverEntities)) { + if (bizOperation.equals(BizOperationEnums.ADD)) { + if (!NumberUtil.equals(qualityDeliverEntities.size(), totalNum)) { + // 没有查询到,延迟10秒重新推送 + factoryDataClient.sendMessage(SendMsg.builder() + .exchange(FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE_DELAY) + .routingKey(null) + .message(msg) + .delay(10000) + .build()); + return; + } + } cmpMap = qualityDeliverEntities.stream() .filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.CMP.getCode())) .filter(item -> StrUtil.isNotEmpty(item.getOrderPackageCode())) @@ -139,7 +158,7 @@ public class PlanReportListener implements ReportService { sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); } } - if(StrUtil.isNotEmpty(detail.getPackageCode())){ + if (StrUtil.isNotEmpty(detail.getPackageCode())) { cmpSet.add(reservationCode + detail.getPackageCode()); } } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { @@ -154,7 +173,7 @@ public class PlanReportListener implements ReportService { sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); } } - if(StrUtil.isNotEmpty(detail.getProductName()) && StrUtil.isNotEmpty(detail.getOrderCode())){ + if (StrUtil.isNotEmpty(detail.getProductName()) && StrUtil.isNotEmpty(detail.getOrderCode())) { ltlSet.add(reservationCode + detail.getProductName() + detail.getOrderCode()); } } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { @@ -169,7 +188,7 @@ public class PlanReportListener implements ReportService { if (CollUtil.isNotEmpty(qualityDeliverEntities)) { if (BizOperationEnums.DELETE.equals(bizOperation)) { for (QualityDeliverEntity deliverEntity : qualityDeliverEntities) { - if(!invedSet.contains(deliverEntity.getId())){ + if (!invedSet.contains(deliverEntity.getId())) { qualityDeliverEntity.setId(deliverEntity.getId()); sendReport(qualityDeliverEntity, BizOperationEnums.DELETE); } @@ -177,7 +196,7 @@ public class PlanReportListener implements ReportService { } } else { for (QualityDeliverEntity deliverEntity : qualityDeliverEntities) { - if(!invedSet.contains(deliverEntity.getId())){ + if (!invedSet.contains(deliverEntity.getId())) { qualityDeliverEntity.setId(deliverEntity.getId()); sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); } @@ -186,7 +205,7 @@ public class PlanReportListener implements ReportService { } } } - if(StrUtil.isNotEmpty(detail.getMallName()) && StrUtil.isNotEmpty(detail.getMaterialCode())){ + if (StrUtil.isNotEmpty(detail.getMallName()) && StrUtil.isNotEmpty(detail.getMaterialCode())) { invSet.add(reservationCode + detail.getMallName() + detail.getMaterialCode()); } } @@ -225,10 +244,6 @@ public class PlanReportListener implements ReportService { .build(); String exchange = ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE; String routKey = ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY; - if (operationEnums.equals(BizOperationEnums.ADD)) { - exchange = ReportConstants.REPORT_QUALITY_DELIVER_ADD_EXCHANGE; - routKey = ReportConstants.REPORT_QUALITY_DELIVER_ADD_ROUTINGKEY; - } factoryDataClient.sendMessage(SendMsg.builder() .exchange(exchange) .routingKey(routKey) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java index 64a9a183b..7c25d71e1 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java @@ -61,9 +61,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; /** @@ -438,22 +440,13 @@ public class FactoryXxlJob { // 走新系统入库 if (collect.size() > 0) { List advances = new ArrayList<>(); + Set orderPackageSet = new HashSet<>(); collect.forEach((k, v) -> { List packageList = new ArrayList<>(); List staorderPackagesList = staorderPackagesService.list(Wrappers.query().lambda() .eq(StaorderPackagesEntity::getIdentification, "2") .eq(StaorderPackagesEntity::getOrderId, k) ); - // 订单 order_id +包件 packagenum 重复 则剔除数据 - staorderPackagesList = staorderPackagesList.stream() - .collect(Collectors.collectingAndThen( - Collectors.toMap( - sp -> sp.getOrderId() + sp.getPackagenum(), // 键 - sp -> sp, // 值 - (existing, replacement) -> existing // 处理重复键的情况,这里选择保留第一个 - ), - map -> new ArrayList<>(map.values()) - )); // 查询基地名称 StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(v.getTcWlb006()); String siteName = Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName(); @@ -514,7 +507,11 @@ public class FactoryXxlJob { Long finalStartWarehouseId = startWarehouseId; String finalStartWarehouseName = startWarehouseName; String finalTenantId = tenantId; - groupByPackages.forEach(gpd -> { + for (GroupByPackagesDTO gpd : groupByPackages) { + if(CollUtil.contains(orderPackageSet,gpd.getPackagenum())){ + continue; + } + orderPackageSet.add(gpd.getPackagenum()); // 封装包件 TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity(); advanceDetailEntity.setWarehouseId(finalStartWarehouseId); @@ -553,7 +550,7 @@ public class FactoryXxlJob { advanceDetailEntity.setIsDeleted(0); cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceDetailEntity); packageList.add(entries); - }); + } // 转成json对象,然后将包件明细放到detail中 cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceEntity); entries.set("details", JSONUtil.toJsonStr(packageList));