Browse Source

feat(all): 修改配送明细报表报错问题

dist.1.3.0
zhaoqiaobo 6 months ago
parent
commit
af1fca0a04
  1. 5
      blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java
  2. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/QualityDeliverEntity.java
  3. 1
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java
  4. 1
      blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java
  5. 1
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java
  6. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java
  7. 1
      blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java
  8. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java
  9. 84
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/CarStartReportListener.java
  10. 134
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ConsigneeArriveReportListener.java
  11. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/LoadingReportListener.java
  12. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java
  13. 120
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReViewReportListener.java
  14. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/SignforReportListener.java
  15. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/StockReportListener.java
  16. 1
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java
  17. 1
      blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java
  18. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java
  19. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java

5
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;
}
}

2
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;
/**
* 滞留人
*/

1
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启动器

1
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启动器

1
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启动器

2
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;

1
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 {

1
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启动器

84
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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>lambdaUpdate()
@ -73,36 +85,36 @@ public class CarStartReportListener {
// .ne(QualityDeliverEntity::getBizStatus, 110);
// qualityDeliverService.update(wrapper);
// }
List<PackageData> 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<PackageData> 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) {

134
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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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<PackageData> 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());
}
}
}

2
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);

25
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.<QualityDeliverEntity>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.<QualityDeliverEntity>lambdaUpdate()
LambdaUpdateWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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.<QualityDeliverEntity>lambdaQuery()
LambdaQueryWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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.<QualityDeliverEntity>lambdaUpdate()
.eq(QualityDeliverEntity::getOrderCode, qualityDeliverEntity.getOrderCode())
.eq(QualityDeliverEntity::getCostCategory, qualityDeliverEntity.getCostCategory())
.lt(QualityDeliverEntity::getBizStatus, 110));
qualityDeliverService.update(qualityDeliverEntity, wrapper);
} else {
// 获取基础数据赋值
qualityDeliverService.save(qualityDeliverEntity);

120
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<PackageData> details = vo.getPackageDataList();
// if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) {
// // 根据预约单号查询出所有这个预约单下的数据 先置空
// LambdaUpdateWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>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());
}
}
}

2
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());

4
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<PackageData> details = vo.getReservationVO().getPackageDataList();
ReservationVO reservationVO = vo.getReservationVO();
List<PackageData> details = reservationVO.getPackageDataList();
if (BizOperationEnums.MODIFY.equals(bizOperation) || BizOperationEnums.DELETE.equals(bizOperation)) {
// 根据预约单号查询出所有这个预约单下的数据 先置空
LambdaUpdateWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>lambdaUpdate()

1
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;

1
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启动器

2
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) {

1
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启动器

Loading…
Cancel
Save