Browse Source

查询不到结果直接返回空数组

hym 4 years ago
parent
commit
f5c2605ead

+ 16 - 3
smart-city-platform/src/main/java/com/bz/smart_city/service/sync/SyncDataServiceImpl.java

@@ -39,10 +39,15 @@ public class SyncDataServiceImpl implements SyncDataService {
         if(deviceInfo==null){
             return null;
         }
+        List<ClearDataDto>result=new ArrayList<>();
+        if(deviceInfo.size()==0){
+            return new ListObjectWrapper<ClearDataDto>(result);
+        }
         List<Long> deviceIds = (List<Long>)deviceInfo .get("ids");
+
         List<ClearingDataDTO> sycnClearing = clearingRecordItemMapper.findSycnClearing(deviceIds, yyyymm);
         Map<Long,String>idMatchFileNo= (Map<Long, String>) deviceInfo.get("matchs");
-        List<ClearDataDto>result=new ArrayList<>();
+
         sycnClearing.forEach(clearingDataDTO -> {
             ClearDataDto clearDataDto=new ClearDataDto();
             clearDataDto.setFileNo(idMatchFileNo.get(clearingDataDTO.getDeviceId()));
@@ -58,9 +63,13 @@ public class SyncDataServiceImpl implements SyncDataService {
         if(deviceInfo==null){
             return null;
         }
+        List<MeterReadDataDto> meterReadDataDtos = new ArrayList<>();
+        if(deviceInfo.size()==0){
+            return new ListObjectWrapper<MeterReadDataDto>(meterReadDataDtos);
+        }
         List<Long> deviceIds = (List<Long>)deviceInfo .get("ids");
         List<MeterReadRecord> syncMeterRecords = meterReadRecordMapper.findSyncMeterRecord(deviceIds, readTime);
-        List<MeterReadDataDto> meterReadDataDtos = new ArrayList<>();
+
         Map<Long,String>idMatchFileNo= (Map<Long, String>) deviceInfo.get("matchs");
         syncMeterRecords.forEach(syncMeterRecord->{
             MeterReadDataDto meterReadDataDto = new MeterReadDataDto();
@@ -75,14 +84,18 @@ public class SyncDataServiceImpl implements SyncDataService {
         if(fileNoList.size()>syncDataLimit){
             return null;
         }
+        Map<String,Object>result=new HashMap<>();
         List<Device> byFileNo = deviceMapper.findByFileNo(fileNoList, customerNo);
+        if(byFileNo.size()==0){
+            return  result;
+        }
         Map<Long,String>idMatchFileNo=new HashMap<>();
         List<Long>deviceIds=new ArrayList<>();
         byFileNo.forEach(device -> {
             deviceIds.add(device.getId());
             idMatchFileNo.put(device.getId(),device.getWaterMeterFileNo());
         });
-        Map<String,Object>result=new HashMap<>();
+
         result.put("ids",deviceIds);
         result.put("matchs",idMatchFileNo);
         return  result;