Browse Source

铲车分页查询原矿运输

donglang 1 month ago
parent
commit
3971835623

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

@@ -4276,7 +4276,7 @@ public class KwtWaybillOrderV1Service {
             });
         } else {
             //2.原矿运输
-            orderDetailFuture = CompletableFuture.completedFuture(null);;
+            orderDetailFuture = CompletableFuture.completedFuture(null);
         }
 
         CompletableFuture<List<KwtLogisticsOrderUnit>> unitFuture = CompletableFuture.supplyAsync(() ->
@@ -4314,7 +4314,7 @@ public class KwtWaybillOrderV1Service {
                     });
         } else {
             //2.原矿运输
-            contractFuture = CompletableFuture.completedFuture(null);;
+            contractFuture = CompletableFuture.completedFuture(null);
         }
 
         // 等待所有并行查询完成

+ 50 - 18
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/ForkliftOrderService.java

@@ -305,20 +305,39 @@ public class ForkliftOrderService {
             return Collections.emptyList();
         }
         Map<Long, KwtLogisticsOrder> logisticsOrderMap = logisticsOrder.stream().collect(Collectors.toMap(KwtLogisticsOrder::getId, Function.identity(), (x, y) -> x));
-        Set<Long> tOrderIds = logisticsOrder.stream().map(KwtLogisticsOrder::getTOrderId).collect(Collectors.toSet());
+//        Set<Long> tOrderIds = logisticsOrder.stream().map(KwtLogisticsOrder::getTOrderId).collect(Collectors.toSet());
+
+        // 按照order_type区分“正常订单”和“原矿运输订单”
+        Map<Boolean, List<KwtLogisticsOrder>> partitionedMap = logisticsOrder.stream()
+                .collect(Collectors.partitioningBy(order -> Integer.valueOf(1).equals(order.getOrderType())));
+
+        // 获取order_type=null的订单集合
+        List<KwtLogisticsOrder> typeNullList = partitionedMap.get(false);
+        log.info("正常流程的订单信息: {},数量:{}",  JSON.toJSONString(typeNullList), typeNullList.size());
+
+        // 获取order_type=1的订单集合
+        List<KwtLogisticsOrder> typeOneList = partitionedMap.get(true);
+        log.info("原矿运输的订单信息: {},数量:{}", JSON.toJSONString(typeOneList), typeOneList.size());
+
+        List<ForkliftOrderResp> forkliftOrderRespList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(typeNullList)) {
+            //组装铲车订单数据
+            List<ForkliftOrderResp> forkliftOrders = records.stream()
+                    .map(forkliftOrder -> buildForkliftOrderResp(forkliftOrder, waybillOrderMap,
+                            waybillOrderTicketMap, logisticsOrderMap, typeNullList, Boolean.FALSE)).toList();
+            forkliftOrderRespList.addAll(forkliftOrders);
+        }
 
-        //查询贸易订单企业信息
-        List<OrderUnitInfoDetailVO> orderUnitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitInfByTOrderId(tOrderIds);
-        if (CollectionUtils.isEmpty(orderUnitInfoDetailVOS)) {
-            log.info("【铲车】无订单企业信息,物流订单id:{}", JSON.toJSONString(lOrderIds));
-            return Collections.emptyList();
+        if (CollectionUtils.isNotEmpty(typeOneList)) {
+            //组装铲车订单数据
+            List<ForkliftOrderResp> rawOreForkliftOrders = records.stream()
+                    .map(forkliftOrder -> buildForkliftOrderResp(forkliftOrder, waybillOrderMap,
+                            waybillOrderTicketMap, logisticsOrderMap, typeOneList, Boolean.TRUE)).toList();
+            forkliftOrderRespList.addAll(rawOreForkliftOrders);
         }
-        Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit = orderUnitInfoDetailVOS.stream().collect(Collectors.toMap(unit -> unit.getTOrderId() + "-" + unit.getUnitType(), Function.identity(), (x, y) -> x));
 
-        //组装铲车订单数据
-        return records.stream()
-                .map(forkliftOrder -> buildForkliftOrderResp(forkliftOrder, waybillOrderMap, waybillOrderTicketMap, logisticsOrderMap, tradeOrderAndUnit))
-                .collect(Collectors.toList());
+
+        return forkliftOrderRespList;
     }
 
 
@@ -332,7 +351,9 @@ public class ForkliftOrderService {
                                                      Map<Long, KwtWaybillOrder> waybillOrderMap,
                                                      Map<String, KwtWaybillOrderTicket> waybillOrderTicketMap,
                                                      Map<Long, KwtLogisticsOrder> logisticsOrderMap,
-                                                     Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit) {
+                                                     List<KwtLogisticsOrder> logisticsOrder,
+                                                     Boolean isRawOre) {
+
         ForkliftOrderResp forklift = new ForkliftOrderResp();
         forklift.setId(forkliftOrder.getId());
         forklift.setForkliftOrderNo(forkliftOrder.getFOrderNo());
@@ -362,17 +383,28 @@ public class ForkliftOrderService {
         forklift.setName(waybillOrder.getDriverName());
         forklift.setPhone(waybillOrder.getDriverPhone());
 
-        //采购企业信息
-        KwtLogisticsOrder logisticsOrder = logisticsOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
-        OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logisticsOrder.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
-        forklift.setPrEntId(orderUnit.getEntId());
-        forklift.setPrEntName(orderUnit.getFirmName());
-
         //装卸货信息
         KwtWaybillOrderTicket ticket = waybillOrderTicketMap.getOrDefault(forkliftOrder.getWOrderId() + "-" + 1, new KwtWaybillOrderTicket());
         forklift.setTareAmount(ticket.getTareAmount());
         forklift.setGrossAmount(ticket.getGrossAmount());
 
+        // 采购企业信息:正常逻辑,需查询贸易订单
+        if (!isRawOre) {
+            Set<Long> tOrderIds = logisticsOrder.stream().map(KwtLogisticsOrder::getTOrderId).collect(Collectors.toSet());
+            //查询贸易订单企业信息
+            List<OrderUnitInfoDetailVO> orderUnitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitInfByTOrderId(tOrderIds);
+            if (CollectionUtils.isNotEmpty(orderUnitInfoDetailVOS)) {
+                Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit = orderUnitInfoDetailVOS.stream()
+                        .collect(Collectors.toMap(unit -> unit.getTOrderId() + "-" + unit.getUnitType(),
+                                Function.identity(), (x, y) -> x));
+
+                KwtLogisticsOrder logisticsOrder2 = logisticsOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
+                OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logisticsOrder2.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
+                forklift.setPrEntId(orderUnit.getEntId());
+                forklift.setPrEntName(orderUnit.getFirmName());
+            }
+        }
+
         return forklift;
     }