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

铲车,门卫、运单重复数据修复

donglang 3 недель назад
Родитель
Сommit
38096a7d37

+ 12 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/forklift/reponse/GatekeeperOrderResp.java

@@ -203,6 +203,18 @@ public class GatekeeperOrderResp implements Serializable {
     @Schema(description = "备注")
     private String remark;
 
+    /**
+     * 订单类型
+     */
+    @Schema(description = "订单类型")
+    private Integer orderType;
+
+    /**
+     * 订单类型
+     */
+    @Schema(description = "订单类型")
+    private String orderTypeDesc;
+
 
 
 }

+ 9 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/ForkliftOrderService.java

@@ -306,24 +306,21 @@ 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());
 
         // 按照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());
+        log.info("正常流程订单信息: {},数量:{}, 原矿运输订单信息: {},数量:{}",  JSON.toJSONString(typeNullList), typeNullList.size(),
+                JSON.toJSONString(typeOneList), typeOneList.size());
 
         List<ForkliftOrderResp> forkliftOrderRespList = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(typeNullList)) {
-            //组装铲车订单数据
+            //组装正常流程铲车订单数据
+            Set<Long> lOrderId = typeNullList.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toSet());
             List<ForkliftOrderResp> forkliftOrders = records.stream()
+                    .filter(x -> lOrderId.contains(x.getLOrderId()))
                     .map(forkliftOrder -> buildForkliftOrderResp(forkliftOrder, waybillOrderMap,
                             waybillOrderTicketMap, logisticsOrderMap, typeNullList, Boolean.FALSE)).collect(Collectors.toList());
             forkliftOrderRespList.addAll(forkliftOrders);
@@ -331,7 +328,9 @@ public class ForkliftOrderService {
 
         if (CollectionUtils.isNotEmpty(typeOneList)) {
             //组装铲车订单数据
+            Set<Long> lOrderId = typeOneList.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toSet());
             List<ForkliftOrderResp> rawOreForkliftOrders = records.stream()
+                    .filter(x -> lOrderId.contains(x.getLOrderId()))
                     .map(forkliftOrder -> buildForkliftOrderResp(forkliftOrder, waybillOrderMap,
                             waybillOrderTicketMap, logisticsOrderMap, typeOneList, Boolean.TRUE)).collect(Collectors.toList());
             forkliftOrderRespList.addAll(rawOreForkliftOrders);
@@ -354,7 +353,7 @@ public class ForkliftOrderService {
                                                      Map<Long, KwtLogisticsOrder> logisticsOrderMap,
                                                      List<KwtLogisticsOrder> logisticsOrder,
                                                      Boolean isRawOre) {
-
+        log.info("开始{}铲车订单查询,param:{}", isRawOre ? "原矿运输" : "正常流程", JSON.toJSONString(forkliftOrder));
         ForkliftOrderResp forklift = new ForkliftOrderResp();
         forklift.setId(forkliftOrder.getId());
         forklift.setForkliftOrderNo(forkliftOrder.getFOrderNo());
@@ -405,7 +404,7 @@ public class ForkliftOrderService {
                 forklift.setPrEntName(orderUnit.getFirmName());
             }
         }
-
+        log.info("{}铲车订单查询结束,param:{}", isRawOre ? "原矿运输" : "正常流程", JSON.toJSONString(forklift));
         return forklift;
     }
 

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

@@ -281,7 +281,8 @@ public class GatekeeperOrderService {
      */
     private List<GatekeeperOrderResp> getGatekeeperOrderPageResult(List<KwtGatekeeperWaybillOrder> records) {
         log.info("开始门卫订单查询,param:{}", JSON.toJSONString(records));
-        Set<Long> wOrderIds = records.stream().map(KwtGatekeeperWaybillOrder::getWOrderId).filter(Objects::nonNull).collect(Collectors.toSet());
+        Set<Long> wOrderIds = records.stream().map(KwtGatekeeperWaybillOrder::getWOrderId)
+                .filter(Objects::nonNull).collect(Collectors.toSet());
         //查询运单
         List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.queryByBillOrderIds(wOrderIds);
         if (CollectionUtils.isEmpty(waybillOrders)) {
@@ -290,7 +291,9 @@ public class GatekeeperOrderService {
         }
         Map<Long, KwtWaybillOrder> waybillOrderMap = waybillOrders.stream()
                 .collect(Collectors.toMap(KwtWaybillOrder::getId, Function.identity(), (x, y) -> x));
-        Set<Long> lOrderIds = waybillOrders.stream().map(KwtWaybillOrder::getLOrderId).collect(Collectors.toSet());
+
+        Set<Long> lOrderIds = waybillOrders.stream().map(KwtWaybillOrder::getLOrderId)
+                .filter(Objects::nonNull).collect(Collectors.toSet());
 
         //查询运单装卸货
         List<KwtWaybillOrderTicket> waybillOrderTickets = waybillOrderTicketRepository.queryByWOrderIds(new ArrayList<>(wOrderIds));
@@ -307,37 +310,52 @@ public class GatekeeperOrderService {
             log.info("【门卫】无物流订单信息,物流订单id:{}", JSON.toJSONString(lOrderIds));
             return Collections.emptyList();
         }
-        Map<Long, KwtLogisticsOrder> logisticsOrderMap = logisticsOrder.stream().collect(Collectors.toMap(KwtLogisticsOrder::getId, Function.identity(), (x, y) -> x));
-
-
-//        // 按照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);
-//        }
-
-            //组装铲车订单数据
+
+        // 按照order_type区分“正常订单”和“原矿运输订单”
+        Map<Boolean, List<KwtLogisticsOrder>> partitionedMap = logisticsOrder.stream()
+                .collect(Collectors.partitioningBy(order -> Integer.valueOf(1).equals(order.getOrderType())));
+
+        List<KwtLogisticsOrder> typeNullList = partitionedMap.get(false);
+        List<KwtLogisticsOrder> typeOneList = partitionedMap.get(true);
+        log.info("正常流程订单信息: {},数量:{}, 原矿运输订单信息: {},数量:{}",  JSON.toJSONString(typeNullList), typeNullList.size(),
+                JSON.toJSONString(typeOneList), typeOneList.size());
+
+        List<GatekeeperOrderResp> resultList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(typeNullList)) {
+            Set<Long> tOrderIds = typeNullList.stream().map(KwtLogisticsOrder::getTOrderId).collect(Collectors.toSet());
+            List<OrderUnitInfoDetailVO> orderUnitVOS = tradeOrderInfoService.queryOrderUnitInfByTOrderId(tOrderIds);
+            if (CollectionUtils.isEmpty(orderUnitVOS)) {
+                log.info("【门卫】无贸易订单企业信息,贸易订单id:{}", JSON.toJSONString(tOrderIds));
+                return Collections.emptyList();
+            }
+            //查询贸易订单企业信息
+            Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit = orderUnitVOS.stream().collect(Collectors
+                    .toMap(unit -> unit.getTOrderId() + "-" + unit.getUnitType(),
+                            Function.identity(), (x, y) -> x));
+
+            //组装正常流程门卫订单数据
+            Set<Long> lOrderId = typeNullList.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toSet());
+            List<GatekeeperOrderResp> gatekeeperOrderResp = records.stream()
+                    .filter(x -> lOrderId.contains(x.getLOrderId()))
+                    .map(gatekeeperWaybillOrder -> buildGatekeeperOrderResp(gatekeeperWaybillOrder,
+                            waybillOrderMap, waybillOrderTicketMap, typeNullList, tradeOrderAndUnit, Boolean.FALSE))
+                    .collect(Collectors.toList());
+            resultList.addAll(gatekeeperOrderResp);
+        }
+
+        if (CollectionUtils.isNotEmpty(typeOneList)) {
+            //组装原矿运输门卫订单数据
+            Set<Long> lOrderId = typeOneList.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toSet());
             List<GatekeeperOrderResp> rawOreGatekeeperOrderResp = records.stream()
+                    .filter(x -> lOrderId.contains(x.getLOrderId()))
                     .map(gatekeeperWaybillOrder -> buildGatekeeperOrderResp(gatekeeperWaybillOrder,
-                            waybillOrderMap, waybillOrderTicketMap, logisticsOrderMap, logisticsOrder))
-                            .collect(Collectors.toList());
-        log.info("门卫订单查询结束,result:{}", JSON.toJSONString(rawOreGatekeeperOrderResp));
-        return rawOreGatekeeperOrderResp;
+                            waybillOrderMap, waybillOrderTicketMap, typeOneList, Collections.emptyMap(), Boolean.TRUE))
+                    .collect(Collectors.toList());
+            resultList.addAll(rawOreGatekeeperOrderResp);
+        }
+
+        log.info("门卫订单查询结束,result:{}", JSON.toJSONString(resultList));
+        return resultList;
 
     }
 
@@ -351,8 +369,10 @@ public class GatekeeperOrderService {
     private GatekeeperOrderResp buildGatekeeperOrderResp(KwtGatekeeperWaybillOrder gatekeeperWaybillOrder,
                                                          Map<Long, KwtWaybillOrder> waybillOrderMap,
                                                          Map<String, KwtWaybillOrderTicket> waybillOrderTicketMap,
-                                                         Map<Long, KwtLogisticsOrder> logisticsOrderMap,
-                                                         List<KwtLogisticsOrder> logisticsOrder) {
+                                                         List<KwtLogisticsOrder> logisticsOrder,
+                                                         Map<String, OrderUnitInfoDetailVO> tradeOrderAndUnit,
+                                                         boolean isRawOre) {
+        log.info("开始{}门卫订单查询,param:{}", isRawOre ? "原矿运输" : "正常流程", JSON.toJSONString(gatekeeperWaybillOrder));
         GatekeeperOrderResp gatekeeper = new GatekeeperOrderResp();
         gatekeeper.setId(gatekeeperWaybillOrder.getId());
         gatekeeper.setEntId(gatekeeperWaybillOrder.getEntId());
@@ -390,21 +410,21 @@ public class GatekeeperOrderService {
         gatekeeper.setTareAmount(ticket.getTareAmount());
         gatekeeper.setGrossAmount(ticket.getGrossAmount());
 
-        KwtLogisticsOrder logOrder = logisticsOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
-        if (!Objects.equals(1, logOrder.getOrderType())) {
-            //查询贸易订单企业信息
-            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));
-                //采购企业信息
-                OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logOrder.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
-                gatekeeper.setPrEntId(orderUnit.getEntId());
-                gatekeeper.setPrEntName(orderUnit.getFirmName());
-            }
+        //获取当前物流订单
+        KwtLogisticsOrder logOrder = logisticsOrder.stream()
+                .filter(log -> Objects.equals(log.getId(), gatekeeperWaybillOrder.getLOrderId()))
+                .findFirst().orElse(new KwtLogisticsOrder());
+        // 正常流程
+        if (!isRawOre) {
+            //采购企业信息
+            OrderUnitInfoDetailVO orderUnit = tradeOrderAndUnit.getOrDefault(logOrder.getTOrderId() + "-" + 1, new OrderUnitInfoDetailVO());
+            gatekeeper.setPrEntId(orderUnit.getEntId());
+            gatekeeper.setPrEntName(orderUnit.getFirmName());
         }
+        gatekeeper.setOrderType(logOrder.getOrderType());
+        gatekeeper.setOrderTypeDesc(Objects.equals(logOrder.getOrderType(), 1) ? "原矿运输" : "产品销售");
+
+        log.info("{}门卫订单查询结束,param:{}", isRawOre ? "原矿运输" : "正常流程", JSON.toJSONString(gatekeeperWaybillOrder));
         return gatekeeper;
     }
 

+ 4 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -941,14 +941,10 @@ public class WaybillOrderService {
         // 按照order_type区分“正常订单”和“原矿运输订单”
         Map<Boolean, List<KwtLogisticsOrder>> partitionedMap = logOrderList.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());
+        log.info("正常流程订单信息: {},数量:{}, 原矿运输订单信息: {},数量:{}",  JSON.toJSONString(typeNullList), typeNullList.size(),
+                JSON.toJSONString(typeOneList), typeOneList.size());
 
         List<WaybillOrderStatusResp> ordderList = new ArrayList<>();
         //1.查询正常流程物流运运单
@@ -1054,12 +1050,9 @@ public class WaybillOrderService {
         Map<String, Map<String, String>> dictValueAndDictResDtoMap = remoteSystemService.queryDictByType(
                 Arrays.asList(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), DictTypeEnum.GOODS_SPEC.getType()));
 
-        List<KwtWaybillOrder> filteredRecords = records.stream()
+        List<WaybillOrderStatusResp> orderList = records.stream()
                 .filter(record -> record.getLOrderId() != null && logOrderIdList.contains(record.getLOrderId()))
-                .collect(Collectors.toList());
-
-        List<WaybillOrderStatusResp> orderList = filteredRecords.stream().map(
-                billOrder -> {
+                .map(billOrder -> {
                     return getWaybillOrderResp(billOrder, subtaskMap, logOrderMap, logOrderIdAndCirculateMap,
                             logOrderIdAndGoodsMap, logOrderIdAndUnitMap, logOrderIdAndAddressMap, ticketMap,
                             tradeIdAndOrderDetailVoMap,tradeIdAndLogOrderList,logisticsOrderIdAndSubtaskList,