提交 0454d134 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v20.6_carrier_station_pound_20240802' into dev

# Conflicts: # performance-api/src/main/java/com/clx/performance/feign/PerformanceSDKFeign.java # performance-api/src/main/java/com/clx/performance/vo/pc/OrderGoodsVO.java # performance-web/pom.xml # performance-web/src/main/java/com/clx/performance/controller/feign/PerformanceSdkFeignController.java # performance-web/src/main/java/com/clx/performance/controller/temp/TempTraceController.java # performance-web/src/main/java/com/clx/performance/dao/AppDao.java # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/mapper/AppMapper.java # performance-web/src/main/java/com/clx/performance/model/App.java # performance-web/src/main/java/com/clx/performance/service/OrderChildService.java # performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
package com.clx.performance.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
......@@ -49,6 +50,7 @@ public interface PerformanceSDKFeign {
Result<List<PerformanceProgressOperationLogVO>> queryPerformanceProgressLog(@RequestBody QueryPerformanceProgressLogAction action);
@GetMapping(value = {"clx-performance/feign/sdk/getOrderCanExtractWeight"})
Result<OrderCanExtractWeightDTO> getOrderCanExtractWeight(@RequestParam(value = "orderNo") String orderNo);
......
......@@ -6,7 +6,6 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 装车范围校验检查参数
......@@ -22,7 +21,6 @@ public class NeedAlertSuperviseInfoParam {
@ApiModelProperty(value = "类型 1-监装 2-监卸", example = "1")
@NotNull(message = "类型不能为空")
private Integer type;
}
......@@ -272,6 +272,9 @@ public class OrderChildVO {
@ApiModelProperty(value = "监装联系人电话")
private String superviseMobile;
@ApiModelProperty(value = "是否解除监装限制 0 未解除 1 解除")
private Integer removeLoadLimitStatus;
@ApiModelProperty(value = "发货地采样照片")
public List<String> getSendSamplingPicList() {
......
......@@ -171,6 +171,7 @@ public class OrderGoodsVO {
@ApiModelProperty("接单保证金 平台服务费费率 弹窗和文案显示 0 不显示 1 显示")
private Integer goodsOrderDetailShow = 0;
/* 20240730 增加货源地信息 */
@ApiModelProperty(value = "货源地现场联系人")
......
......@@ -103,16 +103,14 @@
<artifactId>smart-weight-sdk</artifactId>
</dependency>
<dependency>
<groupId>com.msl</groupId>
<artifactId>open-starter</artifactId>
</dependency>
<dependency>
<groupId>com.clx.cy</groupId>
<artifactId>purchase-manage-sdk</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.msl</groupId>-->
<!-- <artifactId>cache-spring-boot-starter</artifactId>-->
......
......@@ -126,7 +126,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
BigDecimal residueTransportWeight = ApplicationContextUtils.getBean(OrderGoodsService.class).
calcOrderGoodsResidueWeight(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());;
if (residueTransportWeight.compareTo(BigDecimal.ZERO) == 0) {
if (residueTransportWeight.compareTo(BigDecimal.ZERO) <= 0) {
List<OrderChild> orderChildren = orderChildDao.selectInTransitOrderChildByOrderGoodsNo(orderGoodsNo);
if (CollectionUtil.isNotEmpty(orderChildren)) {
//更新货单已完结
......
......@@ -14,7 +14,6 @@ import org.springframework.stereotype.Component;
@Component
public class LoadAppConfig {
private App purchaseManageApp;
@Autowired
......
......@@ -42,6 +42,15 @@ public class RedisConstants {
*/
public static final String LINE_WARN_WEATHER = "clx-performance:lineWarn:weather:";
/**
* 电子围栏短信通知 未装车
*/
public static final String NOTICE_MESSAGE_LIMIT_UNLOAD = "clx-performance:notice_message_limit_unload:";
/**
* 电子围栏短信通知 未监装
*/
public static final String NOTICE_MESSAGE_LIMIT_UNSUPERVISED = "clx-performance:notice_message_limit_unsupervised:";
/**
* 订单最后一车
......
......@@ -200,9 +200,14 @@ public class AppDriverOrderChildController {
public Result<OrderChildLoadRangeCheckResultVO> loadRangeCheck(@RequestBody @Validated OrderChildLoadRangeCheckParam param) {
return orderChildService.loadRangeCheck(param).toResult();
}
@ApiOperation(value = "是否需要弹出监装信息", notes = "<br>By:姜武杰")
@PostMapping("/needAlertSuperviseInfo")
public Result<NeedAlertSuperviseInfoResultVO> needAlertSuperviseInfo(@RequestBody @Validated NeedAlertSuperviseInfoParam param) {
// todo :jiangwujie 临时设置type 前端给type后删除
if (param.getType() == null) {
param.setType(1);
}
return Result.ok(orderChildService.needAlertSuperviseInfo(param));
}
......
package com.clx.performance.controller.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.action.GetOwnerAccountInfoAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
......@@ -31,6 +33,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.List;
import static com.clx.performance.enums.PerformanceProgressEnum.LogType.PERFORMANCE_ABNORMAL_REASON;
......@@ -61,6 +64,8 @@ public class PerformanceSdkFeignController {
private final OrderService orderService;
private final PerformanceProgressService performanceProgressService;
@ApiOperation(value = "货主端取消订单", notes = "<br>By:胡宇帆")
@PostMapping("/ownCancelOrderPre")
......
package com.clx.performance.controller.temp;
import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.esplus.model.TruckLatestPosESPlus;
import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam;
import com.clx.performance.param.temp.DriverTraceAddParam;
import com.clx.performance.param.temp.TruckTraceAddParam;
......@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
......@@ -134,4 +136,16 @@ public class TempTraceController {
@ApiOperation(value = "获取车辆最新位置信息", notes = "<br>By:姜武杰")
@GetMapping("/calDistance")
public Result<Integer> getTruckLatestPos(
@RequestParam("l1") @NotNull(message = "当前经度不能为空") BigDecimal l1,
@RequestParam("l2") @NotNull(message = "当前纬度不能为空") BigDecimal l2,
@RequestParam("l3") @NotNull(message = "货源经度不能为空") BigDecimal l3,
@RequestParam("l4") @NotNull(message = "货源纬度不能为空") BigDecimal l4
) {
return Result.ok( gdService.getShortestRouteDistance(l1,l2,l3,l4));
}
}
......@@ -5,11 +5,7 @@ import com.clx.performance.mapper.AppMapper;
import com.clx.performance.model.App;
import com.msl.common.dao.BaseDao;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
public interface AppDao extends BaseDao<AppMapper, App, Integer> {
}
......@@ -212,6 +212,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listChidNosByStatus(List<Integer> status);
List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList);
void batchUpdateCancel(List<OrderChild> canCancelOrderChildList);
......
......@@ -699,6 +699,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList) {
return baseMapper.countValidByOrderGoodsNoList(orderGoodsList);
......
......@@ -4,10 +4,6 @@ package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.App;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
public interface AppMapper extends BaseMapper<App> {
}
......@@ -13,11 +13,7 @@ import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
@Getter
@Setter
@Accessors(chain = true)
......
......@@ -119,4 +119,6 @@ public interface OrderChildService {
NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param);
}
......@@ -516,7 +516,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.UNLOAD.getCode())
.contains(orderChild.getStatus())) {
log.error("运单:{} 状态:{}不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消", orderChildNo, orderChild.getStatus());
log.info("运单:{} 状态:{}不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消", orderChildNo, orderChild.getStatus());
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID, "不可操作");
}
......@@ -579,6 +579,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void removeLoadLimit(ArtificialCancelOrderParam param) {
OrderChild orderChild = orderChildDao.getByChildNo(param.getOrderChildNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
//判断运单状态【已接单】【前往货源地】【到达货源地】时可对该运单解除装车限制,否则toast:不可操作
......@@ -586,7 +587,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
OrderChildEnum.Status.GO_TO_SEND.getCode(),
OrderChildEnum.Status.ARRIVE_SEND.getCode())
.contains(orderChild.getStatus())) {
log.error("运单:{} 状态:{}不在【已接单】【前往货源地】【到达货源地】范围中,不允许解除装车限制", param.getOrderChildNo(), orderChild.getStatus());
log.info("运单:{} 状态:{}不在【已接单】【前往货源地】【到达货源地】范围中,不允许解除装车限制", param.getOrderChildNo(), orderChild.getStatus());
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID, "不可操作");
}
......
......@@ -130,7 +130,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Autowired
private OrderGoodsFleetOpenTruckDao orderGoodsFleetOpenTruckDao;
@Autowired
OrderWeightService orderWeightService;
......@@ -178,6 +178,13 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsVO.setLoadBeginTime(orderInfoFeign.getLoadBeginTime());
orderGoodsVO.setLoadEndTime(orderInfoFeign.getLoadEndTime());
orderGoodsVO.setResidueTransportWeight(residueWeight);
orderGoodsVO.setResidueTransportWeight(residueWeight);
//货源地信息
orderGoodsVO.setSendContact(orderInfoFeign.getSendContact());
orderGoodsVO.setSendContactPhone(orderInfoFeign.getSendContactPhone());
orderGoodsVO.setSendWaitSystem(orderInfoFeign.getSendWaitSystem());
orderGoodsVO.setSendWaitSystemName(orderInfoFeign.getSendWaitSystemName());
orderGoodsVO.setSendWaitMode(orderInfoFeign.getSendWaitMode());
//获取订单配置的违约金方案
OwnerQuotationDetailVO quotationDetailVO = quotationService.getQuotationByOrderNo(orderNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
......@@ -495,7 +502,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
OrderGoodsEditParams orderGoodsParams = param.getOrderGoodsParams();
OrderGoods oldOrderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsParams.getOrderGoodsNo()).get();
//FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(param.getOrderNo());
if (orderGoodsParams.getExtractWeight().compareTo(oldOrderGoods.getAlreadyTransportWeight()) < 0) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单提取吨数不能小于货单已拉运吨数");
}
......@@ -503,27 +509,25 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
//考虑到借吨、恢复吨数的货单,逻辑判断实际的提取吨数
BigDecimal oldResidueTransportWeight = this.calcOrderGoodsResidueWeight
(oldOrderGoods.getExtractWeight(),oldOrderGoods.getAlreadyTransportWeight());
BigDecimal realExtractWeight = oldResidueTransportWeight.compareTo(BigDecimal.ZERO) == 0?
oldOrderGoods.getAlreadyTransportWeight():oldOrderGoods.getAlreadyTransportWeight().add(oldResidueTransportWeight);
oldOrderGoods.setExtractWeight(realExtractWeight);
//本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数
BigDecimal changeWeight = orderGoodsParams.getExtractWeight().subtract(realExtractWeight);
BigDecimal residueTransportWeight = this.calcOrderGoodsResidueWeight
(oldOrderGoods.getExtractWeight(),oldOrderGoods.getAlreadyTransportWeight());
OrderExtractWeightVO orderCanExtractWeight = orderWeightService.getOrderCanExtractWeight(param.getOrderNo());
BigDecimal canExtractWeight = orderCanExtractWeight.getCanExtractWeight();
BigDecimal changeWeight = orderGoodsParams.getExtractWeight().subtract(oldOrderGoods.getExtractWeight());
//当计算出的订单可提取量为负数时,说明订单下调吨数,货单超过订单量,所以货单编辑吨数的时候只能进行下调操作
if(canExtractWeight.compareTo(BigDecimal.ZERO) < 0 && changeWeight.compareTo(BigDecimal.ZERO) > 0){
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单总量已超吨,只能做吨数下调操作");
if (changeWeight.compareTo(BigDecimal.ZERO) > 0) {
orderGoodsParams.setResidueTransportWeight(residueTransportWeight.add(changeWeight));
}else if (changeWeight.compareTo(BigDecimal.ZERO) < 0 ){
orderGoodsParams.setResidueTransportWeight(orderGoodsParams.getExtractWeight().subtract(oldOrderGoods.getAlreadyTransportWeight()));
} else {
//当编辑吨数等于0 的时候,不进行拦截
orderGoodsParams.setResidueTransportWeight(residueTransportWeight);
}
BigDecimal realExtractWeight = oldResidueTransportWeight.compareTo(BigDecimal.ZERO) <= 0?
oldOrderGoods.getAlreadyTransportWeight():oldOrderGoods.getExtractWeight();
oldOrderGoods.setExtractWeight(realExtractWeight);
BigDecimal orderResidueWeight = orderWeightService.getOrderResidueWeight(param.getOrderNo());
if (orderResidueWeight.compareTo(orderGoodsParams.getExtractWeight().subtract(oldOrderGoods.getExtractWeight())) < 0) {
if (orderResidueWeight.compareTo(changeWeight) < 0) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单提取吨数已超订单可提取吨数");
}
......
......@@ -303,6 +303,41 @@ public class TruckTraceServiceImpl implements TruckTraceService {
return null;
}
/**
* 获取卡车当前位置 5分钟内的位置
* @param truckNo 卡车车牌号
* @return 位置
*/
@Override
public BigDecimal[] getTruckCurrentPosition(String truckNo) {
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(LAST_POSITION_TIME));
return getTruckCurrentPosition(truckNo, beginTime);
}
/**
* 获取卡车当前位置
* @param truckNo 卡车车牌号
* @param beginTime 开始时间
* @return 位置
*/
@Override
public BigDecimal[] getTruckCurrentPosition(String truckNo, String beginTime) {
String endTime = LocalDateTimeUtils.formatTime();
// 车辆
List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo)
.ge(TruckTraceESPlus::getGpsTime, beginTime)
.le(TruckTraceESPlus::getGpsTime, endTime)
.orderByDesc("gpsTime")
.limit(1)
);
if (!list.isEmpty()){
return list.get(0).getLocation();
}
return null;
}
@Override
public int getParkTime(String truckNo, Long userNo, LocalDateTime beginDateTime) {
return getParkTime(truckNo, userNo, beginDateTime, LocalDateTime.now());
......
......@@ -23,6 +23,10 @@ public interface TruckTraceService {
BigDecimal[] getCurrentPosition(String truckNo, Long userNo, String beginTime);
BigDecimal[] getTruckCurrentPosition(String truckNo);
BigDecimal[] getTruckCurrentPosition(String truckNo, String beginTime);
int getParkTime(String truckNo, Long userNo, LocalDateTime beginDateTime);
int getParkTime(String truckNo, Long userNo, LocalDateTime beginTime, LocalDateTime endTime);
......
......@@ -16,8 +16,6 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.StringJoiner;
......@@ -181,38 +179,34 @@ public class OrderChildSqlProvider {
return sql;
}
public String findArtificialCancelOrder(@Param("param") ArtificialCancelOrderQueryParam param) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT child_no, goods_name, freight_price, order_no, ");
sql.append("send_address, receive_address, ");
sql.append("driver_user_no, driver_name, driver_mobile, ");
sql.append("truck_no, unload_pound_no, weight, ");
sql.append("cancel_remark, pound_status, status, ");
sql.append("DATE_FORMAT(load_deadline, '%Y-%m-%d %H:%i:%s') AS loadDeadline, ");
sql.append("DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS createTime, ");
sql.append("DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime ");
sql.append("FROM order_child ");
sql.append("WHERE 1=1 ");
List<String> conditions = new ArrayList<>();
if (StringUtils.isNotBlank(param.getOrderChildNo())) {
conditions.add("child_no = #{param.orderChildNo}");
}
if (StringUtils.isNotBlank(param.getTruckNo())) {
conditions.add("truck_no = #{param.truckNo}");
}
List<Integer> statuses = Arrays.asList(
OrderChildEnum.Status.CREATED.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(),
OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(),
OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode()
);
conditions.add("status IN (" + StringUtils.join(statuses, ", ") + ")");
sql.append("AND ");
sql.append(StringUtils.join(conditions, " AND "));
return sql.toString();
public String findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
return new SQL() {{
SELECT("child_no, goods_name, freight_price, order_no, " +
"send_address, receive_address, " +
"driver_user_no, driver_name, driver_mobile, " +
"truck_no, unload_pound_no, weight, " +
"cancel_remark, pound_status, status, remove_load_limit_status, " +
"DATE_FORMAT(load_deadline, '%Y-%m-%d %H:%i:%s') AS loadDeadline, " +
"DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS createTime, " +
"DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime ");
FROM("order_child ");
if (StringUtils.isNotBlank(param.getOrderChildNo())) {
WHERE("child_no = #{param.orderChildNo,jdbcType=VARCHAR}");
}
if (StringUtils.isNotBlank(param.getTruckNo())) {
WHERE("truck_no = #{param.truckNo,jdbcType=VARCHAR}");
}
//支付状态 可以忽略
WHERE("status >=" + OrderChildEnum.Status.CREATED.getCode());
WHERE("status <=" + OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
}}.toString();
}
public static void main(String[] args) {
ArtificialCancelOrderQueryParam param = new ArtificialCancelOrderQueryParam();
param.setTruckNo("A123456");
param.setOrderChildNo("CYD1234567890");
System.out.println(new OrderChildSqlProvider().findArtificialCancelOrder(param));
}
public String orderChildCancelRecord(@Param("page") Page<OrderChildVO> page, @Param("param") OrderChildCancelRecordParam param) {
......
......@@ -9,14 +9,12 @@ import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.dromara.easyes.common.utils.CollectionUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
* @Author: aiqingguo
......@@ -47,6 +45,26 @@ public class GdService {
return getRoute(gaodeKey, originLongitude, originLatitude, destinationLongitude, destinationLatitude);
}
/**
* 获取最短距离路径
* @param originLongitude
* @param originLatitude
* @param destinationLongitude
* @param destinationLatitude
* @return
*/
public Integer getShortestRouteDistance(BigDecimal originLongitude, BigDecimal originLatitude,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
List<GdRouteDTO> routeList = getRoute(gaodeKey, originLongitude, originLatitude, destinationLongitude, destinationLatitude);
if (CollectionUtils.isNotEmpty(routeList)) {
Optional<GdRouteDTO> minRoute = routeList.stream()
.min((r1, r2) -> Double.compare(r1.getDistance(), r2.getDistance()));
return minRoute.map(GdRouteDTO::getDistance).orElse(null);
}
return null;
}
public static List<GdRouteDTO> getRoute(String key, BigDecimal originLongitude, BigDecimal originLatitude,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
//log.info("高德线路规划开始");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论