| 
															
																@@ -3,6 +3,7 @@ package com.zcxk.rmcp.core.dao.mongo; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.common.pojo.PageResult; 
															 | 
															
															 | 
															
																 import com.zcxk.core.common.pojo.PageResult; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.common.pojo.UserCondition; 
															 | 
															
															 | 
															
																 import com.zcxk.core.common.pojo.UserCondition; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.mongo.base.BaseDao; 
															 | 
															
															 | 
															
																 import com.zcxk.core.mongo.base.BaseDao; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.zcxk.core.mongo.utils.StringUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.oauth2.util.UserUtil; 
															 | 
															
															 | 
															
																 import com.zcxk.core.oauth2.util.UserUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.utils.BigDecimalUtils; 
															 | 
															
															 | 
															
																 import com.zcxk.core.utils.BigDecimalUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.core.utils.DateUtil; 
															 | 
															
															 | 
															
																 import com.zcxk.core.utils.DateUtil; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -15,6 +16,7 @@ import com.zcxk.rmcp.api.vo.MeterReadRecordAggregationVo; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.api.vo.MeterReadRecordVo; 
															 | 
															
															 | 
															
																 import com.zcxk.rmcp.api.vo.MeterReadRecordVo; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.core.entity.Device; 
															 | 
															
															 | 
															
																 import com.zcxk.rmcp.core.entity.Device; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.zcxk.rmcp.core.mongo.MeterReadRecord; 
															 | 
															
															 | 
															
																 import com.zcxk.rmcp.core.mongo.MeterReadRecord; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import io.swagger.models.auth.In; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import org.springframework.data.domain.Pageable; 
															 | 
															
															 | 
															
																 import org.springframework.data.domain.Pageable; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import org.springframework.data.domain.Sort; 
															 | 
															
															 | 
															
																 import org.springframework.data.domain.Sort; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import org.springframework.data.mongodb.core.aggregation.*; 
															 | 
															
															 | 
															
																 import org.springframework.data.mongodb.core.aggregation.*; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -53,7 +55,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Aggregation agg = Aggregation.newAggregation( 
															 | 
															
															 | 
															
																         Aggregation agg = Aggregation.newAggregation( 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 Aggregation.match(Criteria.where("id").is(id)), 
															 | 
															
															 | 
															
																                 Aggregation.match(Criteria.where("id").is(id)), 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 Aggregation.unwind("data"), 
															 | 
															
															 | 
															
																                 Aggregation.unwind("data"), 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                Aggregation.match(Criteria.where("data.readDate").is(readDate)) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                Aggregation.match(Criteria.where("data.readDate").is(Integer.parseInt(readDate.replaceAll("-","")))) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         ).withOptions(aggregationOptions); 
															 | 
															
															 | 
															
																         ).withOptions(aggregationOptions); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         AggregationResults<MeterReadRecordVo> durationData = 
															 | 
															
															 | 
															
																         AggregationResults<MeterReadRecordVo> durationData = 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 mongoTemplate.aggregate(agg, MeterReadRecord.class, MeterReadRecordVo.class); 
															 | 
															
															 | 
															
																                 mongoTemplate.aggregate(agg, MeterReadRecord.class, MeterReadRecordVo.class); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -90,7 +92,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Query query = new Query(); 
															 | 
															
															 | 
															
																         Query query = new Query(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         query.addCriteria(Criteria.where("id").is(dto.getId())); 
															 | 
															
															 | 
															
																         query.addCriteria(Criteria.where("id").is(dto.getId())); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        query.addCriteria(Criteria.where("data.readDate").is(dto.getReadDate())); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        query.addCriteria(Criteria.where("data.readDate").is(Integer.parseInt(dto.getReadDate().replaceAll("-","")))); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Update update = new Update(); 
															 | 
															
															 | 
															
																         Update update = new Update(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         update.set("data.$.readData",dto.getReadData()); 
															 | 
															
															 | 
															
																         update.set("data.$.readData",dto.getReadData()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         update.set("data.$.readStatus", ReadStatusEnum.READ.getCode()); 
															 | 
															
															 | 
															
																         update.set("data.$.readStatus", ReadStatusEnum.READ.getCode()); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -262,7 +264,9 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         criteria.and("year").is(localDate.getYear()); 
															 | 
															
															 | 
															
																         criteria.and("year").is(localDate.getYear()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         criteria.and("categoryId").is(dto.getCategoryId()); 
															 | 
															
															 | 
															
																         criteria.and("categoryId").is(dto.getCategoryId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        criteria.and("tenantId").is(userCondition.getTenantId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (StringUtil.isNotEmpty(userCondition.getTenantId())){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            criteria.and("tenantId").is(userCondition.getTenantId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         if (ZoniotStringUtils.isNotEmpty(dto.getConcentratorId())) { 
															 | 
															
															 | 
															
																         if (ZoniotStringUtils.isNotEmpty(dto.getConcentratorId())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             criteria.and("concentratorId").is(dto.getConcentratorId()); 
															 | 
															
															 | 
															
																             criteria.and("concentratorId").is(dto.getConcentratorId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -293,7 +297,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         commonOperations.add(unwind); 
															 | 
															
															 | 
															
																         commonOperations.add(unwind); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // 3.子文档查询 
															 | 
															
															 | 
															
																         // 3.子文档查询 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         MatchOperation match2 = Aggregation.match( 
															 | 
															
															 | 
															
																         MatchOperation match2 = Aggregation.match( 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                Criteria.where("data.readDate").is(localDate.toString())); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                Criteria.where("data.readDate").is(Integer.parseInt(localDate.toString().replaceAll("-","")))); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         commonOperations.add(match2); 
															 | 
															
															 | 
															
																         commonOperations.add(match2); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         return commonOperations; 
															 | 
															
															 | 
															
																         return commonOperations; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -307,9 +311,9 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme 
															 | 
														
													
												
													
														
															| 
															 | 
															
																      * @return java.util.List<org.springframework.data.mongodb.core.aggregation.AggregationOperation> 
															 | 
															
															 | 
															
																      * @return java.util.List<org.springframework.data.mongodb.core.aggregation.AggregationOperation> 
															 | 
														
													
												
													
														
															| 
															 | 
															
																      **/ 
															 | 
															
															 | 
															
																      **/ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     private List<AggregationOperation> groupCondition(int year, int readDateBeginDate, int readDateEndDate, GroupOperation groupOperation){ 
															 | 
															
															 | 
															
																     private List<AggregationOperation> groupCondition(int year, int readDateBeginDate, int readDateEndDate, GroupOperation groupOperation){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Criteria unwindCriteria; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Criteria criteria = new Criteria(); 
															 | 
															
															 | 
															
																         Criteria criteria = new Criteria(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         criteria.and("year").is(year); 
															 | 
															
															 | 
															
																         criteria.and("year").is(year); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        Criteria unwindCriteria = null; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         if (readDateBeginDate == readDateEndDate) { 
															 | 
															
															 | 
															
																         if (readDateBeginDate == readDateEndDate) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             unwindCriteria = Criteria.where("data.readDate").is(readDateBeginDate); 
															 | 
															
															 | 
															
																             unwindCriteria = Criteria.where("data.readDate").is(readDateBeginDate); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } else { 
															 | 
															
															 | 
															
																         } else { 
															 |