Browse Source

#FIX 在售,补后查询

谭斌 2 years ago
parent
commit
b0b6efc895

+ 11 - 4
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -602,7 +602,9 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
                 datdeviceStatusMap = deviceStatusList.stream().collect(Collectors.toMap(DeviceStatusDto.Vo::getDeviceId, d -> d));
             }
             List<GoodsDeviceDto.Vo> goodsDeviceList = R.feignCheckData(goodsService.queryGoodsDeviceInfo(new GoodsDto.QueryGoodsDeviceInfo().setMercId(mercId).setDeviceIds(deviceIds)));
-            Map<Long, GoodsDeviceDto.Vo> deviceIdGoodsMap = goodsDeviceList.stream().collect(Collectors.toMap(GoodsDeviceDto.Vo::getDeviceId, d -> d));
+            Map<Long, List<GoodsDeviceDto.Vo>> deviceIdGoodsMap = goodsDeviceList.stream()
+                    .collect(Collectors.groupingBy(GoodsDeviceDto.Vo::getDeviceId));
+
             for (DeviceInfoDto.MercHomeDeviceVo device : deviceInfos) {
                 Long dId = device.getDeviceId();
                 //设备类型 反显
@@ -617,9 +619,14 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
                 device.setDayOrderNum(deviceData != null ? deviceData.getSalesCount() : zero);
                 device.setDaySalesPrice(deviceData != null ? deviceData.getSalesMoney() : zero);
                 DeviceStatusDto.Vo deviceStatus = datdeviceStatusMap.get(device.getDeviceId());
-                GoodsDeviceDto.Vo goodsDevice = deviceIdGoodsMap.get(dId);
-                device.setOnSaleNum(goodsDevice == null ? zero : goodsDevice.getStock());
-                device.setFillNum(goodsDevice == null ? zero : goodsDevice.getFillCount());
+                if (CollUtil.isNotEmpty(deviceIdGoodsMap)) {
+                    List<GoodsDeviceDto.Vo> goodsDevice = deviceIdGoodsMap.get(dId);
+                    if (CollUtil.isNotEmpty(goodsDevice)) {
+                        device.setOnSaleNum(goodsDevice.stream().mapToInt(GoodsDeviceDto.Vo::getStock).sum());
+                        device.setFillNum(goodsDevice.stream().mapToInt(GoodsDeviceDto.Vo::getFillCount).sum());
+                    }
+                }
+
                 //联网状态
                 Integer netState = deviceStatus == null ? DeviceNetSateType.DISCONNECT.getCode() : deviceStatus.getNetState();
                 device.setNetState(netState);