dev #2
@ -784,10 +784,10 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
||||
// emsDevicesSetting.setUpdatedAt(DateUtils.getNowDate());
|
||||
// emsDevicesSettingMapper.updateEmsDevicesSetting(emsDevicesSetting);
|
||||
|
||||
if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||
//更新每日充放电数据
|
||||
dealFXXDailyChargeDate(siteId, deviceId, pcsData);
|
||||
}
|
||||
// if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||
// //更新每日充放电数据
|
||||
// dealFXXDailyChargeDate(siteId, deviceId, pcsData);
|
||||
// }
|
||||
}
|
||||
|
||||
private void pcsBranchDataProcess(String siteId, String deviceId, String dataJson) {
|
||||
@ -999,12 +999,15 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
||||
|
||||
redisCache.setCacheObject(RedisKeyConstants.AMMETER + siteId + "_" + deviceId, dataMete);
|
||||
|
||||
// 处理电表每日充放电数据
|
||||
if (!deviceId.contains(SiteDevice.METEGF.name()) && !deviceId.contains(SiteDevice.METE0.name())) {
|
||||
// 处理储能电表-METE每日充放电数据
|
||||
EmsAmmeterData yestData = dealDailyChargeDate(siteId, deviceId, dataMete);
|
||||
|
||||
// 处理储能电表-METE每日数据(尖、峰、平、谷差值)
|
||||
if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||
dealAmmeterDailyDate(siteId, dataMete, dataUpdateTime, lastAmmeterData);
|
||||
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
|
||||
dealDDSDailyChargeDate(siteId, dataMete, deviceId);
|
||||
dealDailyEnergyData(siteId, dataMete, yestData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1084,6 +1087,51 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
||||
return emsDailyChargeData;
|
||||
}
|
||||
|
||||
private void dealDailyEnergyData(String siteId, EmsAmmeterData currentData, EmsAmmeterData yestData) {
|
||||
// 初始化数据-尖峰平谷
|
||||
EmsDailyEnergyData energyData = initEnergyData(siteId);
|
||||
// 计算尖峰平谷差值,更新表
|
||||
calcEnergyDiffAndRevenue(siteId, energyData, currentData, yestData);
|
||||
energyData.setCalcTime(DateUtils.getNowDate());
|
||||
// 插入或更新电表每日差值数据表
|
||||
emsDailyEnergyDataMapper.insertOrUpdateData(energyData);
|
||||
}
|
||||
private EmsAmmeterData dealDailyChargeDate(String siteId, String deviceId, EmsAmmeterData currentData) {
|
||||
// 初始化今日充放电
|
||||
BigDecimal dailyDisChargeDate = new BigDecimal(0);
|
||||
BigDecimal dailyChargeDate = new BigDecimal(0);
|
||||
|
||||
BigDecimal nowTotalDisChargeDate = currentData.getCurrentReverseActiveTotal();
|
||||
BigDecimal nowTotalChargeDate = currentData.getCurrentForwardActiveTotal();
|
||||
// 初始化当日数据-总的
|
||||
EmsDailyChargeData emsDailyChargeData = initDailyChargeData(siteId, deviceId, nowTotalChargeDate, nowTotalDisChargeDate);
|
||||
// 获取redis存放昨日最晚数据
|
||||
String yestDate = DateUtils.getYesterdayDate();
|
||||
String yestDateRedisKey = RedisKeyConstants.AMMETER + siteId + "_" + deviceId + "_" + yestDate;
|
||||
EmsAmmeterData yestData = redisCache.getCacheObject(yestDateRedisKey);
|
||||
if (yestData == null) {
|
||||
// redis没有这查电表总数据表取截止到昨日最新第一条数据
|
||||
yestData = emsAmmeterDataMapper.getYestLatestDate(siteId, deviceId, yestDate);
|
||||
// 数据存redis-有效期1天
|
||||
redisCache.setCacheObject(yestDateRedisKey, yestData, Constants.DATE_VALID_TIME, TimeUnit.DAYS);
|
||||
}
|
||||
if (yestData != null) {
|
||||
// 今日总数据-昨日总数据=今日充放电
|
||||
BigDecimal yestTotalDisChargeDate = yestData.getCurrentReverseActiveTotal();
|
||||
BigDecimal yestTotalChargeDate = yestData.getCurrentForwardActiveTotal();
|
||||
|
||||
dailyChargeDate = nowTotalChargeDate.subtract(yestTotalChargeDate);
|
||||
dailyDisChargeDate = nowTotalDisChargeDate.subtract(yestTotalDisChargeDate);
|
||||
emsDailyChargeData.setChargeData(dailyChargeDate);
|
||||
emsDailyChargeData.setDischargeData(dailyDisChargeDate);
|
||||
}
|
||||
|
||||
// 插入或更新每日充放电数据表
|
||||
emsDailyChargeDataMapper.insertOrUpdateData(emsDailyChargeData);
|
||||
|
||||
return yestData;
|
||||
}
|
||||
|
||||
private void calcEnergyDiffAndRevenue(String siteId, EmsDailyEnergyData energyData, EmsAmmeterData currentData, EmsAmmeterData yestData) {
|
||||
|
||||
// 获取当月电价
|
||||
|
||||
@ -4,27 +4,51 @@ import com.xzzn.common.enums.CostType;
|
||||
import com.xzzn.common.enums.SiteEnum;
|
||||
import com.xzzn.common.utils.DateUtils;
|
||||
import com.xzzn.ems.domain.EmsAmmeterData;
|
||||
import com.xzzn.ems.domain.EmsEnergyPriceConfig;
|
||||
import com.xzzn.ems.domain.vo.*;
|
||||
import com.xzzn.ems.mapper.*;
|
||||
import com.xzzn.ems.domain.vo.AmmeterRevenueStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.AmmeterStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
|
||||
import com.xzzn.ems.domain.vo.ClusterStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.DateSearchRequest;
|
||||
import com.xzzn.ems.domain.vo.ElectricDataInfoVo;
|
||||
import com.xzzn.ems.domain.vo.EnergyPriceConfigVo;
|
||||
import com.xzzn.ems.domain.vo.PCSCurveResponse;
|
||||
import com.xzzn.ems.domain.vo.PcsStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.PowerStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.SiteMonitorDataVo;
|
||||
import com.xzzn.ems.domain.vo.StackCurveResponse;
|
||||
import com.xzzn.ems.domain.vo.StackStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.StatisAmmeterDateRequest;
|
||||
import com.xzzn.ems.domain.vo.StatisClusterDateRequest;
|
||||
import com.xzzn.ems.mapper.EmsAmmeterDataMapper;
|
||||
import com.xzzn.ems.mapper.EmsBatteryClusterMapper;
|
||||
import com.xzzn.ems.mapper.EmsBatteryDataDayMapper;
|
||||
import com.xzzn.ems.mapper.EmsBatteryStackMapper;
|
||||
import com.xzzn.ems.mapper.EmsDailyChargeDataMapper;
|
||||
import com.xzzn.ems.mapper.EmsDailyEnergyDataMapper;
|
||||
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
|
||||
import com.xzzn.ems.mapper.EmsEnergyPriceConfigMapper;
|
||||
import com.xzzn.ems.mapper.EmsPcsDataMapper;
|
||||
import com.xzzn.ems.service.IEmsStatsReportService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.datasource.DataSourceUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
/**
|
||||
* 统计报表数据Service业务层处理
|
||||
*
|
||||
@ -88,13 +112,13 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
||||
// 开始日期和结束日期同一天,展示 0-24 小时数据
|
||||
if (DateUtils.isSameDay(startDate, endDate)){
|
||||
electricDataInfoVo.setUnit("时");
|
||||
if ("021_DDS_01".equals(siteId)) {
|
||||
// if ("021_DDS_01".equals(siteId)) {
|
||||
deviceId = "METE";
|
||||
dataList = emsAmmeterDataMapper.getChargeDataByHour(siteId,deviceId,startDate);
|
||||
} else if ("021_FXX_01".equals(siteId)) {
|
||||
endDate = DateUtils.addDays(endDate, 1);
|
||||
dataList = emsPcsDataMapper.getPcsDataByHour(requestVo.getSiteId(), startDate, endDate);
|
||||
}
|
||||
// } else if ("021_FXX_01".equals(siteId)) {
|
||||
// endDate = DateUtils.addDays(endDate, 1);
|
||||
// dataList = emsPcsDataMapper.getPcsDataByHour(requestVo.getSiteId(), startDate, endDate);
|
||||
// }
|
||||
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
|
||||
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
|
||||
electricDataInfoVo.setUnit("日");
|
||||
|
||||
Reference in New Issue
Block a user