package com.sandu.ximon.admin.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.sandu.common.service.impl.BaseServiceImpl;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.dao.domain.LightEnergyData;
|
import com.sandu.ximon.dao.mapper.LightEnergyDataMapper;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.ArrayList;
|
import java.util.LinkedHashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author LHN
|
* @date 2022/05/20
|
**/
|
@Service
|
@AllArgsConstructor
|
public class LightEnergyDataService extends BaseServiceImpl<LightEnergyDataMapper, LightEnergyData> {
|
|
private final LightEnergyDataMapper lightEnergyDataMapper;
|
|
public List energy(int flag) {
|
Long userId = null;
|
if (SecurityUtils.getClientId() != null) {
|
userId = SecurityUtils.getUserId();
|
}
|
LambdaQueryWrapper<LightEnergyData> lightEnergyDataLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
LocalDateTime now = LocalDateTime.now();
|
List<Map> listResult = new ArrayList<>();
|
|
for (int i = 1; i < 8; i++) {
|
String format = now.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
//获取该天用户的能耗/节能率任务list
|
List<LightEnergyData> list = lightEnergyDataMapper.getEnergyList(userId, format);
|
BigDecimal[] energyAll = {new BigDecimal(0.00)};
|
BigDecimal[] energySavingAll = {new BigDecimal(0.00)};
|
list.forEach(
|
bean -> {
|
energyAll[0] = energyAll[0].add(bean.getEnergy());
|
energySavingAll[0] = energySavingAll[0].add(bean.getEnergySaving());
|
|
});
|
Map map = new LinkedHashMap();
|
|
//0为能耗,1为节能率
|
if (flag == 0) {
|
map.put("time", format);
|
map.put("value", energyAll[0]);
|
listResult.add(map);
|
} else {
|
map.put("time", format);
|
map.put("value", energySavingAll[0]);
|
listResult.add(map);
|
}
|
|
}
|
return listResult;
|
}
|
}
|