diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/StatisticsDistributionPackageEntity.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/StatisticsDistributionPackageEntity.java index bef4baa60..7283fb2ea 100644 --- a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/StatisticsDistributionPackageEntity.java +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/StatisticsDistributionPackageEntity.java @@ -48,6 +48,18 @@ public class StatisticsDistributionPackageEntity extends TenantEntity { @ApiModelProperty(value = "仓库id") private Long warehouseId; + /** + * 品牌id + */ + @ApiModelProperty(value = "品牌id") + private Long brandId; + + /** + * 客户id + */ + @ApiModelProperty(value = "客户id") + private Long consigneeId; + /** * 仓库名称 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 5cadc2905..445c2295a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -2622,7 +2622,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl distributionPackageEntities, PriceDispatchVO dispatch, Integer dispatchIsMinCost) { + private void calculateDispatchCost(BasicdataPriceTemplateEntity template, String typeService, List distributionPackageEntities, PriceDispatchVO dispatch, Integer dispatchIsMinCost, Long brandId, Long consigneeId) { String dispatchPricingType = template.getDispatchPricingType(); // 服务类型与模版的服务类型一致 if (StrUtil.equals(dispatchPricingType, typeService)) { @@ -544,13 +545,25 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl> map = distributionPackageEntities.stream().collect(Collectors.groupingBy(StatisticsDistributionPackageEntity::getTrainNumber)); - if (CollUtil.isNotEmpty(map)) { - for (Map.Entry> entry : map.entrySet()) { - List value = entry.getValue(); - buildDispatchCostToPackage(dispatchMinCostType, value, minCost, additionalCost); - } + // 按配送任务 计算规则 1 取出包件中所有的配送任务号 2 按配送任务号查出所有包件信息 3 按品牌和收货单位过滤(可能存在同一个配送任务存在同一客户不同订单情况) 4 按配送任务分组计算 + Set trainNumberSet = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getTrainNumber).collect(Collectors.toSet()); + List distributionPackageEntities1 = distributionPackageService.list(Wrappers.lambdaQuery() + .in(StatisticsDistributionPackageEntity::getTrainNumber, trainNumberSet)); + for (String s : trainNumberSet) { + List packageEntities = distributionPackageEntities1.stream() + .filter(entity -> ObjectUtil.equals(s, entity.getTrainNumber())) + .filter(entity -> ObjectUtil.equals(entity.getBrandId(), brandId)) + .filter(entity -> ObjectUtil.equals(entity.getConsigneeId(), consigneeId)) + .collect(Collectors.toList()); + buildDispatchCostToPackage(dispatchMinCostType, packageEntities, minCost, additionalCost); } + // Map> map = distributionPackageEntities.stream().collect(Collectors.groupingBy(StatisticsDistributionPackageEntity::getTrainNumber)); + // if (CollUtil.isNotEmpty(map)) { + // for (Map.Entry> entry : map.entrySet()) { + // List value = entry.getValue(); + // buildDispatchCostToPackage(dispatchMinCostType, value, minCost, additionalCost); + // } + // } } // 保存配送包件信息 if (CollUtil.isNotEmpty(distributionPackageEntities)) { @@ -831,9 +844,10 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(NumberUtil.toBigDecimal(additionalCost))); + statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); }); } } else if (ObjectUtil.equals(3, dispatchMinCostType)) { @@ -841,9 +855,10 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(NumberUtil.toBigDecimal(additionalCost))); + statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); }); } } else if (ObjectUtil.equals(4, dispatchMinCostType)) { @@ -851,9 +866,10 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(NumberUtil.toBigDecimal(additionalCost))); + statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); }); } }