diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java index ba31ec0..fa9b256 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java @@ -60,4 +60,19 @@ public class EmsStatisticalReportController extends BaseController } } + /** + * 概率统计-电池堆曲线 + */ + @GetMapping("/getStackData") + public AjaxResult getStackData(DateSearchRequest requestVo) + { + if (!StringUtils.isEmpty(requestVo.getSiteId()) && + !StringUtils.isEmpty(requestVo.getDeviceId()) && + requestVo.getDataType() != 0) { + return success(ieEmsStatsReportService.getStackDataResult(requestVo)); + } else { + return error("缺少必传项"); + } + } + } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsStatisListVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsStatisListVo.java new file mode 100644 index 0000000..e22fa71 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsStatisListVo.java @@ -0,0 +1,86 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 数据统计-pcs曲线-通用对象 + */ +public class PcsStatisListVo { + /** + * 数据日期 + */ + private String statisDate; + + /** + * 有功 + */ + private BigDecimal activePower; + + /** + * 无功 + */ + private BigDecimal reactivePower; + + /** + * u电流 + */ + private BigDecimal uCurrent; + + /** + * v电流 + */ + private BigDecimal vCurrent; + + /** + * w电流 + */ + private BigDecimal wCurrent; + + public String getStatisDate() { + return statisDate; + } + + public void setStatisDate(String statisDate) { + this.statisDate = statisDate; + } + + public BigDecimal getActivePower() { + return activePower; + } + + public void setActivePower(BigDecimal activePower) { + this.activePower = activePower; + } + + public BigDecimal getReactivePower() { + return reactivePower; + } + + public void setReactivePower(BigDecimal reactivePower) { + this.reactivePower = reactivePower; + } + + public BigDecimal getuCurrent() { + return uCurrent; + } + + public void setuCurrent(BigDecimal uCurrent) { + this.uCurrent = uCurrent; + } + + public BigDecimal getvCurrent() { + return vCurrent; + } + + public void setvCurrent(BigDecimal vCurrent) { + this.vCurrent = vCurrent; + } + + public BigDecimal getwCurrent() { + return wCurrent; + } + + public void setwCurrent(BigDecimal wCurrent) { + this.wCurrent = wCurrent; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/StackStatisListVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/StackStatisListVo.java new file mode 100644 index 0000000..3038d51 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/StackStatisListVo.java @@ -0,0 +1,73 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 数据统计-堆曲线-通用对象 + */ +public class StackStatisListVo { + /** + * 数据日期 + */ + private String statisDate; + + /** + * 有功 + */ + private BigDecimal temp; + + /** + * 无功 + */ + private BigDecimal voltage; + + /** + * u电流 + */ + private BigDecimal current; + + /** + * v电流 + */ + private BigDecimal soc; + + public String getStatisDate() { + return statisDate; + } + + public void setStatisDate(String statisDate) { + this.statisDate = statisDate; + } + + public BigDecimal getTemp() { + return temp; + } + + public void setTemp(BigDecimal temp) { + this.temp = temp; + } + + public BigDecimal getVoltage() { + return voltage; + } + + public void setVoltage(BigDecimal voltage) { + this.voltage = voltage; + } + + public BigDecimal getCurrent() { + return current; + } + + public void setCurrent(BigDecimal current) { + this.current = current; + } + + public BigDecimal getSoc() { + return soc; + } + + public void setSoc(BigDecimal soc) { + this.soc = soc; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java index be1fe01..1d13252 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java @@ -3,7 +3,9 @@ package com.xzzn.ems.mapper; import java.util.Date; import java.util.List; import com.xzzn.ems.domain.EmsBatteryStack; +import com.xzzn.ems.domain.vo.DateSearchRequest; import com.xzzn.ems.domain.vo.StackAveTempVo; +import com.xzzn.ems.domain.vo.StackStatisListVo; import org.apache.ibatis.annotations.Param; /** @@ -70,4 +72,15 @@ public interface EmsBatteryStackMapper * @return */ public List getStackAveTempList(@Param("siteId")String siteId, @Param("startDate") Date startDate, @Param("endDate")Date endDate); + + /** + * 堆曲线数据-按小时区分 + * @param requestVo + * @return + */ + public List getStackDataByHour(DateSearchRequest requestVo); + + public List getStackDataByDay(DateSearchRequest requestVo); + + public List getStackDataByMonth(DateSearchRequest requestVo); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java index 11ede39..e71a1ee 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java @@ -3,6 +3,7 @@ package com.xzzn.ems.service; import com.xzzn.ems.domain.vo.DateSearchRequest; import com.xzzn.ems.domain.vo.ElectricDataInfoVo; import com.xzzn.ems.domain.vo.PcsStatisListVo; +import com.xzzn.ems.domain.vo.StackStatisListVo; import java.util.List; @@ -18,4 +19,6 @@ public interface IEmsStatsReportService public ElectricDataInfoVo getElectricDataResult(DateSearchRequest requestVo); public List getPCSDataResult(DateSearchRequest requestVo); + + public List getStackDataResult(DateSearchRequest requestVo); } 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 6b0aba3..8078de9 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 @@ -1,10 +1,9 @@ package com.xzzn.ems.service.impl; import com.xzzn.common.utils.DateUtils; -import com.xzzn.ems.domain.vo.DateSearchRequest; -import com.xzzn.ems.domain.vo.ElectricDataInfoVo; -import com.xzzn.ems.domain.vo.PcsStatisListVo; -import com.xzzn.ems.domain.vo.SiteMonitorDataVo; +import com.xzzn.ems.domain.vo.*; +import com.xzzn.ems.mapper.EmsBatteryDataMapper; +import com.xzzn.ems.mapper.EmsBatteryStackMapper; import com.xzzn.ems.mapper.EmsPcsDataMapper; import com.xzzn.ems.service.IEmsStatsReportService; import org.slf4j.Logger; @@ -34,6 +33,10 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService @Autowired private EmsPcsDataMapper emsPcsDataMapper; + @Autowired + private EmsBatteryDataMapper emsBatteryDataMapper; + @Autowired + private EmsBatteryStackMapper emsBatteryStackMapper; @Override public ElectricDataInfoVo getElectricDataResult(DateSearchRequest requestVo) { @@ -120,6 +123,34 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService return dataList; } + @Override + public List getStackDataResult(DateSearchRequest requestVo) { + List dataList = new ArrayList(); + // 默认时间-7天 + dealRequestTime(requestVo); + Date startDate = requestVo.getStartDate(); + Date endDate = requestVo.getEndDate(); + + // 开始日期和结束日期同一天,展示 0-24 小时数据 + if (DateUtils.isSameDay(startDate, endDate)){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + dataList = emsBatteryStackMapper.getStackDataByHour(requestVo); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1 + && DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + // 开始日期-结束日期大于 1 天,小于30 天,按天展示数据 + dataList = emsBatteryStackMapper.getStackDataByDay(requestVo); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + // 开始日期-结束日期大于 1 个月,按月展示数据 + dataList = emsBatteryStackMapper.getStackDataByMonth(requestVo); + } + return dataList; + } + // 统计入参时间处理 public void dealRequestTime(DateSearchRequest requestVo){ diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml index a954f18..a1516ca 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml @@ -288,4 +288,93 @@ GROUP BY site_id,create_time ) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id + + + WHERE p.site_id = #{siteId} + and p.device_id = #{deviceId} + + AND p.update_time >= DATE(#{startDate}) + + + AND p.update_time < DATE(#{endDate}) + + + + + + + t.operating_temp AS temp + + + t.stack_voltage as voltage + + + t.stack_current as current + + + t.stack_soc as soc + + + + + + + + ,temp + + + ,voltage + + + ,current + + + ,soc + + + + + + + + \ No newline at end of file