chenxiaofei 6 месяцев назад
Родитель
Сommit
2839f3d166

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CapacityVo.java

@@ -47,9 +47,9 @@ public class CapacityVo implements Serializable {
     @Schema(description = "累计卸货量")
     private String unloadAmount;
     /**
-     * 状态
+     * 最新状态
      */
-    @Schema(description = "状态")
+    @Schema(description = "最新状态")
     private String status;
     /**
      * 状态描述

+ 25 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -2852,8 +2852,7 @@ public class KwtLogisticsConsignmentService {
         if (CollectionUtils.isNotEmpty(billOrderIds)){
             List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.queryByBillOrderIds(billOrderIds);
             if (CollectionUtils.isNotEmpty(waybillOrders)){
-                billOrderIdAndWaybillOrderMap = waybillOrders.stream().filter(x->Objects.equals(x.getStatus(),
-                                CarWaybillEnum.APPROVAL_PASS.getCode()))
+                billOrderIdAndWaybillOrderMap = waybillOrders.stream()
                         .collect(Collectors.groupingBy(KwtWaybillOrder::getTruckId));
             }
         }
@@ -2862,14 +2861,16 @@ public class KwtLogisticsConsignmentService {
         Map<Long, RTruckVo> finalTruckIdAndTruckMap = truckIdAndTruckMap;
         Map<Long, List<KwtWaybillOrder>> finalBillOrderIdAndWaybillOrderMap = billOrderIdAndWaybillOrderMap;
         List<CapacityVo> capacityVos = records.stream()
-                .map(t -> getCapacityVo(t, finalTruckIdAndTruckMap, finalBillOrderIdAndWaybillOrderMap))
+                .map(t -> getCapacityVo(t, finalTruckIdAndTruckMap, finalBillOrderIdAndWaybillOrderMap,waybillOrderSubtasks))
                 .collect(Collectors.toList());
         return PageDataResult.of(page, capacityVos);
 
     }
 
     @NotNull
-    private static CapacityVo getCapacityVo(KwtLogisticsOrderCirculate t, Map<Long, RTruckVo> finalTruckIdAndTruckMap, Map<Long, List<KwtWaybillOrder>> finalBillOrderIdAndWaybillOrderMap) {
+    private static CapacityVo getCapacityVo(KwtLogisticsOrderCirculate t, Map<Long, RTruckVo> finalTruckIdAndTruckMap,
+                                            Map<Long, List<KwtWaybillOrder>> finalBillOrderIdAndWaybillOrderMap,
+                                            List<KwtWaybillOrderSubtask> waybillOrderSubtasks) {
         CapacityVo capacityVo = new CapacityVo();
         capacityVo.setTruckId(String.valueOf(t.getTruckId()));
         capacityVo.setTruckNo(t.getTruckNo());
@@ -2878,19 +2879,32 @@ public class KwtLogisticsConsignmentService {
         List<KwtWaybillOrder> waybillOrders = finalBillOrderIdAndWaybillOrderMap.get(t.getTruckId());
         capacityVo.setFinishWaybillCount("0");
         if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(waybillOrders)){
-            capacityVo.setFinishWaybillCount(String.valueOf(waybillOrders.size()));
-            BigDecimal loadAmount = waybillOrders.stream()
+            List<KwtWaybillOrder> waybillOrderList = Optional.ofNullable(waybillOrders).orElse(List.of())
+                    .stream()
+                    .filter(x -> Objects.equals(x.getStatus(), CarWaybillV1Enum.COMPLETED.getCode()))
+                    .collect(Collectors.toList());
+            capacityVo.setFinishWaybillCount(String.valueOf(waybillOrderList.size()));
+            capacityVo.setStatus(String.valueOf(waybillOrders.get(0).getStatus()));
+            capacityVo.setStatusDesc(CarWaybillV1Enum.geDesc(waybillOrders.get(0).getStatus()));
+            List<Long> waybillOrderIds = waybillOrderList.stream()
+                    .map(KwtWaybillOrder::getId)
+                    .collect(Collectors.toList());
+
+            List<KwtWaybillOrderSubtask> subtasks = Optional.ofNullable(waybillOrderSubtasks)
+                    .orElse(List.of())
+                    .stream()
+                    .filter(x -> waybillOrderIds.contains(x.getWOrderId()))
+                    .collect(Collectors.toList());
+            BigDecimal loadAmount = subtasks.stream()
                     .filter(x -> Objects.nonNull(x.getLoadAmount()))
-                    .map(KwtWaybillOrder::getLoadAmount)
+                    .map(KwtWaybillOrderSubtask::getLoadAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
-            BigDecimal unloadAmount = waybillOrders.stream()
+            BigDecimal unloadAmount = subtasks.stream()
                     .filter(x -> Objects.nonNull(x.getUnloadAmount()))
-                    .map(KwtWaybillOrder::getUnloadAmount)
+                    .map(KwtWaybillOrderSubtask::getUnloadAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
             capacityVo.setLoadAmount(loadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
             capacityVo.setUnloadAmount(unloadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
-            capacityVo.setStatus(String.valueOf(waybillOrders.get(0).getStatus()));
-            capacityVo.setStatusDesc(CarWaybillV1Enum.geDesc(waybillOrders.get(0).getStatus()));
         }
 
         capacityVo.setDispatchStatus(String.valueOf(t.getStatus()));