yq vor 4 Jahren
Ursprung
Commit
da98a8a2d2

+ 3 - 0
fiveep-service/src/main/java/com/bizmatics/service/HadDataLogService.java

@@ -18,4 +18,7 @@ public interface HadDataLogService extends CrudService<HadDataLog> {
 
 
     List<HadDataLog> list(Date startTime,Date endTime);
+
+
+    List<HadDataLog> maxAndMinList(Date startTime,Date endTime);
 }

+ 45 - 2
fiveep-service/src/main/java/com/bizmatics/service/impl/HadDataLogServiceImpl.java

@@ -1,16 +1,20 @@
 package com.bizmatics.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.bizmatics.common.core.util.DateUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.bizmatics.model.HadDataLog;
 import com.bizmatics.persistence.mapper.HadDataLogMapper;
 import com.bizmatics.service.HadDataLogService;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * <p>
@@ -26,7 +30,46 @@ public class HadDataLogServiceImpl extends AbstractCrudService<HadDataLogMapper,
     @Override
     public List<HadDataLog> list(Date startTime, Date endTime) {
         LambdaQueryWrapper<HadDataLog> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.between(HadDataLog::getDataTime,startTime,endTime);
+        queryWrapper
+                .select(HadDataLog::getDataTime,HadDataLog::getSiteIdList,HadDataLog::getHadData)
+                .between(HadDataLog::getDataTime,startTime,endTime);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public List<HadDataLog> maxAndMinList(Date startTime, Date endTime) {
+        Page<HadDataLog> minPage = new Page<>(0, 1);
+        LambdaQueryWrapper<HadDataLog> minQuery = Wrappers.lambdaQuery();
+        minQuery
+                .select(HadDataLog::getDataTime)
+                .between(HadDataLog::getDataTime,startTime,endTime);
+        minPage = baseMapper.selectPage(minPage, minQuery);
+        Page<HadDataLog> maxPage = new Page<>(0, 1);
+        LambdaQueryWrapper<HadDataLog> maxQuery = Wrappers.lambdaQuery();
+        maxQuery
+                .select(HadDataLog::getDataTime)
+                .between(HadDataLog::getDataTime,startTime,endTime)
+                .orderByDesc(HadDataLog::getId);
+        maxPage = baseMapper.selectPage(maxPage, minQuery);
+        List<HadDataLog> hadDataLogs = addList(minPage);
+        hadDataLogs.addAll(addList(maxPage));
+        return hadDataLogs;
+    }
+
+    public List<HadDataLog> addList(Page<HadDataLog> page){
+        AtomicReference<List<HadDataLog>> list = new AtomicReference<>();
+        if (CollectionUtils.isNotEmpty(page.getRecords())){
+            Optional.ofNullable(page.getRecords().get(0))
+                    .flatMap(hadDataLog -> Optional.ofNullable(hadDataLog.getDataTime()))
+                    .ifPresent(date -> {
+                        LambdaQueryWrapper<HadDataLog> query = Wrappers.lambdaQuery();
+                        query.select(HadDataLog::getDataTime,HadDataLog::getHadData,HadDataLog::getSiteIdList)
+                                .eq(HadDataLog::getDataTime,date);
+                        List<HadDataLog> hadDataLogs = baseMapper.selectList(query);
+                        list.set(hadDataLogs);
+                    });
+        }
+        return Optional.ofNullable(list.get()).orElse(new ArrayList<>());
+    }
+
 }

+ 1 - 5
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -84,11 +84,7 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
     }
 
     public List<HadDataLog> getByMonth(Date startTime,Date endTime){
-
-//        List<HadDataLog> startList = hadDataLogService.list(startTime,endTime);
-//        List<HadDataLog> endList = hadDataLogService.list(DateUtils.getDayStartTime(startTime),endTime);
-//        startList.addAll(endList);
-        return new ArrayList<>();
+        return hadDataLogService.maxAndMinList(startTime,endTime);
     }