From 6cc6a2ef6369bb25414aa977e886d08cf8f80207 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 06 三月 2026 09:57:29 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java | 4 ++--
server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java | 2 +-
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java | 23 ++++++++++++++++++-----
server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/TspSolver.java | 2 +-
4 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java
index 054a7e0..17a6b87 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java
@@ -167,6 +167,6 @@
Math.sin(dLon / 2) * Math.sin(dLon / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
- return (long) (EARTH_RADIUS * c );
+ return (long) (EARTH_RADIUS * c * 1000);
}
}
\ No newline at end of file
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/TspSolver.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/TspSolver.java
index 2aa6bef..a5263ab 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/TspSolver.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/TspSolver.java
@@ -134,7 +134,7 @@
RoutingSearchParameters searchParameters =
main.defaultRoutingSearchParameters()
.toBuilder()
- .setTimeLimit(Duration.newBuilder().setSeconds(60*60).build())//鏈�涔�1灏忔椂
+// .setTimeLimit(Duration.newBuilder().setSeconds(60*60).build())//鏈�涔�1灏忔椂
.setFirstSolutionStrategy(FirstSolutionStrategy.Value.PATH_CHEAPEST_ARC)
.build();
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
index d059939..4f1aaeb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
@@ -143,7 +143,7 @@
startmodel.setSteps(allList.get(0).getStartSteps());
if(StringUtils.isBlank(startmodel.getSteps())){
// (BigDecimal lat1, BigDecimal lon1, BigDecimal lat2, BigDecimal lon2)
- startmodel.setDistance(DistanceCalculator.calculateDistanceDecinal(startmodel.getStartLatitude(),startmodel.getStartLogitude(),startmodel.getEndLatitude(),startmodel.getEndLatitude()));
+ startmodel.setDistance(DistanceCalculator.calculateDistanceDecinal(startmodel.getStartLatitude(),startmodel.getStartLogitude(),startmodel.getEndLatitude(),startmodel.getEndLogitude()));
startmodel.setSteps(comLocation +";"+allList.get(0).getLongitude()+","+allList.get(0).getLatitude());
}
list.add(startmodel);
@@ -186,7 +186,7 @@
if(param!=null && param.getDistance()!=0){//濡傛灉涔嬪墠宸茬粡鑾峰彇杩�
tt.setDistance(param.getDistance());
}else{
- tt.setDistance(DistanceCalculator.calculateDistanceDecinal(tt.getStartLatitude(),tt.getStartLogitude(),tt.getEndLatitude(),tt.getEndLatitude()));
+ tt.setDistance(DistanceCalculator.calculateDistanceDecinal(tt.getStartLatitude(),tt.getStartLogitude(),tt.getEndLatitude(),tt.getEndLogitude()));
}
}
tt.setLocation(allList.get(i).getLocation());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
index cf239d5..a2c4051 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -730,7 +730,7 @@
DistanceMapParam t = new DistanceMapParam();
t.setId(cm.getCustomerId());
DistanceMapParam param = getParamByCustomerIds( cm.getCustomerId(),distanceMapParamList);
- if(param!=null){//濡傛灉涔嬪墠宸茬粡鑾峰彇杩�
+ if(param!=null && t.getDistance()>0){//濡傛灉涔嬪墠宸茬粡鑾峰彇杩�
t = param;
}else{
//濡傛灉鏈鍒掞紝鎸夌収鐩寸嚎璺濈
@@ -758,14 +758,27 @@
int index =0;
for(JkSketchCustomer c : customers){
if(index ==0){
- lineDistance+= Constants.formatLongNum(c.getStartDistance());
+ if(c.getStartDistance() >0){
+ lineDistance+= Constants.formatLongNum(c.getStartDistance());
+ }else{
+ lineDistance += DistanceCalculator.calculateDistanceDecinal(c.getLatitude(),c.getLongitude(),cLatitude,cLongitude);
+ }
}
if(index == customers.size()-1){
- lineDistance+= Constants.formatLongNum(c.getEndDistance());
+ if(c.getEndDistance() >0){
+ lineDistance+= Constants.formatLongNum(c.getEndDistance());
+ }else{
+ lineDistance += DistanceCalculator.calculateDistanceDecinal(c.getLatitude(),c.getLongitude(),cLatitude,cLongitude);
+ }
break;
}
- DistanceMapParam param = getParamByCustomerIds( customers.get(index+1).getCustomerId(),getListFromJsonStr(c.getDistanceJson()));
- lineDistance += param.getDistance();
+ JkSketchCustomer end = customers.get(index+1);
+ DistanceMapParam param1 = getParamByCustomerIds(end.getCustomerId(),getListFromJsonStr(c.getDistanceJson()));
+ if(param1 !=null && param1.getDistance()>0){
+ lineDistance += param1.getDistance();
+ }else{
+ lineDistance += DistanceCalculator.calculateDistanceDecinal(c.getLatitude(),c.getLongitude(),end.getLatitude(),end.getLongitude());
+ }
index++;
/* for(JkSketchCustomer cm : customers){
DistanceMapParam param = getParamByCustomerIds( cm.getCustomerId(),getListFromJsonStr(c.getDistanceJson()));
--
Gitblit v1.9.3