ソースを参照

采购订单/销售订单-获取托运订单列表-兼容多选
托运订单-车辆运单-车辆信息-兼容多选
承运合同/销售合同-获取订单-兼容多选

lengfaqiang 2 年 前
コミット
4342297dc1

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -62,7 +62,7 @@ public class AcceptCarriageOrderController {
      * @return
      */
     @RequestMapping(value = "/cancelConsign", method = RequestMethod.POST)
-    public HttpResult cancelConsign(@Validated @RequestBody OrderDTO orderDto) {
+    public HttpResult cancelConsign(@Validated @RequestBody CancelOrderDTO orderDto) {
         try {
             return transportCommonService.cancelConsign(orderDto);
         } catch (Exception e) {

+ 7 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.AddOrderDTO;
@@ -38,10 +39,11 @@ public class ConsignOrderController {
      */
     @RequestMapping(value = "/getCarWaybillByOrder", method = RequestMethod.POST)
     public HttpResult getCarWaybillByOrder(@Validated @RequestBody OrderDTO orderDto) {
+        log.info("托运订单/承运订单-获取车辆运单 query {}", JSONObject.toJSONString(orderDto));
         try {
             return consignOrderService.getCarWaybillByOrder(orderDto);
         } catch (Exception e) {
-            log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
+            log.error("托运订单获取车辆运单失败:订单ids {},error {} ", JSONObject.toJSONString(orderDto), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
@@ -54,10 +56,11 @@ public class ConsignOrderController {
      */
     @RequestMapping(value = "/getCarWaybillByOrderCount", method = RequestMethod.POST)
     public HttpResult getCarWaybillByOrderCount(@Validated @RequestBody OrderDTO orderDto) {
+        log.info("托运订单/承运订单-获取车辆运单-统计 query {}", JSONObject.toJSONString(orderDto));
         try {
             return consignOrderService.getCarWaybillByOrderCount(orderDto);
         } catch (Exception e) {
-            log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
+            log.error("托运订单/承运订单-获取车辆运单-统计: query {},error {} ", JSONObject.toJSONString(orderDto), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
@@ -82,10 +85,11 @@ public class ConsignOrderController {
      */
     @RequestMapping(value = "/getCarListByOrder", method = RequestMethod.POST)
     public HttpResult getCarListByOrder(@Validated @RequestBody OrderDTO orderDto) {
+        log.info("托运订单/承运订单-获取车辆信息 query {}", JSONObject.toJSONString(orderDto));
         try {
             return consignOrderService.getCarListByOrder(orderDto, "1");
         } catch (Exception e) {
-            log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
+            log.error("托运订单获取车辆运单失败:query {},error {} ", JSONObject.toJSONString(orderDto), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -100,6 +100,13 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      */
     List<SubcontractConsignmentVO> getSubcontractConsignment(@Param("lOrderId") String lOrderId, @Param("page") Integer page, @Param("pageSize") Integer pageSize);
 
+    /**
+     *
+     * @param lOrderId
+     * @return
+     */
+    List<SubcontractConsignmentVO> getSubcontractConsignmentNotPage(@Param("lOrderId") String lOrderId);
+
     List<Map> countSubcontractConsignmentById(@Param("lOrderId") String lOrderId);
 
     /**

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -29,7 +29,7 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
 
     List<OrderCarDTO> selectWaybillOrderCarList(@Param("id") String id, @Param("page") int page, @Param("pageSize") int pageSize);
 
-    List<OrderCarDTO> selectWaybillOrderCarListGroupByTruckNo(@Param("id") String id, @Param("page") int page, @Param("pageSize") int pageSize);
+    List<OrderCarDTO> selectWaybillOrderCarListGroupByTruckNo(@Param("ids") List<String> ids, @Param("page") int page, @Param("pageSize") int pageSize);
 
     Long selectWaybillOrderCarCount(@Param("id") String id);
 

+ 28 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CancelOrderDTO.java

@@ -0,0 +1,28 @@
+package com.sckw.transport.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 承运订单/托运订单-撤销托运
+ * @date 2023-08-03 19:08:22
+ */
+
+@Data
+public class CancelOrderDTO {
+    @JsonProperty("orderNo")
+    @NotNull(message = "单据编号不能为空")
+    private String orderNo;
+
+    @JsonProperty("id")
+    @NotNull(message = "数据id不能为空")
+    private String id;
+    /**
+     * 1 托运 2 承运
+     */
+    @JsonProperty("type")
+    @NotNull(message = "单据类型不能为空")
+    private String type;
+}

+ 6 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDTO.java

@@ -14,13 +14,13 @@ import lombok.experimental.Accessors;
 @Data
 @Accessors(chain = true)
 public class OrderDTO extends PageRequest {
-    @JsonProperty("orderNo")
-    @NotNull(message = "单据编号不能为空")
-    private String orderNo;
+//    @JsonProperty("orderNo")
+//    @NotNull(message = "单据编号不能为空")
+//    private String orderNo;
 
-    @JsonProperty("id")
-    @NotNull(message = "数据id不能为空")
-    private String id;
+    @JsonProperty("ids")
+    @NotNull(message = "数据ids不能为空")
+    private String ids;
     /**
      * 1 托运 2 承运
      */

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java

@@ -1,9 +1,12 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * @author lfdc
@@ -75,5 +78,11 @@ public class CarWaybillVO {
      * 派车人
      */
     private String appointor;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 
 }

+ 169 - 141
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -147,8 +147,8 @@ public class ConsignOrderService {
      */
     private HttpResult getCarWaybillOrderByConsignCount(OrderDTO orderDto) {
         KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                        .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
-                        .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
+                /**    .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
+                 .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
                 /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
         if (ObjectUtils.isEmpty(order)) {
             return HttpResult.ok();
@@ -221,8 +221,8 @@ public class ConsignOrderService {
      */
     private HttpResult getCarWaybillOrderByAcceptCarriageCount(OrderDTO orderDto) {
         KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                        .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
-                        .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
+                /** .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
+                 .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
                 /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
         if (ObjectUtils.isEmpty(order)) {
             return HttpResult.ok();
@@ -288,161 +288,185 @@ public class ConsignOrderService {
      * @return
      */
     private HttpResult getCarWaybillOrderByAcceptCarriage(OrderDTO orderDto) {
-        List<CarWaybillVO> returnList = new ArrayList<>();
-        KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                        .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
-                        .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
-                /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
-        if (ObjectUtils.isEmpty(order)) {
-            return HttpResult.ok(returnList);
+        List<String> list = StringUtils.splitStrToList(orderDto.getIds(), String.class);
+        if (CollectionUtils.isEmpty(list)) {
+            return HttpResult.ok();
         }
-        List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
-                        .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
-                        .last("limit " + (orderDto.getPage() - 1) + " , " + orderDto.getPageSize())
-                /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
-            for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
-                CarWaybillVO carWaybillVo = new CarWaybillVO();
-                KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
-                        .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
-                        .eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
-                KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
-                        .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
-                        .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
-                //合理损耗
-                BigDecimal loss = order.getLoss();
-                /**亏吨量/吨->装货量-卸货量
-                 * 合理损耗值=装货量*合理损耗
-                 扣亏量/吨->亏吨量-合理损耗值
-                 */
-                //已委托量
-                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
-                //合理损耗值
-                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
-                //亏吨量
-                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
-                //扣亏量/吨
-                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
-                carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
-                carWaybillVo.setWOrderNo(order.getLOrderNo());
-                carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
-                carWaybillVo.setStatus(CarWaybillEnum.getName(kwtWaybillOrder.getStatus()));
-                carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
-                carWaybillVo.setDriverName(kwtWaybillOrder.getDriverName());
-                //todo 取mongo
+        List<CarWaybillVO> returnList = new ArrayList<>();
+        for (String id : list) {
+            KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                            .eq(StringUtils.isNotBlank(id), KwtLogisticsOrder::getId, Long.parseLong(id))
+                    /**      .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
+                    /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
+            if (ObjectUtils.isEmpty(order)) {
+                continue;
+            }
+            List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
+                            .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
+                            .orderByDesc(KwtWaybillOrder::getCreateTime)
+                    /**.last("limit " + (orderDto.getPage() - 1) + " , " + orderDto.getPageSize()*/);
+            /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));*/
+            if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
+                for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
+                    CarWaybillVO carWaybillVo = new CarWaybillVO();
+                    KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                            .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
+                            .eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
+                    KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                            .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
+                            .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
+                    //合理损耗
+                    BigDecimal loss = order.getLoss();
+                    /**亏吨量/吨->装货量-卸货量
+                     * 合理损耗值=装货量*合理损耗
+                     扣亏量/吨->亏吨量-合理损耗值
+                     */
+                    //已委托量
+                    BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                    //合理损耗值
+                    BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                    //亏吨量
+                    BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                    //扣亏量/吨
+                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                    carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
+                    carWaybillVo.setWOrderNo(order.getLOrderNo());
+                    carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
+                    carWaybillVo.setStatus(CarWaybillEnum.getName(kwtWaybillOrder.getStatus()));
+                    carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
+                    carWaybillVo.setDriverName(kwtWaybillOrder.getDriverName());
+                    //todo 取mongo
 //                SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(kwtWaybillOrder.getId(), SckwWaybillOrder.class);
-                /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
+                    /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
 //                carWaybillVo.setConsignMotorcade(sckwWaybillOrder == null ? null : sckwWaybillOrder.getCarrierFirmName());
-                //派车量
-                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
-                carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
-                if (loadTicket != null) {
-                    carWaybillVo.setLoadAmount(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
-                    carWaybillVo.setLoadDateTime(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
-                } else {
-                    carWaybillVo.setLoadAmount(null);
-                    carWaybillVo.setLoadDateTime(null);
-                }
-                if (unloadTicket != null) {
-                    carWaybillVo.setUnloadAmount(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
-                    carWaybillVo.setUnloadDateTime(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
-                } else {
-                    carWaybillVo.setUnloadAmount(null);
-                    carWaybillVo.setUnloadDateTime(null);
-                }
-                /**亏吨量/吨->装货量-卸货量
-                 扣亏量/吨->亏吨量-合理损耗*/
-                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(deduct);
+                    //派车量
+                    carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                    carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
+                    if (loadTicket != null) {
+                        carWaybillVo.setLoadAmount(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
+                        carWaybillVo.setLoadDateTime(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
+                    } else {
+                        carWaybillVo.setLoadAmount(null);
+                        carWaybillVo.setLoadDateTime(null);
+                    }
+                    if (unloadTicket != null) {
+                        carWaybillVo.setUnloadAmount(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
+                        carWaybillVo.setUnloadDateTime(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
+                    } else {
+                        carWaybillVo.setUnloadAmount(null);
+                        carWaybillVo.setUnloadDateTime(null);
+                    }
+                    /**亏吨量/吨->装货量-卸货量
+                     扣亏量/吨->亏吨量-合理损耗*/
+                    carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
+                    carWaybillVo.setDeduct(deduct);
+                    carWaybillVo.setCreateTime(kwtWaybillOrder.getCreateTime());
 //                carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
 //                        String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
-                returnList.add(carWaybillVo);
+                    returnList.add(carWaybillVo);
+                }
             }
         }
-        PageResult result = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), returnList.stream().count(), returnList);
+        List<CarWaybillVO> collect = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(returnList)) {
+            collect = returnList.stream().skip((orderDto.getPage() - 1) * orderDto.getPageSize()).limit(orderDto.getPageSize()).collect(Collectors.toList());
+        }
+        PageResult result = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), returnList.stream().count(), collect);
         return HttpResult.ok(result);
     }
 
 
     /**
-     * 通过订单id+类型 查询托运订单-车辆运单
+     * 通过订单ids+类型 查询托运订单-车辆运单
      *
      * @param orderDto
      * @return
      */
     private HttpResult getCarWaybillOrderByConsign(OrderDTO orderDto) {
-        List<CarWaybillVO> returnList = new ArrayList<>();
-        KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                        .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
-                        .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
-                /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
-        if (ObjectUtils.isEmpty(order)) {
-            return HttpResult.ok(returnList);
+        List<String> list = StringUtils.splitStrToList(orderDto.getIds(), String.class);
+        if (CollectionUtils.isEmpty(list)) {
+            return HttpResult.ok();
         }
-        List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
-                        .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
-                        .last("limit " + (orderDto.getPage() - 1) + " , " + orderDto.getPageSize())
-                /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
-            for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
-                CarWaybillVO carWaybillVo = new CarWaybillVO();
-                KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
-                        .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
-                        .eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
-                KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
-                        .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
-                        .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
-                //合理损耗
-                BigDecimal loss = order.getLoss();
-                /**亏吨量/吨->装货量-卸货量
-                 * 合理损耗值=装货量*合理损耗
-                 扣亏量/吨->亏吨量-合理损耗值
-                 */
-                //已委托量
-                BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
-                //合理损耗值
-                BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
-                //亏吨量
-                BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
-                //扣亏量/吨
-                BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
-                carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
-                carWaybillVo.setWOrderNo(order.getLOrderNo());
-                carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
-                carWaybillVo.setStatus(CarWaybillEnum.getName(kwtWaybillOrder.getStatus()));
-                carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
-                carWaybillVo.setDriverName(kwtWaybillOrder.getDriverName());
-                //todo 取mongo
+        List<CarWaybillVO> returnList = new ArrayList<>();
+        for (String id : list) {
+            KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                            .eq(StringUtils.isNotBlank(id), KwtLogisticsOrder::getId, Long.parseLong(id))
+                    /**      .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
+                    /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
+            if (ObjectUtils.isEmpty(order)) {
+                continue;
+            }
+            List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
+                            .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
+                            .orderByDesc(KwtWaybillOrder::getCreateTime)
+                    /**.last("limit " + (orderDto.getPage() - 1) + " , " + orderDto.getPageSize()*/);
+            /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));*/
+            if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
+                for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
+                    CarWaybillVO carWaybillVo = new CarWaybillVO();
+                    KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                            .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
+                            .eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
+                    KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                            .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
+                            .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
+                    //合理损耗
+                    BigDecimal loss = order.getLoss();
+                    /**亏吨量/吨->装货量-卸货量
+                     * 合理损耗值=装货量*合理损耗
+                     扣亏量/吨->亏吨量-合理损耗值
+                     */
+                    //已委托量
+                    BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
+                    //合理损耗值
+                    BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
+                    //亏吨量
+                    BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
+                    //扣亏量/吨
+                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                    carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
+                    carWaybillVo.setWOrderNo(order.getLOrderNo());
+                    carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
+                    carWaybillVo.setStatus(CarWaybillEnum.getName(kwtWaybillOrder.getStatus()));
+                    carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
+                    carWaybillVo.setDriverName(kwtWaybillOrder.getDriverName());
+                    //todo 取mongo
 //                SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(kwtWaybillOrder.getId(), SckwWaybillOrder.class);
-                /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
+                    /** 2023-07-24 原值为承运车队-去除后更换展示为承运公司*/
 //                carWaybillVo.setConsignMotorcade(sckwWaybillOrder == null ? null : sckwWaybillOrder.getCarrierFirmName());
-                //派车量
-                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
-                carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
-                if (loadTicket != null) {
-                    carWaybillVo.setLoadAmount(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
-                    carWaybillVo.setLoadDateTime(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
-                } else {
-                    carWaybillVo.setLoadAmount(null);
-                    carWaybillVo.setLoadDateTime(null);
-                }
-                if (unloadTicket != null) {
-                    carWaybillVo.setUnloadAmount(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
-                    carWaybillVo.setUnloadDateTime(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
-                } else {
-                    carWaybillVo.setUnloadAmount(null);
-                    carWaybillVo.setUnloadDateTime(null);
-                }
-                /**亏吨量/吨->装货量-卸货量
-                 扣亏量/吨->亏吨量-合理损耗*/
-                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(deduct);
+                    //派车量
+                    carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                    carWaybillVo.setSendCarDate(DateUtil.getDateTime(kwtWaybillOrder.getCreateTime()));
+                    if (loadTicket != null) {
+                        carWaybillVo.setLoadAmount(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
+                        carWaybillVo.setLoadDateTime(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
+                    } else {
+                        carWaybillVo.setLoadAmount(null);
+                        carWaybillVo.setLoadDateTime(null);
+                    }
+                    if (unloadTicket != null) {
+                        carWaybillVo.setUnloadAmount(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
+                        carWaybillVo.setUnloadDateTime(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
+                    } else {
+                        carWaybillVo.setUnloadAmount(null);
+                        carWaybillVo.setUnloadDateTime(null);
+                    }
+                    /**亏吨量/吨->装货量-卸货量
+                     扣亏量/吨->亏吨量-合理损耗*/
+                    carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
+                    carWaybillVo.setDeduct(deduct);
+                    carWaybillVo.setCreateTime(kwtWaybillOrder.getCreateTime());
 //                carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
 //                        String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
-                returnList.add(carWaybillVo);
+                    returnList.add(carWaybillVo);
+                }
             }
         }
-        PageResult result = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), returnList.stream().count(), returnList);
+        List<CarWaybillVO> collect = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(returnList)) {
+            collect = returnList.stream().skip((orderDto.getPage() - 1) * orderDto.getPageSize()).limit(orderDto.getPageSize()).collect(Collectors.toList());
+        }
+        PageResult result = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), returnList.stream().count(), collect);
         return HttpResult.ok(result);
     }
 
@@ -467,13 +491,17 @@ public class ConsignOrderService {
     }
 
     private HttpResult getAcceptCarListByOrder(OrderDTO orderDto) {
-        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(KwtLogisticsOrder::getId, orderDto.getId()));
-        if (logisticsOrder == null) {
-            log.error("托运订单获取车辆信息 error id:{},请求参数:{}", orderDto.getId(), JSONObject.toJSONString(orderDto));
-            HttpResult.error("物流订单不存在");
+//        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .eq(KwtLogisticsOrder::getId, orderDto.getId()));
+//        if (logisticsOrder == null) {
+////            log.error("托运订单获取车辆信息 error id:{},请求参数:{}", orderDto.getId(), JSONObject.toJSONString(orderDto));
+//            HttpResult.error("物流订单不存在");
+//        }
+        List<String> stringList = StringUtils.splitStrToList(orderDto.getIds(), String.class);
+        if (CollectionUtils.isEmpty(stringList)) {
+            return HttpResult.ok();
         }
-        List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(orderDto.getId(), orderDto.getPage(), orderDto.getPageSize());
+        List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(stringList, orderDto.getPage()-1, orderDto.getPageSize());
 //        if (CollectionUtils.isNotEmpty(list)) {
 //            List<String> stringList = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
 //            Map<String, RTruckVo> truck = remoteFleetService.findTruck(stringList);

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -411,7 +411,7 @@ public class LogisticsConsignmentService {
         order.setStartTime(bo.getShipmentsDateTime());
         order.setEndTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
-        order.setPayment(Long.parseLong(tradeOrder.getTrading()));
+        order.setPayment(Long.parseLong(bo.getPayment()));
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
         order.setCreateBy(LoginUserHolder.getUserId());
         order.setCreateTime(new Date());

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -22,8 +22,8 @@ import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
+import com.sckw.transport.model.dto.CancelOrderDTO;
 import com.sckw.transport.model.dto.DocumentParamDTO;
-import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.param.LogisticsOrderParam;
 import com.sckw.transport.model.vo.OrderDetailVO;
 import lombok.extern.slf4j.Slf4j;
@@ -194,7 +194,7 @@ public class TransportCommonService {
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult cancelConsign(OrderDTO orderDto) {
+    public HttpResult cancelConsign(CancelOrderDTO orderDto) {
         log.info("订单-撤销托运请求参数:{}", JSONObject.toJSONString(orderDto));
         HttpResult result = new HttpResult();
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()

+ 53 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -253,6 +253,59 @@
             limit #{page}, #{pageSize}
     </select>
 
+    <select id="getSubcontractConsignmentNotPage" resultType="com.sckw.transport.model.vo.SubcontractConsignmentVO">
+        SELECT a.id,
+               a.pid,
+               a.`status`         as status,
+               a.l_order_no       as consignOrderNo,
+               c.firm_name        as carrierContacts,
+               d.goods_name       as goodsName,
+               a.amount           as amount,
+               a.price,
+               a.price_type       as priceType,
+               e.detail_address   as loadAddress,
+               f.detail_address   as unloadAddress,
+               a.billing_mode     as billingMode,
+               a.loss,
+               a.loss_unit        as lossUnit,
+               a.goods_price      as goodsPrice,
+               a.goods_price_unit as goodsPriceUnit,
+               a.settlement_cycle as settlementCycle,
+               c.contacts         as carrierContacts,
+               c.phone            as carrierPhone,
+               b.firm_name        as consignCompany,
+               b.contacts         as consignContacts,
+               b.phone            as consignPhone,
+               e.contacts         as loadContacts,
+               e.phone            as loadContacts,
+               f.contacts         as unloadContacts,
+               f.phone            as unloadPhone,
+               a.start_time       as shipmentsDate,
+               a.end_time         as receiveGoodsDate,
+               a.remark,
+               a.create_by        as createBy,
+               a.create_time      as createTime,
+               g.contract_id      as contractId
+        FROM kwt_logistics_order a
+                 LEFT JOIN kwt_logistics_order_unit b ON a.id = b.l_order_id
+            AND b.unit_type = 1
+                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+            AND c.unit_type = 2
+                 LEFT JOIN kwt_logistics_order_goods d ON a.id = d.l_order_id
+                 LEFT JOIN kwt_logistics_order_address e ON a.id = e.l_order_id
+            AND e.address_type = 1
+                 LEFT JOIN kwt_logistics_order_address f ON a.id = f.l_order_id
+            AND f.address_type = 2
+                 LEFT JOIN kwt_logistics_order_contract g ON a.id = g.l_order_id
+        WHERE a.del_flag = 0
+          AND b.del_flag = 0
+          AND c.del_flag = 0
+          AND e.del_flag = 0
+          AND f.del_flag = 0
+          and a.pid = #{lOrderId}
+        ORDER BY a.create_time desc
+    </select>
+
     <select id="countSubcontractConsignmentById" resultType="java.util.Map">
         SELECT COUNT(0)           as total,
                a.id,

+ 154 - 100
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -147,14 +147,15 @@
         </where>
     </select>
 
-    <select id="findWaybillOrderCount" resultType="com.sckw.transport.model.vo.WaybillCountVo" parameterType="java.util.Map">
+    <select id="findWaybillOrderCount" resultType="com.sckw.transport.model.vo.WaybillCountVo"
+            parameterType="java.util.Map">
         SELECT
-            count(case when wo.status not in (1, 9, 11) then 1 end) totalComplete,
-            count(case when wo.status not in (1, 9, 10, 11) then 1 end) totalTake,
-            count(case when wo.status not in (3, 4, 5, 6) then 1 end) totalExecute,
-            IFNULL(SUM(wo.entrust_amount), 0.0) entrustAmount, IFNULL(SUM(wo.load_amount), 0.0) loadAmount,
-            IFNULL(SUM(wo.unload_amount), 0.0) unloadAmount, IFNULL(SUM(wo.deficit_amount), 0.0) deficitAmount,
-            MIN(wot1.time) loadTime, MAX(wot2.time) unloadTime
+        count(case when wo.status not in (1, 9, 11) then 1 end) totalComplete,
+        count(case when wo.status not in (1, 9, 10, 11) then 1 end) totalTake,
+        count(case when wo.status not in (3, 4, 5, 6) then 1 end) totalExecute,
+        IFNULL(SUM(wo.entrust_amount), 0.0) entrustAmount, IFNULL(SUM(wo.load_amount), 0.0) loadAmount,
+        IFNULL(SUM(wo.unload_amount), 0.0) unloadAmount, IFNULL(SUM(wo.deficit_amount), 0.0) deficitAmount,
+        MIN(wot1.time) loadTime, MAX(wot2.time) unloadTime
         from kwt_waybill_order wo
         left join kwt_waybill_order_ticket wot1 on wot1.w_order_id = wo.id and wot1.type = 1 and wot1.del_flag = 0
         left join kwt_waybill_order_ticket wot2 on wot2.w_order_id = wo.id and wot2.type = 2 and wot2.del_flag = 0
@@ -200,8 +201,11 @@
         AND B.del_flag = 0
         AND b.del_flag = 0
         <where>
-            <if test="id != null and id != ''">
-                and a.l_order_id = #{id}
+            <if test="ids != null and ids.size() > 0">
+                and a.l_order_id in
+                <foreach collection="ids" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
             </if>
         </where>
         GROUP BY
@@ -209,61 +213,63 @@
         limit #{page},#{pageSize}
     </select>
 
-    <select id="findStatisticsCountByDriver" resultType="java.util.Map" >
-        select
-            tabA.total + tabB.total as waitTotal, tabC.total departureTotal, tabD.total executeTotal, tabE.total endTotal
-        from
-        (
-            SELECT
-                count(1) total, 0 indexNum
-            FROM kwt_logistics_order_circulate loc
-            LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
-            where loc.del_flag = 0 and lo.del_flag = 0 and loc.status = 0 and loc.w_order_id is null
-            and loc.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tabA
-        left join
-        (
-            SELECT
-                count(1) total, 0 indexNum
-            FROM kwt_waybill_order wo
-            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
-            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 1
-            and wo.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tabB on tabB.indexNum = tabA.indexNum
-        left join
-        (
-            SELECT
-                count(1) total, 0 indexNum
-            FROM kwt_waybill_order wo
-            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
-            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 2
-            and wo.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tabC on tabC.indexNum = tabA.indexNum
-        left join
-        (
-            SELECT
-                count(1) total, 0 indexNum
-            FROM kwt_waybill_order wo
-            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
-            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status in (3, 4, 5, 6)
-            and wo.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tabD on tabD.indexNum = tabA.indexNum
-        left join
-        (
-            SELECT
-                count(1) total, 0 indexNum
-            FROM kwt_waybill_order wo
-            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
-            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status in (7, 8, 9, 10, 11, 12)
-            and wo.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tabE on tabE.indexNum = tabA.indexNum
+    <select id="findStatisticsCountByDriver" resultType="java.util.Map">
+        select tabA.total + tabB.total as waitTotal,
+               tabC.total                 departureTotal,
+               tabD.total                 executeTotal,
+               tabE.total                 endTotal
+        from (SELECT count(1) total,
+                     0        indexNum
+              FROM kwt_logistics_order_circulate loc
+                       LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
+              where loc.del_flag = 0
+                and lo.del_flag = 0
+                and loc.status = 0
+                and loc.w_order_id is null
+                and loc.driver_id = #{driverId, jdbcType=BIGINT}) tabA
+                 left join
+             (SELECT count(1) total,
+                     0        indexNum
+              FROM kwt_waybill_order wo
+                       LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+              where wo.del_flag = 0
+                and lo.del_flag = 0
+                and wo.status = 1
+                and wo.driver_id = #{driverId, jdbcType=BIGINT}) tabB on tabB.indexNum = tabA.indexNum
+                 left join
+             (SELECT count(1) total,
+                     0        indexNum
+              FROM kwt_waybill_order wo
+                       LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+              where wo.del_flag = 0
+                and lo.del_flag = 0
+                and wo.status = 2
+                and wo.driver_id = #{driverId, jdbcType=BIGINT}) tabC on tabC.indexNum = tabA.indexNum
+                 left join
+             (SELECT count(1) total,
+                     0        indexNum
+              FROM kwt_waybill_order wo
+                       LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+              where wo.del_flag = 0
+                and lo.del_flag = 0
+                and wo.status in (3, 4, 5, 6)
+                and wo.driver_id = #{driverId, jdbcType=BIGINT}) tabD on tabD.indexNum = tabA.indexNum
+                 left join
+             (SELECT count(1) total,
+                     0        indexNum
+              FROM kwt_waybill_order wo
+                       LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+              where wo.del_flag = 0
+                and lo.del_flag = 0
+                and wo.status in (7, 8, 9, 10, 11, 12)
+                and wo.driver_id = #{driverId, jdbcType=BIGINT}) tabE on tabE.indexNum = tabA.indexNum
     </select>
 
-    <select id="findStatisticsSumByDriver" resultType="java.util.Map"  parameterType="java.util.Map">
+    <select id="findStatisticsSumByDriver" resultType="java.util.Map" parameterType="java.util.Map">
         SELECT
-            count(1) total, IFNULL(sum(wo.entrust_amount), 0.0) entrustAmount, IFNULL(sum(wo.load_amount), 0.0) loadAmount,
-            IFNULL(sum(wo.unload_amount), 0.0) unloadAmount, IFNULL(sum(wo.deficit_amount), 0.0) deficitAmount,
-            IFNULL(sum(wo.deficit_price), 0.0) deficitPrice
+        count(1) total, IFNULL(sum(wo.entrust_amount), 0.0) entrustAmount, IFNULL(sum(wo.load_amount), 0.0) loadAmount,
+        IFNULL(sum(wo.unload_amount), 0.0) unloadAmount, IFNULL(sum(wo.deficit_amount), 0.0) deficitAmount,
+        IFNULL(sum(wo.deficit_price), 0.0) deficitPrice
         FROM kwt_waybill_order wo
         LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
         where wo.del_flag = 0 and lo.del_flag = 0
@@ -278,48 +284,96 @@
         </if>
     </select>
 
-    <select id="findWaitWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo" parameterType="java.util.Map">
-        SELECT * from (
-            SELECT
-                wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo, wo.type,
-                wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
-                wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
-                woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
-                woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, wo.load_amount loadAmount, wo.unload_amount unloadAmount,
-                wo.deficit_amount deficitAmount, wo.deficit_price deficitPrice, wo.truck_no truckNo, wo.status, wo.create_time createTime
-            FROM kwt_waybill_order wo
-            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
-            LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = wo.id and woa1.type = 1
-            LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = wo.id and woa2.type = 2
-            LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = wo.l_order_id
-            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 1
-            and wo.driver_id = #{driverId, jdbcType=BIGINT}
-            UNION
-            SELECT
-                loc.id wOrderId, null wOrderNo, loc.l_order_id lOrderId, lo.l_order_no lOrderNo, loc.type,
-                loc.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, loc.start_time startTime,
-                loc.end_time endTime, loc.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
-                woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
-                woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, null loadAmount, null unloadAmount,
-                null deficitAmount, null deficitPrice, loc.truck_no truckNo, 1 status, loc.update_time createTime
-            FROM kwt_logistics_order_circulate loc
-            LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
-            LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = lo.id and woa1.type = 1
-            LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = lo.id and woa2.type = 2
-            LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = loc.l_order_id
-            where loc.del_flag = 0 and lo.del_flag = 0 and loc.status = 0 and loc.w_order_id is null
-            and loc.driver_id = #{driverId, jdbcType=BIGINT}
-        ) tab order by createTime desc
+    <select id="findWaitWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo"
+            parameterType="java.util.Map">
+        SELECT *
+        from (SELECT wo.id               wOrderId,
+                     wo.w_order_no       wOrderNo,
+                     wo.l_order_id       lOrderId,
+                     lo.l_order_no       lOrderNo,
+                     wo.type,
+                     wo.ent_id           carrierEntId,
+                     'xxxxx'             carrierFirmName,
+                     log.goods_name      goodsName,
+                     wo.start_time       startTime,
+                     wo.end_time         endTime,
+                     wo.entrust_amount   entrustAmount,
+                     woa1.name           loadName,
+                     woa1.city_code      loadCityCode,
+                     woa1.city_name      loadCityName,
+                     woa1.detail_address loadDetailAddress,
+                     woa2.name           unloadName,
+                     woa2.city_code      unloadCityCode,
+                     woa2.city_name      unloadCityName,
+                     woa2.detail_address unloadDetailAddress,
+                     wo.load_amount      loadAmount,
+                     wo.unload_amount    unloadAmount,
+                     wo.deficit_amount   deficitAmount,
+                     wo.deficit_price    deficitPrice,
+                     wo.truck_no         truckNo,
+                     wo.status,
+                     wo.create_time      createTime
+              FROM kwt_waybill_order wo
+                       LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+                       LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = wo.id and woa1.type = 1
+                       LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = wo.id and woa2.type = 2
+                       LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = wo.l_order_id
+              where wo.del_flag = 0
+                and lo.del_flag = 0
+                and wo.status = 1
+                and wo.driver_id = #{driverId, jdbcType=BIGINT}
+              UNION
+              SELECT loc.id              wOrderId,
+                     null                wOrderNo,
+                     loc.l_order_id      lOrderId,
+                     lo.l_order_no       lOrderNo,
+                     loc.type,
+                     loc.ent_id          carrierEntId,
+                     'xxxxx'             carrierFirmName,
+                     log.goods_name      goodsName,
+                     loc.start_time      startTime,
+                     loc.end_time        endTime,
+                     loc.entrust_amount  entrustAmount,
+                     woa1.name           loadName,
+                     woa1.city_code      loadCityCode,
+                     woa1.city_name      loadCityName,
+                     woa1.detail_address loadDetailAddress,
+                     woa2.name           unloadName,
+                     woa2.city_code      unloadCityCode,
+                     woa2.city_name      unloadCityName,
+                     woa2.detail_address unloadDetailAddress,
+                     null                loadAmount,
+                     null                unloadAmount,
+                     null                deficitAmount,
+                     null                deficitPrice,
+                     loc.truck_no        truckNo,
+                     1                   status,
+                     loc.update_time     createTime
+              FROM kwt_logistics_order_circulate loc
+                       LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
+                       LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = lo.id and woa1.type = 1
+                       LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = lo.id and woa2.type = 2
+                       LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = loc.l_order_id
+              where loc.del_flag = 0
+                and lo.del_flag = 0
+                and loc.status = 0
+                and loc.w_order_id is null
+                and loc.driver_id = #{driverId, jdbcType=BIGINT}) tab
+        order by createTime desc
     </select>
 
-    <select id="findOtherWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo" parameterType="java.util.Map">
+    <select id="findOtherWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo"
+            parameterType="java.util.Map">
         SELECT
-            wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo, wo.type,
-            wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
-            wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
-            woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
-            woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, wo.load_amount loadAmount, wo.unload_amount unloadAmount,
-            wo.deficit_amount deficitAmount, wo.deficit_price deficitPrice, wo.truck_no truckNo, wo.status, wo.create_time createTime
+        wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo, wo.type,
+        wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
+        wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
+        woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code
+        unloadCityCode,
+        woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, wo.load_amount loadAmount,
+        wo.unload_amount unloadAmount,
+        wo.deficit_amount deficitAmount, wo.deficit_price deficitPrice, wo.truck_no truckNo, wo.status, wo.create_time
+        createTime
         FROM kwt_waybill_order wo
         LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
         LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = wo.id and woa1.type = 1