|
|
@@ -52,6 +52,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.Duration;
|
|
|
@@ -169,8 +170,8 @@ public class kwfTruckTraceService {
|
|
|
,Map<String, KwtWaybillOrderSubtask> worderNoAndWorderMap) {
|
|
|
|
|
|
KwfTruckTraceReplayVo kwfTruckTraceReplay = new KwfTruckTraceReplayVo();
|
|
|
- kwfTruckTraceReplay.setWOrderId(waybillOrder.getId());
|
|
|
- kwfTruckTraceReplay.setWOrderNo(waybillOrder.getWOrderNo());
|
|
|
+ kwfTruckTraceReplay.setOrderId(waybillOrder.getId());
|
|
|
+ kwfTruckTraceReplay.setOrderNo(waybillOrder.getWOrderNo());
|
|
|
kwfTruckTraceReplay.setDriverName(waybillOrder.getDriverName());
|
|
|
kwfTruckTraceReplay.setPhone(waybillOrder.getDriverPhone());
|
|
|
kwfTruckTraceReplay.setStatus(String.valueOf(waybillOrder.getStatus()));
|
|
|
@@ -209,7 +210,7 @@ public class kwfTruckTraceService {
|
|
|
log.info("查询车辆实时位置信息参数:{}", req);
|
|
|
//先查缓存 缓存没有 在查询数据中台 数据中台没有 则查询中交
|
|
|
if (StringUtils.isNotBlank(req.getTruckId()) ){
|
|
|
- return getTruckInfo(req.getTruckId(),req.getWOrderNo(),req.getTruckNo());
|
|
|
+ return getTruckInfo(req.getTruckId(),req.getOrderNo(),req.getTruckNo());
|
|
|
}
|
|
|
|
|
|
//如果车牌为空那么查询车队的第一条数据 (从tab页面直接进来)
|
|
|
@@ -218,7 +219,7 @@ public class kwfTruckTraceService {
|
|
|
if (Objects.isNull(dataFirstTruck) || Objects.isNull(dataFirstTruck.getTruckNo())){
|
|
|
return new TruckInfoVo();
|
|
|
}
|
|
|
- return getTruckInfo(req.getTruckId(),req.getWOrderNo(),dataFirstTruck.getTruckNo());
|
|
|
+ return getTruckInfo(req.getTruckId(),req.getOrderNo(),dataFirstTruck.getTruckNo());
|
|
|
}
|
|
|
return new TruckInfoVo();
|
|
|
}
|
|
|
@@ -287,7 +288,7 @@ public class kwfTruckTraceService {
|
|
|
private TruckInfoVo getTruckInfoVoByZj(String truckNo, String wOrderNo,String truckId) {
|
|
|
CollectZjxlResponse collectZjxlResponse = vehicleCollectService.transTimeManage(truckNo);
|
|
|
TruckInfoVo instance = TruckInfoVo.getInstance();
|
|
|
- instance.setWOrderNo(wOrderNo);
|
|
|
+ instance.setOrderNo(wOrderNo);
|
|
|
instance.setTruckNo(truckNo);
|
|
|
if (Objects.nonNull(collectZjxlResponse) && Objects.nonNull(collectZjxlResponse.getResult()) && Objects.nonNull(collectZjxlResponse.getResult().getFirstVcl())){
|
|
|
instance.setGpsStatus(collectZjxlResponse.getResult().getFirstVcl().getSpd());
|
|
|
@@ -299,7 +300,7 @@ public class kwfTruckTraceService {
|
|
|
KwtWaybillOrder oneByTruckNo = kwtWaybillOrderRepository.findOneByTruckNo(truckNo);
|
|
|
|
|
|
KwtWaybillOrderSubtask waybillOrderSubtask = kwtWaybillOrderSubtaskRepository.findOneByWOrderNo(oneByTruckNo.getWOrderNo());
|
|
|
- instance.setLOrderNo(Objects.nonNull(waybillOrderSubtask) && Objects.nonNull(waybillOrderSubtask.getLOrderId())
|
|
|
+ instance.setLogicOrderNo(Objects.nonNull(waybillOrderSubtask) && Objects.nonNull(waybillOrderSubtask.getLOrderId())
|
|
|
? String.valueOf(waybillOrderSubtask.getLOrderId()) : "");
|
|
|
String taskAddress = getTaskAddress(waybillOrderSubtask);
|
|
|
instance.setTaskAddress(taskAddress);
|
|
|
@@ -323,7 +324,7 @@ public class kwfTruckTraceService {
|
|
|
KwtWaybillOrder order = kwtWaybillOrderRepository.findOneByTruckId(truckId);
|
|
|
if (Objects.nonNull(order)){
|
|
|
truckInfoVo.setTruckNo(order.getTruckNo());
|
|
|
- truckInfoVo.setWOrderNo(order.getWOrderNo());
|
|
|
+ truckInfoVo.setOrderNo(order.getWOrderNo());
|
|
|
truckInfoVo.setDriveId(String.valueOf(order.getDriverId()));
|
|
|
truckInfoVo.setDriveName(order.getDriverName());
|
|
|
truckInfoVo.setDrivePhone(order.getDriverPhone());
|
|
|
@@ -334,7 +335,7 @@ public class kwfTruckTraceService {
|
|
|
KwtWaybillOrderSubtask subtask = kwtWaybillOrderSubtaskRepository.findOneByWOrderNo(Optional.ofNullable(order)
|
|
|
.map(KwtWaybillOrder::getWOrderNo).
|
|
|
orElse( null));
|
|
|
- truckInfoVo.setLOrderNo(Objects.isNull(subtask) ? "" : String.valueOf(subtask.getLOrderId()));
|
|
|
+ truckInfoVo.setLogicOrderNo(Objects.isNull(subtask) ? "" : String.valueOf(subtask.getLOrderId()));
|
|
|
if (Objects.isNull(subtask)){
|
|
|
return truckInfoVo;
|
|
|
}
|
|
|
@@ -373,8 +374,8 @@ public class kwfTruckTraceService {
|
|
|
|
|
|
|
|
|
String wOrderNo = StringUtils.EMPTY ;
|
|
|
- if (StringUtils.isNotBlank(req.getWOrderNo())){
|
|
|
- wOrderNo = req.getWOrderNo();
|
|
|
+ if (StringUtils.isNotBlank(req.getOrderNo())){
|
|
|
+ wOrderNo = req.getOrderNo();
|
|
|
}else {
|
|
|
KwtWaybillOrder waybillOrder = kwtWaybillOrderRepository.findOneByTruckNo(req.getTruckNo());
|
|
|
wOrderNo = Optional.ofNullable(waybillOrder).map(KwtWaybillOrder::getWOrderNo).orElse("");
|
|
|
@@ -390,7 +391,7 @@ public class kwfTruckTraceService {
|
|
|
.sorted(Comparator.comparing(CurrentTaskTraceReqVo.CurrentTaskTrace::getLocationTime))
|
|
|
.collect(Collectors.toList());
|
|
|
CurrentTaskTraceReqVo currentTaskTraceReqVo = new CurrentTaskTraceReqVo();
|
|
|
- currentTaskTraceReqVo.setWOrderNo(vehicleReturnDataList.get(0).getWOrderNo());
|
|
|
+ currentTaskTraceReqVo.setOrderNo(vehicleReturnDataList.get(0).getWOrderNo());
|
|
|
|
|
|
for (int i = 1; i < currentTaskTraceList.size(); i++) {
|
|
|
CurrentTaskTraceReqVo.CurrentTaskTrace current = currentTaskTraceList.get(i);
|
|
|
@@ -410,9 +411,47 @@ public class kwfTruckTraceService {
|
|
|
long durationInMinutes = totalDuration.toMinutes();
|
|
|
currentTaskTraceReqVo.setTotalDuration(String.valueOf(durationInMinutes));
|
|
|
currentTaskTraceReqVo.setCurrentTaskTraceList(currentTaskTraceList);
|
|
|
+ //构造点位假数据
|
|
|
+ List<CurrentTaskTraceReqVo.CurrentAddress> addressList = getCurrentAddresses();
|
|
|
+ // 将地址列表设置到 CurrentTaskTraceReqVo 对象中
|
|
|
+ currentTaskTraceReqVo.setCurrentAddressList(addressList);
|
|
|
return currentTaskTraceReqVo;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private static List<CurrentTaskTraceReqVo.CurrentAddress> getCurrentAddresses() {
|
|
|
+ // 创建四条 CurrentAddress 数据
|
|
|
+ List<CurrentTaskTraceReqVo.CurrentAddress> addressList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 第一条数据
|
|
|
+ CurrentTaskTraceReqVo.CurrentAddress address1 = new CurrentTaskTraceReqVo.CurrentAddress();
|
|
|
+ address1.setPoint("金顶集团");
|
|
|
+ address1.setDuration("0");
|
|
|
+ addressList.add(address1);
|
|
|
+
|
|
|
+ // 第二条数据
|
|
|
+ CurrentTaskTraceReqVo.CurrentAddress address2 = new CurrentTaskTraceReqVo.CurrentAddress();
|
|
|
+ address2.setPoint("乐山高速路入口");
|
|
|
+ address2.setDuration("30");
|
|
|
+ addressList.add(address2);
|
|
|
+
|
|
|
+ // 第三条数据
|
|
|
+ CurrentTaskTraceReqVo.CurrentAddress address3 = new CurrentTaskTraceReqVo.CurrentAddress();
|
|
|
+ address3.setPoint("乐山高速路出口");
|
|
|
+ address3.setDuration("50");
|
|
|
+ addressList.add(address3);
|
|
|
+
|
|
|
+ // 第四条数据
|
|
|
+ CurrentTaskTraceReqVo.CurrentAddress address4 = new CurrentTaskTraceReqVo.CurrentAddress();
|
|
|
+ address4.setPoint("乐山大佛加工厂");
|
|
|
+ address4.setDuration("60");
|
|
|
+ addressList.add(address4);
|
|
|
+ addressList = addressList.stream()
|
|
|
+ .sorted(Comparator.comparing(CurrentTaskTraceReqVo.CurrentAddress::getDuration))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return addressList;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询数据中台获取轨迹
|
|
|
* @param wOrderNo 运单号
|