|
|
@@ -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;
|
|
|
}
|
|
|
|