|
@@ -1,5 +1,6 @@
|
|
|
package com.bizmatics.service.impl;
|
|
|
|
|
|
+import com.bizmatics.common.core.exception.BusinessException;
|
|
|
import com.bizmatics.common.core.util.DateUtils;
|
|
|
import com.bizmatics.model.HtAnalogData;
|
|
|
import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
|
|
@@ -44,8 +45,8 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
public List<CommonIcoVO> selectTrendByDate(Date date,Integer siteId) {
|
|
|
Integer userId = SessionLocal.getUserId();
|
|
|
List<CommonIcoVO> list = new ArrayList<>();
|
|
|
- list.add(CommonIcoVO.builder().name("today").list(getByDate(userId,siteId,date)).build());
|
|
|
- list.add(CommonIcoVO.builder().name("yesterday").list(getByDate(userId,siteId,DateUtils.addDays(date,-1))).build());
|
|
|
+ list.add(getByDate("today", userId, siteId, date));
|
|
|
+ list.add(getByDate("yesterday", userId, siteId, DateUtils.addDays(date,-1)));
|
|
|
return list;
|
|
|
}
|
|
|
|
|
@@ -66,9 +67,18 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
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(Arith.div(hadCountVO.getLastDayCount(),hadCountVO.getDayCount()));
|
|
|
- hadCountVO.setMonthRadio(Arith.div(hadCountVO.getLastMonthCount(),hadCountVO.getMonthCount()));
|
|
|
- hadCountVO.setYearRadio(Arith.div(hadCountVO.getLastYearCount(),hadCountVO.getYearCount()));
|
|
|
+ hadCountVO.setDayRadio(Optional.ofNullable(hadCountVO.getDayCount())
|
|
|
+ .filter(dayCount -> 0.00 != dayCount)
|
|
|
+ .map(dayCount -> Arith.div(hadCountVO.getLastDayCount(), dayCount))
|
|
|
+ .orElse(0.00));
|
|
|
+ hadCountVO.setMonthRadio(Optional.ofNullable(hadCountVO.getMonthCount())
|
|
|
+ .filter(dayCount -> 0.00 != dayCount)
|
|
|
+ .map(dayCount -> Arith.div(hadCountVO.getLastMonthCount(), dayCount))
|
|
|
+ .orElse(0.00));
|
|
|
+ hadCountVO.setYearRadio(Optional.ofNullable(hadCountVO.getYearCount())
|
|
|
+ .filter(dayCount -> 0.00 != dayCount)
|
|
|
+ .map(dayCount -> Arith.div(hadCountVO.getLastYearCount(), dayCount))
|
|
|
+ .orElse(0.00));
|
|
|
return hadCountVO;
|
|
|
}
|
|
|
|
|
@@ -96,19 +106,21 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
List<Object> maxList = new ArrayList<>();
|
|
|
List<Object> minList = new ArrayList<>();
|
|
|
List<Object> avgList = new ArrayList<>();
|
|
|
- for (int i = 0; i < Integer.parseInt(DateUtils.getDay(date)); i++) {
|
|
|
+ List<Object> dateList = new ArrayList<>();
|
|
|
+ for (int i = 1; i <= Integer.parseInt(DateUtils.getDay(date)); i++) {
|
|
|
Date setDays = DateUtils.setDays(date, i);
|
|
|
Date dayStartTime = DateUtils.getDayStartTime(setDays);
|
|
|
Date dayEndTime = DateUtils.getDayEndTime(setDays);
|
|
|
Map<String, Double> map = baseMapper.selectMaxAndMinAndAvg(siteId, dayStartTime,dayEndTime);
|
|
|
- maxList.add(map.get("demandMax"));
|
|
|
- minList.add(map.get("demandMin"));
|
|
|
- avgList.add(map.get("demandAvd"));
|
|
|
+ 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));
|
|
|
+ avgList.add(Optional.ofNullable(map).map(max -> max.get("demandAvd")).orElse(0.00));
|
|
|
+ dateList.add(DateUtils.getDay(setDays));
|
|
|
}
|
|
|
List<CommonIcoVO> list = new ArrayList<>();
|
|
|
- list.add(CommonIcoVO.builder().name("MAX").list(maxList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("MIN").list(minList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("AVG").list(avgList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("MAX").list(maxList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("MIN").list(minList).list(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("AVG").list(avgList).listDate(dateList).build());
|
|
|
return list;
|
|
|
}
|
|
|
|
|
@@ -116,44 +128,56 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
public List<CommonIcoVO> getElectricIco(Integer siteId, Date date) {
|
|
|
Integer userId = SessionLocal.getUserId();
|
|
|
List<Object> iaList = new ArrayList<>();
|
|
|
+ iaList.add(0.00);
|
|
|
List<Object> ibList = new ArrayList<>();
|
|
|
+ ibList.add(0.00);
|
|
|
List<Object> icList = new ArrayList<>();
|
|
|
+ icList.add(0.00);
|
|
|
List<Object> uaList = new ArrayList<>();
|
|
|
+ uaList.add(0.00);
|
|
|
List<Object> ubList = new ArrayList<>();
|
|
|
+ ubList.add(0.00);
|
|
|
List<Object> ucList = new ArrayList<>();
|
|
|
+ ucList.add(0.00);
|
|
|
+ List<Object> dateList = new ArrayList<>();
|
|
|
+ dateList.add("00:00:00");
|
|
|
for (int i = 2; i < 24 ; i+=2) {
|
|
|
//结束时间
|
|
|
Date endTime = DateUtils.addHours(date, i);
|
|
|
- HtAnalogData htAnalogData = htAnalogDataMapper.selectByEndTime(endTime, siteId, userId);
|
|
|
- iaList.add(htAnalogData.getIa());
|
|
|
- ibList.add(htAnalogData.getIb());
|
|
|
- icList.add(htAnalogData.getIc());
|
|
|
- uaList.add(htAnalogData.getUa());
|
|
|
- ubList.add(htAnalogData.getUb());
|
|
|
- ucList.add(htAnalogData.getUc());
|
|
|
+ HtAnalogData htAnalogData = htAnalogDataMapper.selectByEndTime(date,endTime, siteId, userId);
|
|
|
+ iaList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getIa()).orElse(0.00));
|
|
|
+ ibList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getIb()).orElse(0.00));
|
|
|
+ icList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getIc()).orElse(0.00));
|
|
|
+ uaList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getUa()).orElse(0.00));
|
|
|
+ ubList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getUb()).orElse(0.00));
|
|
|
+ ucList.add(Optional.ofNullable(htAnalogData).map(had -> htAnalogData.getUc()).orElse(0.00));
|
|
|
date = endTime;
|
|
|
+ dateList.add(DateUtils.getTime(endTime));
|
|
|
}
|
|
|
List<CommonIcoVO> list = new ArrayList<>();
|
|
|
- list.add(CommonIcoVO.builder().name("IA").list(iaList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("IB").list(ibList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("IC").list(icList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("UA").list(uaList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("UB").list(ubList).build());
|
|
|
- list.add(CommonIcoVO.builder().name("UC").list(ucList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("IA").list(iaList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("IB").list(ibList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("IC").list(icList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("UA").list(uaList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("UB").list(ubList).listDate(dateList).build());
|
|
|
+ list.add(CommonIcoVO.builder().name("UC").list(ucList).listDate(dateList).build());
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
|
|
|
- public List<Object> getByDate(Integer userId,Integer siteId,Date date){
|
|
|
+ public CommonIcoVO getByDate(String name,Integer userId,Integer siteId,Date date){
|
|
|
List<Object> objects = new ArrayList<>();
|
|
|
- objects.add(0);
|
|
|
+ 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 objects;
|
|
|
+ return CommonIcoVO.builder().name(name).list(objects).listDate(dates).build();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -165,9 +189,11 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
|
|
|
* @return
|
|
|
*/
|
|
|
public Double getElectricity(Integer userId,Integer siteId,Date startTime,Date endTime){
|
|
|
- HtAnalogData startHad = htAnalogDataMapper.selectByStartTime(startTime, siteId, userId);
|
|
|
- HtAnalogData endHad = htAnalogDataMapper.selectByEndTime(endTime, siteId, userId);
|
|
|
- return Arith.sub(startHad.getEpp(),endHad.getEpp());
|
|
|
+ HtAnalogData ascHad = htAnalogDataMapper.selectByStartTime(startTime,endTime, siteId, userId);
|
|
|
+ HtAnalogData descHad = htAnalogDataMapper.selectByEndTime(endTime,endTime, siteId, userId);
|
|
|
+ Integer ascHadEpp = Optional.ofNullable(ascHad).map(htAnalogData -> 0).orElse(0);
|
|
|
+ Integer descHadEpp = Optional.ofNullable(descHad).map(htAnalogData -> 0).orElse(0);
|
|
|
+ return Arith.sub(descHadEpp,ascHadEpp);
|
|
|
}
|
|
|
|
|
|
}
|