|
@@ -1,5 +1,6 @@
|
|
|
package com.gyee.runeconomy.service.auto.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -19,8 +20,11 @@ import com.gyee.runeconomy.service.auto.ITurbineInfoDayService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.text.ParseException;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.Year;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -47,40 +51,52 @@ public class ProEconEquipmentInfoDayTopServiceImpl extends ServiceImpl<ProEconEq
|
|
|
@Override
|
|
|
public IPage<ProEconEquipmentInfoDayTop> getEquipmentInfoDayTopList(String companyId, String windpowerstationId, Integer types, String staType, String date, Integer pageNum, Integer pageSize) {
|
|
|
|
|
|
- IPage<TurbineInfoDay> andList = getTopAndList(windpowerstationId, date, pageNum, pageSize);
|
|
|
+ List<TurbineInfoDay> andList = getTopAndList(windpowerstationId, date, pageNum, pageSize);
|
|
|
IPage<ProEconEquipmentInfoDayTop> resultPage = getEquipmentInfoDayTopList_bf(companyId, windpowerstationId, types, staType, date, pageNum, pageSize);
|
|
|
- resultPage.setRecords(turbs2equipmentidt(resultPage.getRecords(),andList.getRecords()));
|
|
|
+ resultPage.setRecords(turbs2equipmentidt(resultPage.getRecords(), andList));
|
|
|
return resultPage;
|
|
|
}
|
|
|
|
|
|
private List<ProEconEquipmentInfoDayTop> turbs2equipmentidt(List<ProEconEquipmentInfoDayTop> peeidtRecords, List<TurbineInfoDay> tidRecords) {
|
|
|
- if (peeidtRecords == null || peeidtRecords.isEmpty() || tidRecords == null || tidRecords.isEmpty()) return Collections.emptyList();
|
|
|
+ if (peeidtRecords == null || peeidtRecords.isEmpty() || tidRecords == null || tidRecords.isEmpty())
|
|
|
+ return Collections.emptyList();
|
|
|
Map<String, TurbineInfoDay> dayMap = tidRecords.stream().collect(Collectors.toMap(TurbineInfoDay::getTurbineId, Function.identity()));
|
|
|
- peeidtRecords.forEach(peeidt->{
|
|
|
+ peeidtRecords.forEach(peeidt -> {
|
|
|
TurbineInfoDay day = dayMap.get(peeidt.getWindturbineId());
|
|
|
- peeidt.setDayfdl(NumberUtil.round(day.getRfdl(),2).doubleValue());
|
|
|
- peeidt.setDayllfdl(NumberUtil.round(day.getLlfdl(),2).doubleValue());
|
|
|
- peeidt.setDayfs(NumberUtil.round(day.getPjfs(),2).doubleValue());
|
|
|
- peeidt.setDaygzssdl(NumberUtil.round(day.getGzss(),2).doubleValue());
|
|
|
- peeidt.setDayxdssdl(NumberUtil.round(day.getXdss(),2).doubleValue());
|
|
|
- peeidt.setDaywhssdl(NumberUtil.round(day.getFjhjxss(),2).doubleValue());
|
|
|
- peeidt.setDayxnssdl(NumberUtil.round(day.getXnss(),2).doubleValue());
|
|
|
- peeidt.setDaylyxs(NumberUtil.round(day.getLyxs(),2).doubleValue());
|
|
|
- peeidt.setDaysbklyl(NumberUtil.round(day.getKlyl(),2).doubleValue());
|
|
|
- peeidt.setDayyxfss(NumberUtil.round(day.getYxfss(),2).doubleValue());
|
|
|
- peeidt.setDayjfpl(NumberUtil.round(day.getJfpl(),2).doubleValue());
|
|
|
+ peeidt.setDayfdl(NumberUtil.round(day.getRfdl() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayllfdl(NumberUtil.round(day.getLlfdl() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayfs(NumberUtil.round(day.getPjfs(), 2).doubleValue());
|
|
|
+ peeidt.setDaygzssdl(NumberUtil.round(day.getGzss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayxdssdl(NumberUtil.round(day.getXdss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDaywhssdl(NumberUtil.round(day.getFjhjxss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayxnssdl(NumberUtil.round(day.getXnss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDaylyxs(NumberUtil.round(day.getLyxs(), 2).doubleValue());
|
|
|
+ peeidt.setDaysbklyl(NumberUtil.round(day.getKlyl(), 2).doubleValue());
|
|
|
+ peeidt.setDayyxfss(NumberUtil.round(day.getYxfss(), 2).doubleValue());
|
|
|
+ peeidt.setDayjfpl(NumberUtil.round(day.getJfpl(), 2).doubleValue());
|
|
|
});
|
|
|
return peeidtRecords;
|
|
|
}
|
|
|
|
|
|
- public IPage<TurbineInfoDay> getTopAndList(String windpowerstationId, String date, Integer pageNum, Integer pageSize) {
|
|
|
- QueryWrapper<TurbineInfoDay> qw = new QueryWrapper<>();
|
|
|
- qw.lambda().eq(TurbineInfoDay::getStationId, windpowerstationId)
|
|
|
- .eq(TurbineInfoDay::getRecordDate, DateUtils.parseDate(date)).orderByAsc(TurbineInfoDay::getTurbineId);
|
|
|
- IPage<TurbineInfoDay> page = new Page<>(pageNum, pageSize);
|
|
|
- turbineInfoDayService.page(page, qw);
|
|
|
- return page;
|
|
|
+ public List<TurbineInfoDay> getTopAndList(String windpowerstationId, String date, Integer pageNum, Integer pageSize) {
|
|
|
+ LocalDate d = LocalDate.parse(date, DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
+ LocalDate firstDayOfMonth = d.withDayOfMonth(1);
|
|
|
+ Date startDate = Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+ Date endDate = DateUtil.parse(date);
|
|
|
+
|
|
|
+ List<TurbineInfoDay> turbineMonthList = turbineInfoDayService.getTurbineMonthList(windpowerstationId, startDate, endDate);
|
|
|
+
|
|
|
+ if (pageNum == null || pageSize == null || pageNum < 1 || pageSize < 1) {
|
|
|
+ return turbineMonthList;
|
|
|
+ }
|
|
|
+
|
|
|
+ return turbineMonthList.stream()
|
|
|
+ .skip((long) (pageNum - 1) * pageSize)
|
|
|
+ .limit(pageSize)
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
public IPage<ProEconEquipmentInfoDayTop> getEquipmentInfoDayTopList_bf(String companyId, String windpowerstationId, Integer types, String staType, String date, Integer pageNum, Integer pageSize) {
|
|
|
|
|
|
QueryWrapper<ProEconEquipmentInfoDayTop> qw = new QueryWrapper<>();
|
|
@@ -189,21 +205,22 @@ public class ProEconEquipmentInfoDayTopServiceImpl extends ServiceImpl<ProEconEq
|
|
|
}
|
|
|
|
|
|
private List<ProEconEquipmentInfoDayTop> turbs2equipmentidt2(List<ProEconEquipmentInfoDayTop> peeidtRecords, List<TurbineInfoDay> tidRecords) {
|
|
|
- if (peeidtRecords == null || peeidtRecords.isEmpty() || tidRecords == null || tidRecords.isEmpty()) return Collections.emptyList();
|
|
|
+ if (peeidtRecords == null || peeidtRecords.isEmpty() || tidRecords == null || tidRecords.isEmpty())
|
|
|
+ return Collections.emptyList();
|
|
|
Map<Date, TurbineInfoDay> dayMap = tidRecords.stream().collect(Collectors.toMap(TurbineInfoDay::getRecordDate, Function.identity()));
|
|
|
- peeidtRecords.forEach(peeidt->{
|
|
|
+ peeidtRecords.forEach(peeidt -> {
|
|
|
TurbineInfoDay day = dayMap.get(peeidt.getRecordDate());
|
|
|
- peeidt.setDayfdl(NumberUtil.round(day.getRfdl(),2).doubleValue());
|
|
|
- peeidt.setDayllfdl(NumberUtil.round(day.getLlfdl(),2).doubleValue());
|
|
|
- peeidt.setDayfs(NumberUtil.round(day.getPjfs(),2).doubleValue());
|
|
|
- peeidt.setDaygzssdl(NumberUtil.round(day.getGzss(),2).doubleValue());
|
|
|
- peeidt.setDayxdssdl(NumberUtil.round(day.getXdss(),2).doubleValue());
|
|
|
- peeidt.setDaywhssdl(NumberUtil.round(day.getFjhjxss(),2).doubleValue());
|
|
|
- peeidt.setDayxnssdl(NumberUtil.round(day.getXnss(),2).doubleValue());
|
|
|
- peeidt.setDaylyxs(NumberUtil.round(day.getLyxs(),2).doubleValue());
|
|
|
- peeidt.setDaysbklyl(NumberUtil.round(day.getKlyl(),2).doubleValue());
|
|
|
- peeidt.setDayyxfss(NumberUtil.round(day.getYxfss(),2).doubleValue());
|
|
|
- peeidt.setDayjfpl(NumberUtil.round(day.getJfpl(),2).doubleValue());
|
|
|
+ peeidt.setDayfdl(NumberUtil.round(day.getRfdl() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayllfdl(NumberUtil.round(day.getLlfdl() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayfs(NumberUtil.round(day.getPjfs(), 2).doubleValue());
|
|
|
+ peeidt.setDaygzssdl(NumberUtil.round(day.getGzss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayxdssdl(NumberUtil.round(day.getXdss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDaywhssdl(NumberUtil.round(day.getFjhjxss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDayxnssdl(NumberUtil.round(day.getXnss() / 1000, 2).doubleValue());
|
|
|
+ peeidt.setDaylyxs(NumberUtil.round(day.getLyxs(), 2).doubleValue());
|
|
|
+ peeidt.setDaysbklyl(NumberUtil.round(day.getKlyl(), 2).doubleValue());
|
|
|
+ peeidt.setDayyxfss(NumberUtil.round(day.getYxfss(), 2).doubleValue());
|
|
|
+ peeidt.setDayjfpl(NumberUtil.round(day.getJfpl(), 2).doubleValue());
|
|
|
});
|
|
|
return peeidtRecords;
|
|
|
}
|