diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/daemon/task/SyncSiteDeviceTaskImpl.java b/sample-form-manager/src/main/java/com/mortals/xhx/daemon/task/SyncSiteDeviceTaskImpl.java index 90d5d7a8a2c7ce906993f651988712eb3f75d13e..582c8fd731f0a2bac8cb34911dd299d7137b9f5e 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/daemon/task/SyncSiteDeviceTaskImpl.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/daemon/task/SyncSiteDeviceTaskImpl.java @@ -93,6 +93,8 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { List<DeviceEntity> oldDeviceList = deviceService.find(new DeviceQuery().siteId(site.getId())); Map<String, DeviceEntity> oldDeviceMap = oldDeviceList.stream().collect(Collectors.toMap(x -> x.getDeviceCode(), y -> y, (o, n) -> n)); + Map<String, DeviceEntity> newDeviceMap = newDeviceList.stream().collect(Collectors.toMap(x -> x.getDeviceCode(), y -> y, (o, n) -> n)); + List<DeviceEntity> updateDeviceLsit = newDeviceList.stream().map(item -> { if (oldDeviceMap.containsKey(item.getDeviceCode())) { item.setId(oldDeviceMap.get(item.getDeviceCode()).getId()); @@ -116,6 +118,14 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { return null; }).filter(f -> f != null).collect(Collectors.toList()); + //鍋氬樊闆� + List<Long> delDeviceList = oldDeviceList.stream().map(item -> { + if (!newDeviceMap.containsKey(item.getDeviceCode())) { + return item.getId(); + } + return null; + }).filter(f -> f != null).collect(Collectors.toList()); + if (!ObjectUtils.isEmpty(updateDeviceLsit)) { log.info("璁惧鏇存柊锛宻ize:{}", updateDeviceLsit.size()); deviceService.update(updateDeviceLsit); @@ -125,6 +135,11 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { log.info("璁惧鏂板锛宻ize:{}", saveDeviceList.size()); deviceService.save(saveDeviceList); } + + if (!ObjectUtils.isEmpty(delDeviceList)) { + log.info("璁惧鍒犻櫎锛宻ize:{}", delDeviceList.size()); + deviceService.remove(delDeviceList,null); + } } } else { log.info("璁惧鍒楄〃鏌ヨ寮傚父锛寋}", JSON.toJSONString(deviceRest));