|
|
@@ -95,6 +95,7 @@ public class kwfTruckTraceService {
|
|
|
private final KwtLogisticsOrderGoodsRepository kwtLogisticsOrderGoodsRepository;
|
|
|
private final KwtLogisticsOrderRepository kwtLogisticsOrderRepository;
|
|
|
private final KwtVehicleExceptionRepository kwtVehicleExceptionRepository;
|
|
|
+ private final KwtLogisticsOrderAddressRepository kwtLogisticsOrderAddressRepository;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
|
|
|
RemoteSystemService remoteSystemService;
|
|
|
|
|
|
@@ -850,13 +851,20 @@ public class kwfTruckTraceService {
|
|
|
|
|
|
List<KwtLogisticsOrderUnit> logisticsOrderUnits = Lists.newArrayList();
|
|
|
List<KwtLogisticsOrderGoods> goodsList = Lists.newArrayList();
|
|
|
+ List<KwtLogisticsOrderAddress> logisticsOrderAddress = Lists.newArrayList();
|
|
|
if (CollectionUtils.isNotEmpty(lOrderIds)) {
|
|
|
// 查询托运企业和承运企业
|
|
|
logisticsOrderUnits = kwtLogisticsOrderUnitRepository.queryByLOrderIds(new ArrayList<>(lOrderIds));
|
|
|
// 查询商品信息
|
|
|
goodsList = kwtLogisticsOrderGoodsRepository.queryByLOrderIds(new ArrayList<>(lOrderIds));
|
|
|
+ //查询物流地址
|
|
|
+ logisticsOrderAddress = kwtLogisticsOrderAddressRepository.queryByLogOrderIds(new ArrayList<>(lOrderIds));
|
|
|
+ }
|
|
|
+ Map<String, KwtLogisticsOrderAddress> logisticsOrderAddressMap = Maps.newHashMap();
|
|
|
+ if (CollectionUtils.isNotEmpty(logisticsOrderAddress)){
|
|
|
+ logisticsOrderAddressMap = logisticsOrderAddress.stream()
|
|
|
+ .collect(Collectors.toMap(x -> x.getLOrderId() + "_" + x.getAddressType(), Function.identity(), (k1, k2) -> k1));
|
|
|
}
|
|
|
-
|
|
|
|
|
|
// 按物流订单ID和单位类型分组
|
|
|
Map<String, KwtLogisticsOrderUnit> unitMap =new HashMap<>();
|
|
|
@@ -919,9 +927,10 @@ public class kwfTruckTraceService {
|
|
|
Map<Long, KwtLogisticsOrderGoods> finalGoodsMap = goodsMap;
|
|
|
Map<Long, RTruckVo> finalTruckIdMap = truckIdMap;
|
|
|
Map<String, SysDictResDto> finalEnergyTypeMap = energyTypeMap;
|
|
|
+ Map<String, KwtLogisticsOrderAddress> finalLogisticsOrderAddressMap = logisticsOrderAddressMap;
|
|
|
List<MapVehicleVo> result = filteredOrders.stream()
|
|
|
.map(order -> buildMapVehicleVo(order, wOrderIdSubtaskMap, finalUnitMap, finalGoodsMap,
|
|
|
- locationInfoMap, exceptionCountMap, finalTruckIdMap, finalEnergyTypeMap))
|
|
|
+ locationInfoMap, exceptionCountMap, finalTruckIdMap, finalEnergyTypeMap, finalLogisticsOrderAddressMap))
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
// 根据排序类型进行排序
|
|
|
@@ -1155,12 +1164,14 @@ public class kwfTruckTraceService {
|
|
|
Map<String, VehicleLocationInfo> locationInfoMap,
|
|
|
Map<String, Integer> exceptionCountMap,
|
|
|
Map<Long, RTruckVo> truckIdMap,
|
|
|
- Map<String, SysDictResDto> energyTypeMap) {
|
|
|
+ Map<String, SysDictResDto> energyTypeMap,
|
|
|
+ Map<String, KwtLogisticsOrderAddress> logisticsOrderAddressMap) {
|
|
|
MapVehicleVo vo = new MapVehicleVo();
|
|
|
|
|
|
// 车辆和司机信息
|
|
|
vo.setTruckNo(order.getTruckNo());
|
|
|
vo.setTruckId(order.getTruckId());
|
|
|
+ vo.setDriverId(order.getDriverId());
|
|
|
vo.setDriverName(order.getDriverName());
|
|
|
vo.setDriverPhone(order.getDriverPhone());
|
|
|
vo.setWayOrderId(order.getId());
|
|
|
@@ -1233,6 +1244,12 @@ public class kwfTruckTraceService {
|
|
|
// 从异常表查询该运单的异常数量
|
|
|
Integer exceptionCount = exceptionCountMap.getOrDefault(order.getWOrderNo(), 0);
|
|
|
vo.setExceptionCount(exceptionCount);
|
|
|
+ Long logisticId = Optional.ofNullable(subtask).map(KwtWaybillOrderSubtask::getLOrderId)
|
|
|
+ .orElse(null);
|
|
|
+ KwtLogisticsOrderAddress loadAdd = logisticsOrderAddressMap.getOrDefault(logisticId + "_" + AddressTypeEnum.SHIPMENT.getCode(), new KwtLogisticsOrderAddress());
|
|
|
+ vo.setLoadAddress(loadAdd.getDetailAddress());
|
|
|
+ KwtLogisticsOrderAddress unLoadAdd = logisticsOrderAddressMap.getOrDefault(logisticId + "_" + AddressTypeEnum.TAKE.getCode(), new KwtLogisticsOrderAddress());
|
|
|
+ vo.setUnloadAddress(unLoadAdd.getDetailAddress());
|
|
|
RTruckVo truckVo = truckIdMap.getOrDefault(order.getTruckId(), new RTruckVo());
|
|
|
vo.setEnergyType(Objects.isNull(truckVo.getEnergyType())? "":String.valueOf(truckVo.getEnergyType()));
|
|
|
SysDictResDto dictResDto = energyTypeMap.getOrDefault(String.valueOf(truckVo.getEnergyType()), new SysDictResDto());
|