diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchPriceRuleEntity.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchPriceRuleEntity.java index c4d244932..7e9e39be6 100644 --- a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchPriceRuleEntity.java +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchPriceRuleEntity.java @@ -105,6 +105,11 @@ public class ExpenseDispatchPriceRuleEntity extends TenantEntity { */ @ApiModelProperty(value = "是否点位补贴计费") private Integer ynSiteSubsidy; + /** + * 是否点位合并区域 + */ + @ApiModelProperty(value = "是否点位合并区域") + private Integer ynMergePointArea; /** * 是否保底费 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/DeliverFinishReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/DeliverFinishReportListener.java index d56c7cfab..ba463406a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/DeliverFinishReportListener.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/DeliverFinishReportListener.java @@ -763,7 +763,24 @@ public class DeliverFinishReportListener implements ReportService { Set longs = valueMap.keySet(); Integer dkp = 0; if (CollUtil.isNotEmpty(allRouteMap)) { - dkp = allRouteMap.keySet().size(); + // 是否合并区域计费 + Integer ynMergePointArea = rule.getYnMergePointArea(); + if(NumberUtil.equals(ynMergePointArea, BooleanZeroOneEnums.YES.getCode())){ + // 是 同一区域的视为一个点 + Collection values = valueMap.values(); + // 按省市区分组后的数量 arriveProvince arriveCity arriveDistrict + if(CollUtil.isNotEmpty(values)){ + Set collect1 = values.stream().map(v -> { + return v.getArriveProvince() + v.getArriveCity() + v.getArriveDistrict(); + }).collect(Collectors.toSet()); + if(CollUtil.isNotEmpty(collect1)){ + dkp = collect1.size(); + } + } + }else{ + // 否 所有点位 + dkp = allRouteMap.keySet().size(); + } } if (!NumberUtil.equals(dkp, 0)) { dkp = dkp - 1;