Fixed the incorrect device statistics issue happening due to REMOVED and DELETED devices.

status
Ruwin Dissanayake 3 months ago
parent 2da8cdd05f
commit 6934827920

@ -196,8 +196,10 @@ public class GroupBasedSubscriptionManagementHelperServiceImpl implements Subscr
List<Device> devices = HelperUtil.getGroupManagementProviderService(). List<Device> devices = HelperUtil.getGroupManagementProviderService().
getAllDevicesOfGroup(subscriptionInfo.getIdentifier(), false); getAllDevicesOfGroup(subscriptionInfo.getIdentifier(), false);
List<Integer> removedIds = devices.stream() List<Integer> removedIds = devices.stream()
.filter(device -> {String status = String.valueOf(device.getEnrolmentInfo().getStatus()); .filter(device -> {
return "REMOVED".equalsIgnoreCase(status) || "DELETED".equalsIgnoreCase(status);}) String status = String.valueOf(device.getEnrolmentInfo().getStatus());
return "REMOVED".equalsIgnoreCase(status) || "DELETED".equalsIgnoreCase(status);
})
.map(device -> device.getEnrolmentInfo().getId()).collect(Collectors.toList()); .map(device -> device.getEnrolmentInfo().getId()).collect(Collectors.toList());
List<Integer> enrollmentIdsOwnByGroup = devices.stream().map(device -> device.getEnrolmentInfo().getId()).collect(Collectors.toList()); List<Integer> enrollmentIdsOwnByGroup = devices.stream().map(device -> device.getEnrolmentInfo().getId()).collect(Collectors.toList());
enrollmentIdsOwnByGroup.removeAll(removedIds); enrollmentIdsOwnByGroup.removeAll(removedIds);
@ -206,7 +208,7 @@ public class GroupBasedSubscriptionManagementHelperServiceImpl implements Subscr
.map(Device::getId).collect(Collectors.toList()); .map(Device::getId).collect(Collectors.toList());
SubscriptionStatisticDTO subscriptionStatisticDTO = subscriptionDAO. SubscriptionStatisticDTO subscriptionStatisticDTO = subscriptionDAO.
getSubscriptionStatistic(deviceIdsOwnByGroup, isUnsubscribe, tenantId, applicationReleaseDTO.getId()); getSubscriptionStatistic(deviceIdsOwnByGroup, isUnsubscribe, tenantId, applicationReleaseDTO.getId());
int allDeviceCount= deviceIdsOwnByGroup.size(); int allDeviceCount = deviceIdsOwnByGroup.size();
return SubscriptionManagementHelperUtil.getSubscriptionStatistics(subscriptionStatisticDTO, allDeviceCount); return SubscriptionManagementHelperUtil.getSubscriptionStatistics(subscriptionStatisticDTO, allDeviceCount);
} catch (ApplicationManagementDAOException e) { } catch (ApplicationManagementDAOException e) {
String msg = "Error encountered while getting subscription statistics for group: " + subscriptionInfo.getIdentifier(); String msg = "Error encountered while getting subscription statistics for group: " + subscriptionInfo.getIdentifier();

Loading…
Cancel
Save