Przeglądaj źródła

门卫分页查询原矿运输

donglang 1 miesiąc temu
rodzic
commit
5bd5f29335

+ 47 - 22
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/GatekeeperOrderService.java

@@ -297,20 +297,37 @@ public class GatekeeperOrderService {
             return Collections.emptyList();
             return Collections.emptyList();
         }
         }
         Map<Long, KwtLogisticsOrder> logisticsOrderMap = logisticsOrder.stream().collect(Collectors.toMap(KwtLogisticsOrder::getId, Function.identity(), (x, y) -> x));
         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());
 
 
-        //查询贸易订单企业信息
-        List<OrderUnitInfoDetailVO> orderUnitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitInfByTOrderId(tOrderIds);
-        if (CollectionUtils.isEmpty(orderUnitInfoDetailVOS)) {
-            log.info("【门卫】无订单企业信息,物流订单id:{}", JSON.toJSONString(lOrderIds));
-            return Collections.emptyList();
+
+        // 按照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<GatekeeperOrderResp> gatekeeperOrderRespList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(typeNullList)) {
+            //组装铲车订单数据
+            List<GatekeeperOrderResp> gatekeeperOrderResp = records.stream()
+                    .map(gatekeeperWaybillOrder -> buildGatekeeperOrderResp(gatekeeperWaybillOrder,
+                            waybillOrderMap, waybillOrderTicketMap, logisticsOrderMap, typeNullList, Boolean.FALSE)).toList();
+            gatekeeperOrderRespList.addAll(gatekeeperOrderResp);
+        }
+        if (CollectionUtils.isNotEmpty(typeOneList)) {
+            //组装铲车订单数据
+            List<GatekeeperOrderResp> rawOreGatekeeperOrderResp = records.stream()
+                    .map(gatekeeperWaybillOrder -> buildGatekeeperOrderResp(gatekeeperWaybillOrder,
+                            waybillOrderMap, waybillOrderTicketMap, logisticsOrderMap, typeOneList, Boolean.TRUE)).toList();
+            gatekeeperOrderRespList.addAll(rawOreGatekeeperOrderResp);
         }
         }
-        Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit = orderUnitInfoDetailVOS.stream().collect(Collectors.toMap(unit -> unit.getTOrderId() + "-" + unit.getUnitType(), Function.identity(), (x, y) -> x));
+        return gatekeeperOrderRespList;
 
 
-        //组装铲车订单数据
-        return records.stream()
-                .map(gatekeeperWaybillOrder -> buildGatekeeperOrderResp(gatekeeperWaybillOrder, waybillOrderMap, waybillOrderTicketMap, logisticsOrderMap, tradeOrderAndUnit))
-                .collect(Collectors.toList());
     }
     }
 
 
     /**
     /**
@@ -321,10 +338,11 @@ public class GatekeeperOrderService {
      * @return
      * @return
      */
      */
     private GatekeeperOrderResp buildGatekeeperOrderResp(KwtGatekeeperWaybillOrder gatekeeperWaybillOrder,
     private GatekeeperOrderResp buildGatekeeperOrderResp(KwtGatekeeperWaybillOrder gatekeeperWaybillOrder,
-                                                     Map<Long, KwtWaybillOrder> waybillOrderMap,
-                                                     Map<String, KwtWaybillOrderTicket> waybillOrderTicketMap,
-                                                     Map<Long, KwtLogisticsOrder> logisticsOrderMap,
-                                                     Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit) {
+                                                         Map<Long, KwtWaybillOrder> waybillOrderMap,
+                                                         Map<String, KwtWaybillOrderTicket> waybillOrderTicketMap,
+                                                         Map<Long, KwtLogisticsOrder> logisticsOrderMap,
+                                                         List<KwtLogisticsOrder> logisticsOrder,
+                                                         Boolean isRawOre) {
 
 
         GatekeeperOrderResp gatekeeper = new GatekeeperOrderResp();
         GatekeeperOrderResp gatekeeper = new GatekeeperOrderResp();
         gatekeeper.setId(gatekeeperWaybillOrder.getId());
         gatekeeper.setId(gatekeeperWaybillOrder.getId());
@@ -358,18 +376,25 @@ public class GatekeeperOrderService {
         gatekeeper.setPhone(waybillOrder.getDriverPhone());
         gatekeeper.setPhone(waybillOrder.getDriverPhone());
         gatekeeper.setIdCard(waybillOrder.getDriverIdcard());
         gatekeeper.setIdCard(waybillOrder.getDriverIdcard());
 
 
-        //采购企业信息
-        KwtLogisticsOrder logisticsOrder = logisticsOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
-        OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logisticsOrder.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
-        gatekeeper.setPrEntId(orderUnit.getEntId());
-        gatekeeper.setPrEntName(orderUnit.getFirmName());
-
-
         //装卸货信息
         //装卸货信息
         KwtWaybillOrderTicket ticket = waybillOrderTicketMap.getOrDefault(gatekeeperWaybillOrder.getWOrderId() + "-" + 1, new KwtWaybillOrderTicket());
         KwtWaybillOrderTicket ticket = waybillOrderTicketMap.getOrDefault(gatekeeperWaybillOrder.getWOrderId() + "-" + 1, new KwtWaybillOrderTicket());
         gatekeeper.setTareAmount(ticket.getTareAmount());
         gatekeeper.setTareAmount(ticket.getTareAmount());
         gatekeeper.setGrossAmount(ticket.getGrossAmount());
         gatekeeper.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 logOrder = logisticsOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
+                OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logOrder.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
+                gatekeeper.setPrEntId(orderUnit.getEntId());
+                gatekeeper.setPrEntName(orderUnit.getFirmName());
+            }
+        }
+
         return gatekeeper;
         return gatekeeper;
     }
     }