提交 f350194b authored 作者: huyufan's avatar huyufan

同步运单

上级 942548ad
package com.clx.performance.service;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.feign.transport.ThirdOrderChildBrokerParam;
public interface TransportSyncService {
ThirdOrderChildBrokerParam orderChildSync(OrderChild orderChild, OrderGoods orderGoods);
}
......@@ -5,11 +5,14 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dto.gd.GdPosDTO;
import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.feign.transport.*;
import com.clx.performance.service.TransportSyncService;
import com.clx.performance.utils.gd.GdService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.feign.TruckFeign;
import com.clx.user.vo.feign.*;
......@@ -18,6 +21,10 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -31,7 +38,9 @@ public class TransportSyncServiceImpl implements TransportSyncService {
private final OrderFeign orderFeign;
private final TruckFeign truckFeign;
private final DriverFeign driverFeign;
private final GdService gdService;
@Override
public ThirdOrderChildBrokerParam orderChildSync(OrderChild orderChild, OrderGoods orderGoods) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderGoods.getOrderNo());
ThirdOrderChildBrokerParam param = new ThirdOrderChildBrokerParam();
......@@ -44,10 +53,35 @@ public class TransportSyncServiceImpl implements TransportSyncService {
generateOrderGoods(orderGoods, orderChild, sendAddress,receiveAddress, param);
//生成车辆信息
generateTruckInfo(orderChild,param);
List<GdRouteDTO> route = gdService.getRoute(orderGoods.getSendLongitude().setScale(4, RoundingMode.DOWN)
, orderGoods.getSendLatitude().setScale(4, RoundingMode.DOWN),
orderGoods.getReceiveLongitude().setScale(4, RoundingMode.DOWN),
orderGoods.getReceiveLatitude().setScale(4, RoundingMode.DOWN));
GdRouteDTO gdRouteDTO = route.get(0);
BigDecimal divide = new BigDecimal(gdRouteDTO.getDistance()).divide(new BigDecimal(1000));
param.setDistance(divide);
SyncOrderChildVO syncOrderChildVO = driverFeign.getSyncOrderChild(orderChild.getDriverUserNo(), orderChild.getTruckOwnUserNo()).getData();
DriverInfoFeignVo truckOwnerInfo = syncOrderChildVO.getTruckOwnerInfo();
DriverInfoFeignVo diverInfo = syncOrderChildVO.getDiverInfo();
BankCardVO driverBankCard = syncOrderChildVO.getDriverBankCard();
UserIdCardVO driverUserIdCardVO = syncOrderChildVO.getDriverUserIdCardVO();
BankCardVO truckOwnerBankCard = syncOrderChildVO.getTruckOwnerBankCard();
UserIdCardVO truckOwnerUserIdCardVO = syncOrderChildVO.getTruckOwnerUserIdCardVO();
DriverLicenceFeignVO driverLicenceFeignVO = syncOrderChildVO.getDriverLicenceFeignVO();
DriverLicenceFeignVO truckOwnerLicenceFeignVO = syncOrderChildVO.getTruckOwnerLicenceFeignVO();
//设置司机银行卡
generateDriverBankCard(driverBankCard, driverUserIdCardVO, param);
//设置车主银行卡
generateTruckDriverBankCard(truckOwnerBankCard, truckOwnerUserIdCardVO, param);
//司机信息
generateDriverInfoDTO(diverInfo, driverLicenceFeignVO, driverUserIdCardVO, param);
//车主信息
generateTruckDriverInfoDTO(truckOwnerInfo, truckOwnerLicenceFeignVO, truckOwnerUserIdCardVO, param);
//设置轨迹
generateRouteList(gdRouteDTO, param);
return param;
}
......@@ -247,4 +281,49 @@ public class TransportSyncServiceImpl implements TransportSyncService {
dto.setIdCardBackImg(idCardVO.getCardBackImg());
param.setTruckDriverBankInfoDTO(dto);
}
public void generateRouteList(GdRouteDTO gdRouteDTO,ThirdOrderChildBrokerParam param) {
List<OrderChildTruckTraceDTO> list = new LinkedList<>();
for (int i = 0; i < gdRouteDTO.getPosList().size(); i++) {
if (i == 6) {
OrderChildTruckTraceDTO dto = new OrderChildTruckTraceDTO();
GdPosDTO gdPosDTO = gdRouteDTO.getPosList().get(gdRouteDTO.getPosList().size() - 1);
BigDecimal longitude = gdPosDTO.getLongitude();
BigDecimal latitude = gdPosDTO.getLatitude();
String address = gdService.getLonLat(longitude + "," + latitude);
dto.setLocationAddress(address);
dto.setLocationTime(LocalDateTime.now().toString());
dto.setLocationLon(longitude.toString());
dto.setLocationLat(latitude.toString());
list.add(dto);
return;
}
if (i == 0) {
OrderChildTruckTraceDTO dto = new OrderChildTruckTraceDTO();
GdPosDTO gdPosDTO = gdRouteDTO.getPosList().get(i);
BigDecimal longitude = gdPosDTO.getLongitude();
BigDecimal latitude = gdPosDTO.getLatitude();
String address = gdService.getLonLat(longitude + "," + latitude);
dto.setLocationAddress(address);
dto.setLocationTime(LocalDateTime.now().toString());
dto.setLocationLon(longitude.toString());
dto.setLocationLat(latitude.toString());
list.add(dto);
} else {
OrderChildTruckTraceDTO dto = new OrderChildTruckTraceDTO();
int randomNum = (int) (Math.random() * (gdRouteDTO.getPosList().size() - 1) + 1);
GdPosDTO gdPosDTO = gdRouteDTO.getPosList().get(randomNum);
BigDecimal longitude = gdPosDTO.getLongitude();
BigDecimal latitude = gdPosDTO.getLatitude();
String address = gdService.getLonLat(longitude + "," + latitude);
dto.setLocationAddress(address);
dto.setLocationTime(LocalDateTime.now().toString());
dto.setLocationLon(longitude.toString());
dto.setLocationLat(latitude.toString());
list.add(dto);
}
}
param.setBrokerTraceList(list);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论