Browse Source

feat(all): 服务商成本维护

1 增加批量新增司机
fix-sign
zhaoqiaobo 2 months ago
parent
commit
9aeb38428b
  1. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java
  2. 417
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverAddListener.java
  3. 33
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java
  4. 66
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReportListener.java
  5. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReservationPlanReportListener.java

25
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java

@ -16,6 +16,7 @@ import com.logpm.factorydata.vo.SendMsg;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.WorkNodeEnums;
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;
@ -74,7 +75,7 @@ public class PlanReportListener implements ReportService {
Map<String, List<QualityDeliverEntity>> cmpMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> ltlMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> invMap = new HashMap<>();
if(CollUtil.isNotEmpty(reservationCodeSet)){
if (CollUtil.isNotEmpty(reservationCodeSet)) {
List<QualityDeliverEntity> qualityDeliverEntities = qualityDeliverService.list(Wrappers.<QualityDeliverEntity>lambdaQuery().in(QualityDeliverEntity::getPlanReservationCode, reservationCodeSet));
if (CollUtil.isNotEmpty(qualityDeliverEntities)) {
cmpMap = qualityDeliverEntities.stream()
@ -86,6 +87,15 @@ public class PlanReportListener implements ReportService {
invMap = qualityDeliverEntities.stream()
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.INV.getCode()))
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getMallName() + item.getMaterielCode()));
} else {
// 没有查询到,延迟30秒重新推送
factoryDataClient.sendMessage(SendMsg.builder()
.exchange(FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE)
.routingKey(null)
.message(msg)
.delay(30000)
.build());
return;
}
}
for (ReservationVO reservationVO : reservationVOList) {
@ -161,7 +171,7 @@ public class PlanReportListener implements ReportService {
// 系统中有的包件在当前不存在,则删除
Set<String> cmpSet = details.stream()
.filter(item -> ObjectUtil.equals(item.getPackageType(), PackageTypeEnums.CMP))
.map(i-> reservationCode + i.getPackageCode()).collect(Collectors.toSet());
.map(i -> reservationCode + i.getPackageCode()).collect(Collectors.toSet());
for (Map.Entry<String, List<QualityDeliverEntity>> entry : cmpMap.entrySet()) {
String key = entry.getKey();
if (!cmpSet.contains(key)) {
@ -197,11 +207,16 @@ public class PlanReportListener implements ReportService {
.operation(operationEnums)
.node(WorkNodeEnums.PLAN_DELIVERY.getValue())
.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(ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE)
.routingKey(ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY)
.exchange(exchange)
.routingKey(routKey)
.message(JSONUtil.toJsonStr(dto))
.delay(3000)
.build());
}

417
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverAddListener.java

@ -0,0 +1,417 @@
package com.logpm.distribution.receiver.report;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataFactoryCategoryClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.ReportQualityDeliverDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistributionStockListInfoEntity;
import com.logpm.distribution.entity.QualityDeliverEntity;
import com.logpm.distribution.pros.DistributionProperties;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.service.IDistributionStockListInfoService;
import com.logpm.distribution.service.IDistributionStockListService;
import com.logpm.distribution.service.IQualityDeliverService;
import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient;
import com.logpm.warehouse.entity.WarehouseWayBillDetail;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable;
import org.springblade.common.constant.WorkNodeEnums;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.core.redis.cache.BladeRedis;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
* 配送明细基础表处理类
*
* @author zhaoqiaobo
* @create 2024-03-18 0:02
*/
@Slf4j
@Component
@AllArgsConstructor
public class QualityDeliverAddListener implements ReportService {
@Resource
private IQualityDeliverService qualityDeliverService;
@Resource
private IBasicdataWarehouseClient warehouseClient;
@Resource
private IDistributionParcelListService parcelListService;
@Resource
private IDistributionStockArticleService stockArticleService;
@Resource
private IWarehouseWaybillClient warehouseWaybillClient;
@Resource
private IDistributionStockListService stockListService;
@Resource
private IDistributionStockListInfoService stockListInfoService;
@Resource
private IBasicdataFactoryCategoryClient factoryCategoryClient;
@Resource
private ITrunklineAdvanceDetailClient advanceDetailClient;
@Resource
private IWarehouseWaybillDetailClient waybillDetailClient;
@Resource
private BladeRedis redisCache;
@Resource
private DistributionProperties destinationProperties;
@Transactional
public void buildReport(String msg) {
ReportQualityDeliverDTO bean = JSONUtil.toBean(msg, ReportQualityDeliverDTO.class);
String node = bean.getNode();
String data = bean.getData();
QualityDeliverEntity qualityDeliverEntity = JSONUtil.toBean(data, QualityDeliverEntity.class);
if (ObjectUtil.equals(bean.getOperation(), BizOperationEnums.ADD)) {
// 查询不存在时更新,存在时修改
saveOrUpdate(null, qualityDeliverEntity);
}
}
/**
* 构建库存品查询Wrapper
*
* @param qualityDeliverEntity
* @Return com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.logpm.distribution.entity.QualityDeliverEntity>
* @Author zqb 2024/9/10
**/
private static @Nullable LambdaQueryWrapper<QualityDeliverEntity> buildInvWrapper(QualityDeliverEntity qualityDeliverEntity) {
LambdaQueryWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>lambdaQuery()
.lt(QualityDeliverEntity::getBizStatus, 110);
if (ObjectUtil.isNotEmpty(qualityDeliverEntity.getId())) {
// 库存品更新优先按id更新
wrapper.eq(QualityDeliverEntity::getId, qualityDeliverEntity.getId());
} else {
if (StrUtil.isNotEmpty(qualityDeliverEntity.getOrderPackageCode())) {
// 没有id,按包条码更新
wrapper.eq(QualityDeliverEntity::getOrderPackageCode, qualityDeliverEntity.getOrderPackageCode());
} else {
if (StrUtil.isEmpty(qualityDeliverEntity.getMallName())) {
// 没有id,没有包条码。没有商场,不处理。
return null;
} else {
// 否则加上商场过滤
wrapper.eq(QualityDeliverEntity::getMallName, qualityDeliverEntity.getMallName());
}
if (StrUtil.isEmpty(qualityDeliverEntity.getMaterielCode()) && StrUtil.isEmpty(qualityDeliverEntity.getMaterielName())) {
// 没有id,没有包条码,没有商场,没有物料,不处理。
return null;
}
if (StrUtil.isNotEmpty(qualityDeliverEntity.getMaterielCode())) {
// 优先按物料编码更新
wrapper.eq(QualityDeliverEntity::getMaterielCode, qualityDeliverEntity.getMaterielCode());
} else {
// 按物料名称更新
wrapper.eq(QualityDeliverEntity::getMaterielName, qualityDeliverEntity.getMaterielName());
}
}
if (StrUtil.isNotEmpty(qualityDeliverEntity.getBizCode())) {
// 有预约单号时加上预约单号过滤:存在同一个库存品在多个预约单中,只根据库存品本身的信息无法查询出对应的数据的情况。
wrapper.eq(QualityDeliverEntity::getBizCode, qualityDeliverEntity.getBizCode());
}
}
return wrapper;
}
/**
* 修改或者新增
*
* @param wrapper
* @param qualityDeliverEntity
* @Return void
* @Author zqb 2024/9/10
**/
private void saveOrUpdate(LambdaQueryWrapper<QualityDeliverEntity> wrapper, QualityDeliverEntity qualityDeliverEntity) {
QualityDeliverEntity entity = null;
if (ObjectUtil.isNotEmpty(wrapper)) {
wrapper.select(QualityDeliverEntity::getId);
entity = qualityDeliverService.getOne(wrapper);
}
if (ObjectUtil.isNotEmpty(entity)) {
// 修改
qualityDeliverEntity.setId(entity.getId());
qualityDeliverService.updateById(qualityDeliverEntity);
} else {
// 新增
// 初始化基础数据
initBasicData(qualityDeliverEntity);
qualityDeliverService.save(qualityDeliverEntity);
}
}
private void initBasicData(QualityDeliverEntity qualityDeliverEntity) {
// 仓库信息
warehouseInfo(qualityDeliverEntity);
Integer conditions = qualityDeliverEntity.getConditions();
if (ObjectUtil.equals(PackageTypeEnums.CMP.getCode(), conditions)) {
// 订制品
// 构建订制品基础信息
DistributionParcelListEntity parcelListEntity = getDistributionParcelListEntity(qualityDeliverEntity.getOrderPackageCode(), qualityDeliverEntity.getWarehouseId());
buildCmpBasicInfo(qualityDeliverEntity, parcelListEntity);
}
if (ObjectUtil.equals(PackageTypeEnums.INV.getCode(), conditions)) {
// 库存品
buildInvBasicInfo(qualityDeliverEntity);
}
if (ObjectUtil.equals(PackageTypeEnums.LTL.getCode(), conditions)) {
// 零担
WarehouseWayBillDetail wayBillDetail = waybillDetailClient.findENtityByCodeAndName(qualityDeliverEntity.getOrderCode(), qualityDeliverEntity.getCategory());
if (ObjectUtil.isNotEmpty(wayBillDetail)) {
qualityDeliverEntity.setCostCategoryId(wayBillDetail.getProductId());
qualityDeliverEntity.setRevenueCategoryId(wayBillDetail.getProductId());
qualityDeliverEntity.setCostCategory(wayBillDetail.getProductName());
qualityDeliverEntity.setRevenueCategory(wayBillDetail.getProductName());
}
DistributionParcelListEntity parcelListEntity = parcelListService.findByOrderCodeAndCategory(qualityDeliverEntity.getOrderCode(), qualityDeliverEntity.getCategory(), qualityDeliverEntity.getWarehouseId());
buildCmpBasicInfo(qualityDeliverEntity, parcelListEntity);
// buildOrderInfo(qualityDeliverEntity, qualityDeliverEntity.getWarehouseId(), qualityDeliverEntity.getOrderCode());
}
}
private DistributionParcelListEntity getDistributionParcelListEntity(String orderPackageCode, Long warehouseId) {
DistributionParcelListEntity parcelListEntity = parcelListService.selectByOrderPackageCode(orderPackageCode, warehouseId);
return parcelListEntity;
}
private void buildInvBasicInfo(QualityDeliverEntity qualityDeliverEntity) {
String materielName = qualityDeliverEntity.getMaterielName();
DistributionStockListEntity stockListEntity = new DistributionStockListEntity();
stockListEntity.setIncomingBatch(qualityDeliverEntity.getIncomingBatch());
stockListEntity.setMallName(qualityDeliverEntity.getMallName());
stockListEntity.setCargoNumber((qualityDeliverEntity.getMaterielCode()));
stockListEntity.setDescriptionGoods(materielName);
stockListEntity.setWarehouseId(qualityDeliverEntity.getWarehouseId());
DistributionStockListEntity stockList = stockListService.findStockListByAttrAndWarehouseId(stockListEntity);
if (ObjectUtil.isNotEmpty(stockList)) {
String brandName = stockList.getBrandName();
String sourceType = stockList.getSourceType();
if (StrUtil.equals(sourceType, "1")) {
// 定制品转的库存品先查出包条码
List<DistributionStockListInfoEntity> list = stockListInfoService.list(Wrappers.<DistributionStockListInfoEntity>lambdaQuery().eq(DistributionStockListInfoEntity::getStockListId, stockList.getId()));
if (CollUtil.isNotEmpty(list)) {
DistributionStockListInfoEntity distributionStockListInfoEntity = list.get(0);
DistributionParcelListEntity parcelListEntity = getDistributionParcelListEntity(distributionStockListInfoEntity.getPackageCode(), qualityDeliverEntity.getWarehouseId());
buildCmpBasicInfo(qualityDeliverEntity, parcelListEntity);
}
} else {
qualityDeliverEntity.setBeginWarehouseName(stockList.getWarehouseName());
qualityDeliverEntity.setBeginWarehouseInTime(stockList.getWarehousingTime());
qualityDeliverEntity.setBrandName(brandName);
qualityDeliverEntity.setMallCode(stockList.getMarketCode());
qualityDeliverEntity.setMallId(stockList.getMarketId());
qualityDeliverEntity.setAssignedCustomerId(Convert.toStr(stockList.getMarketId()));
qualityDeliverEntity.setAssignedCustomer(stockList.getMarketName());
qualityDeliverEntity.setStoreCode(stockList.getStoreCode());
qualityDeliverEntity.setStoreName(stockList.getStoreName());
qualityDeliverEntity.setEndWarehouseInTime(stockList.getWarehousingTime());
}
// 品类
// if (StrUtil.isNotEmpty(materielName) && StrUtil.isNotEmpty(brandName)) {
// BasicdataFactoryCategoryEntity factoryCategoryEntity = new BasicdataFactoryCategoryEntity();
// factoryCategoryEntity.setMaterielName(materielName);
// factoryCategoryEntity.setBrand(brandName);
// factoryCategoryEntity.setType(2);
// BasicdataFactoryCategoryEntity categoryEntity = factoryCategoryClient.findEntityByBrandAndMaterielName(factoryCategoryEntity);
// factoryCategoryEntity.setType(1);
// BasicdataFactoryCategoryEntity categoryEntity1 = factoryCategoryClient.findEntityByBrandAndMaterielName(factoryCategoryEntity);
// if (ObjectUtil.isNotEmpty(categoryEntity)) {
// qualityDeliverEntity.setCostCategoryId(categoryEntity.getCategoryId());
// qualityDeliverEntity.setCostCategory(categoryEntity.getCategory());
// }
// if (ObjectUtil.isNotEmpty(categoryEntity1)) {
// qualityDeliverEntity.setRevenueCategory(categoryEntity.getCategory());
// qualityDeliverEntity.setRevenueCategoryId(categoryEntity1.getCategoryId());
// }
// TODO 从入库单上查询入库时间
// }
}
}
private void buildCmpBasicInfo(QualityDeliverEntity qualityDeliverEntity, DistributionParcelListEntity parcelListEntity) {
if (ObjectUtil.isNotEmpty(parcelListEntity)) {
// 品牌
qualityDeliverEntity.setBrandName(parcelListEntity.getBrandName());
// 商场id
// qualityDeliverEntity.setMallId(parcelListEntity.getMallId());
// 订制品的物料从包件上取
if (ObjectUtil.equals(PackageTypeEnums.CMP.getCode(), qualityDeliverEntity.getConditions())) {
// 物料名称
qualityDeliverEntity.setMaterielName(parcelListEntity.getMaterialName());
// 物料编码
qualityDeliverEntity.setMaterielCode(parcelListEntity.getMaterialCode());
}
// 包条码
if (StrUtil.isNotEmpty(parcelListEntity.getOrderPackageCode())) {
qualityDeliverEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
}
// 订单号
qualityDeliverEntity.setOrderCode(parcelListEntity.getOrderCode());
// 工厂车次号
qualityDeliverEntity.setTrainNumber(parcelListEntity.getTrainNumber());
// 一级品
qualityDeliverEntity.setFirstsProduct(parcelListEntity.getFirsts());
// 二级品
qualityDeliverEntity.setSecondProduct(parcelListEntity.getSecond());
// 三级品
qualityDeliverEntity.setThirdProduct(parcelListEntity.getThirdProduct());
// 体积
qualityDeliverEntity.setVolume(parcelListEntity.getVolume());
// 重量
qualityDeliverEntity.setWeight(parcelListEntity.getWeight());
// 运单号
String waybillNumber = parcelListEntity.getWaybillNumber();
qualityDeliverEntity.setWaybillNumber(parcelListEntity.getWaybillNumber());
// 始发仓
qualityDeliverEntity.setBeginWarehouseName(parcelListEntity.getSendWarehouseName());
// 当前仓入库时间
qualityDeliverEntity.setEndWarehouseInTime(parcelListEntity.getWarehouseEntryTimeEnd());
// 构建运单相关信息
buildWaybillInfo(qualityDeliverEntity, waybillNumber);
}
// 暂存单查询结算品类
// TrunklineAdvanceDetailEntity advanceDetailEntity = advanceDetailClient.findEntityByOrderPackageCode(qualityDeliverEntity.getOrderPackageCode());
// if (ObjectUtil.isNotEmpty(advanceDetailEntity)) {
// qualityDeliverEntity.setCostCategoryId(advanceDetailEntity.getCostCategoryId());
// qualityDeliverEntity.setCostCategory(advanceDetailEntity.getCostCategoryName());
// qualityDeliverEntity.setRevenueCategoryId(advanceDetailEntity.getIncomeCategoryId());
// qualityDeliverEntity.setRevenueCategory(advanceDetailEntity.getIncomeCategoryName());
// }
// 构建订单相关信息
buildOrderInfo(qualityDeliverEntity, qualityDeliverEntity.getWarehouseId(), qualityDeliverEntity.getOrderCode());
}
private void buildOrderInfo(QualityDeliverEntity qualityDeliverEntity, Long warehouseId, String orderCode) {
DistributionStockArticleEntity stockArticleEntity = getDistributionStockArticleEntity(warehouseId, orderCode);
if (ObjectUtil.isNotEmpty(stockArticleEntity)) {
qualityDeliverEntity.setOrderNumber(stockArticleEntity.getTotalNumber());
// 客户信息
qualityDeliverEntity.setCustomName(stockArticleEntity.getCustomerName());
qualityDeliverEntity.setCustomPhone(stockArticleEntity.getCustomerTelephone());
qualityDeliverEntity.setCustomAddress(stockArticleEntity.getCustomerAddress());
// 商场信息
qualityDeliverEntity.setMallName(stockArticleEntity.getMallName());
qualityDeliverEntity.setMallId(stockArticleEntity.getMallId());
qualityDeliverEntity.setMallCode(stockArticleEntity.getMallCode());
// 服务号
qualityDeliverEntity.setServiceNumber(stockArticleEntity.getServiceNumber());
// 经销商信息
qualityDeliverEntity.setDealerName(stockArticleEntity.getDealerName());
qualityDeliverEntity.setDealerCode(stockArticleEntity.getDealerCode());
// 门店信息
qualityDeliverEntity.setStoreCode(stockArticleEntity.getStoreCode());
qualityDeliverEntity.setStoreName(stockArticleEntity.getStoreName());
// 品牌
qualityDeliverEntity.setBrandName(stockArticleEntity.getBrand());
}
}
private DistributionStockArticleEntity getDistributionStockArticleEntity(Long warehouseId, String orderCode) {
String key = "report:qualityDeliver:stockArticle:" + warehouseId + "_" + orderCode;
String obj = redisCache.get(key);
if (StrUtil.isNotEmpty(obj)) {
return JSONUtil.toBean(obj, DistributionStockArticleEntity.class);
}
DistributionStockArticleEntity stockArticleEntity = stockArticleService.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (ObjectUtil.isNotEmpty(stockArticleEntity)) {
redisCache.setEx(key, JSONUtil.toJsonStr(stockArticleEntity), 60 * 60L + RandomUtil.randomInt(600));
return stockArticleEntity;
}
return null;
}
private void buildWaybillInfo(QualityDeliverEntity qualityDeliverEntity, String waybillNumber) {
if (StrUtil.isNotEmpty(waybillNumber)) {
WarehouseWaybillEntity byWaybillNo = getWarehouseWaybillEntity(waybillNumber);
if (ObjectUtil.isNotEmpty(byWaybillNo)) {
qualityDeliverEntity.setOpenOrderTime(byWaybillNo.getDocumentMakingTime());
// 运单发货信息
qualityDeliverEntity.setShipperUnitId(byWaybillNo.getShipperId());
qualityDeliverEntity.setShipperUnit(byWaybillNo.getShipper());
qualityDeliverEntity.setShipperPerson(byWaybillNo.getShipperName());
qualityDeliverEntity.setShipperMobile(byWaybillNo.getShipperMobile());
qualityDeliverEntity.setShipperAddress(byWaybillNo.getShipperAddress());
// 运单收货信息
qualityDeliverEntity.setConsigneeUnitId(byWaybillNo.getConsigneeId());
qualityDeliverEntity.setConsigneeUnit(byWaybillNo.getConsignee());
qualityDeliverEntity.setConsigneePerson(byWaybillNo.getConsigneeName());
qualityDeliverEntity.setConsigneeMobile(byWaybillNo.getConsigneeMobile());
qualityDeliverEntity.setConsigneeAddress(byWaybillNo.getConsigneeAddress());
qualityDeliverEntity.setAssignedCustomerId(Convert.toStr(byWaybillNo.getConsigneeId()));
qualityDeliverEntity.setAssignedCustomer(byWaybillNo.getConsignee());
}
}
}
private WarehouseWaybillEntity getWarehouseWaybillEntity(String waybillNumber) {
String key = "report:qualityDeliver:waybill:" + waybillNumber;
String obj = redisCache.get(key);
if (StrUtil.isNotEmpty(obj)) {
return JSONUtil.toBean(obj, WarehouseWaybillEntity.class);
}
WarehouseWaybillEntity byWaybillNo = warehouseWaybillClient.findByWaybillNo(waybillNumber);
if (ObjectUtil.isNotEmpty(byWaybillNo)) {
redisCache.setEx(key, JSONUtil.toJsonStr(byWaybillNo), 60 * 60L + RandomUtil.randomInt(600));
return byWaybillNo;
}
return null;
}
private void warehouseInfo(QualityDeliverEntity qualityDeliverEntity) {
BasicdataWarehouseEntity warehouseEntity = getBasicdataWarehouseEntities(qualityDeliverEntity.getWarehouseId());
if (ObjectUtil.isNotEmpty(warehouseEntity)) {
// 事业线
qualityDeliverEntity.setBusinessUnit(warehouseEntity.getBusinessLine());
qualityDeliverEntity.setWarehousePosition(StrUtil.concat(true, Convert.toStr(warehouseEntity.getLongitude()), ",", Convert.toStr(warehouseEntity.getLatitude())));
}
}
public BasicdataWarehouseEntity getBasicdataWarehouseEntities(Long warehouseId) {
String key = "report:qualityDeliver:warehouse:" + warehouseId;
String obj = redisCache.get(key);
if (StrUtil.isNotEmpty(obj)) {
return JSONUtil.toBean(obj, BasicdataWarehouseEntity.class);
}
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.findWarehousesByIds(Arrays.asList(warehouseId));
if (CollUtil.isNotEmpty(warehouseEntities)) {
redisCache.setEx(key, JSONUtil.toJsonStr(warehouseEntities.get(0)), 60 * 60L + RandomUtil.randomInt(600));
return warehouseEntities.get(0);
}
return null;
}
}

33
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/QualityDeliverListener.java

@ -97,39 +97,6 @@ public class QualityDeliverListener implements ReportService {
Integer conditions = qualityDeliverEntity.getConditions();
if (ObjectUtil.equals(bean.getOperation(), BizOperationEnums.MODIFY)) {
qualityDeliverService.updateById(qualityDeliverEntity);
// if (ObjectUtil.equals(PackageTypeEnums.CMP.getCode(), conditions)) {
// // 定制品
// LambdaQueryWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>lambdaQuery();
// if (ObjectUtil.isNotEmpty(qualityDeliverEntity.getId())) {
// wrapper.eq(QualityDeliverEntity::getId, qualityDeliverEntity.getId());
// } else {
// wrapper.eq(QualityDeliverEntity::getOrderPackageCode, qualityDeliverEntity.getOrderPackageCode());
// }
// wrapper.lt(QualityDeliverEntity::getBizStatus, 110);
// saveOrUpdate(wrapper, qualityDeliverEntity);
// } else if (ObjectUtil.equals(PackageTypeEnums.INV.getCode(), conditions)) {
// // 库存品
// LambdaQueryWrapper<QualityDeliverEntity> wrapper = buildInvWrapper(qualityDeliverEntity);
// if (wrapper == null) {
// return;
// }
// // 查询不存在时更新,存在时修改
// saveOrUpdate(wrapper, qualityDeliverEntity);
// } else if (ObjectUtil.equals(PackageTypeEnums.LTL.getCode(), conditions)) {
// // 零担
// LambdaQueryWrapper<QualityDeliverEntity> wrapper = Wrappers.<QualityDeliverEntity>lambdaQuery();
// if (ObjectUtil.isNotEmpty(qualityDeliverEntity.getId())) {
// wrapper.eq(QualityDeliverEntity::getId, qualityDeliverEntity.getId());
// } else {
// wrapper.eq(QualityDeliverEntity::getOrderCode, qualityDeliverEntity.getOrderCode())
// .eq(QualityDeliverEntity::getCategory, qualityDeliverEntity.getCategory());
// }
// wrapper.lt(QualityDeliverEntity::getBizStatus, 110);
// if (StrUtil.isNotEmpty(qualityDeliverEntity.getBizCode())) {
// wrapper.eq(QualityDeliverEntity::getBizCode, qualityDeliverEntity.getBizCode());
// }
// saveOrUpdate(wrapper, qualityDeliverEntity);
// }
}
if (ObjectUtil.equals(bean.getOperation(), BizOperationEnums.ADD)) {
// 查询不存在时更新,存在时修改

66
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReportListener.java

@ -8,6 +8,7 @@ import com.rabbitmq.client.Channel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.constant.factorydata.FactoryDataConstants;
import org.springblade.common.constant.report.ReportConstants;
import org.springblade.common.model.workNode.FinishDistributionTrainVO;
import org.springframework.amqp.core.ExchangeTypes;
@ -63,6 +64,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.DeliveryOfPickup.BillSignReview.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.DeliveryOfPickup.BillSignReview.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -89,6 +91,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.DeliveryOfPickup.BillSign.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.DeliveryOfPickup.BillSign.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -115,6 +118,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndCarStart.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndCarStart.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -141,6 +145,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndConsigneeArrive.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndConsigneeArrive.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -167,6 +172,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndFinish.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndFinish.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -194,6 +200,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndLoading.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndLoading.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -220,6 +227,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndPlan.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -247,6 +255,35 @@ public class ReportListener {
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.DeliveryAndPlan.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE_DELAY,
type = ExchangeTypes.FANOUT,
delayed = FactoryDataConstants.Mq.DELAYED)
), ackMode = "MANUAL")
public void planReportDelayListener(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) {
Boolean flag = Boolean.TRUE;
if (!destinationProperties.getReport().getPlanReport()) {
flag = Boolean.FALSE;
}
log.info("配送计划生成明细报表: {}", msg);
if (StrUtil.isEmpty(msg)) {
flag = Boolean.FALSE;
}
if (flag) {
try {
selectReportService(PlanReportListener.class).buildReport(msg);
} catch (Exception e) {
log.error("配送计划生成明细报表失败: {}", e.getMessage());
}
}
try {
channel.basicAck(tag, false);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.reservation.OwnReservation.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.reservation.OwnReservation.EXCHANGE, type = ExchangeTypes.FANOUT)
@ -381,6 +418,7 @@ public class ReportListener {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = ReportConstants.REPORT_QUALITY_DELIVER_QUEUE, durable = "true"),
exchange = @Exchange(name = ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE, type = ExchangeTypes.TOPIC),
@ -409,6 +447,34 @@ public class ReportListener {
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = ReportConstants.REPORT_QUALITY_DELIVER_ADD_QUEUE, durable = "true"),
exchange = @Exchange(name = ReportConstants.REPORT_QUALITY_DELIVER_ADD_EXCHANGE, type = ExchangeTypes.TOPIC),
key = ReportConstants.REPORT_QUALITY_DELIVER_ADD_ROUTINGKEY
), ackMode = "MANUAL")
public void qualityDeliverAddListener(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) {
Boolean flag = Boolean.TRUE;
if (!destinationProperties.getReport().getQualityDeliver()) {
flag = Boolean.FALSE;
}
log.info("配送明细基础表Add: {}", msg);
if (StrUtil.isEmpty(msg)) {
flag = Boolean.FALSE;
}
if (flag) {
try {
selectReportService(QualityDeliverAddListener.class).buildReport(msg);
} catch (Exception e) {
log.error("配送明细基础表Add失败: {}", e.getMessage());
}
}
try {
channel.basicAck(tag, false);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = ReportConstants.REPORT_QUALITY_CAR_FINAL_QUEUE, durable = "true"),
exchange = @Exchange(name = ReportConstants.REPORT_QUALITY_CAR_FINAL_EXCHANGE, type = ExchangeTypes.TOPIC),

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/ReservationPlanReportListener.java

@ -25,6 +25,7 @@ import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

Loading…
Cancel
Save