|
@@ -19,6 +19,7 @@ import org.springframework.data.mongodb.core.query.Query;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -53,6 +54,31 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|
|
result.setDeviceInformationList(deviceInformationList);
|
|
|
List<String> deviceInformationIds = deviceInformationList.stream().map(DeviceInformation::getId).collect(Collectors.toList());
|
|
|
|
|
|
+ // 获取当前日期 尖峰平谷 时长、用电、占比
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
+ // 定义日期格式
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ // 将当前日期格式化为字符串
|
|
|
+ String formattedDate = currentDate.format(formatter);
|
|
|
+ String queryDateParam = "";
|
|
|
+ if (oConvertUtils.isEmpty(dates)){
|
|
|
+ queryDateParam = formattedDate;
|
|
|
+ }else {
|
|
|
+ queryDateParam = dates;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将 dates 转为 LocalDate
|
|
|
+ LocalDate queryDate = LocalDate.parse(queryDateParam, formatter);
|
|
|
+
|
|
|
+ // 转换 dates 为 LocalDateTime 的开始时间(00:00:00)和结束时间(23:59:59)
|
|
|
+ LocalDateTime startOfDay = queryDate.atStartOfDay(); // 00:00:00
|
|
|
+ LocalDateTime endOfDay = queryDate.atTime(23, 59, 59); // 23:59:59
|
|
|
+
|
|
|
+ // 将 LocalDateTime 转换为对应的字符串,格式为 "yyyy-MM-dd HH:mm:ss"
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String startOfDayStr = startOfDay.format(dateTimeFormatter);
|
|
|
+ String endOfDayStr = endOfDay.format(dateTimeFormatter);
|
|
|
+
|
|
|
Query querylr = new Query();
|
|
|
querylr.addCriteria(Criteria.where("deviceInformationId").in(deviceInformationIds));
|
|
|
// 执行查询
|
|
@@ -67,25 +93,18 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|
|
Query query = new Query();
|
|
|
query.addCriteria(Criteria.where("deviceRegionId").is(deviceRegionId))// 设备区域ID
|
|
|
.addCriteria(Criteria.where("deviceInformationId").in(deviceInformationIds));// 虚拟设备
|
|
|
- query.with(Sort.by(Sort.Order.desc("deviceStartTime")));
|
|
|
+
|
|
|
+ // 使用 $lte 和 $gte 操作符进行日期范围比较
|
|
|
+ query.addCriteria(Criteria.where("deviceStartTime").lte(endOfDayStr)) // deviceStartTime <= dates + 23:59:59
|
|
|
+ .addCriteria(Criteria.where("deviceStopTime").gte(startOfDayStr)); // deviceStopTime >= dates + 00:00:00 // deviceStopTime
|
|
|
+ query.with(Sort.by(Sort.Order.asc("deviceStartTime")));
|
|
|
// 获取上次运行时间、运行累计时间、运行累计功率
|
|
|
List<StatiscsModelDataResult> statiscsModelDataResultList1 = mongoTemplate.find(query, StatiscsModelDataResult.class, "total_startstop");
|
|
|
if (oConvertUtils.listIsEmpty(statiscsModelDataResultList1)){
|
|
|
log.info("{}{}", "未查询到mongoDB信息total_startstop:", "区域ID:" + deviceRegionId + "设备ID集合:" + deviceInformationIds);
|
|
|
return result;
|
|
|
}
|
|
|
- // 获取当前日期 尖峰平谷 时长、用电、占比
|
|
|
- LocalDate currentDate = LocalDate.now();
|
|
|
- // 定义日期格式
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
- // 将当前日期格式化为字符串
|
|
|
- String formattedDate = currentDate.format(formatter);
|
|
|
- String queryDateParam = "";
|
|
|
- if (oConvertUtils.isEmpty(dates)){
|
|
|
- queryDateParam = formattedDate;
|
|
|
- }else {
|
|
|
- queryDateParam = dates;
|
|
|
- }
|
|
|
+
|
|
|
Query querys = new Query();
|
|
|
querys.addCriteria(Criteria.where("deviceRegionId").is(deviceRegionId))// 设备区域ID
|
|
|
.addCriteria(Criteria.where("deviceInformationId").in(deviceInformationIds))// 虚拟设备
|