ソースを参照

添加mongo查询抄表记录service

lin 4 年 前
コミット
8718436bbb

+ 21 - 3
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/MongoMeterReadRecordServiceImpl.java

@@ -2,6 +2,7 @@ package com.bz.smart_city.service.impl;
 
 import com.bz.smart_city.commom.model.CommonQueryCondition;
 import com.bz.smart_city.commom.model.Pagination;
+import com.bz.smart_city.commom.util.Jdk8DateUtils;
 import com.bz.smart_city.dto.MeterReadDataDTO;
 import com.bz.smart_city.entity.MeterReadRecord;
 import com.bz.smart_city.repository.MongoMeterReadRecord;
@@ -92,14 +93,14 @@ public class MongoMeterReadRecordServiceImpl implements MongoMeterReadRecordServ
     @Override
     public List<MeterReadRecord> findByIds(List<Long> deviceIds) {
         Query query = new Query();
-        query.addCriteria(Criteria.where("_id").in(deviceIds));
+        query.addCriteria(Criteria.where("deviceId").in(deviceIds));
         return this.findMongoMeterReadRecordList(query);
     }
 
     @Override
     public MeterReadRecord findMeterLastReadRecord(Long deviceId) {
         Query query = new Query();
-        query.addCriteria(Criteria.where("_id").is(deviceId));
+        query.addCriteria(Criteria.where("deviceId").is(deviceId));
         query.with(Sort.by(Sort.Order.desc("dateCreate")));
 
         MongoMeterReadRecord mongoRecord = mongoTemplate.findOne(query, MongoMeterReadRecord.class,"sc_meter_read_record");
@@ -121,7 +122,24 @@ public class MongoMeterReadRecordServiceImpl implements MongoMeterReadRecordServ
     public List<MeterReadDataDTO> queryMeterReadData(String meterReadDate, String deviceNo, String electronicNo, Integer custId) {
         Query query = new Query();
         query.addCriteria(Criteria.where("readDate").is(Integer.parseInt(meterReadDate)));
-        return null;
+        if(deviceNo!=null) query.addCriteria(Criteria.where("deviceNo").is(deviceNo));
+        if(electronicNo!=null) query.addCriteria(Criteria.where("meterNo").is(electronicNo));
+        if(custId!=null) query.addCriteria(Criteria.where("customerId").is(custId));
+
+        List<MongoMeterReadRecord> list = mongoTemplate.find(query, MongoMeterReadRecord.class,"sc_meter_read_record");
+        List<MeterReadDataDTO> readRecordList = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (MongoMeterReadRecord mongoRecord : list) {
+                MeterReadDataDTO data = new MeterReadDataDTO();
+                data.setElectronicNo(mongoRecord.getMeterNo());
+                data.setDeviceNo(mongoRecord.getDeviceNo());
+                data.setMeterReadData(mongoRecord.getReadData());
+                data.setMeterReadDate(String.valueOf(mongoRecord.getReadDate()));
+                data.setMeterReadTime(Jdk8DateUtils.getDateToLocalDateTime(mongoRecord.getReadTime()));
+                readRecordList.add(data);
+            }
+        }
+        return readRecordList;
     }
 
     private MeterReadRecord convertMeterReadRecord(MongoMeterReadRecord mongoRecord){