From af1fca0a04fb4a85039203ce58f54fbc8bd4d3d7 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Mon, 9 Sep 2024 17:04:58 +0800 Subject: [PATCH] =?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=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/broadcast/FanoutConstants.java | 5 +- .../entity/QualityDeliverEntity.java | 2 +- .../aftersales/AftersalesApplication.java | 1 - .../com/logpm/basic/BasicApplication.java | 1 - .../logpm/basicdata/BasicDataApplication.java | 1 - .../impl/BasicdataTrayServiceImpl.java | 2 +- .../logpm/business/BusinessApplication.java | 1 - .../distribution/DistributionApplication.java | 1 - .../report/CarStartReportListener.java | 84 ++++++----- .../report/ConsigneeArriveReportListener.java | 134 ++++++++++++++++++ .../report/LoadingReportListener.java | 2 + .../report/QualityDeliverListener.java | 25 ++-- .../receiver/report/ReViewReportListener.java | 120 ++++++++++++++++ .../report/SignforReportListener.java | 2 +- .../receiver/report/StockReportListener.java | 4 +- .../controller/MtFactoryDataController.java | 1 - .../logpm/supervise/SuperviseApplication.java | 1 - .../logpm/trunkline/TrunkLineApplication.java | 2 - .../logpm/warehouse/WarehouseApplication.java | 1 - 19 files changed, 330 insertions(+), 60 deletions(-) create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ConsigneeArriveReportListener.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReViewReportListener.java diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java index 1329cb8e8..077ad3e32 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java @@ -252,6 +252,7 @@ public abstract class FanoutConstants { String EXCHANGE = "fanout.distribution.ConsigneeArrive" + ModuleNameConstant.DEVAUTH; interface QUEUE { + String REPORT = "fanout.distribution.DeliveryAndConsigneeArrive.report" + ModuleNameConstant.DEVAUTH; } } @@ -273,13 +274,15 @@ public abstract class FanoutConstants { /** * 复核 + * + * @see org.springblade.common.model.DistributionSignforVO */ interface DeliveryAndrecheck { String EXCHANGE = "fanout.distribution.recheck" + ModuleNameConstant.DEVAUTH; interface QUEUE { - + String REPORT = "fanout.distribution.DeliveryAndrecheck.report" + ModuleNameConstant.DEVAUTH; } } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/QualityDeliverEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/QualityDeliverEntity.java index be24e7d34..19f844250 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/QualityDeliverEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/QualityDeliverEntity.java @@ -448,7 +448,7 @@ public class QualityDeliverEntity extends TenantEntity { * 复核时间 复核时间=回库时间 */ @ApiModelProperty(value = "复核时间 复核时间=回库时间") - private String reviewTime; + private Date reviewTime; /** * 滞留人 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java index ed1163063..fe28ef4b7 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java @@ -19,7 +19,6 @@ package com.logpm.aftersales; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java index 3972782f9..90224f55d 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java @@ -5,7 +5,6 @@ package com.logpm.basic; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java index bc3652dfc..0ea8593ac 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java @@ -4,7 +4,6 @@ package com.logpm.basicdata; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java index 2592d1d6d..727cebbb9 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java @@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.ibm.icu.impl.data.ResourceReader; import com.itextpdf.html2pdf.ConverterProperties; import com.itextpdf.html2pdf.HtmlConverter; import com.itextpdf.kernel.geom.PageSize; @@ -60,6 +59,7 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.BeanUtils; +import org.springframework.data.repository.init.ResourceReader; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java b/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java index b5654d540..2c40a6fb7 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java @@ -4,7 +4,6 @@ package com.logpm.business; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; @BladeCloudApplication public class BusinessApplication { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java index b37bf3a93..32edd5cbc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java @@ -19,7 +19,6 @@ package com.logpm.distribution; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/CarStartReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/CarStartReportListener.java index c5ec86717..7116975b8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/CarStartReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/CarStartReportListener.java @@ -1,10 +1,10 @@ package com.logpm.distribution.receiver.report; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.ReportQualityDeliverDTO; import com.logpm.distribution.entity.QualityDeliverEntity; import com.logpm.distribution.service.IQualityDeliverService; @@ -15,10 +15,8 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.broadcast.FanoutConstants; import org.springblade.common.constant.report.ReportConstants; import org.springblade.common.enums.BizOperationEnums; -import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.model.CarStartVO; import org.springblade.common.model.NodeFanoutMsg; -import org.springblade.common.model.PackageData; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; @@ -28,8 +26,6 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; /** * 发车生成明细报表 @@ -63,6 +59,22 @@ public class CarStartReportListener { CarStartVO vo = JSONUtil.toBean(entries, CarStartVO.class); Long warehouseId = bean.getWarehouseId(); BizOperationEnums bizOperation = bean.getBizOperation(); + if (BizOperationEnums.DELETE.equals(bizOperation)) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + .set(QualityDeliverEntity::getStartCarUserName, null) + .set(QualityDeliverEntity::getStartCarTime, null) + .eq(QualityDeliverEntity::getLoadTrainNumber, vo.getTrainNumber()) + .ne(QualityDeliverEntity::getBizStatus, 110); + qualityDeliverService.update(wrapper); + } + if (BizOperationEnums.ADD.equals(bizOperation)) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + .set(QualityDeliverEntity::getStartCarUserName, vo.getDriverName()) + .set(QualityDeliverEntity::getStartCarTime, bean.getOperatorTime()) + .eq(QualityDeliverEntity::getLoadTrainNumber, vo.getTrainNumber()) + .ne(QualityDeliverEntity::getBizStatus, 110); + qualityDeliverService.update(wrapper); + } // if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) { // // 根据预约单号查询出所有这个预约单下的数据 先置空 // LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() @@ -73,36 +85,36 @@ public class CarStartReportListener { // .ne(QualityDeliverEntity::getBizStatus, 110); // qualityDeliverService.update(wrapper); // } - List details = new ArrayList<>(); - if (CollUtil.isNotEmpty(details)) { - for (PackageData detail : details) { - QualityDeliverEntity qualityDeliverEntity = QualityDeliverEntity.builder() - .warehouseName(bean.getWarehouse()) - .warehouseId(warehouseId) - .orderPackageCode(detail.getPackageCode()) - .startCarUserName(bean.getOperator()) - .startCarTime(bean.getOperatorTime()) - .build(); - if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.CMP)) { - qualityDeliverEntity.setConditions(1); - qualityDeliverEntity.setLoadNum(1); - sendReport(bizOperation, qualityDeliverEntity); - } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { - qualityDeliverEntity.setOrderCode(detail.getOrderCode()); - qualityDeliverEntity.setCostCategory(detail.getProductName()); - qualityDeliverEntity.setRevenueCategory(detail.getProductName()); - qualityDeliverEntity.setConditions(2); - sendReport(bizOperation, qualityDeliverEntity); - } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { - qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); - qualityDeliverEntity.setMallName(detail.getMallName()); - qualityDeliverEntity.setMaterielCode(detail.getMaterialCode()); - qualityDeliverEntity.setMaterielName(detail.getMaterialName()); - qualityDeliverEntity.setConditions(3); - sendReport(bizOperation, qualityDeliverEntity); - } - } - } + + // List details = new ArrayList<>(); + // if (CollUtil.isNotEmpty(details)) { + // for (PackageData detail : details) { + // QualityDeliverEntity qualityDeliverEntity = QualityDeliverEntity.builder() + // .warehouseName(bean.getWarehouse()) + // .warehouseId(warehouseId) + // .startCarUserName(bean.getOperator()) + // .startCarTime(bean.getOperatorTime()) + // .build(); + // if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.CMP)) { + // qualityDeliverEntity.setConditions(1); + // qualityDeliverEntity.setLoadNum(1); + // sendReport(bizOperation, qualityDeliverEntity); + // } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { + // qualityDeliverEntity.setOrderCode(detail.getOrderCode()); + // qualityDeliverEntity.setCostCategory(detail.getProductName()); + // qualityDeliverEntity.setRevenueCategory(detail.getProductName()); + // qualityDeliverEntity.setConditions(2); + // sendReport(bizOperation, qualityDeliverEntity); + // } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { + // qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); + // qualityDeliverEntity.setMallName(detail.getMallName()); + // qualityDeliverEntity.setMaterielCode(detail.getMaterialCode()); + // qualityDeliverEntity.setMaterielName(detail.getMaterialName()); + // qualityDeliverEntity.setConditions(3); + // sendReport(bizOperation, qualityDeliverEntity); + // } + // } + // } } private void sendReport(BizOperationEnums bizOperation, QualityDeliverEntity qualityDeliverEntity) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ConsigneeArriveReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ConsigneeArriveReportListener.java new file mode 100644 index 000000000..0e84bd332 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ConsigneeArriveReportListener.java @@ -0,0 +1,134 @@ +package com.logpm.distribution.receiver.report; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.distribution.dto.ReportQualityDeliverDTO; +import com.logpm.distribution.entity.QualityDeliverEntity; +import com.logpm.distribution.service.IQualityDeliverService; +import com.logpm.factorydata.feign.IFactoryDataClient; +import com.logpm.factorydata.vo.SendMsg; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springblade.common.constant.report.ReportConstants; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.model.ConsigneeArriveVO; +import org.springblade.common.model.NodeFanoutMsg; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * 配送到达生成明细报表 + * + * @author zhaoqiaobo + * @create 2024-03-18 0:02 + */ +@Slf4j +@Component +@AllArgsConstructor +public class ConsigneeArriveReportListener { + + @Resource + private IQualityDeliverService qualityDeliverService; + @Resource + private IFactoryDataClient factoryDataClient; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.distribution.DeliveryAndConsigneeArrive.QUEUE.REPORT, durable = "true"), + exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndConsigneeArrive.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + @Transactional(rollbackFor = Exception.class) + public void buildReport(String msg) { + log.info("配送到达生成明细报表: {}", msg); + if (StrUtil.isEmpty(msg)) { + return; + } + NodeFanoutMsg bean = JSONUtil.toBean(msg, NodeFanoutMsg.class); + Object main = bean.getMain(); + JSONObject entries = JSONUtil.parseObj(main); + ConsigneeArriveVO vo = JSONUtil.toBean(entries, ConsigneeArriveVO.class); + Long warehouseId = bean.getWarehouseId(); + BizOperationEnums bizOperation = bean.getBizOperation(); + if (BizOperationEnums.DELETE.equals(bizOperation)) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + .set(QualityDeliverEntity::getArriveCarUserName, null) + .set(QualityDeliverEntity::getArriveCarTime, null) + .eq(QualityDeliverEntity::getLoadTrainNumber, vo.getTrainNumber()) + .eq(QualityDeliverEntity::getPlanReservationCode, vo.getReservationCode()) + .ne(QualityDeliverEntity::getBizStatus, 110); + qualityDeliverService.update(wrapper); + } + if (BizOperationEnums.ADD.equals(bizOperation)) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + .set(QualityDeliverEntity::getArriveCarUserName, vo.getDriverName()) + .set(QualityDeliverEntity::getArriveCarTime, bean.getOperatorTime()) + .eq(QualityDeliverEntity::getLoadTrainNumber, vo.getTrainNumber()) + .eq(QualityDeliverEntity::getPlanReservationCode, vo.getReservationCode()) + .ne(QualityDeliverEntity::getBizStatus, 110); + qualityDeliverService.update(wrapper); + } + // if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) { + // // 根据预约单号查询出所有这个预约单下的数据 先置空 + // LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + // .set(QualityDeliverEntity::getLoadUserName, null) + // .set(QualityDeliverEntity::getLoadTime, null) + // .set(QualityDeliverEntity::getLoadLicensePlate, null) + // .set(QualityDeliverEntity::getLoadNum, null) + // .ne(QualityDeliverEntity::getBizStatus, 110); + // qualityDeliverService.update(wrapper); + // } + + // List details = new ArrayList<>(); + // if (CollUtil.isNotEmpty(details)) { + // for (PackageData detail : details) { + // QualityDeliverEntity qualityDeliverEntity = QualityDeliverEntity.builder() + // .warehouseName(bean.getWarehouse()) + // .warehouseId(warehouseId) + // .startCarUserName(bean.getOperator()) + // .startCarTime(bean.getOperatorTime()) + // .build(); + // if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.CMP)) { + // qualityDeliverEntity.setConditions(1); + // qualityDeliverEntity.setLoadNum(1); + // sendReport(bizOperation, qualityDeliverEntity); + // } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { + // qualityDeliverEntity.setOrderCode(detail.getOrderCode()); + // qualityDeliverEntity.setCostCategory(detail.getProductName()); + // qualityDeliverEntity.setRevenueCategory(detail.getProductName()); + // qualityDeliverEntity.setConditions(2); + // sendReport(bizOperation, qualityDeliverEntity); + // } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { + // qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); + // qualityDeliverEntity.setMallName(detail.getMallName()); + // qualityDeliverEntity.setMaterielCode(detail.getMaterialCode()); + // qualityDeliverEntity.setMaterielName(detail.getMaterialName()); + // qualityDeliverEntity.setConditions(3); + // sendReport(bizOperation, qualityDeliverEntity); + // } + // } + // } + } + + private void sendReport(BizOperationEnums bizOperation, QualityDeliverEntity qualityDeliverEntity) { + if (BizOperationEnums.ADD.equals(bizOperation) || BizOperationEnums.MODIFY.equals(bizOperation)) { + ReportQualityDeliverDTO dto = ReportQualityDeliverDTO.builder().data(JSONUtil.toJsonStr(qualityDeliverEntity)).operation(BizOperationEnums.MODIFY).build(); + factoryDataClient.sendMessage(SendMsg.builder() + .exchange(ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE) + .routingKey(ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY) + .message(JSONUtil.toJsonStr(dto)) + .delay(3000) + .build()); + } + } + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/LoadingReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/LoadingReportListener.java index 7b1ac89d8..c4c8ec825 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/LoadingReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/LoadingReportListener.java @@ -81,6 +81,7 @@ public class LoadingReportListener { .orderPackageCode(detail.getPackageCode()) .loadUserName(bean.getOperator()) .loadNum(detail.getNumber()) + .loadTrainNumber(vo.getTrainNumber()) .loadTime(bean.getOperatorTime()) .loadLicensePlate(vo.getVehicleName()) .build(); @@ -90,6 +91,7 @@ public class LoadingReportListener { sendReport(bizOperation, qualityDeliverEntity); } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { qualityDeliverEntity.setOrderCode(detail.getOrderCode()); + qualityDeliverEntity.setPlanReservationCode(vo.getReservationCode()); qualityDeliverEntity.setCostCategory(detail.getProductName()); qualityDeliverEntity.setRevenueCategory(detail.getProductName()); qualityDeliverEntity.setConditions(2); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java index a9cb1198a..3a7c4bb45 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java @@ -3,6 +3,8 @@ package com.logpm.distribution.receiver.report; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.ReportQualityDeliverDTO; import com.logpm.distribution.entity.QualityDeliverEntity; @@ -63,30 +65,35 @@ public class QualityDeliverListener { } } else if (2 == conditions) { QualityDeliverEntity entity = qualityDeliverService.getOne(Wrappers.lambdaQuery() - .eq(QualityDeliverEntity::getIncomingBatch, qualityDeliverEntity.getIncomingBatch()) + // .eq(QualityDeliverEntity::getIncomingBatch, qualityDeliverEntity.getIncomingBatch()) .eq(QualityDeliverEntity::getMallName, qualityDeliverEntity.getMallName()) .eq(QualityDeliverEntity::getMaterielCode, qualityDeliverEntity.getMaterielCode()) .lt(QualityDeliverEntity::getBizStatus, 110)); if (ObjectUtil.isNotEmpty(entity)) { - qualityDeliverService.update(qualityDeliverEntity, Wrappers.lambdaUpdate() + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() .eq(QualityDeliverEntity::getIncomingBatch, qualityDeliverEntity.getIncomingBatch()) .eq(QualityDeliverEntity::getMallName, qualityDeliverEntity.getMallName()) .eq(QualityDeliverEntity::getMaterielCode, qualityDeliverEntity.getMaterielCode()) - .lt(QualityDeliverEntity::getBizStatus, 110)); + .lt(QualityDeliverEntity::getBizStatus, 110); + if(StrUtil.isNotEmpty(qualityDeliverEntity.getOrderPackageCode())){ + wrapper.eq(QualityDeliverEntity::getOrderPackageCode, qualityDeliverEntity.getOrderPackageCode()); + } + qualityDeliverService.update(qualityDeliverEntity, wrapper); } else { // 获取基础数据赋值 qualityDeliverService.save(qualityDeliverEntity); } } else if (3 == conditions) { - QualityDeliverEntity entity = qualityDeliverService.getOne(Wrappers.lambdaQuery() + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() .eq(QualityDeliverEntity::getOrderCode, qualityDeliverEntity.getOrderCode()) .eq(QualityDeliverEntity::getCostCategory, qualityDeliverEntity.getCostCategory()) - .lt(QualityDeliverEntity::getBizStatus, 110)); + .lt(QualityDeliverEntity::getBizStatus, 110); + if(StrUtil.isNotEmpty(qualityDeliverEntity.getPlanReservationCode())){ + wrapper.eq(QualityDeliverEntity::getPlanReservationCode, qualityDeliverEntity.getPlanReservationCode()); + } + QualityDeliverEntity entity = qualityDeliverService.getOne(wrapper); if (ObjectUtil.isNotEmpty(entity)) { - qualityDeliverService.update(qualityDeliverEntity, Wrappers.lambdaUpdate() - .eq(QualityDeliverEntity::getOrderCode, qualityDeliverEntity.getOrderCode()) - .eq(QualityDeliverEntity::getCostCategory, qualityDeliverEntity.getCostCategory()) - .lt(QualityDeliverEntity::getBizStatus, 110)); + qualityDeliverService.update(qualityDeliverEntity, wrapper); } else { // 获取基础数据赋值 qualityDeliverService.save(qualityDeliverEntity); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReViewReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReViewReportListener.java new file mode 100644 index 000000000..2a579831f --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReViewReportListener.java @@ -0,0 +1,120 @@ +package com.logpm.distribution.receiver.report; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.logpm.distribution.dto.ReportQualityDeliverDTO; +import com.logpm.distribution.entity.QualityDeliverEntity; +import com.logpm.distribution.service.IQualityDeliverService; +import com.logpm.factorydata.feign.IFactoryDataClient; +import com.logpm.factorydata.vo.SendMsg; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springblade.common.constant.report.ReportConstants; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.enums.PackageTypeEnums; +import org.springblade.common.model.DistributionSignforVO; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.PackageData; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 文员复核生成明细报表 + * + * @author zhaoqiaobo + * @create 2024-03-18 0:02 + */ +@Slf4j +@Component +@AllArgsConstructor +public class ReViewReportListener { + + @Resource + private IQualityDeliverService qualityDeliverService; + @Resource + private IFactoryDataClient factoryDataClient; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.distribution.DeliveryAndrecheck.QUEUE.REPORT, durable = "true"), + exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndrecheck.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + @Transactional(rollbackFor = Exception.class) + public void buildReport(String msg) { + log.info("文员复核生成明细报表: {}", msg); + if (StrUtil.isEmpty(msg)) { + return; + } + NodeFanoutMsg bean = JSONUtil.toBean(msg, NodeFanoutMsg.class); + Object main = bean.getMain(); + JSONObject entries = JSONUtil.parseObj(main); + DistributionSignforVO vo = JSONUtil.toBean(entries, DistributionSignforVO.class); + Long warehouseId = bean.getWarehouseId(); + BizOperationEnums bizOperation = bean.getBizOperation(); + List details = vo.getPackageDataList(); + // if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) { + // // 根据预约单号查询出所有这个预约单下的数据 先置空 + // LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + // .set(QualityDeliverEntity::getLoadUserName, null) + // .set(QualityDeliverEntity::getLoadTime, null) + // .set(QualityDeliverEntity::getLoadLicensePlate, null) + // .set(QualityDeliverEntity::getLoadNum, null) + // .ne(QualityDeliverEntity::getBizStatus, 110); + // qualityDeliverService.update(wrapper); + // } + if (CollUtil.isNotEmpty(details)) { + for (PackageData detail : details) { + QualityDeliverEntity qualityDeliverEntity = QualityDeliverEntity.builder() + .warehouseName(bean.getWarehouse()) + .warehouseId(warehouseId) + .orderPackageCode(detail.getPackageCode()) + .reviewUserName(bean.getOperator()) + .reviewTime(bean.getOperatorTime()) + .build(); + if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.CMP)) { + qualityDeliverEntity.setConditions(1); + qualityDeliverEntity.setLoadNum(1); + sendReport(bizOperation, qualityDeliverEntity); + } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { + qualityDeliverEntity.setPlanReservationCode(vo.getReservationCode()); + qualityDeliverEntity.setOrderCode(detail.getOrderCode()); + qualityDeliverEntity.setCostCategory(detail.getProductName()); + qualityDeliverEntity.setRevenueCategory(detail.getProductName()); + qualityDeliverEntity.setConditions(2); + sendReport(bizOperation, qualityDeliverEntity); + } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { + qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); + qualityDeliverEntity.setMallName(detail.getMallName()); + qualityDeliverEntity.setMaterielCode(detail.getMaterialCode()); + qualityDeliverEntity.setMaterielName(detail.getMaterialName()); + qualityDeliverEntity.setConditions(3); + sendReport(bizOperation, qualityDeliverEntity); + } + } + } + } + + private void sendReport(BizOperationEnums bizOperation, QualityDeliverEntity qualityDeliverEntity) { + if (BizOperationEnums.ADD.equals(bizOperation) || BizOperationEnums.MODIFY.equals(bizOperation)) { + ReportQualityDeliverDTO dto = ReportQualityDeliverDTO.builder().data(JSONUtil.toJsonStr(qualityDeliverEntity)).operation(BizOperationEnums.MODIFY).build(); + factoryDataClient.sendMessage(SendMsg.builder() + .exchange(ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE) + .routingKey(ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY) + .message(JSONUtil.toJsonStr(dto)) + .delay(3000) + .build()); + } + } + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/SignforReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/SignforReportListener.java index 856535c7a..4b2d359ef 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/SignforReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/SignforReportListener.java @@ -19,7 +19,6 @@ import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.model.DistributionSignforVO; import org.springblade.common.model.NodeFanoutMsg; import org.springblade.common.model.PackageData; -import org.springblade.common.model.ReservationVO; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; @@ -89,6 +88,7 @@ public class SignforReportListener { qualityDeliverEntity.setLoadNum(1); sendReport(bizOperation, qualityDeliverEntity); } else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { + qualityDeliverEntity.setPlanReservationCode(vo.getReservationCode()); qualityDeliverEntity.setOrderCode(detail.getOrderCode()); qualityDeliverEntity.setCostCategory(detail.getProductName()); qualityDeliverEntity.setRevenueCategory(detail.getProductName()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/StockReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/StockReportListener.java index a6730df9d..7dd054943 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/StockReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/StockReportListener.java @@ -20,6 +20,7 @@ import org.springblade.common.enums.BizOperationEnums; import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.model.NodeFanoutMsg; import org.springblade.common.model.PackageData; +import org.springblade.common.model.ReservationVO; import org.springblade.common.model.StockUpVO; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; @@ -64,7 +65,8 @@ public class StockReportListener { StockUpVO vo = JSONUtil.toBean(entries, StockUpVO.class); Long warehouseId = bean.getWarehouseId(); BizOperationEnums bizOperation = bean.getBizOperation(); - List details = vo.getReservationVO().getPackageDataList(); + ReservationVO reservationVO = vo.getReservationVO(); + List details = reservationVO.getPackageDataList(); if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) { // 根据预约单号查询出所有这个预约单下的数据 先置空 LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java index 8adbaa3f2..2c032bbf0 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java @@ -22,7 +22,6 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.google.gson.Gson; import com.logpm.factory.comfac.service.IAsyncDataService; import com.logpm.factory.comfac.service.IOrderStatusLogService; import com.logpm.factory.mt.dto.MtFactoryDataDTO; diff --git a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java index 0dbf98df6..52e2666af 100644 --- a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java +++ b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java @@ -5,7 +5,6 @@ package com.logpm.supervise; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java index a82e78131..d17b93470 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java @@ -19,7 +19,6 @@ package com.logpm.trunkline; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 @@ -27,7 +26,6 @@ import org.springblade.core.transaction.annotation.SeataCloudApplication; * @author Chill */ @BladeCloudApplication -@SeataCloudApplication public class TrunkLineApplication { public static void main(String[] args) { diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java index a8668fb2e..20720b6d2 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java @@ -19,7 +19,6 @@ package com.logpm.warehouse; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器