|
@@ -16,9 +16,7 @@ import com.bizmatics.service.vo.*;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -45,37 +43,47 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
Integer userId = SessionLocal.getUserId();
|
|
Integer userId = SessionLocal.getUserId();
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
HadCountVO hadCountVO = new HadCountVO();
|
|
HadCountVO hadCountVO = new HadCountVO();
|
|
|
|
+ //获取用户对应的站点信息
|
|
List<Integer> idList = siteMapper.idList(userId, null);
|
|
List<Integer> idList = siteMapper.idList(userId, null);
|
|
//日
|
|
//日
|
|
- List<HadDataLog> todayList = hadDataLogService.list(DateUtils.getDayStartTime(date),date);
|
|
|
|
- for (HadCrVO hadCr:getEppData(idList, todayList)) {
|
|
|
|
- hadCountVO.setDayCount(Arith.add(hadCountVO.getDayCount(),Arith.sub(hadCr.getHadMax(),hadCr.getHadMax())));
|
|
|
|
- }
|
|
|
|
|
|
+ List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
|
|
|
|
+ getEpp(byToday,idList,null,null);
|
|
//月
|
|
//月
|
|
- Date firstDayOfMonth = DateUtils.getFirstDayOfMonth(date);
|
|
|
|
- hadCountVO.setMonthCount(getMonthAndYearDate(firstDayOfMonth, date, idList));
|
|
|
|
|
|
+ List<HadDataLog> byMonth = getByMonth(DateUtils.getFirstDayOfMonth(date), date);
|
|
|
|
+ getEpp(byMonth,idList,null,null);
|
|
//年
|
|
//年
|
|
- Date beginDayOfYear = DateUtils.getBeginDayOfYear(date);
|
|
|
|
- hadCountVO.setYearCount(getMonthAndYearDate(beginDayOfYear, date, idList));
|
|
|
|
|
|
+ List<HadDataLog> byYear = getByMonth(DateUtils.getBeginDayOfYear(date), date);
|
|
|
|
+ getEpp(byYear,idList,null,null);
|
|
return hadCountVO;
|
|
return hadCountVO;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取epp计算结果
|
|
|
|
+ * @param list
|
|
|
|
+ * @param siteIdList
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Double getEpp(List<HadDataLog> list, List<Integer> siteIdList,Date startTime,Date endTime){
|
|
|
|
+ List<HadCrVO> hadCrVoS = new ArrayList<>();
|
|
|
|
+ list.forEach(hadDataLog -> {
|
|
|
|
+ //获取真实数据
|
|
|
|
+ List<HadDataLogVO> hadDateList = getHadDateList(hadDataLog, siteIdList,startTime,endTime);
|
|
|
|
+ Map<Integer, DoubleSummaryStatistics> collect = hadDateList.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getEpp)));
|
|
|
|
+ checkData(collect,hadCrVoS);
|
|
|
|
+ });
|
|
|
|
+ return getSubCount(hadCrVoS);
|
|
|
|
+ }
|
|
|
|
|
|
- public Double getMonthAndYearDate(Date startTime,Date endTime,List<Integer> idList){
|
|
|
|
- AtomicReference<Double> count = new AtomicReference<>(0.00);
|
|
|
|
- List<HadDataLog> startList = hadDataLogService.list(startTime,DateUtils.getDayEndTime(startTime));
|
|
|
|
- List<HadDataLog> endList = hadDataLogService.list(DateUtils.getDayStartTime(endTime),endTime);
|
|
|
|
- List<HadCrVO> startEppData = getEppData(idList, startList);
|
|
|
|
- List<HadCrVO> endEppData = getEppData(idList, endList);
|
|
|
|
- for (HadCrVO hadCrVO:startEppData) {
|
|
|
|
- endEppData.stream()
|
|
|
|
- .filter(hadCr -> hadCr.getSiteId().equals(hadCrVO.getSiteId()))
|
|
|
|
- .findAny()
|
|
|
|
- .ifPresent(had ->{
|
|
|
|
- count.updateAndGet(v -> v + had.getHadMax() - hadCrVO.getHadMin());
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- return count.get();
|
|
|
|
|
|
+ public List<HadDataLog> getByToday(Date startTime,Date endTime){
|
|
|
|
+ return hadDataLogService.list(startTime,endTime);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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 startList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -83,11 +91,28 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
public List<CommonIcoVO> selectTrendByDate(Date date,Integer siteId) {
|
|
public List<CommonIcoVO> selectTrendByDate(Date date,Integer siteId) {
|
|
Integer userId = SessionLocal.getUserId();
|
|
Integer userId = SessionLocal.getUserId();
|
|
List<CommonIcoVO> list = new ArrayList<>();
|
|
List<CommonIcoVO> list = new ArrayList<>();
|
|
- list.add(getByDate("today", userId, siteId, date));
|
|
|
|
- list.add(getByDate("yesterday", userId, siteId, DateUtils.addDays(date,-1)));
|
|
|
|
|
|
+ List<Integer> idList = siteMapper.idList(userId, null);
|
|
|
|
+ list.add(getTrendOne("today", idList, DateUtils.getDayStartTime(date), date));
|
|
|
|
+ list.add(getTrendOne("yesterday", idList, DateUtils.addDays(date, -1), date));
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public CommonIcoVO getTrendOne(String name,List<Integer> idList,Date startTime,Date endTime){
|
|
|
|
+ List<HadDataLog> list = getByToday(startTime, endTime);
|
|
|
|
+ List<Object> objects = new ArrayList<>();
|
|
|
|
+ objects.add(0.0);
|
|
|
|
+ List<Object> dates = new ArrayList<>();
|
|
|
|
+ dates.add("00:00:00");
|
|
|
|
+ for (int i = 2; i < 24 ; i+=2) {
|
|
|
|
+ //结束时间
|
|
|
|
+ Date hours = DateUtils.addHours(startTime, i);
|
|
|
|
+ objects.add(getEpp(list,idList,startTime,hours));
|
|
|
|
+ startTime = hours;
|
|
|
|
+ dates.add(DateUtils.getTime(hours));
|
|
|
|
+ }
|
|
|
|
+ return CommonIcoVO.builder().name(name).list(objects).listDate(dates).build();
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public HadCountVO getCountBySite(Integer siteId) {
|
|
public HadCountVO getCountBySite(Integer siteId) {
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
@@ -99,12 +124,12 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
//当年开始时间
|
|
//当年开始时间
|
|
Date firstDayOfYear = DateUtils.getBeginDayOfYear(date);
|
|
Date firstDayOfYear = DateUtils.getBeginDayOfYear(date);
|
|
HadCountVO hadCountVO = new HadCountVO();
|
|
HadCountVO hadCountVO = new HadCountVO();
|
|
- hadCountVO.setDayCount(getElectricity(userId,siteId,firstDayOfDate,date));
|
|
|
|
- hadCountVO.setMonthCount(getElectricity(userId,siteId,firstDayOfMonth,date));
|
|
|
|
- hadCountVO.setYearCount(getElectricity(userId,siteId,firstDayOfYear,date));
|
|
|
|
- hadCountVO.setLastDayCount(getElectricity(userId,siteId,DateUtils.addDays(firstDayOfDate, -1),DateUtils.addDays(date, -1)));
|
|
|
|
- hadCountVO.setLastMonthCount(getElectricity(userId,siteId,DateUtils.addMonths(firstDayOfMonth, -1),DateUtils.addMonths(date, -1)));
|
|
|
|
- hadCountVO.setLastYearCount(getElectricity(userId,siteId,DateUtils.addYears(firstDayOfYear, -1),DateUtils.addYears(date, -1)));
|
|
|
|
|
|
+// hadCountVO.setDayCount(getElectricity(userId,siteId,firstDayOfDate,date));
|
|
|
|
+// hadCountVO.setMonthCount(getElectricity(userId,siteId,firstDayOfMonth,date));
|
|
|
|
+// hadCountVO.setYearCount(getElectricity(userId,siteId,firstDayOfYear,date));
|
|
|
|
+// hadCountVO.setLastDayCount(getElectricity(userId,siteId,DateUtils.addDays(firstDayOfDate, -1),DateUtils.addDays(date, -1)));
|
|
|
|
+// hadCountVO.setLastMonthCount(getElectricity(userId,siteId,DateUtils.addMonths(firstDayOfMonth, -1),DateUtils.addMonths(date, -1)));
|
|
|
|
+// hadCountVO.setLastYearCount(getElectricity(userId,siteId,DateUtils.addYears(firstDayOfYear, -1),DateUtils.addYears(date, -1)));
|
|
hadCountVO.setDayRadio(Optional.ofNullable(hadCountVO.getDayCount())
|
|
hadCountVO.setDayRadio(Optional.ofNullable(hadCountVO.getDayCount())
|
|
.filter(dayCount -> 0.00 != dayCount)
|
|
.filter(dayCount -> 0.00 != dayCount)
|
|
.map(dayCount -> Arith.div(hadCountVO.getLastDayCount(), dayCount))
|
|
.map(dayCount -> Arith.div(hadCountVO.getLastDayCount(), dayCount))
|
|
@@ -122,33 +147,61 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public TimeShareVO getTimeShare(Integer siteId, Date date) {
|
|
public TimeShareVO getTimeShare(Integer siteId, Date date) {
|
|
- Integer userId = SessionLocal.getUserId();
|
|
|
|
TimeShareVO timeShareVO = new TimeShareVO();
|
|
TimeShareVO timeShareVO = new TimeShareVO();
|
|
- timeShareVO.setNeed(getElectricity(userId, siteId, DateUtils.setHours(date, 9), DateUtils.setHours(date, 12)));
|
|
|
|
|
|
+ List<Integer> idList = new ArrayList<>();
|
|
|
|
+ idList.add(siteId);
|
|
|
|
+ List<HadDataLog> byToday = getByToday(date, DateUtils.getDayEndTime(date));
|
|
|
|
+ //尖峰时间
|
|
|
|
+ Date nine = DateUtils.setMinutes(DateUtils.setHours(date, 9), 30);
|
|
|
|
+ Date eleven = DateUtils.setMinutes(DateUtils.setHours(date, 11), 30);
|
|
|
|
+ Date nineTeen = DateUtils.setHours(date, 19);
|
|
|
|
+ Date twoOne = DateUtils.setHours(date, 21);
|
|
|
|
+ //高峰时间
|
|
|
|
+ Date eight = DateUtils.setMinutes(DateUtils.setHours(date, 8), 30);
|
|
|
|
+ Date ten = DateUtils.setMinutes(DateUtils.setHours(date, 10), 30);
|
|
|
|
+ Date oneEight = DateUtils.setHours(date, 18);
|
|
|
|
+ Date oneNine = DateUtils.setHours(date, 19);
|
|
|
|
+ Date twoThree = DateUtils.setHours(date, 23);
|
|
|
|
+ //低谷
|
|
|
|
+ Date seven = DateUtils.setHours(date, 7);
|
|
|
|
+ //平谷
|
|
|
|
+ Date oneTwo = DateUtils.setHours(date, 12);
|
|
|
|
+ Date oneSeven = DateUtils.setHours(date, 17);
|
|
|
|
+ //尖
|
|
|
|
+ Double nToe = getEpp(byToday, idList, nine, eleven);
|
|
|
|
+ Double nTot = getEpp(byToday, idList, nineTeen, twoOne);
|
|
//高峰
|
|
//高峰
|
|
- Double peakStart = getElectricity(userId, siteId, DateUtils.setHours(date, 8), DateUtils.setHours(date, 12));
|
|
|
|
- Double peakEnd = getElectricity(userId, siteId, DateUtils.setHours(date, 16), DateUtils.setHours(date, 20));
|
|
|
|
- timeShareVO.setPeak(peakStart+peakEnd);
|
|
|
|
- //平
|
|
|
|
- Double flatStart = getElectricity(userId, siteId, DateUtils.setHours(date, 6), DateUtils.setHours(date, 8));
|
|
|
|
- Double flatCentre = getElectricity(userId, siteId, DateUtils.setHours(date, 12), DateUtils.setHours(date, 16));
|
|
|
|
- Double flatEnd = getElectricity(userId, siteId, DateUtils.setHours(date, 20), DateUtils.setHours(date, 22));
|
|
|
|
- timeShareVO.setFlat(flatStart+flatCentre+flatEnd);
|
|
|
|
- timeShareVO.setGrain(getElectricity(userId, siteId, DateUtils.setHours(date, 22), DateUtils.setHours(DateUtils.addDays(date, 1), 6)));
|
|
|
|
|
|
+ Double eTot = getEpp(byToday, idList, eight, ten);
|
|
|
|
+ Double hnTot = getEpp(byToday, idList, oneEight, oneNine);
|
|
|
|
+ Double tTot = getEpp(byToday, idList, twoOne, twoThree);
|
|
|
|
+ //低谷
|
|
|
|
+ Double tTos = getEpp(byToday, idList, twoThree, seven);
|
|
|
|
+ //平谷
|
|
|
|
+ Double oToo = getEpp(byToday, idList, oneTwo, oneSeven);
|
|
return timeShareVO;
|
|
return timeShareVO;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<CommonIcoVO> getDemandIco(Integer siteId) {
|
|
public List<CommonIcoVO> getDemandIco(Integer siteId) {
|
|
- Date date = DateUtils.getLastDayOfMonth(new Date());
|
|
|
|
|
|
+ List<Integer> idList = new ArrayList<>();
|
|
|
|
+ idList.add(siteId);
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ List<HadDataLog> hadDataLogList = getByToday(date, DateUtils.getLastDayOfMonth(new Date()));
|
|
List<Object> maxList = new ArrayList<>();
|
|
List<Object> maxList = new ArrayList<>();
|
|
List<Object> minList = new ArrayList<>();
|
|
List<Object> minList = new ArrayList<>();
|
|
List<Object> avgList = new ArrayList<>();
|
|
List<Object> avgList = new ArrayList<>();
|
|
List<Object> dateList = new ArrayList<>();
|
|
List<Object> dateList = new ArrayList<>();
|
|
for (int i = 1; i <= Integer.parseInt(DateUtils.getDay(date)); i++) {
|
|
for (int i = 1; i <= Integer.parseInt(DateUtils.getDay(date)); i++) {
|
|
|
|
+ List<HadCrVO> hadCrVoS = new ArrayList<>();
|
|
Date setDays = DateUtils.setDays(date, i);
|
|
Date setDays = DateUtils.setDays(date, i);
|
|
Date dayStartTime = DateUtils.getDayStartTime(setDays);
|
|
Date dayStartTime = DateUtils.getDayStartTime(setDays);
|
|
Date dayEndTime = DateUtils.getDayEndTime(setDays);
|
|
Date dayEndTime = DateUtils.getDayEndTime(setDays);
|
|
|
|
+ hadDataLogList.forEach(hadDataLog -> {
|
|
|
|
+ List<HadDataLogVO> hadDateList = getHadDateList(hadDataLog, idList, dayStartTime, dayEndTime);
|
|
|
|
+ Map<Integer, DoubleSummaryStatistics> collect = hadDateList.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getDemand)));
|
|
|
|
+ checkData(collect,hadCrVoS);
|
|
|
|
+ });
|
|
Map<String, Double> map = baseMapper.selectMaxAndMinAndAvg(siteId, dayStartTime,dayEndTime);
|
|
Map<String, Double> map = baseMapper.selectMaxAndMinAndAvg(siteId, dayStartTime,dayEndTime);
|
|
maxList.add(Optional.ofNullable(map).map(max -> max.get("demandMax")).orElse(0.00));
|
|
maxList.add(Optional.ofNullable(map).map(max -> max.get("demandMax")).orElse(0.00));
|
|
minList.add(Optional.ofNullable(map).map(max -> max.get("demandMin")).orElse(0.00));
|
|
minList.add(Optional.ofNullable(map).map(max -> max.get("demandMin")).orElse(0.00));
|
|
@@ -202,100 +255,39 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- public CommonIcoVO getByDate(String name,Integer userId,Integer siteId,Date date){
|
|
|
|
- List<Object> objects = new ArrayList<>();
|
|
|
|
- objects.add(0.0);
|
|
|
|
- List<Object> dates = new ArrayList<>();
|
|
|
|
- dates.add("00:00:00");
|
|
|
|
- for (int i = 2; i < 24 ; i+=2) {
|
|
|
|
- //结束时间
|
|
|
|
- Date endTime = DateUtils.addHours(date, i);
|
|
|
|
- objects.add(getElectricity(userId,siteId,date,endTime));
|
|
|
|
- date = endTime;
|
|
|
|
- dates.add(DateUtils.getTime(date));
|
|
|
|
- }
|
|
|
|
- return CommonIcoVO.builder().name(name).list(objects).listDate(dates).build();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
- * 获取用电量
|
|
|
|
- * @param userId
|
|
|
|
- * @param siteId
|
|
|
|
- * @param startTime
|
|
|
|
- * @param endTime
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- public Double getElectricity(Integer userId,Integer siteId,Date startTime,Date endTime){
|
|
|
|
- HtAnalogData ascHad = htAnalogDataMapper.selectByStartTime(startTime,endTime, siteId, userId);
|
|
|
|
- HtAnalogData descHad = htAnalogDataMapper.selectByEndTime(endTime,endTime, siteId, userId);
|
|
|
|
- Double ascHadEpp = Optional.ofNullable(ascHad).map(HtAnalogData::getEpp).orElse(0.00);
|
|
|
|
- Double descHadEpp = Optional.ofNullable(descHad).map(HtAnalogData::getEpp).orElse(0.00);
|
|
|
|
- return Arith.sub(descHadEpp,ascHadEpp);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 获取
|
|
|
|
- * @param idList
|
|
|
|
|
|
+ * 求多个站点最大值减最小值的结果
|
|
* @param list
|
|
* @param list
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public HadCrVO getDemandData(List<Integer> idList, List<HadDataLog> list){
|
|
|
|
- HadCrVO hadCrVO = new HadCrVO();
|
|
|
|
- hadCrVO.setCount(0);
|
|
|
|
- hadCrVO.setSumDemand(0.00);
|
|
|
|
- List<HadCrVO> hadCrVOS = new ArrayList<>();
|
|
|
|
- for (HadDataLog hadDataLog:list) {
|
|
|
|
- List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
|
|
|
|
- List<Integer> origin = new ArrayList<>(idList);
|
|
|
|
- origin.retainAll(siteIdList);
|
|
|
|
- // 有交集
|
|
|
|
- if(CollectionUtils.isNotEmpty(origin)){
|
|
|
|
- List<HadDataLogVO> hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
|
|
|
|
- hadCrVO.setCount(hadCrVO.getCount()+origin.size());
|
|
|
|
- hadCrVO.setSumDemand(hadCrVO.getSumDemand()+
|
|
|
|
- hadDataLogVos.stream().filter(hadDataLogVO -> origin.contains(hadDataLogVO.getSiteId())).mapToDouble(HadDataLogVO::getDemand).sum());
|
|
|
|
- //分组求每个站点的最大值和最小值
|
|
|
|
- Map<Integer, DoubleSummaryStatistics> collect = hadDataLogVos.stream()
|
|
|
|
- .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
|
|
|
|
- .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getDemand)));
|
|
|
|
- checkData(collect,hadCrVOS);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- for (HadCrVO hadCr:hadCrVOS) {
|
|
|
|
- hadCrVO.setHadDif(Arith.add(hadCrVO.getHadDif(),Arith.sub(hadCr.getHadMax(),hadCr.getHadMax())));
|
|
|
|
|
|
+ public Double getSubCount(List<HadCrVO> list){
|
|
|
|
+ double count = 0.00;
|
|
|
|
+ for (HadCrVO hadCrVO:list) {
|
|
|
|
+ count+=Arith.add(count,Arith.sub(hadCrVO.getHadMax(),hadCrVO.getHadMax()));
|
|
}
|
|
}
|
|
- hadCrVO.setHadAvg(Arith.div(hadCrVO.getSumDemand(),hadCrVO.getCount()));
|
|
|
|
- hadCrVO.setList(hadCrVOS);
|
|
|
|
- return hadCrVO;
|
|
|
|
|
|
+ return count;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
- * 获取epp数据
|
|
|
|
- * @param idList
|
|
|
|
- * @param list
|
|
|
|
|
|
+ * 根据统计表的一条记录获取真实数据
|
|
|
|
+ * @param hadDataLog
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public List<HadCrVO> getEppData(List<Integer> idList,List<HadDataLog> list){
|
|
|
|
- List<HadCrVO> hadCrVoArrayList = new ArrayList<>();
|
|
|
|
- for (HadDataLog hadDataLog:list) {
|
|
|
|
- List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
|
|
|
|
- List<Integer> origin = new ArrayList<>(idList);
|
|
|
|
- origin.retainAll(siteIdList);
|
|
|
|
- // 有交集
|
|
|
|
- if(CollectionUtils.isNotEmpty(origin)){
|
|
|
|
- List<HadDataLogVO> hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
|
|
|
|
- //分组求每个站点的最大值和最小值
|
|
|
|
- Map<Integer, DoubleSummaryStatistics> collect = hadDataLogVos.stream()
|
|
|
|
- .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
|
|
|
|
- .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getEpp)));
|
|
|
|
- checkData(collect,hadCrVoArrayList);
|
|
|
|
- }
|
|
|
|
|
|
+ public List<HadDataLogVO> getHadDateList(HadDataLog hadDataLog,List<Integer> idList,Date startTime,Date endTime){
|
|
|
|
+ List<HadDataLogVO> hadDataLogVos = new ArrayList<>();
|
|
|
|
+ List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
|
|
|
|
+ List<Integer> origin = new ArrayList<>(idList);
|
|
|
|
+ origin.retainAll(siteIdList);
|
|
|
|
+ // 有交集
|
|
|
|
+ if(CollectionUtils.isNotEmpty(origin)){
|
|
|
|
+ hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
|
|
|
|
+ hadDataLogVos = hadDataLogVos.stream()
|
|
|
|
+ .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
|
|
|
|
+ .filter(hadDataLogVO -> Optional.ofNullable(startTime).map(sTime -> hadDataLogVO.getDataTime().after(sTime)).orElse(true))
|
|
|
|
+ .filter(hadDataLogVO -> Optional.ofNullable(endTime).map(eTime -> hadDataLogVO.getDataTime().before(eTime)).orElse(true))
|
|
|
|
+ .collect(Collectors.toList());
|
|
}
|
|
}
|
|
- return hadCrVoArrayList;
|
|
|
|
|
|
+ return hadDataLogVos;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|