Ver Fonte

物流数据Excel导出

yzc há 1 ano atrás
pai
commit
dd71e84274

+ 27 - 21
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsInfosServiceImpl.java

@@ -178,39 +178,45 @@ public class LogisticsInfosServiceImpl extends ServiceImpl<LogisticsInfosMapper,
         //采购到货
         {
             List<LogisticsInfosVo> collect0 = records.stream().filter(item -> item.getBusinessType().equals(1)).collect(Collectors.toList());
-            List<Long> ids0 = collect0.stream().map(LogisticsInfos::getId).collect(Collectors.toList());
-            List<LogisticsProductInfo> byDeliverGoods = baseMapper.getLogisticsProductInfoByDeliverGoods(IWrapper.getWrapper()
-                    .in("lis.id", ids0)
-            );
-            Map<Long, List<LogisticsProductInfo>> byDeliverGoodsMap = byDeliverGoods.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
-            for (LogisticsInfosVo logisticsInfosVo : collect0) {
-                logisticsInfosVo.setLogisticsProductInfoList(byDeliverGoodsMap.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+            List<Long> ids0 = collect0.stream().map(LogisticsInfos::getId).distinct().collect(Collectors.toList());
+            if(ObjectUtil.isNotEmpty(ids0)) {
+                List<LogisticsProductInfo> byDeliverGoods = baseMapper.getLogisticsProductInfoByDeliverGoods(IWrapper.getWrapper()
+                        .in("lis.id", ids0)
+                );
+                Map<Long, List<LogisticsProductInfo>> byDeliverGoodsMap = byDeliverGoods.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
+                for (LogisticsInfosVo logisticsInfosVo : collect0) {
+                    logisticsInfosVo.setLogisticsProductInfoList(byDeliverGoodsMap.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+                }
             }
         }
 
         //京东数据
         {
             List<LogisticsInfosVo> collect1 = records.stream().filter(item -> item.getBusinessType().equals(2)).collect(Collectors.toList());
-            List<Long> ids1 = collect1.stream().map(LogisticsInfos::getId).collect(Collectors.toList());
-            List<LogisticsProductInfo> byStockWait = baseMapper.getLogisticsProductInfoByStockWait(IWrapper.getWrapper()
-                    .in("lis.id", ids1)
-            );
-            Map<Long, List<LogisticsProductInfo>> byStockWaitMap = byStockWait.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
-            for (LogisticsInfosVo logisticsInfosVo : collect1) {
-                logisticsInfosVo.setLogisticsProductInfoList(byStockWaitMap.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+            List<Long> ids1 = collect1.stream().map(LogisticsInfos::getId).distinct().collect(Collectors.toList());
+            if(ObjectUtil.isNotEmpty(ids1)) {
+                List<LogisticsProductInfo> byStockWait = baseMapper.getLogisticsProductInfoByStockWait(IWrapper.getWrapper()
+                        .in("lis.id", ids1)
+                );
+                Map<Long, List<LogisticsProductInfo>> byStockWaitMap = byStockWait.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
+                for (LogisticsInfosVo logisticsInfosVo : collect1) {
+                    logisticsInfosVo.setLogisticsProductInfoList(byStockWaitMap.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+                }
             }
         }
 
         //采购退货
         {
             List<LogisticsInfosVo> collect2 = records.stream().filter(item -> item.getBusinessType().equals(5)).collect(Collectors.toList());
-            List<Long> ids2 = collect2.stream().map(LogisticsInfos::getId).collect(Collectors.toList());
-            List<LogisticsProductInfo> byStockWait1 = baseMapper.getLogisticsProductInfoByStockWait(IWrapper.getWrapper()
-                    .in("lis.id", ids2)
-            );
-            Map<Long, List<LogisticsProductInfo>> byStockWaitMap1 = byStockWait1.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
-            for (LogisticsInfosVo logisticsInfosVo : collect2) {
-                logisticsInfosVo.setLogisticsProductInfoList(byStockWaitMap1.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+            List<Long> ids2 = collect2.stream().map(LogisticsInfos::getId).distinct().collect(Collectors.toList());
+            if(ObjectUtil.isNotEmpty(ids2)) {
+                List<LogisticsProductInfo> byStockWait1 = baseMapper.getLogisticsProductInfoByStockWait(IWrapper.getWrapper()
+                        .in("lis.id", ids2)
+                );
+                Map<Long, List<LogisticsProductInfo>> byStockWaitMap1 = byStockWait1.stream().collect(Collectors.groupingBy(LogisticsProductInfo::getId));
+                for (LogisticsInfosVo logisticsInfosVo : collect2) {
+                    logisticsInfosVo.setLogisticsProductInfoList(byStockWaitMap1.getOrDefault(logisticsInfosVo.getId(), new ArrayList<>()));
+                }
             }
         }
     }