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<Long> 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<QualityDeliverEntity> values = valueMap.values();
+															// 按省市区分组后的数量 arriveProvince arriveCity arriveDistrict
+															if(CollUtil.isNotEmpty(values)){
+																Set<String> 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;