|
@@ -31,6 +31,7 @@ import com.sckw.order.api.dubbo.RemoteTradeOrderAmountService;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
import com.sckw.payment.api.dubbo.PaymentDubboService;
|
|
import com.sckw.payment.api.dubbo.PaymentDubboService;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
|
|
+import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.redis.utils.RedissonUtils;
|
|
import com.sckw.redis.utils.RedissonUtils;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
@@ -368,20 +369,28 @@ public class kwfTruckTraceService {
|
|
|
|
|
|
|
|
private TruckInfoVo getTruckInfo(String truckId, String wOrderNo,String truckNo) {
|
|
private TruckInfoVo getTruckInfo(String truckId, String wOrderNo,String truckNo) {
|
|
|
//先查询缓存 如果缓存没有就查数据中台 数据中台没有就查中交
|
|
//先查询缓存 如果缓存没有就查数据中台 数据中台没有就查中交
|
|
|
- String location = RedissonUtils.getString(CommonConstants.TRUCK_LOCATION + truckId+CommonConstants.UNDERSCORE+wOrderNo);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ KwtWaybillOrder order = kwtWaybillOrderRepository.findOneByTruckId(truckId);
|
|
|
|
|
+ if (Objects.isNull(order)){
|
|
|
|
|
+ throw new BusinessException("该车辆运单信息不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ String location = RedissonUtils.getString(CommonConstants.TRUCK_LOCATION + truckId+CommonConstants.UNDERSCORE+order.getWOrderNo());
|
|
|
if (StringUtils.isNotBlank(location)){
|
|
if (StringUtils.isNotBlank(location)){
|
|
|
- TruckDto truckDto = JSON.parseObject(location, TruckDto.class);
|
|
|
|
|
|
|
+ TruckInfoVo truckDto = JSON.parseObject(location, TruckInfoVo.class);
|
|
|
//如果运单号为空那么返回redis的数据 这个数据是app最后一次上报的数据
|
|
//如果运单号为空那么返回redis的数据 这个数据是app最后一次上报的数据
|
|
|
if (Objects.nonNull(truckDto)){
|
|
if (Objects.nonNull(truckDto)){
|
|
|
- return getTruckInfoVo(truckId, truckDto);
|
|
|
|
|
|
|
+ return truckDto;
|
|
|
|
|
+ // return getTruckInfoVo(truckId, truckDto);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//缓存没有则查询数据中台
|
|
//缓存没有则查询数据中台
|
|
|
VehicleReturnData vehicleReturnData = getVehicleReturnData(truckId);
|
|
VehicleReturnData vehicleReturnData = getVehicleReturnData(truckId);
|
|
|
if (Objects.nonNull(vehicleReturnData)){
|
|
if (Objects.nonNull(vehicleReturnData)){
|
|
|
- saveRedisCache(truckId, wOrderNo, truckNo, vehicleReturnData);
|
|
|
|
|
- return buildTruckInfo(truckId, vehicleReturnData, truckNo);
|
|
|
|
|
|
|
+ // saveRedisCache(truckId, wOrderNo, truckNo, vehicleReturnData);
|
|
|
|
|
+ TruckInfoVo truckInfoVo = buildTruckInfo(truckId, vehicleReturnData, truckNo,order);
|
|
|
|
|
+ RedissonUtils.putString(CommonConstants.TRUCK_LOCATION + truckId +CommonConstants.UNDERSCORE+ truckInfoVo.getOrderNo(), JSON.toJSONString(truckInfoVo),10,TimeUnit.DAYS);
|
|
|
|
|
+ return truckInfoVo;
|
|
|
}
|
|
}
|
|
|
//todo 查询中交 如果数据中台没有数据则查询中交
|
|
//todo 查询中交 如果数据中台没有数据则查询中交
|
|
|
// return getTruckInfoVoByZj(truckNo, wOrderNo,truckId);
|
|
// return getTruckInfoVoByZj(truckNo, wOrderNo,truckId);
|
|
@@ -494,7 +503,7 @@ public class kwfTruckTraceService {
|
|
|
* @param vehicleReturn 中台数据
|
|
* @param vehicleReturn 中台数据
|
|
|
* @return 组织的数据
|
|
* @return 组织的数据
|
|
|
*/
|
|
*/
|
|
|
- private TruckInfoVo buildTruckInfo(String truckId, VehicleReturnData vehicleReturn, String truckNo) {
|
|
|
|
|
|
|
+ private TruckInfoVo buildTruckInfo(String truckId, VehicleReturnData vehicleReturn, String truckNo,KwtWaybillOrder order) {
|
|
|
TruckInfoVo truckInfoVo = TruckInfoVo.getInstance();
|
|
TruckInfoVo truckInfoVo = TruckInfoVo.getInstance();
|
|
|
|
|
|
|
|
truckInfoVo.setTruckNo(truckNo);
|
|
truckInfoVo.setTruckNo(truckNo);
|
|
@@ -502,7 +511,6 @@ public class kwfTruckTraceService {
|
|
|
truckInfoVo.setLongitude(vehicleReturn.getLongitude());
|
|
truckInfoVo.setLongitude(vehicleReturn.getLongitude());
|
|
|
truckInfoVo.setLatitude(vehicleReturn.getLatitude());
|
|
truckInfoVo.setLatitude(vehicleReturn.getLatitude());
|
|
|
truckInfoVo.setLocationTime(Objects.isNull(vehicleReturn.getTs())? "" : DateUtils.format(vehicleReturn.getTs().toLocalDateTime(),DateUtils.DATE_TIME_PATTERN));
|
|
truckInfoVo.setLocationTime(Objects.isNull(vehicleReturn.getTs())? "" : DateUtils.format(vehicleReturn.getTs().toLocalDateTime(),DateUtils.DATE_TIME_PATTERN));
|
|
|
- KwtWaybillOrder order = kwtWaybillOrderRepository.findOneByTruckId(truckId);
|
|
|
|
|
if (Objects.nonNull(order)){
|
|
if (Objects.nonNull(order)){
|
|
|
truckInfoVo.setTruckNo(order.getTruckNo());
|
|
truckInfoVo.setTruckNo(order.getTruckNo());
|
|
|
truckInfoVo.setOrderNo(order.getWOrderNo());
|
|
truckInfoVo.setOrderNo(order.getWOrderNo());
|
|
@@ -542,6 +550,19 @@ public class kwfTruckTraceService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
truckInfoVo.setTaskAddress(startPoint+"-"+endPoint);
|
|
truckInfoVo.setTaskAddress(startPoint+"-"+endPoint);
|
|
|
|
|
+ //查询物流商品
|
|
|
|
|
+ KwtLogisticsOrderGoods kwtLogisticsOrderGoods = kwtLogisticsOrderGoodsRepository.queryByLogOrderId(subtask.getLOrderId());
|
|
|
|
|
+ Long goodsId = Optional.ofNullable(kwtLogisticsOrderGoods)
|
|
|
|
|
+ .map(KwtLogisticsOrderGoods::getGoodsId)
|
|
|
|
|
+ .orElse(null);
|
|
|
|
|
+ //查询商品
|
|
|
|
|
+ KwpGoods goodsById = goodsInfoService.getGoodsById(goodsId);
|
|
|
|
|
+ //查询字典
|
|
|
|
|
+ Map<String, Map<String, String>> dictByTypeMap = remoteSystemService.queryDictByType(Arrays.asList(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), DictTypeEnum.GOODS_SPEC.getType()));
|
|
|
|
|
+ truckInfoVo.setGoodsName(goodsById.getName() + "/" + dictByTypeMap.get(DictTypeEnum.PRODUCT_NAME_TYPE.getType()).get(goodsById.getGoodsType()) + "/" + dictByTypeMap.get(DictTypeEnum.GOODS_SPEC.getType()).get(goodsById.getSpec()));
|
|
|
|
|
+ Long truck = com.sckw.core.utils.StringUtils.isNotBlank(truckId) ? Long.parseLong(truckId) : null;
|
|
|
|
|
+ Optional.ofNullable(fleetService.findTruck(truck))
|
|
|
|
|
+ .ifPresent(f->truckInfoVo.setAxleNum(f.getCarAxis()));
|
|
|
return truckInfoVo;
|
|
return truckInfoVo;
|
|
|
}
|
|
}
|
|
|
|
|
|