Pārlūkot izejas kodu

司机app车辆逻辑更改

donglang 1 mēnesi atpakaļ
vecāks
revīzija
2b5183f1c0

+ 5 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/ErrorCodeEnum.java

@@ -66,7 +66,8 @@ public enum ErrorCodeEnum {
     WAYBILL_ORDER_ADDRESS_NOT_FOUND("80003", " 当前物流运单地址不存在"),
     WAYBILL_ORDER_NOT_LOG_ORDER("80004", " 物流运单无关联物流订单数据"),
     WAYBILL_ORDER_STATUS_ERROR("80005", " 物流运单状态异常"),
-    WAYBILL_ORDER_TICKET_NOT_FOUND("80005", " 当前物流运单装卸货信息不存在"),
+    WAYBILL_ORDER_TICKET_NOT_FOUND("80006", " 当前物流运单装卸货信息不存在"),
+    WAYBILL_ORDER_NOT_TRUCK("80007", " 物流运单无关联车辆数据"),
 
 
 
@@ -75,6 +76,9 @@ public enum ErrorCodeEnum {
     DRIVER_STATUS_ERROR("600001", "司机信息状态异常"),
     TRUCK_NOT_FOUND("600002", "车辆信息不存在"),
     TRUCK_STATUS_ERROR("600003", "车辆信息状态异常"),
+    ASSOCIATED_TRUCK_NOT_FOUND("600004", "司机关联车辆信息不存在"),
+    ASSOCIATED_TRUCK_EXIST("600005", "司机关联车辆已存在"),
+
 
 
 

+ 7 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportRemoteService.java

@@ -159,6 +159,13 @@ public interface TransportRemoteService {
      */
     List<CapacityTruckVO> queryCapacityTruck(CapacityTruckParam param);
 
+    /**
+     * 查询物流运单已派运力车辆
+     * @param param
+     * @return
+     */
+    List<RWaybillOrderVo> queryWaybillOrder(CapacityTruckParam param);
+
     /**
      *新增物流订单
      * @param param 请求参数

+ 1 - 1
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/CapacityTruckParam.java

@@ -20,7 +20,7 @@ public class CapacityTruckParam implements Serializable {
     /**
      * 企业id
      */
-    private String entId;
+    private Long entId;
 
     /**
      * 车牌号

+ 8 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java

@@ -20,6 +20,8 @@ import com.sckw.fleet.model.vo.KwfDriverAssociatedTrackVO;
 import com.sckw.fleet.model.vo.KwfDriverDetailVo;
 import com.sckw.fleet.model.vo.KwfDriverVo;
 import com.sckw.fleet.service.KwfDriverService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +41,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/kwfDriver")
+@Tag(name = "司机管理", description = "提供司机相关操作接口")
 public class KwfDriverController {
 
     @Autowired
@@ -285,7 +288,8 @@ public class KwfDriverController {
      * @param param
      * @return
      */
-    @GetMapping("/queryAssociatedTrack")
+    @Operation(summary = "查询司机关联车辆信息", description = "查询司机关联车辆列表")
+    @PostMapping("/queryAssociatedTrack")
     public BaseResult<List<KwfDriverAssociatedTrackVO>> queryAssociatedTrack(@RequestBody @Valid AssociatedTrackRequest param){
         List<KwfDriverAssociatedTrackVO> kwfDriverAssociatedTrackVOS = driverService.queryAssociatedTrack(param);
         return BaseResult.success(kwfDriverAssociatedTrackVOS);
@@ -297,6 +301,7 @@ public class KwfDriverController {
      * @param param
      * @return
      */
+    @Operation(summary = "新增司机关联车辆", description = "新增司机关联车辆")
     @PostMapping("/addAssociatedTrack")
     public BaseResult addAssociatedTrack(@RequestBody @Valid AssociatedTrackAddRequest param){
         driverService.addAssociatedTrack(param);
@@ -309,6 +314,7 @@ public class KwfDriverController {
      * @param id
      * @return
      */
+    @Operation(summary = "删除司机关联车辆", description = "删除司机关联车辆")
     @PostMapping("/deleteAssociatedTrack")
     public BaseResult deleteAssociatedTrack(@RequestParam Long id){
         driverService.deleteAssociatedTrack(id);
@@ -322,6 +328,7 @@ public class KwfDriverController {
      * @param id
      * @return
      */
+    @Operation(summary = "切换关联车辆", description = "切换关联车辆")
     @PostMapping("/switchAssociatedTrack")
     public BaseResult switchAssociatedTrack(@RequestParam Long id){
         driverService.switchAssociatedTrack(id);

+ 10 - 6
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverAssociatedTrack.java

@@ -1,11 +1,13 @@
 package com.sckw.fleet.model;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 司机关联车辆表(司机app) Model
@@ -72,23 +74,25 @@ public class KwfDriverAssociatedTrack  implements Serializable {
      * 创建时间
      */
     @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Data createTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
 
     /**
      * 更新时间
      */
     @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
-    private Data updateTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
 
     /**
      * 创建人
      */
-    @TableField(value = "create_user", fill = FieldFill.INSERT)
-    private String createUser;
+    @TableField(value = "create_user")
+    private Long createUser;
 
     /**
      * 更新人
      */
-    @TableField(value = "update_user", fill = FieldFill.INSERT_UPDATE)
-    private String updateUser;
+    @TableField(value = "update_user")
+    private Long updateUser;
 }

+ 5 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/AssociatedTrackAddRequest.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.model.request;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
@@ -15,24 +16,28 @@ public class AssociatedTrackAddRequest {
     /**
      * 企业id
      */
+    @Schema(description = "企业id")
     @NotNull(message = "企业id不能为空!")
     private Long entId;
 
     /**
      * 司机id
      */
+    @Schema(description = "司机id")
     @NotNull(message = "司机id不能为空!")
     private Long driverId;
 
     /**
      * 车牌号
      */
+    @Schema(description = "车牌号")
     @NotBlank(message = "车辆号不能为空!")
     private String truckNo;
 
     /**
      * 车辆轴数id
      */
+    @Schema(description = "车辆轴数id")
     @NotNull(message = "车辆id不能为空!")
     private Long truckAxleId;
 

+ 3 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/AssociatedTrackRequest.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.model.request;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
@@ -14,12 +15,14 @@ public class AssociatedTrackRequest {
     /**
      * 企业id
      */
+    @Schema(description = "企业id")
     @NotNull(message = "企业id不能为空!")
     private Long entId;
 
     /**
      * 司机id
      */
+    @Schema(description = "司机id")
     @NotNull(message = "司机主键id不能为空!")
     private Long driverId;
 

+ 12 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfDriverAssociatedTrackRepository.java

@@ -1,10 +1,13 @@
 package com.sckw.fleet.repository;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sckw.fleet.dao.KwfDriverAssociatedTrackMapper;
 import com.sckw.fleet.model.KwfDriverAssociatedTrack;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 
 /**
  * @author PC
@@ -13,4 +16,13 @@ import org.springframework.stereotype.Repository;
 @Repository
 public class KwfDriverAssociatedTrackRepository extends ServiceImpl<KwfDriverAssociatedTrackMapper, KwfDriverAssociatedTrack> {
 
+    public List<KwfDriverAssociatedTrack> queryByEntIdAndDriverId(Long entId, Long driverId) {
+        return list(Wrappers.<KwfDriverAssociatedTrack>lambdaQuery()
+                .eq(KwfDriverAssociatedTrack::getEntId, entId)
+                .eq(KwfDriverAssociatedTrack::getDriverId, driverId)
+                .eq(KwfDriverAssociatedTrack::getDelFlag, 0)
+                .orderByDesc(KwfDriverAssociatedTrack::getCreateTime));
+
+    }
+
 }

+ 90 - 36
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.common.enums.enums.FileEnum;
+import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.base.BaseModel;
 import com.sckw.core.model.constant.Global;
@@ -41,6 +43,7 @@ import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.api.dubbo.TransportRemoteService;
 import com.sckw.transport.api.model.param.CapacityTruckParam;
 import com.sckw.transport.api.model.vo.CapacityTruckVO;
+import com.sckw.transport.api.model.vo.RWaybillOrderVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -1140,13 +1143,8 @@ public class KwfDriverService {
      */
     public List<KwfDriverAssociatedTrackVO> queryAssociatedTrack(AssociatedTrackRequest request) {
         log.info("查询司机关联车辆信息:{}", JSON.toJSONString(request));
-        LambdaQueryWrapper<KwfDriverAssociatedTrack> queryWrapper = Wrappers.<KwfDriverAssociatedTrack>lambdaQuery()
-                .eq(KwfDriverAssociatedTrack::getEntId, request.getEntId())
-                .eq(KwfDriverAssociatedTrack::getDriverId, request.getDriverId())
-                .eq(KwfDriverAssociatedTrack::getDelFlag, 0)
-                .orderByDesc(KwfDriverAssociatedTrack::getCreateTime);
-
-        List<KwfDriverAssociatedTrack> associatedTrackList = driverAssociatedTrackRepository.list(queryWrapper);
+        List<KwfDriverAssociatedTrack> associatedTrackList = driverAssociatedTrackRepository
+                .queryByEntIdAndDriverId(request.getEntId(),request.getDriverId());
         if (CollectionUtils.isEmpty(associatedTrackList)) {
             return Collections.emptyList();
         }
@@ -1195,29 +1193,54 @@ public class KwfDriverService {
         log.info("新增司机关联车辆信息:{}", JSON.toJSONString(request));
         CapacityTruckParam param = new CapacityTruckParam();
         param.setTruckNo(request.getTruckNo());
-        param.setEntId(request.getTruckNo());
-        //校验物流订单列表里是否存在相同这牌
+        param.setEntId(request.getEntId());
+        //校验物流订单车辆是否存在
         List<CapacityTruckVO> capacityTruckVOS = transportRemoteService.queryCapacityTruck(param);
         if (CollectionUtils.isEmpty(capacityTruckVOS)) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, "您所在的企业暂无该车辆,请与企业管理人员联系");
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_TRUCK, "您所在的企业暂无该车辆,请与企业管理人员联系");
         }
 
-        Long truckId = capacityTruckVOS.stream().map(CapacityTruckVO::getTruckId)
-                .distinct().findFirst().orElse(null);
-        KwfTruck truckByTruckId = truckRepository.queryByTruckId(truckId);
+        Long truckId = capacityTruckVOS.stream().map(CapacityTruckVO::getTruckId).distinct().findFirst()
+                .orElseThrow(() ->new BusinessPlatfromException(ErrorCodeEnum.TRUCK_NOT_FOUND, "车牌[" + request.getTruckNo() + "]未关联有效车辆ID"));
+        KwfTruck truck = truckRepository.queryByTruckId(truckId);
+        if (truck == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_NOT_FOUND,  "车辆ID[" + truckId + "]不存在");
+        }
+        //校验车辆车轴信息
+        if (StringUtils.isBlank(truck.getCarAxis()) || request.getTruckAxleId() != Long.parseLong(truck.getCarAxis())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_TRUCK, "您所在的企业暂无该车辆,请与企业管理人员联系");
+        }
 
-        //校验物流订单列表里车牌是否存在相同车轴
-        if ( truckByTruckId.getCarAxis() == null || request.getTruckAxleId() != Long.parseLong(truckByTruckId.getCarAxis())) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, "您所在的企业暂无该车辆,请与企业管理人员联系");
+        //校验车辆是否已存在
+        List<KwfDriverAssociatedTrack> associatedTrackList = driverAssociatedTrackRepository.queryByEntIdAndDriverId(request.getEntId(),request.getDriverId());
+        boolean isDuplicate = associatedTrackList.stream()
+                .anyMatch(track -> Objects.equals(track.getTruckNo(), request.getTruckNo()));
+        if (isDuplicate) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.ASSOCIATED_TRUCK_EXIST, "司机已关联车牌[" + request.getTruckNo() + "],无需重复添加");
         }
-        //新增司机关联车辆信息
+
+        //校验新增车辆是否有未完成运单
+        List<RWaybillOrderVo> waybillVos = transportRemoteService.queryWaybillOrder(param);
+        if (CollectionUtils.isNotEmpty(waybillVos)) {
+            //首次关联不能新增
+            if (CollectionUtils.isEmpty(associatedTrackList)) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.ASSOCIATED_TRUCK_EXIST, "当前车辆正在任务中,请稍后进行添加");
+            }
+            // 非首次关联,允许添加但不设为当前车辆
+            log.info("非首次关联,允许添加有未完成运单的车辆[{}]", request.getTruckNo());
+        }
+
+        //设置关联状态(首次关联设为当前车辆,并将原有当前车辆置为非当前)
         KwfDriverAssociatedTrack associatedTrack = new KwfDriverAssociatedTrack();
         associatedTrack.setEntId(request.getEntId());
         associatedTrack.setDriverId(request.getDriverId());
         associatedTrack.setTruckNo(request.getTruckNo());
         associatedTrack.setTruckAxleId(request.getTruckAxleId());
+        associatedTrack.setCreateUser(request.getDriverId());
+        //首次关联默认设为当前车辆;
+        associatedTrack.setStatus(associatedTrackList.isEmpty() ? Global.YES : Global.NO);
         driverAssociatedTrackRepository.save(associatedTrack);
-        log.info("新增司机关联车辆成功!");
+        log.info("新增司机关联车辆成功,记录ID:{},车牌:{}", associatedTrack.getId(), request.getTruckNo());
     }
 
     /**
@@ -1227,17 +1250,20 @@ public class KwfDriverService {
     public void deleteAssociatedTrack(Long id) {
         log.info("删除司机关联车辆:{}", id);
         //校验
-        if (StringUtils.isBlank(id)) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ID_MISSING);
+        if (id == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "id不能为空!");
         }
         KwfDriverAssociatedTrack associatedTrack = driverAssociatedTrackRepository.getById(id);
         if (associatedTrack == null) {
-            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.DELETE_FAIL);
+            throw new BusinessPlatfromException(ErrorCodeEnum.ASSOCIATED_TRUCK_NOT_FOUND, "司机关联车辆信息不存在!");
         }
+        //校验车辆是否有未完成运单
+        checkTruckHasUnfinishedWaybill(associatedTrack.getTruckNo(), associatedTrack.getEntId() , false);
         associatedTrack.setDelFlag(Global.YES);
         if (!driverAssociatedTrackRepository.updateById(associatedTrack)) {
-            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
+            throw new BusinessPlatfromException(ErrorCodeEnum.DATA_DELETE_FAIL, "删除失败");
         }
+
         log.info("删除司机关联车辆成功!");
     }
 
@@ -1249,29 +1275,57 @@ public class KwfDriverService {
     public void switchAssociatedTrack(Long id) {
         log.info("切换关联车辆id:{}", id);
         //校验
-        if (StringUtils.isBlank(id)) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ID_MISSING);
+        if (id == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "id不能为空!");
         }
-        KwfDriverAssociatedTrack associatedTrack = driverAssociatedTrackRepository.getById(id);
-        if (associatedTrack == null) {
-            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.DELETE_FAIL);
+        KwfDriverAssociatedTrack newTrack = driverAssociatedTrackRepository.getById(id);
+        if (newTrack == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.ASSOCIATED_TRUCK_NOT_FOUND, "司机关联车辆信息不存在!");
+        }
+        if (newTrack.getStatus() == Global.YES) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "所选车辆为当前车辆,不能切换,请重新选择!");
         }
+        //校验新车辆是否有未完成运单
+        checkTruckHasUnfinishedWaybill(newTrack.getTruckNo(), newTrack.getEntId() , true);
+
         //先更改旧关联车辆
         LambdaQueryWrapper<KwfDriverAssociatedTrack> queryWrapper = Wrappers.<KwfDriverAssociatedTrack>lambdaQuery()
-                .eq(KwfDriverAssociatedTrack::getDriverId, associatedTrack.getDriverId())
-                .eq(KwfDriverAssociatedTrack::getEntId, associatedTrack.getEntId())
+                .eq(KwfDriverAssociatedTrack::getDriverId, newTrack.getDriverId())
+                .eq(KwfDriverAssociatedTrack::getEntId, newTrack.getEntId())
                 .eq(KwfDriverAssociatedTrack::getStatus, Global.YES);
-        KwfDriverAssociatedTrack oldAssociatedTrack = driverAssociatedTrackRepository.getOne(queryWrapper);
-        oldAssociatedTrack.setStatus(Global.NO);
-        driverAssociatedTrackRepository.updateById(oldAssociatedTrack);
-
+        KwfDriverAssociatedTrack oldTrack = driverAssociatedTrackRepository.getOne(queryWrapper);
+        if (oldTrack != null) {
+            //校验旧车辆否有未完成运单
+            checkTruckHasUnfinishedWaybill(oldTrack.getTruckNo(), oldTrack.getEntId() , false);
+            oldTrack.setStatus(Global.NO);
+            driverAssociatedTrackRepository.updateById(oldTrack);
+            log.info("旧关联车辆[{}]已取消", oldTrack.getTruckNo());
+        }
         //更改新关联车辆
-        associatedTrack.setStatus(Global.YES);
-        driverAssociatedTrackRepository.updateById(associatedTrack);
-        log.info("切换关联车辆成功!");
+        newTrack.setStatus(Global.YES);
+        driverAssociatedTrackRepository.updateById(newTrack);
+        log.info("关联车辆切换成功,新车辆[{}]",newTrack.getTruckNo());
     }
 
 
+    /**
+     * 校验车辆是否有未完成运单
+     */
+    private void checkTruckHasUnfinishedWaybill(String truckNo, Long entId, boolean isNew) {
+        if (truckNo == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, isNew ? "新关联车辆号为空!" : "旧关联车辆号为空!");
+        }
+        CapacityTruckParam param = new CapacityTruckParam();
+        param.setTruckNo(truckNo);
+        param.setEntId(entId);
+        List<RWaybillOrderVo> waybillVos = transportRemoteService.queryWaybillOrder(param);
+        if (CollectionUtils.isNotEmpty(waybillVos)) {
+            String msg = isNew ?
+                    String.format("新关联车辆[%s]有未完成运单,无法切换!", truckNo) :
+                    String.format("当前车辆[%s]有未完成运单,无法切换!", truckNo);
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_UNFINISHED, msg);
+        }
+    }
 
 
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/resources/bootstrap.yml

@@ -1,5 +1,5 @@
 server:
-  port: 10080
+  port: 10081
 
 spring:
   application:

+ 35 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dubbo/TransportServiceImpl.java

@@ -12,6 +12,7 @@ import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.constant.NumberConstant;
 import com.sckw.core.model.enums.CarWaybillEnum;
+import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.DateUtils;
@@ -133,6 +134,15 @@ public class TransportServiceImpl implements TransportRemoteService {
     private final KwtLogisticsOrderCirculateRepository logisticsOrderCirculateRepository;
     private final KwtAcceptCarriageOrderService kwtAcceptCarriageOrderService;
     private final KwtLogisticsConsignmentService logisticsConsignmentService;
+
+    // 定义禁止关联车辆删除的状态集合
+    private static final List<Integer> FORBIDDEN_STATUSES = Arrays.asList(
+            CarWaybillV1Enum.PENDING_VEHICLE.getCode(),
+            CarWaybillV1Enum.REFUSE_TRAFFIC.getCode(),
+            CarWaybillV1Enum.EXIT_COMPLETED.getCode(),
+            CarWaybillV1Enum.WAIT_LOADING.getCode(),
+            CarWaybillV1Enum.COMPLETION_UNLOADING.getCode()
+    );
     /**
      * 对账管理-ids查询
      *
@@ -1090,6 +1100,31 @@ public class TransportServiceImpl implements TransportRemoteService {
         return truckVOList;
     }
 
+
+    /**
+     * 查询物流订单已派运力车辆
+     * @param param
+     * @return
+     */
+    public List<RWaybillOrderVo> queryWaybillOrder(CapacityTruckParam param) {
+        log.info("查询物流运单已派运力车辆:{}", com.alibaba.fastjson.JSON.toJSONString(param));
+        LambdaQueryWrapper<KwtWaybillOrder> queryWrapper = Wrappers.<KwtWaybillOrder>lambdaQuery()
+                .in(KwtWaybillOrder::getEntId, param.getEntId())
+                .eq(KwtWaybillOrder::getDelFlag,0)
+                .eq(KwtWaybillOrder::getTruckNo,param.getTruckNo())
+                .in(KwtWaybillOrder::getStatus, FORBIDDEN_STATUSES)
+                .orderByDesc(KwtWaybillOrder::getCreateTime)
+                .orderByAsc(KwtWaybillOrder::getId);
+
+        List<KwtWaybillOrder> waybillOrderList = waybillOrderRepository.list(queryWrapper);
+        if (CollectionUtils.isEmpty(waybillOrderList)) {
+            return new ArrayList<>();
+        }
+        return waybillOrderList.stream()
+                .map(TransportServiceImpl::getWaybillOrderVo)
+                .collect(Collectors.toList());
+    }
+
     @Override
     public void addLogisticOrder(AddLogisticOrderParam param) {
         log.info("新增物流订单:{}", JSON.toJSONString(param));