Bladeren bron

实时数据统计表单修改数据展示顺序,修改根据日期筛选的数据范围

lingpeng.li 5 maanden geleden
bovenliggende
commit
a1ad49f6cc

+ 32 - 13
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceInformationServiceImpl.java

@@ -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))// 虚拟设备

+ 5 - 1
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/fpgLeanModel/service/impl/FpgLeanModelServiceImpl.java

@@ -105,7 +105,11 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
             y.setWarnSum(leanEventWarnSum);
         });
 
-        leanModelDeviceHistoryInfoIPage.setRecords(leanModelDeviceHistoryInfoList);
+        List<LeanModelDeviceHistoryInfo> leanModelDeviceHistoryInfoSortList = leanModelDeviceHistoryInfoList.stream()
+                .sorted(Comparator.comparing(LeanModelDeviceHistoryInfo::getDeviceStartTime).reversed())
+                .collect(Collectors.toList());
+
+        leanModelDeviceHistoryInfoIPage.setRecords(leanModelDeviceHistoryInfoSortList);
         leanModelDeviceHistoryInfoIPage.setTotal(total);
         leanModelDeviceHistoryInfoIPage.setSize(pageSize);
         return leanModelDeviceHistoryInfoIPage;