|
|
@@ -1,5 +1,6 @@
|
|
|
package com.sckw.transport.service;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
@@ -10,6 +11,7 @@ import com.google.common.collect.Sets;
|
|
|
import com.sckw.contract.api.RemoteContractService;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
+import com.sckw.core.model.base.BaseModel;
|
|
|
import com.sckw.core.model.enums.AddressTypeEnum;
|
|
|
import com.sckw.core.model.enums.CarWaybillEnum;
|
|
|
import com.sckw.core.model.enums.CarWaybillV1Enum;
|
|
|
@@ -36,6 +38,7 @@ import com.sckw.system.api.model.dto.res.KwsEnterpriseResDto;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
import com.sckw.transport.api.model.vo.RWaybillOrderVo;
|
|
|
import com.sckw.transport.common.config.UrlConfigProperties;
|
|
|
+import com.sckw.transport.dao.KwtWaybillOrderSubtaskMapper;
|
|
|
import com.sckw.transport.model.*;
|
|
|
import com.sckw.transport.model.dto.TruckDto;
|
|
|
import com.sckw.transport.api.feign.VehicleTraceClient;
|
|
|
@@ -95,6 +98,7 @@ public class kwfTruckTraceService {
|
|
|
private final KwtLogisticsOrderGoodsRepository kwtLogisticsOrderGoodsRepository;
|
|
|
private final KwtLogisticsOrderRepository kwtLogisticsOrderRepository;
|
|
|
private final KwtVehicleExceptionRepository kwtVehicleExceptionRepository;
|
|
|
+ private final KwtWaybillOrderSubtaskMapper waybillOrderSubtaskDao;;
|
|
|
private final KwtLogisticsOrderAddressRepository kwtLogisticsOrderAddressRepository;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
|
|
|
RemoteSystemService remoteSystemService;
|
|
|
@@ -471,7 +475,7 @@ public class kwfTruckTraceService {
|
|
|
}
|
|
|
//查询关联订单号
|
|
|
|
|
|
- KwtWaybillOrder oneByTruckNo = kwtWaybillOrderRepository.findOneByTruckNo(truckNo,LoginUserHolder.getEntId());
|
|
|
+ KwtWaybillOrder oneByTruckNo = kwtWaybillOrderRepository.findOneByTruckNo(truckNo,null);
|
|
|
|
|
|
KwtWaybillOrderSubtask waybillOrderSubtask = kwtWaybillOrderSubtaskRepository.findOneByWOrderNo(oneByTruckNo.getWOrderNo());
|
|
|
instance.setLogicOrderNo(Objects.nonNull(waybillOrderSubtask) && Objects.nonNull(waybillOrderSubtask.getLOrderId())
|
|
|
@@ -549,12 +553,36 @@ public class kwfTruckTraceService {
|
|
|
// 获取当前登录用户的企业ID
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
String wOrderNo = StringUtils.EMPTY ;
|
|
|
-
|
|
|
// 如果请求中包含订单号,则直接使用;否则根据车牌号查询对应订单号
|
|
|
if (StringUtils.isNotBlank(req.getOrderNo())){
|
|
|
wOrderNo = req.getOrderNo();
|
|
|
}else {
|
|
|
- KwtWaybillOrder waybillOrder = kwtWaybillOrderRepository.findOneByTruckNo(req.getTruckNo(),entId);
|
|
|
+ //根据企业查询物流订单
|
|
|
+ List<KwtLogisticsOrderUnit> kwtLogisticsOrderUnits = kwtLogisticsOrderUnitRepository.queryByEntId(entId);
|
|
|
+ if (CollUtil.isEmpty(kwtLogisticsOrderUnits)) {
|
|
|
+ log.info("该企业未查询到物流订单数据,企业id:{}", entId);
|
|
|
+ return new CurrentTaskTraceReqVo();
|
|
|
+ }
|
|
|
+ //获取物流订单号
|
|
|
+ Set<Long> logOrderIds = kwtLogisticsOrderUnits.stream()
|
|
|
+ .map(KwtLogisticsOrderUnit::getLOrderId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ if (CollUtil.isEmpty(logOrderIds)) {
|
|
|
+ log.info("该企业下物流订单数据,企业id:{}", entId);
|
|
|
+ return new CurrentTaskTraceReqVo();
|
|
|
+ }
|
|
|
+ //查询子运单
|
|
|
+ List<KwtWaybillOrderSubtask> kwtWaybillOrderSubtasks = waybillOrderSubtaskDao.selectList(Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
|
|
|
+ .in(KwtWaybillOrderSubtask::getLOrderId, logOrderIds)
|
|
|
+ .eq(BaseModel::getDelFlag, 0));
|
|
|
+ if(org.apache.commons.collections4.CollectionUtils.isEmpty(kwtWaybillOrderSubtasks)){
|
|
|
+ log.info("该企业下子运单的订单数据不存在,企业id:{}", entId);
|
|
|
+ return new CurrentTaskTraceReqVo();
|
|
|
+ }
|
|
|
+ Set<Long> wayOrderIds = kwtWaybillOrderSubtasks.stream()
|
|
|
+ .map(KwtWaybillOrderSubtask::getWOrderId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ KwtWaybillOrder waybillOrder = kwtWaybillOrderRepository.findOneByTruckNo(req.getTruckNo(),wayOrderIds);
|
|
|
wOrderNo = Optional.ofNullable(waybillOrder).map(KwtWaybillOrder::getWOrderNo).orElse("");
|
|
|
}
|
|
|
|
|
|
@@ -829,9 +857,34 @@ public class kwfTruckTraceService {
|
|
|
*/
|
|
|
public List<TruckSelectVo> getTruckSelectList(TruckSelectReq req) {
|
|
|
log.info("查询车辆下拉列表参数:{}", JSON.toJSONString( req));
|
|
|
-
|
|
|
+ Long entId = LoginUserHolder.getEntId();
|
|
|
+ //根据企业查询物流订单
|
|
|
+ List<KwtLogisticsOrderUnit> kwtLogisticsOrderUnits = kwtLogisticsOrderUnitRepository.queryByEntId(entId);
|
|
|
+ if (CollUtil.isEmpty(kwtLogisticsOrderUnits)) {
|
|
|
+ log.info("该企业未查询到物流订单数据,企业id:{}", entId);
|
|
|
+ return List.of();
|
|
|
+ }
|
|
|
+ //获取物流订单号
|
|
|
+ Set<Long> logOrderIds = kwtLogisticsOrderUnits.stream()
|
|
|
+ .map(KwtLogisticsOrderUnit::getLOrderId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ if (CollUtil.isEmpty(logOrderIds)) {
|
|
|
+ log.info("该企业下物流订单数据,企业id:{}", entId);
|
|
|
+ return List.of();
|
|
|
+ }
|
|
|
+ //查询子运单
|
|
|
+ List<KwtWaybillOrderSubtask> kwtWaybillOrderSubtasks = waybillOrderSubtaskDao.selectList(Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
|
|
|
+ .in(KwtWaybillOrderSubtask::getLOrderId, logOrderIds)
|
|
|
+ .eq(BaseModel::getDelFlag, 0));
|
|
|
+ if(org.apache.commons.collections4.CollectionUtils.isEmpty(kwtWaybillOrderSubtasks)){
|
|
|
+ log.info("该企业下子运单的订单数据不存在,企业id:{}", entId);
|
|
|
+ return List.of();
|
|
|
+ }
|
|
|
+ Set<Long> wayOrderIds = kwtWaybillOrderSubtasks.stream()
|
|
|
+ .map(KwtWaybillOrderSubtask::getWOrderId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
// 使用 Repository 查询车辆运单数据
|
|
|
- List<KwtWaybillOrder> waybillOrders = kwtWaybillOrderRepository.selectTruckListForSelect(req.getTruckNo(),LoginUserHolder.getEntId());
|
|
|
+ List<KwtWaybillOrder> waybillOrders = kwtWaybillOrderRepository.selectTruckListForSelect(req.getTruckNo(),wayOrderIds,req.getWaybillOrderNo());
|
|
|
|
|
|
if (CollectionUtils.isEmpty(waybillOrders)) {
|
|
|
return new ArrayList<>();
|