Просмотр исходного кода

承运订单-获取分包托运列表-数据统计
托运订单/承运订单-获取车辆运单-下方数据统计

lengfaqiang 2 лет назад
Родитель
Сommit
d6ddb41bbc

+ 6 - 0
sckw-modules/sckw-transport/pom.xml

@@ -107,6 +107,12 @@
             <version>1.0.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-manage-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
         <!-- validation -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

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

@@ -168,6 +168,22 @@ public class AcceptCarriageOrderController {
         }
     }
 
+    /**
+     * 承运订单-获取分包托运列表-数据统计
+     *
+     * @param lOrderId 单据id
+     * @return
+     */
+    @RequestMapping(value = "/getSubcontractConsignmentCount", method = RequestMethod.GET)
+    public HttpResult getSubcontractConsignmentCount(@RequestParam("lOrderId") @NotBlank(message = "单据id不能为空") String lOrderId) {
+        try {
+            return acceptCarriageOrderService.getSubcontractConsignmentCount(lOrderId);
+        } catch (Exception e) {
+            log.error("承运订单-获取分包托运列表 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
     /**
      * 承运订单-设置停止接单-查询
      *

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

@@ -58,7 +58,7 @@ public class ConsignOrderController {
     }
 
     /**
-     * 托运订单获取车辆信息
+     * 托运订单-获取车辆信息
      *
      * @param orderDto
      * @return

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

@@ -28,6 +28,8 @@ 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);
+
     Long selectWaybillOrderCarCount(@Param("id") String id);
 
     /**

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -128,7 +128,7 @@ public class AddOrderDTO {
     private BigDecimal amount;
 
     /**
-     * 总量
+     * 总量单位
      */
     @NotBlank(message = "总量单位不能为空")
     private String amountUnit;
@@ -143,6 +143,7 @@ public class AddOrderDTO {
     /**
      * 合理损耗单位
      */
+    @NotBlank(message = "合理损耗单位不能为空")
     private String lossUnit;
 
     /**

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

@@ -1,6 +1,7 @@
 package com.sckw.transport.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.core.model.page.PageRequest;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -12,7 +13,7 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-public class OrderDTO {
+public class OrderDTO extends PageRequest {
     @JsonProperty("orderNo")
     @NotNull(message = "单据编号不能为空")
     private String orderNo;

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java

@@ -3,6 +3,8 @@ package com.sckw.transport.model.vo;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
+
 /**
  * @author lfdc
  * @description 车辆运单
@@ -68,7 +70,7 @@ public class CarWaybillVO {
     /**
      * 扣亏量/吨
      */
-    private String deduct;
+    private BigDecimal deduct;
     /**
      * 派车人
      */

+ 16 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -13,6 +13,7 @@ import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
+import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -21,6 +22,7 @@ import com.sckw.excel.utils.DateUtil;
 import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
+import com.sckw.manage.api.RemoteManageService;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
@@ -29,7 +31,6 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.dao.*;
@@ -76,7 +77,7 @@ public class AcceptCarriageOrderService {
     RemoteContractService remoteContractService;
 
     @DubboReference(version = "2.0.0", group = "design", check = false, timeout = 6000)
-    RemoteUserService remoteUserService;
+    RemoteManageService remoteManageService;
 
     @Resource
     private StreamBridge streamBridge;
@@ -627,7 +628,6 @@ public class AcceptCarriageOrderService {
     public HttpResult getSubcontractConsignment(String lOrderId, Integer page, Integer pageSize) {
         Integer newPage = page - 1;
         List<SubcontractConsignmentVO> list = logisticsOrderMapper.getSubcontractConsignment(lOrderId, newPage, pageSize);
-
         //联查数据
         /**运价方式*/
         Map<String, String> priceDictData = getDictData(DictTypeEnum.PRICE_TYPE.getType());
@@ -650,9 +650,20 @@ public class AcceptCarriageOrderService {
                 subcontractConsignmentVO.setSettlementCycle(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
             }
         }
+        PageResult build = PageResult.build(page, pageSize, list.stream().count(), list);
+        return HttpResult.ok(build);
+    }
+
+
+    /**
+     * 分包列表下方数据统计
+     * @param lOrderId  物流订单id
+     * @return
+     */
+    public HttpResult getSubcontractConsignmentCount(String lOrderId) {
         /**页面数据统计*/
-//        List<Map> countList = logisticsOrderMapper.countSubcontractConsignmentById(lOrderId);
-        return HttpResult.ok(list);
+        List<Map> countList = logisticsOrderMapper.countSubcontractConsignmentById(lOrderId);
+        return HttpResult.ok(countList);
     }
 
     public String getDictData(String type, String value) {
@@ -1129,7 +1140,6 @@ public class AcceptCarriageOrderService {
             log.info("承运订单创建订单异常");
             throw new RuntimeException("自建订单异常");
         }
-        //todo dubbo根据企业获取地址信息
         /**获取商品信息*/
         KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(orderDTO.getGoodsId()));
         if (goods == null) {

+ 170 - 45
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -9,6 +9,7 @@ import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
+import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringTimeUtil;
@@ -27,9 +28,9 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.AddOrderDTO;
+import com.sckw.transport.model.dto.OrderCarDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderFinishDTO;
-import com.sckw.transport.model.vo.CarDataVO;
 import com.sckw.transport.model.vo.CarWaybillVO;
 import com.sckw.transport.model.vo.OrderFinishVO;
 import jakarta.annotation.Resource;
@@ -121,6 +122,160 @@ public class ConsignOrderService {
         return httpResult;
     }
 
+    /**
+     * 托运订单/承运订单-获取车辆运单-下方数据统计
+     *
+     * @param orderDto
+     * @return
+     */
+    public HttpResult getCarWaybillByOrderCount(OrderDTO orderDto) {
+        HttpResult httpResult = new HttpResult();
+        if (String.valueOf(NumberConstant.ONE).equals(orderDto.getType())) {
+            httpResult = getCarWaybillByOrderByConsignCount(orderDto);
+        } else if (String.valueOf(NumberConstant.TWO).equals(orderDto.getType())) {
+            httpResult = getCarWaybillByOrderByAcceptCarriageCount(orderDto);
+        } else {
+            throw new RuntimeException("单据类型错误");
+        }
+        return httpResult;
+    }
+
+    /**
+     * 托运订单-车辆运单列表统计
+     *
+     * @param orderDto
+     * @return
+     */
+    private HttpResult getCarWaybillByOrderByConsignCount(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(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
+        if (ObjectUtils.isEmpty(order)) {
+            return HttpResult.ok();
+        }
+        List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
+                        .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
+                /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
+        JSONObject statistics = new JSONObject();
+        //合理损耗
+        BigDecimal loss = order.getLoss();
+        //派车量
+        BigDecimal sendCarWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        //装货量
+        BigDecimal loadAmountNumber = new BigDecimal(NumberConstant.ZERO);
+        //卸货量
+        BigDecimal unloadAmountNumber = new BigDecimal(NumberConstant.ZERO);
+        /**亏吨量/吨->装货量-卸货量
+         扣亏量/吨->亏吨量-合理损耗*/
+        //亏吨量
+        BigDecimal defectiveWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        //扣亏量/吨
+        BigDecimal deductWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
+            for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
+                CarWaybillVO carWaybillVo = new CarWaybillVO();
+                //扣亏量/吨->亏吨量-合理损耗值(分配量(委托量)*合理损耗)
+                BigDecimal deduct = null;
+                if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
+                    deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
+                }
+                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                /**亏吨量/吨->装货量-卸货量
+                 扣亏量/吨->亏吨量*合理损耗*/
+                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
+                carWaybillVo.setDeduct(kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == 0 ?
+                        new BigDecimal(NumberConstant.ZERO) : kwtWaybillOrder.getDeficitAmount().multiply(loss.divide(BigDecimal.valueOf(1000L))));
+                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
+                if (carWaybillVo.getLoadAmount() != null) {
+                    loadAmountNumber = loadAmountNumber.add(new BigDecimal(carWaybillVo.getLoadAmount()));
+                }
+                if (carWaybillVo.getUnloadAmount() != null) {
+                    unloadAmountNumber = unloadAmountNumber.add(new BigDecimal(carWaybillVo.getUnloadAmount()));
+                }
+                if (carWaybillVo.getDefectiveWeigh() != null) {
+                    defectiveWeighNumber = defectiveWeighNumber.add(new BigDecimal(carWaybillVo.getDefectiveWeigh()));
+                }
+                deductWeighNumber = deductWeighNumber.add(carWaybillVo.getDeduct());
+            }
+        }
+        statistics.put("count", kwtWaybillOrders.size());
+        statistics.put("sendCarWeighNumber", sendCarWeighNumber);
+        statistics.put("loadAmountNumber", loadAmountNumber);
+        statistics.put("unloadAmountNumber", unloadAmountNumber);
+        statistics.put("defectiveWeighNumber", defectiveWeighNumber);
+        statistics.put("deductWeighNumber", deductWeighNumber);
+        return HttpResult.ok(statistics);
+    }
+
+    /**
+     * 承运订单-车辆运单列表-下方统计
+     *
+     * @param orderDto
+     * @return
+     */
+    private HttpResult getCarWaybillByOrderByAcceptCarriageCount(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(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
+        if (ObjectUtils.isEmpty(order)) {
+            return HttpResult.ok();
+        }
+        List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
+                        .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
+                /**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
+        JSONObject statistics = new JSONObject();
+        //合理损耗
+        BigDecimal loss = order.getLoss();
+        //派车量
+        BigDecimal sendCarWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        //装货量
+        BigDecimal loadAmountNumber = new BigDecimal(NumberConstant.ZERO);
+        //卸货量
+        BigDecimal unloadAmountNumber = new BigDecimal(NumberConstant.ZERO);
+        /**亏吨量/吨->装货量-卸货量
+         扣亏量/吨->亏吨量-合理损耗*/
+        //亏吨量
+        BigDecimal defectiveWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        //扣亏量/吨
+        BigDecimal deductWeighNumber = new BigDecimal(NumberConstant.ZERO);
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
+            for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
+                CarWaybillVO carWaybillVo = new CarWaybillVO();
+                //扣亏量/吨->亏吨量-合理损耗值(分配量(委托量)*合理损耗)
+                BigDecimal deduct = null;
+                if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
+                    deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
+                }
+                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                /**亏吨量/吨->装货量-卸货量
+                 扣亏量/吨->亏吨量*合理损耗*/
+                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
+                carWaybillVo.setDeduct(kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == 0 ?
+                        new BigDecimal(NumberConstant.ZERO) : kwtWaybillOrder.getDeficitAmount().multiply(loss.divide(BigDecimal.valueOf(1000L))));
+                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
+                if (carWaybillVo.getLoadAmount() != null) {
+                    loadAmountNumber = loadAmountNumber.add(new BigDecimal(carWaybillVo.getLoadAmount()));
+                }
+                if (carWaybillVo.getUnloadAmount() != null) {
+                    unloadAmountNumber = unloadAmountNumber.add(new BigDecimal(carWaybillVo.getUnloadAmount()));
+                }
+                if (carWaybillVo.getDefectiveWeigh() != null) {
+                    defectiveWeighNumber = defectiveWeighNumber.add(new BigDecimal(carWaybillVo.getDefectiveWeigh()));
+                }
+                deductWeighNumber = deductWeighNumber.add(carWaybillVo.getDeduct());
+            }
+        }
+        statistics.put("count", kwtWaybillOrders.size());
+        statistics.put("sendCarWeighNumber", sendCarWeighNumber);
+        statistics.put("loadAmountNumber", loadAmountNumber);
+        statistics.put("unloadAmountNumber", unloadAmountNumber);
+        statistics.put("defectiveWeighNumber", defectiveWeighNumber);
+        statistics.put("deductWeighNumber", deductWeighNumber);
+        return HttpResult.ok(statistics);
+    }
+
     /**
      * 通过订单id+类型 查询承运订单-车辆运单
      *
@@ -195,7 +350,7 @@ public class ConsignOrderService {
                 /**亏吨量/吨->装货量-卸货量
                  扣亏量/吨->亏吨量-合理损耗*/
                 carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(String.valueOf(deduct));
+                carWaybillVo.setDeduct(deduct);
 //                carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
 //                        String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
                 if (carWaybillVo.getLoadAmount() != null) {
@@ -239,12 +394,8 @@ public class ConsignOrderService {
         }
         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())*/);
-        JSONObject statistics = new JSONObject();
-        BigDecimal sendCarWeighNumber = new BigDecimal(NumberConstant.ZERO);
-        BigDecimal loadAmountNumber = new BigDecimal(NumberConstant.ZERO);
-        BigDecimal unloadAmountNumber = new BigDecimal(NumberConstant.ZERO);
-        BigDecimal defectiveWeighNumber = new BigDecimal(NumberConstant.ZERO);
         if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
             for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
                 CarWaybillVO carWaybillVo = new CarWaybillVO();
@@ -295,31 +446,14 @@ public class ConsignOrderService {
                 /**亏吨量/吨->装货量-卸货量
                  扣亏量/吨->亏吨量-合理损耗*/
                 carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
-                carWaybillVo.setDeduct(String.valueOf(deduct));
+                carWaybillVo.setDeduct(deduct);
 //                carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
 //                        String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
-                sendCarWeighNumber = sendCarWeighNumber.add(kwtWaybillOrder.getLoadAmount());
-                if (carWaybillVo.getLoadAmount() != null) {
-                    loadAmountNumber = loadAmountNumber.add(new BigDecimal(carWaybillVo.getLoadAmount()));
-                }
-                if (carWaybillVo.getUnloadAmount() != null) {
-                    unloadAmountNumber = unloadAmountNumber.add(new BigDecimal(carWaybillVo.getUnloadAmount()));
-                }
-                if (carWaybillVo.getDefectiveWeigh() != null) {
-                    defectiveWeighNumber = defectiveWeighNumber.add(new BigDecimal(carWaybillVo.getDefectiveWeigh()));
-                }
                 returnList.add(carWaybillVo);
             }
         }
-        statistics.put("count", kwtWaybillOrders.size());
-        statistics.put("sendCarWeighNumber", sendCarWeighNumber);
-        statistics.put("loadAmountNumber", loadAmountNumber);
-        statistics.put("unloadAmountNumber", unloadAmountNumber);
-        statistics.put("defectiveWeighNumber", defectiveWeighNumber);
-        Map map = new HashMap<>();
-        map.put("returnList", returnList);
-        map.put("statistics", statistics);
-        return HttpResult.ok(map);
+        PageResult result = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), returnList.stream().count(), returnList);
+        return HttpResult.ok(result);
     }
 
     /**
@@ -335,27 +469,18 @@ public class ConsignOrderService {
             log.error("托运订单获取车辆信息 error id:{},请求参数:{}", orderDto.getId(), JSONObject.toJSONString(orderDto));
             HttpResult.error("物流订单不存在");
         }
-        List<KwtWaybillOrder> waybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
-                .eq(KwtWaybillOrder::getLOrderId, orderDto.getId()));
-        List<CarDataVO> carDataVOS = new ArrayList<CarDataVO>(NumberConstant.SIXTEEN);
-        if (CollectionUtils.isNotEmpty(waybillOrders)) {
-            List<String> stringList = waybillOrders.stream().map(KwtWaybillOrder::getTruckNo).collect(Collectors.toList());
+        List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(orderDto.getId(), orderDto.getPage(), orderDto.getPageSize());
+        if (CollectionUtils.isNotEmpty(list)) {
+            List<String> stringList = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
             Map<String, RTruckVo> truck = remoteFleetService.findTruck(stringList);
-            for (KwtWaybillOrder KwtWaybillOrder : waybillOrders) {
-                CarDataVO carDataVo = new CarDataVO();
-                carDataVo.setDriverId(String.valueOf(KwtWaybillOrder.getDriverId()));
-                carDataVo.setDriverName(KwtWaybillOrder.getDriverName());
-                carDataVo.setDriverPhone(KwtWaybillOrder.getDriverPhone());
-                carDataVo.setIdCard(KwtWaybillOrder.getDriverIdcard());
-                carDataVo.setLoadAmount(truck.get(KwtWaybillOrder.getTruckNo()) == null ?
-                        null : (truck.get(KwtWaybillOrder.getTruckNo()).getActualWeight() == null ?
-                        null : (String.valueOf(truck.get(KwtWaybillOrder.getTruckNo()).getActualWeight()))));
-                carDataVo.setTruckNo(KwtWaybillOrder.getTruckNo());
-                carDataVo.setWOrderNo(KwtWaybillOrder.getWOrderNo());
-                carDataVOS.add(carDataVo);
+            for (OrderCarDTO dto : list) {
+                dto.setLoadAmount(truck.get(dto.getTruckNo()) == null ?
+                        null : (truck.get(dto.getTruckNo()).getActualWeight() == null ?
+                        null : (String.valueOf(truck.get(dto.getTruckNo()).getActualWeight()))));
             }
         }
-        return HttpResult.ok(carDataVOS);
+        PageResult build = PageResult.build(orderDto.getPage(), orderDto.getPageSize(), (long) list.size(), list);
+        return HttpResult.ok(build);
     }
 
     /**

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

@@ -21,6 +21,7 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
@@ -49,6 +50,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author lfdc
@@ -643,6 +645,17 @@ public class LogisticsConsignmentService {
 
     private List<OrderCarDTO> getLogisticsCarData(String id, Integer page, Integer pageSize) {
         List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarList(id, page, pageSize);
+        List<String> stringList = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
+        Map<String, RTruckVo> truck = remoteFleetService.findTruck(stringList);
+        for (OrderCarDTO orderCarDTO : list) {
+//            orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
+//            orderCarDTO.setDriverName(orderCarDTO.getDriverName());
+//            orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
+//            orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
+            orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
+                    null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
+                    null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
+        }
         return list;
     }
 

+ 24 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -38,7 +38,8 @@
                a.driver_id     as driverId,
                a.driver_name   as driverName,
                a.driver_phone  as driverPhone,
-               a.driver_idcard as driverIdcard,
+               a.driver_idcard as driverCard,
+               a.truck_no      as truckNo,
                a.l_order_id    as lOrderId,
                b.l_order_no    as lOrderNo,
                b.t_order_id    as tOrderId,
@@ -175,4 +176,26 @@
             and FIND_IN_SET(id, #{belowlOrderId, jdbcType=VARCHAR})
         </if>
     </select>
+    <select id="selectWaybillOrderCarListGroupByTruckNo" resultType="com.sckw.transport.model.dto.OrderCarDTO">
+        SELECT
+        a.truck_no AS truckNo,
+        COUNT( a.truck_no ) AS count,
+        a.driver_id AS driverId,
+        a.driver_name AS driverName,
+        a.driver_phone AS driverPhone,
+        a.driver_idcard AS driverCard
+        FROM
+        `kwt_waybill_order` a
+        LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
+        AND B.del_flag = 0
+        AND b.del_flag = 0
+        <where>
+            <if test="id != null and id != ''">
+                and a.l_order_id = #{id}
+            </if>
+        </where>
+        GROUP BY
+        a.truck_no
+        limit #{page},#{pageSize}
+    </select>
 </mapper>