|
@@ -1,5 +1,6 @@
|
|
|
package com.zcxk.rmcp.core.dao.mongo;
|
|
|
|
|
|
+import com.mongodb.client.MongoCursor;
|
|
|
import com.zcxk.core.common.pojo.PageResult;
|
|
|
import com.zcxk.core.common.pojo.UserCondition;
|
|
|
import com.zcxk.core.oauth2.util.UserUtil;
|
|
@@ -8,12 +9,14 @@ import com.zcxk.core.utils.BigDecimalUtils;
|
|
|
import com.zcxk.core.utils.DateUtil;
|
|
|
import com.zcxk.core.utils.ZoniotIntegerUtils;
|
|
|
import com.zcxk.core.utils.ZoniotStringUtils;
|
|
|
+import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto;
|
|
|
import com.zcxk.rmcp.api.dto.meterReadRecord.MeterReadRecordDto;
|
|
|
import com.zcxk.rmcp.api.dto.meterReadRecord.MeterReadRecordUpdateDto;
|
|
|
import com.zcxk.rmcp.api.enums.ReadStatusEnum;
|
|
|
import com.zcxk.rmcp.api.vo.MeterReadRecordAggregaVo;
|
|
|
import com.zcxk.rmcp.api.vo.MeterReadRecordVo;
|
|
|
import com.zcxk.rmcp.core.mongo.MeterReadRecord;
|
|
|
+import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.mongodb.core.aggregation.*;
|
|
@@ -26,6 +29,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -257,4 +261,36 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
|
|
|
List<Map> mappedResults = aggregate.getMappedResults();
|
|
|
return CollectionUtils.isEmpty(mappedResults) ? 0 : ZoniotIntegerUtils.parseInt(mappedResults.get(0).get("count"));
|
|
|
}
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @description 查询结算期的用水量
|
|
|
+ * @author hym
|
|
|
+ * @updateTime 2021/7/28 10:25
|
|
|
+ * @throws
|
|
|
+ */
|
|
|
+ public List<MeterReadRecord> querySettlementWaterConsumption(MeasurementSettlementDto dto,int num){
|
|
|
+
|
|
|
+ List<AggregationOperation> commonOperations = new ArrayList<>();
|
|
|
+ LocalDate startDate=DateUtil.parseLocalDate(dto.getSettlementTime());
|
|
|
+ LocalDate endDate=startDate.plusMonths(dto.getBillingCycle());
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.and("tenantId").is(dto.getTenantId());
|
|
|
+ criteria.and("companyOrgId").is(dto.getCompanyOrgId());
|
|
|
+ if (ZoniotStringUtils.isNotEmpty(dto.getDeptOrgId())) {
|
|
|
+ criteria.and("deptOrgId").is(dto.getDeptOrgId());
|
|
|
+ }
|
|
|
+ if (ZoniotStringUtils.isNotEmpty(dto.getCommunityId())) {
|
|
|
+ criteria.and("communityId").is(dto.getCommunityId());
|
|
|
+ }
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMDD");
|
|
|
+ Criteria criteria1 = Criteria.where("data.readDate").is(Integer.valueOf(formatter.format(startDate)));
|
|
|
+ Criteria criteria2 = Criteria.where("data.readDate").is(Integer.valueOf(formatter.format(endDate)));
|
|
|
+ criteria.orOperator(criteria1,criteria2);
|
|
|
+ Query query = Query.query(criteria);
|
|
|
+ Pageable pageable = PageRequest.of(num, 10000);
|
|
|
+ query.with(pageable);
|
|
|
+ List<MeterReadRecord> meterReadRecords = mongoTemplate.find(query, MeterReadRecord.class);
|
|
|
+ return meterReadRecords;
|
|
|
+ }
|
|
|
}
|