diff --git a/ems-common/src/main/java/com/xzzn/common/constant/Constants.java b/ems-common/src/main/java/com/xzzn/common/constant/Constants.java index c594319..9757912 100644 --- a/ems-common/src/main/java/com/xzzn/common/constant/Constants.java +++ b/ems-common/src/main/java/com/xzzn/common/constant/Constants.java @@ -170,4 +170,9 @@ public class Constants */ public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.xzzn.common.utils.file", "com.xzzn.common.config", "com.xzzn.generator" }; + + /** + * 昨日充放电最晚数据有效期 + */ + public static final Integer DATE_VALID_TIME = 1; } diff --git a/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java b/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java index a49d234..9111374 100644 --- a/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java +++ b/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java @@ -8,6 +8,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang3.time.DateFormatUtils; @@ -29,6 +30,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + public static String YYYYMMDD = "yyyyMMdd"; + private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", @@ -206,4 +209,39 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zonedDateTime.toInstant()); } + + /** + * 获取昨天的日期,格式为yyyy-MM-dd + * @return 昨天的日期字符串 + */ + public static String getYesterdayDate() { + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 减去一天得到昨天 + LocalDate yesterday = today.minusDays(1); + // 定义日期格式化器 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(YYYYMMDD); + // 格式化并返回 + return yesterday.format(formatter); + } + + /** + * 校验传入日期是否今天 + * @param dataDate + * @return + */ + public static boolean checkIsToday(String dataDate) { + boolean flag = false; + Calendar calendar = Calendar.getInstance(); + int todayMonth = calendar.get(Calendar.MONTH) + 1; + int todayDay = calendar.get(Calendar.DAY_OF_MONTH); + if (StringUtils.isNotEmpty(dataDate)){ + String[] pcsDateArray = dataDate.split("-"); + if (todayMonth == Integer.parseInt(pcsDateArray[1]) && + todayDay == Integer.parseInt(pcsDateArray[2])) { + flag = true; + } + } + return flag; + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java index 5ffe8de..34996a9 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.xzzn.ems.domain.EmsAmmeterData; import com.xzzn.ems.domain.vo.AmmeterStatisListVo; import com.xzzn.ems.domain.vo.StatisAmmeterDateRequest; +import org.apache.ibatis.annotations.Param; /** * 总数据Mapper接口 @@ -67,4 +68,7 @@ public interface EmsAmmeterDataMapper * @return */ public List getLoadDataByHour(StatisAmmeterDateRequest requestVo); + + // 获取昨天最晚数据 + public EmsAmmeterData getYestLatestDate(@Param("siteId")String siteId, @Param("deviceId")String deviceId, @Param("yestData")String yestData); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java index 04d81d3..9dadac0 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson2.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.xzzn.common.constant.Constants; import com.xzzn.common.constant.RedisKeyConstants; import com.xzzn.common.core.redis.RedisCache; import com.xzzn.common.enums.*; @@ -27,6 +28,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -70,6 +72,8 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl private EmsBatteryGroupMapper emsBatteryGroupMapper; @Autowired private EmsBatteryDataMinutesMapper emsBatteryDataMinutesMapper; + @Autowired + private EmsDailyChargeDataMapper emsDailyChargeDataMapper; public DDSDataProcessServiceImpl(ObjectMapper objectMapper) { super(objectMapper); @@ -894,7 +898,57 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl emsAmmeterDataMapper.insertEmsAmmeterData(dataMete); redisCache.setCacheObject(RedisKeyConstants.AMMETER + SITE_ID + "_" +deviceId, dataMete); + + // 处理每日充放电数据 + dealDDSDailyChargeDate(obj,deviceId); } + + private void dealDDSDailyChargeDate(Map obj, String deviceId) { + log.info("start dealDDSDailyChargeDate"); + // 初始化今日充放电 + BigDecimal dailyDisChargeDate = new BigDecimal(0); + BigDecimal dailyChargeDate = new BigDecimal(0); + + BigDecimal nowTotalDisChargeDate = StringUtils.getBigDecimal(obj.get("DQZXZYGDN")); + BigDecimal nowTotalChargeDate = StringUtils.getBigDecimal(obj.get("DQFXZYGDN")); + // 初始化当日数据 + EmsDailyChargeData emsDailyChargeData = new EmsDailyChargeData(); + emsDailyChargeData.setSiteId(SITE_ID); + emsDailyChargeData.setDeviceId(deviceId); + emsDailyChargeData.setDateTime(DateUtils.getNowDate()); + emsDailyChargeData.setTotalChargeData(nowTotalChargeDate); + emsDailyChargeData.setTotalDischargeData(nowTotalDisChargeDate); + emsDailyChargeData.setCreateBy("system"); + emsDailyChargeData.setCreateTime(DateUtils.getNowDate()); + emsDailyChargeData.setUpdateBy("system"); + emsDailyChargeData.setUpdateTime(DateUtils.getNowDate()); + // 获取redis存放昨日最晚数据 + String yestData = DateUtils.getYesterdayDate(); + String yestDateRedisKey = RedisKeyConstants.AMMETER + SITE_ID + "_" + deviceId + "_" + yestData; + EmsAmmeterData yestDate = redisCache.getCacheObject(yestDateRedisKey); + if (yestDate == null) { + // redis没有这查电表总数据表 + yestDate = emsAmmeterDataMapper.getYestLatestDate(SITE_ID,deviceId,yestData); + } + if (yestDate != null) { + // 今日总数据-昨日总数据=今日充放电 + BigDecimal yestTotalDisChargeDate = yestDate.getCurrentForwardActiveTotal(); + BigDecimal yestTotalChargeDate = yestDate.getCurrentReverseActiveTotal(); + + dailyChargeDate = nowTotalChargeDate.subtract(yestTotalChargeDate); + dailyDisChargeDate = nowTotalDisChargeDate.subtract(yestTotalDisChargeDate); + emsDailyChargeData.setChargeData(dailyChargeDate); + emsDailyChargeData.setDischargeData(dailyDisChargeDate); + + // 最新数据存redis + redisCache.setCacheObject(yestDateRedisKey, yestDate , Constants.DATE_VALID_TIME, TimeUnit.DAYS); + } + + // 插入或更新每日充放电数据表 + emsDailyChargeDataMapper.insertOrUpdateData(emsDailyChargeData); + log.info("end dealDDSDailyChargeDate"); + } + // 数据分组处理 private static Map> processData(Map rawData) { Map> records = new HashMap<>(); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java index c1a10d7..deefda8 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java @@ -41,6 +41,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService private EmsBatteryDailyLatestMapper emsBatteryDailyLatestMapper; @Autowired private EmsBatteryDataDayMapper emsBatteryDataDayMapper; + @Autowired + private EmsDailyChargeDataMapper emsDailyChargeDataMapper; // 电量指标 @Override @@ -53,7 +55,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService Date endDate = requestVo.getEndDate(); // 总充总放 - Map totalMap = emsPcsDataMapper.getPcsTotalChargeData(requestVo.getSiteId()); + String nowData = DateUtils.getDate(); + Map totalMap = emsDailyChargeDataMapper.getAllSiteChargeData(nowData,requestVo.getSiteId()); BigDecimal totalDischarge = totalMap.get("totalDischargedCap") != null ? totalMap.get("totalDischargedCap") : BigDecimal.ZERO; BigDecimal totalCharge = totalMap.get("totalChargedCap") != null ? totalMap.get("totalChargedCap") : BigDecimal.ZERO; BigDecimal efficiency = new BigDecimal(0); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java index a740418..fac9e34 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson2.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.xzzn.common.constant.Constants; import com.xzzn.common.constant.RedisKeyConstants; import com.xzzn.common.core.redis.RedisCache; import com.xzzn.common.enums.*; @@ -22,10 +23,12 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.concurrent.TimeUnit; @Service public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor implements IFXXDataProcessService { @@ -59,6 +62,8 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl private EmsBatteryDailyLatestServiceImpl emsBatteryDailyLatestServiceImpl; @Autowired private EmsBatteryDataMinutesMapper emsBatteryDataMinutesMapper; + @Autowired + private EmsDailyChargeDataMapper emsDailyChargeDataMapper; // 构造方法(调用父类构造) public FXXDataProcessServiceImpl(ObjectMapper objectMapper) { @@ -81,7 +86,7 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl return; } - if (deviceId.contains("BMSD")) { + /*if (deviceId.contains("BMSD")) { batteryStackDataProcess(deviceId, jsonData); } else if (deviceId.contains("BMSC")) { @@ -92,11 +97,11 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl } else if (deviceId.contains("PCS")) { pcsDataProcess(deviceId, jsonData); pcsBranchDataProcess(deviceId, jsonData); - } else if (deviceId.contains("LOAD")) { + } else*/ if (deviceId.contains("LOAD")) { loadDataProcess(deviceId, jsonData); - } else if (deviceId.contains("METE")) { + } /*else if (deviceId.contains("METE")) { meteDataProcess(deviceId, jsonData); - } + }*/ } } @@ -560,6 +565,53 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl emsAmmeterDataMapper.insertEmsAmmeterData(dataLoad); redisCache.setCacheObject(RedisKeyConstants.AMMETER + SITE_ID + "_" +deviceId, dataLoad); + + // 处理每日充放电数据 + dealFXXDailyChargeDate(obj,deviceId); + } + + private void dealFXXDailyChargeDate(Map obj, String deviceId) { + log.info("start dealFXXDailyChargeDate"); + // 初始化今日充放电 + BigDecimal dailyChargeDate = new BigDecimal(0); + BigDecimal dailyDisChargeDate = new BigDecimal(0); + + BigDecimal nowTotalDisChargeDate = StringUtils.getBigDecimal(obj.get("DQZXYGZDN")); + BigDecimal nowTotalChargeDate = StringUtils.getBigDecimal(obj.get("DQFXYGZDN")); + // 初始化当日数据 + EmsDailyChargeData emsDailyChargeData = new EmsDailyChargeData(); + emsDailyChargeData.setSiteId(SITE_ID); + emsDailyChargeData.setDeviceId(deviceId); + emsDailyChargeData.setDateTime(DateUtils.getNowDate()); + emsDailyChargeData.setTotalChargeData(nowTotalChargeDate); + emsDailyChargeData.setTotalDischargeData(nowTotalDisChargeDate); + emsDailyChargeData.setCreateBy("system"); + emsDailyChargeData.setCreateTime(DateUtils.getNowDate()); + emsDailyChargeData.setUpdateBy("system"); + emsDailyChargeData.setUpdateTime(DateUtils.getNowDate()); + // 获取redis存放昨日最晚数据 + String yestData = DateUtils.getYesterdayDate(); + String yestDateRedisKey = RedisKeyConstants.AMMETER + SITE_ID + "_" + deviceId + "_" + yestData; + EmsAmmeterData yestDate = redisCache.getCacheObject(yestDateRedisKey); + if (yestDate == null) { + // redis没有这查电表总数据表 + yestDate = emsAmmeterDataMapper.getYestLatestDate(SITE_ID,deviceId,yestData); + } + if (yestDate != null) { + // 今日总数据-昨日总数据=今日充放电 + BigDecimal yestTotalDisChargeDate = yestDate.getCurrentForwardActiveTotal(); + BigDecimal yestTotalChargeDate = yestDate.getCurrentReverseActiveTotal(); + + dailyChargeDate = nowTotalChargeDate.subtract(yestTotalChargeDate); + dailyDisChargeDate = nowTotalDisChargeDate.subtract(yestTotalDisChargeDate); + emsDailyChargeData.setChargeData(dailyChargeDate); + emsDailyChargeData.setDischargeData(dailyDisChargeDate); + // 存下redis-有效期1天 + redisCache.setCacheObject(yestDateRedisKey, yestDate , Constants.DATE_VALID_TIME, TimeUnit.DAYS); + } + // 插入或更新每日充放电数据表 + emsDailyChargeDataMapper.insertOrUpdateData(emsDailyChargeData); + log.info("end dealFXXDailyChargeDate"); } private void meteDataProcess(String deviceId, String dataJson) { diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java index 7c36cb5..984aaa0 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java @@ -5,6 +5,7 @@ import com.xzzn.common.utils.StringUtils; import com.xzzn.ems.domain.EmsSiteSetting; import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.mapper.EmsAlarmRecordsMapper; +import com.xzzn.ems.mapper.EmsDailyChargeDataMapper; import com.xzzn.ems.mapper.EmsPcsDataMapper; import com.xzzn.ems.mapper.EmsSiteSettingMapper; import com.xzzn.ems.service.IEmsSiteService; @@ -34,16 +35,19 @@ public class HomePageServiceImpl implements IHomePageService private EmsSiteSettingMapper emsSiteMapper; @Autowired private EmsAlarmRecordsMapper alarmRecordsMapper; + @Autowired + private EmsDailyChargeDataMapper emsDailyChargeDataMapper; @Override public SiteTotalInfoVo getSiteTotalInfo() { SiteTotalInfoVo siteTotalInfoVo = new SiteTotalInfoVo(); siteTotalInfoVo = emsSiteService.getSiteTotalInfo(); // 获取总充+总放 - Map pcsMap = emsPcsDataMapper.getPcsTotalChargeData(null); - if(pcsMap != null){ - siteTotalInfoVo.setTotalChargedCap(pcsMap.get("totalChargedCap")); - siteTotalInfoVo.setTotalDischargedCap(pcsMap.get("totalDischargedCap")); + String nowData = DateUtils.getDate(); + Map data = emsDailyChargeDataMapper.getAllSiteChargeData(nowData,null); + if(data != null){ + siteTotalInfoVo.setTotalChargedCap(data.get("totalChargedCap")); + siteTotalInfoVo.setTotalDischargedCap(data.get("totalDischargedCap")); } return siteTotalInfoVo; } @@ -69,31 +73,32 @@ public class HomePageServiceImpl implements IHomePageService singleSiteBaseInfo.setRunningTime(emsSite.getRunningTime() == null ? null : DateUtils.parseDateToStr("yyyy-MM-dd",emsSite.getRunningTime()));//投运时间 // 获取单站点的总充+总放 - Map pcsMap = emsPcsDataMapper.getPcsTotalChargeData(siteId); - if (pcsMap != null) { - singleSiteBaseInfo.setTotalChargedCap(pcsMap.get("totalChargedCap")); - singleSiteBaseInfo.setTotalDisChargedCap(pcsMap.get("totalDischargedCap")); + String nowData = DateUtils.getDate(); + Map data = emsDailyChargeDataMapper.getAllSiteChargeData(nowData,siteId); + if (data != null) { + singleSiteBaseInfo.setTotalChargedCap(data.get("totalChargedCap")); + singleSiteBaseInfo.setTotalDisChargedCap(data.get("totalDischargedCap")); } // 七天放电数据统计 默认从今天往前7天 LocalDate sevenDaysAgo = LocalDate.now().minusDays(LIMIT_TIME); Date startDate = DateUtils.toDate(sevenDaysAgo); Date endDate = new Date(); - List siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId,startDate,endDate); + List siteMonitorDataVoList = emsDailyChargeDataMapper.getSingleSiteChargeData(siteId,startDate,endDate); singleSiteBaseInfo.setSevenDayDisChargeStats(siteMonitorDataVoList); // 充放电基本数据处理 - dealSitePCSDate(singleSiteBaseInfo,siteMonitorDataVoList); + dealSiteChargeDate(singleSiteBaseInfo,siteMonitorDataVoList); } } return singleSiteBaseInfo; } - private void dealSitePCSDate(SingleSiteBaseInfo singleSiteBaseInfo, List siteMonitorDataVoList) { + private void dealSiteChargeDate(SingleSiteBaseInfo singleSiteBaseInfo, List siteMonitorDataVoList) { if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) { for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { // 获取当天的充电量+放电量 - String pcsDate = sitePcsData.getAmmeterDate(); - boolean isToday= checkIsToday(pcsDate); + String dayDate = sitePcsData.getAmmeterDate(); + boolean isToday= DateUtils.checkIsToday(dayDate); if(isToday){ singleSiteBaseInfo.setDayChargedCap(sitePcsData.getChargedCap()); singleSiteBaseInfo.setDayDisChargedCap(sitePcsData.getDisChargedCap()); @@ -102,21 +107,6 @@ public class HomePageServiceImpl implements IHomePageService } } - private boolean checkIsToday(String pcsDate) { - boolean flag = false; - Calendar calendar = Calendar.getInstance(); - int todayMonth = calendar.get(Calendar.MONTH) + 1; - int todayDay = calendar.get(Calendar.DAY_OF_MONTH); - if (StringUtils.isNotEmpty(pcsDate)){ - String[] pcsDateArray = pcsDate.split("-"); - if (todayMonth == Integer.parseInt(pcsDateArray[0]) && - todayDay == Integer.parseInt(pcsDateArray[1])) { - flag = true; - } - } - return flag; - } - /** * 首页看板-数据概览 */ @@ -179,7 +169,7 @@ public class HomePageServiceImpl implements IHomePageService Date startDate = requestVo.getStartDate(); Date endDate = requestVo.getEndDate(); // 七天放电数据统计 - List siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId,startDate,endDate); + List siteMonitorDataVoList = emsDailyChargeDataMapper.getSingleSiteChargeData(siteId,startDate,endDate); return siteMonitorDataVoList; } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index e4b982e..e518c70 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -61,6 +61,8 @@ public class SingleSiteServiceImpl implements ISingleSiteService { private EmsStrategyRunningMapper emsStrategyRunningMapper; @Autowired private EmsStrategyTempMapper emsStrategyTempMapper; + @Autowired + private EmsDailyChargeDataMapper emsDailyChargeDataMapper; @Override public SiteMonitorHomeVo getSiteMonitorDataVo(String siteId) { @@ -68,11 +70,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService { if (!StringUtils.isEmpty(siteId)) { // 获取单站点的总充+总放+电网实时功率 - Map pcsMap = emsPcsDataMapper.getPcsTotalChargeData(siteId); - if (pcsMap != null) { - siteMonitorHomeVo.setTotalChargedCap(pcsMap.get("totalChargedCap")); - siteMonitorHomeVo.setTotalDischargedCap(pcsMap.get("totalDischargedCap")); - siteMonitorHomeVo.setGridNrtPower(pcsMap.get("gridNrtPower")); + String nowData = DateUtils.getDate(); + Map dataMap = emsDailyChargeDataMapper.getAllSiteChargeData(nowData,siteId); + if (dataMap != null) { + siteMonitorHomeVo.setTotalChargedCap(dataMap.get("totalChargedCap")); + siteMonitorHomeVo.setTotalDischargedCap(dataMap.get("totalDischargedCap")); + siteMonitorHomeVo.setGridNrtPower(dataMap.get("gridNrtPower")); } // 实时告警数据 名称+状态+告警内容 List siteMonitorHomeAlarmVo = emsAlarmRecordsMapper.getAlarmRecordsBySiteId(siteId); @@ -91,12 +94,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService { LocalDate sevenDaysAgo = LocalDate.now().minusDays(6); Date startDate = DateUtils.toDate(sevenDaysAgo); Date endDate = new Date(); - List siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId,startDate,endDate); + List siteMonitorDataVoList = emsDailyChargeDataMapper.getSingleSiteChargeData(siteId,startDate,endDate); if (!CollectionUtils.isEmpty(siteMonitorDataVoList)) { for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { // 获取当天的充电量+放电量 String pcsDate = sitePcsData.getAmmeterDate(); - boolean isToday= checkIsToday(pcsDate); + boolean isToday= DateUtils.checkIsToday(pcsDate); if(isToday){ siteMonitorHomeVo.setDayChargedCap(sitePcsData.getChargedCap()); siteMonitorHomeVo.setDayDisChargedCap(sitePcsData.getDisChargedCap()); @@ -112,21 +115,6 @@ public class SingleSiteServiceImpl implements ISingleSiteService { return siteMonitorHomeVo; } - private boolean checkIsToday(String pcsDate) { - boolean flag = false; - Calendar calendar = Calendar.getInstance(); - int todayMonth = calendar.get(Calendar.MONTH) + 1; - int todayDay = calendar.get(Calendar.DAY_OF_MONTH); - if (StringUtils.isNotEmpty(pcsDate)){ - String[] pcsDateArray = pcsDate.split("-"); - if (todayMonth == Integer.parseInt(pcsDateArray[0]) && - todayDay == Integer.parseInt(pcsDateArray[1])) { - flag = true; - } - } - return flag; - } - // 获取单站监控实时运行头部数据 @Override public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId) { diff --git a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml index 914c099..cb665e4 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml @@ -883,4 +883,12 @@ and t.data_update_time = latest.max_update_time order by dataTime + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml index 55be7aa..ef46217 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml @@ -343,7 +343,7 @@ avg(t.avg_cell_temp) as batteryTemp, DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate from ems_battery_cluster t - where t.site_id = '021_FXX_01' + where t.site_id = #{siteId} AND t.create_time >= Date(#{startDate}) AND t.create_time <= #{endDate} GROUP BY t.site_id,DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00')