diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java new file mode 100644 index 0000000..7667bc5 --- /dev/null +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java @@ -0,0 +1,53 @@ +package com.xzzn.web.controller.ems; + +import com.xzzn.common.core.controller.BaseController; +import com.xzzn.common.core.domain.AjaxResult; +import com.xzzn.ems.service.IEmsSiteService; +import com.xzzn.ems.service.IHomePageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * + * 站点信息 + * + */ +@RestController +@RequestMapping("/ems/homePage") +public class EmsHomePageController extends BaseController{ + + @Autowired + private IHomePageService homePageService; + @Autowired + private IEmsSiteService emsSiteService; + + /** + * 获取站点总信息 + */ + @GetMapping("/getSiteTotalInfo") + public AjaxResult getSiteTotalInfo() + { + return success(homePageService.getSiteTotalInfo()); + } + + /** + * 首页看板数据 + */ + @GetMapping("/dataList") + public AjaxResult list() + { + return success(homePageService.getSiteTotalInfo()); + } + + /** + * 获取所有站点 + */ + @GetMapping("/getAllSites") + public AjaxResult getAllSites() + { + return success(emsSiteService.getAllSites()); + } + + + +} diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMapController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMapController.java new file mode 100644 index 0000000..4c39286 --- /dev/null +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMapController.java @@ -0,0 +1,34 @@ +package com.xzzn.web.controller.ems; + +import com.xzzn.common.core.controller.BaseController; +import com.xzzn.common.core.domain.AjaxResult; +import com.xzzn.ems.service.IEmsSiteService; +import com.xzzn.ems.service.IHomePageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * +// * 站点地图 + * + */ +@RestController +@RequestMapping("/ems/siteMap") +public class EmsSiteMapController extends BaseController{ + + @Autowired + private IHomePageService homePageService; + + /** + * 获取某个站点基本信息 + */ + @GetMapping("/getSingleSiteBaseInfo") + public AjaxResult getSingleSiteBaseInfo(@RequestParam Long siteId) + { + return success(homePageService.getSingleSiteBaseInfo(siteId)); + } + +} diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java new file mode 100644 index 0000000..22ef4d2 --- /dev/null +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java @@ -0,0 +1,29 @@ +package com.xzzn.web.controller.ems; + +import com.xzzn.common.core.controller.BaseController; +import com.xzzn.common.core.domain.AjaxResult; +import com.xzzn.ems.service.ISingleSiteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * + * 单站监控 + * + */ +@RestController +@RequestMapping("/ems/siteMonitor") +public class EmsSiteMonitorController extends BaseController{ + + @Autowired + private ISingleSiteService iSingleSiteService; + + /** + * 获取单站首页数据 + */ + @GetMapping("/homeView") + public AjaxResult getSingleSiteViewInfo(@RequestParam Long siteId) + { + return success(iSingleSiteService.getSiteMonitorDataVo(siteId)); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java new file mode 100644 index 0000000..f9a673b --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java @@ -0,0 +1,181 @@ +package com.xzzn.ems.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * 告警记录对象 ems_alarm_records + * + * @author xzzn + * @date 2025-06-17 + */ +public class EmsAlarmRecords extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** 设备类型 */ + @Excel(name = "设备类型") + private String deviceType; + + /** 告警等级 */ + @Excel(name = "告警等级") + private String alarmLevel; + + /** 告警内容 */ + @Excel(name = "告警内容") + private String alarmContent; + + /** 告警发生时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "告警发生时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date alarmStartTime; + + /** 告警结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "告警结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date alarmEndTime; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 站点id */ + @Excel(name = "站点id") + private Long siteId; + + /** 设备唯一标识符 */ + @Excel(name = "设备唯一标识符") + private Long deviceId; + + /** 设备名称,用于标识设备 */ + @Excel(name = "设备名称,用于标识设备") + private String deviceName; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setDeviceType(String deviceType) + { + this.deviceType = deviceType; + } + + public String getDeviceType() + { + return deviceType; + } + + public void setAlarmLevel(String alarmLevel) + { + this.alarmLevel = alarmLevel; + } + + public String getAlarmLevel() + { + return alarmLevel; + } + + public void setAlarmContent(String alarmContent) + { + this.alarmContent = alarmContent; + } + + public String getAlarmContent() + { + return alarmContent; + } + + public void setAlarmStartTime(Date alarmStartTime) + { + this.alarmStartTime = alarmStartTime; + } + + public Date getAlarmStartTime() + { + return alarmStartTime; + } + + public void setAlarmEndTime(Date alarmEndTime) + { + this.alarmEndTime = alarmEndTime; + } + + public Date getAlarmEndTime() + { + return alarmEndTime; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setSiteId(Long siteId) + { + this.siteId = siteId; + } + + public Long getSiteId() + { + return siteId; + } + + public void setDeviceId(Long deviceId) + { + this.deviceId = deviceId; + } + + public Long getDeviceId() + { + return deviceId; + } + + public void setDeviceName(String deviceName) + { + this.deviceName = deviceName; + } + + public String getDeviceName() + { + return deviceName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("deviceType", getDeviceType()) + .append("alarmLevel", getAlarmLevel()) + .append("alarmContent", getAlarmContent()) + .append("alarmStartTime", getAlarmStartTime()) + .append("alarmEndTime", getAlarmEndTime()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("siteId", getSiteId()) + .append("deviceId", getDeviceId()) + .append("deviceName", getDeviceName()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsPcsData.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsPcsData.java new file mode 100644 index 0000000..21b92ec --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsPcsData.java @@ -0,0 +1,477 @@ +package com.xzzn.ems.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * PCS数据对象 ems_pcs_data + * + * @author xzzn + * @date 2025-06-17 + */ +public class EmsPcsData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** 数据更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date dataUpdateTime; + + /** 工作状态 */ + @Excel(name = "工作状态") + private String workStatus; + + /** 并网状态 */ + @Excel(name = "并网状态") + private String gridStatus; + + /** 设备状态 */ + @Excel(name = "设备状态") + private String deviceStatus; + + /** 控制模式 */ + @Excel(name = "控制模式") + private String controlMode; + + /** 总交流有功电率 (kW) */ + @Excel(name = "总交流有功电率 (kW)") + private BigDecimal totalActivePower; + + /** 当天交流充电量 (kWh) */ + @Excel(name = "当天交流充电量 (kWh)") + private BigDecimal dailyAcChargeEnergy; + + /** A相电压 (V) */ + @Excel(name = "A相电压 (V)") + private BigDecimal aPhaseVoltage; + + /** A相电流 (A) */ + @Excel(name = "A相电流 (A)") + private BigDecimal aPhaseCurrent; + + /** 总交流无功电率 (kVar) */ + @Excel(name = "总交流无功电率 (kVar)") + private BigDecimal totalReactivePower; + + /** 当天交流放电量 (kWh) */ + @Excel(name = "当天交流放电量 (kWh)") + private BigDecimal dailyAcDischargeEnergy; + + /** B相电压 (V) */ + @Excel(name = "B相电压 (V)") + private BigDecimal bPhaseVoltage; + + /** B相电流 (A) */ + @Excel(name = "B相电流 (A)") + private BigDecimal bPhaseCurrent; + + /** 总交流视在功率 (kVA) */ + @Excel(name = "总交流视在功率 (kVA)") + private BigDecimal totalApparentPower; + + /** PCS模块温度 (℃) */ + @Excel(name = "PCS模块温度 (℃)") + private BigDecimal pcsModuleTemperature; + + /** C相电压 (V) */ + @Excel(name = "C相电压 (V)") + private BigDecimal cPhaseVoltage; + + /** C相电流 (A) */ + @Excel(name = "C相电流 (A)") + private BigDecimal cPhaseCurrent; + + /** 总交流功率因数 */ + @Excel(name = "总交流功率因数") + private BigDecimal totalPowerFactor; + + /** PCS环境温度 (℃) */ + @Excel(name = "PCS环境温度 (℃)") + private BigDecimal pcsEnvironmentTemperature; + + /** 交流频率 (Hz) */ + @Excel(name = "交流频率 (Hz)") + private BigDecimal acFrequency; + + /** 支路状态 */ + @Excel(name = "支路状态") + private String branchStatus; + + /** 放电状态 */ + @Excel(name = "放电状态") + private String dischargeStatus; + + /** 直流功率 (kW) */ + @Excel(name = "直流功率 (kW)") + private BigDecimal dcPower; + + /** 直流电压 (V) */ + @Excel(name = "直流电压 (V)") + private BigDecimal dcVoltage; + + /** 直流电流 (A) */ + @Excel(name = "直流电流 (A)") + private BigDecimal dcCurrent; + + /** 站点id */ + @Excel(name = "站点id") + private Long siteId; + + /** 设备唯一标识符 */ + @Excel(name = "设备唯一标识符") + private Long deviceId; + + /** 月 */ + @Excel(name = "月") + private int dateMonth; + + /** 日 */ + @Excel(name = "日") + private int dateDay; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setDataUpdateTime(Date dataUpdateTime) + { + this.dataUpdateTime = dataUpdateTime; + } + + public Date getDataUpdateTime() + { + return dataUpdateTime; + } + + public void setWorkStatus(String workStatus) + { + this.workStatus = workStatus; + } + + public String getWorkStatus() + { + return workStatus; + } + + public void setGridStatus(String gridStatus) + { + this.gridStatus = gridStatus; + } + + public String getGridStatus() + { + return gridStatus; + } + + public void setDeviceStatus(String deviceStatus) + { + this.deviceStatus = deviceStatus; + } + + public String getDeviceStatus() + { + return deviceStatus; + } + + public void setControlMode(String controlMode) + { + this.controlMode = controlMode; + } + + public String getControlMode() + { + return controlMode; + } + + public void setTotalActivePower(BigDecimal totalActivePower) + { + this.totalActivePower = totalActivePower; + } + + public BigDecimal getTotalActivePower() + { + return totalActivePower; + } + + public void setDailyAcChargeEnergy(BigDecimal dailyAcChargeEnergy) + { + this.dailyAcChargeEnergy = dailyAcChargeEnergy; + } + + public BigDecimal getDailyAcChargeEnergy() + { + return dailyAcChargeEnergy; + } + + public void setaPhaseVoltage(BigDecimal aPhaseVoltage) + { + this.aPhaseVoltage = aPhaseVoltage; + } + + public BigDecimal getaPhaseVoltage() + { + return aPhaseVoltage; + } + + public void setaPhaseCurrent(BigDecimal aPhaseCurrent) + { + this.aPhaseCurrent = aPhaseCurrent; + } + + public BigDecimal getaPhaseCurrent() + { + return aPhaseCurrent; + } + + public void setTotalReactivePower(BigDecimal totalReactivePower) + { + this.totalReactivePower = totalReactivePower; + } + + public BigDecimal getTotalReactivePower() + { + return totalReactivePower; + } + + public void setDailyAcDischargeEnergy(BigDecimal dailyAcDischargeEnergy) + { + this.dailyAcDischargeEnergy = dailyAcDischargeEnergy; + } + + public BigDecimal getDailyAcDischargeEnergy() + { + return dailyAcDischargeEnergy; + } + + public void setbPhaseVoltage(BigDecimal bPhaseVoltage) + { + this.bPhaseVoltage = bPhaseVoltage; + } + + public BigDecimal getbPhaseVoltage() + { + return bPhaseVoltage; + } + + public void setbPhaseCurrent(BigDecimal bPhaseCurrent) + { + this.bPhaseCurrent = bPhaseCurrent; + } + + public BigDecimal getbPhaseCurrent() + { + return bPhaseCurrent; + } + + public void setTotalApparentPower(BigDecimal totalApparentPower) + { + this.totalApparentPower = totalApparentPower; + } + + public BigDecimal getTotalApparentPower() + { + return totalApparentPower; + } + + public void setPcsModuleTemperature(BigDecimal pcsModuleTemperature) + { + this.pcsModuleTemperature = pcsModuleTemperature; + } + + public BigDecimal getPcsModuleTemperature() + { + return pcsModuleTemperature; + } + + public void setcPhaseVoltage(BigDecimal cPhaseVoltage) + { + this.cPhaseVoltage = cPhaseVoltage; + } + + public BigDecimal getcPhaseVoltage() + { + return cPhaseVoltage; + } + + public void setcPhaseCurrent(BigDecimal cPhaseCurrent) + { + this.cPhaseCurrent = cPhaseCurrent; + } + + public BigDecimal getcPhaseCurrent() + { + return cPhaseCurrent; + } + + public void setTotalPowerFactor(BigDecimal totalPowerFactor) + { + this.totalPowerFactor = totalPowerFactor; + } + + public BigDecimal getTotalPowerFactor() + { + return totalPowerFactor; + } + + public void setPcsEnvironmentTemperature(BigDecimal pcsEnvironmentTemperature) + { + this.pcsEnvironmentTemperature = pcsEnvironmentTemperature; + } + + public BigDecimal getPcsEnvironmentTemperature() + { + return pcsEnvironmentTemperature; + } + + public void setAcFrequency(BigDecimal acFrequency) + { + this.acFrequency = acFrequency; + } + + public BigDecimal getAcFrequency() + { + return acFrequency; + } + + public void setBranchStatus(String branchStatus) + { + this.branchStatus = branchStatus; + } + + public String getBranchStatus() + { + return branchStatus; + } + + public void setDischargeStatus(String dischargeStatus) + { + this.dischargeStatus = dischargeStatus; + } + + public String getDischargeStatus() + { + return dischargeStatus; + } + + public void setDcPower(BigDecimal dcPower) + { + this.dcPower = dcPower; + } + + public BigDecimal getDcPower() + { + return dcPower; + } + + public void setDcVoltage(BigDecimal dcVoltage) + { + this.dcVoltage = dcVoltage; + } + + public BigDecimal getDcVoltage() + { + return dcVoltage; + } + + public void setDcCurrent(BigDecimal dcCurrent) + { + this.dcCurrent = dcCurrent; + } + + public BigDecimal getDcCurrent() + { + return dcCurrent; + } + + public void setSiteId(Long siteId) + { + this.siteId = siteId; + } + + public Long getSiteId() + { + return siteId; + } + + public void setDeviceId(Long deviceId) + { + this.deviceId = deviceId; + } + + public Long getDeviceId() + { + return deviceId; + } + + public int getDateMonth() { + return dateMonth; + } + + public void setDateMonth(int dateMonth) { + this.dateMonth = dateMonth; + } + + public int getDateDay() { + return dateDay; + } + + public void setDateDay(int dateDay) { + this.dateDay = dateDay; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("dataUpdateTime", getDataUpdateTime()) + .append("workStatus", getWorkStatus()) + .append("gridStatus", getGridStatus()) + .append("deviceStatus", getDeviceStatus()) + .append("controlMode", getControlMode()) + .append("totalActivePower", getTotalActivePower()) + .append("dailyAcChargeEnergy", getDailyAcChargeEnergy()) + .append("aPhaseVoltage", getaPhaseVoltage()) + .append("aPhaseCurrent", getaPhaseCurrent()) + .append("totalReactivePower", getTotalReactivePower()) + .append("dailyAcDischargeEnergy", getDailyAcDischargeEnergy()) + .append("bPhaseVoltage", getbPhaseVoltage()) + .append("bPhaseCurrent", getbPhaseCurrent()) + .append("totalApparentPower", getTotalApparentPower()) + .append("pcsModuleTemperature", getPcsModuleTemperature()) + .append("cPhaseVoltage", getcPhaseVoltage()) + .append("cPhaseCurrent", getcPhaseCurrent()) + .append("totalPowerFactor", getTotalPowerFactor()) + .append("pcsEnvironmentTemperature", getPcsEnvironmentTemperature()) + .append("acFrequency", getAcFrequency()) + .append("branchStatus", getBranchStatus()) + .append("dischargeStatus", getDischargeStatus()) + .append("dcPower", getDcPower()) + .append("dcVoltage", getDcVoltage()) + .append("dcCurrent", getDcCurrent()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("siteId", getSiteId()) + .append("deviceId", getDeviceId()) + .append("dateMonth", getDateMonth()) + .append("dateDay", getDateDay()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsSite.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsSite.java new file mode 100644 index 0000000..b789a2b --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsSite.java @@ -0,0 +1,57 @@ +package com.xzzn.ems.domain; + +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * 站点对象 site + * + * @author xzzn + * @date 2025-06-16 + */ +public class EmsSite extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 自增主键 */ + private Long id; + + /** 站点名称 */ + @Excel(name = "站点名称") + private String siteName; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setSiteName(String siteName) + { + this.siteName = siteName; + } + + public String getSiteName() + { + return siteName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("siteName", getSiteName()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java new file mode 100644 index 0000000..5c216e3 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java @@ -0,0 +1,48 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 实时运行-电池平均SOC数据 + * + */ +public class BatteryAveSOCVo { + /** + * 月份 月+日 + */ + private String monthDay; + + /** + * 实时SOC + */ + private BigDecimal batterySOC; + + /** + * 昨日SOC + */ + private BigDecimal ytdBatterySOC; + + public String getMonthDay() { + return monthDay; + } + + public void setMonthDay(String monthDay) { + this.monthDay = monthDay; + } + + public BigDecimal getBatterySOC() { + return batterySOC; + } + + public void setBatterySOC(BigDecimal batterySOC) { + this.batterySOC = batterySOC; + } + + public BigDecimal getYtdBatterySOC() { + return ytdBatterySOC; + } + + public void setYtdBatterySOC(BigDecimal ytdBatterySOC) { + this.ytdBatterySOC = ytdBatterySOC; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java new file mode 100644 index 0000000..7b89800 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java @@ -0,0 +1,49 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 实时运行-电池平均温度数据 + * + */ +public class BatteryAveTempVo { + /** + * 月份 月+日 + */ + private String monthDay; + + /** + * 实时温度 + */ + private BigDecimal batteryTemp; + + /** + * 昨日温度 + */ + private BigDecimal batteryYtdTemp; + + + public String getMonthDay() { + return monthDay; + } + + public void setMonthDay(String monthDay) { + this.monthDay = monthDay; + } + + public BigDecimal getBatteryTemp() { + return batteryTemp; + } + + public void setBatteryTemp(BigDecimal batteryTemp) { + this.batteryTemp = batteryTemp; + } + + public BigDecimal getBatteryYtdTemp() { + return batteryYtdTemp; + } + + public void setBatteryYtdTemp(BigDecimal batteryYtdTemp) { + this.batteryYtdTemp = batteryYtdTemp; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java new file mode 100644 index 0000000..82d583b --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java @@ -0,0 +1,74 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 实时运行-储能功率数据 + * + */ +public class EnergyStoragePowVo { + /** + * 月份 月+日 + */ + private String monthDay; + + /** + * pcs实时有功功率 + */ + private BigDecimal pcsTotalActPower; + + /** + * pcs实时无功功率 + */ + private BigDecimal pcsTotalReactivePower; + + /** + * pcs昨日有功功率 + */ + private BigDecimal pcsYtdActPower; + + /** + * pcs昨日无功功率 + */ + private BigDecimal pcsYtdReactivePower; + + public String getMonthDay() { + return monthDay; + } + + public void setMonthDay(String monthDay) { + this.monthDay = monthDay; + } + + public BigDecimal getPcsTotalActPower() { + return pcsTotalActPower; + } + + public void setPcsTotalActPower(BigDecimal pcsTotalActPower) { + this.pcsTotalActPower = pcsTotalActPower; + } + + public BigDecimal getPcsTotalReactivePower() { + return pcsTotalReactivePower; + } + + public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) { + this.pcsTotalReactivePower = pcsTotalReactivePower; + } + + public BigDecimal getPcsYtdActPower() { + return pcsYtdActPower; + } + + public void setPcsYtdActPower(BigDecimal pcsYtdActPower) { + this.pcsYtdActPower = pcsYtdActPower; + } + + public BigDecimal getPcsYtdReactivePower() { + return pcsYtdReactivePower; + } + + public void setPcsYtdReactivePower(BigDecimal pcsYtdReactivePower) { + this.pcsYtdReactivePower = pcsYtdReactivePower; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java new file mode 100644 index 0000000..7dac945 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java @@ -0,0 +1,48 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 实时运行-pcs平均温度数据 + * + */ +public class PCSAveTempVo { + /** + * 月份 月+日 + */ + private String monthDay; + + /** + * 实时温度 + */ + private BigDecimal pcsTemp; + + /** + * 昨日同时段温度(到分) + */ + private BigDecimal pcsYtdTemp; + + public String getMonthDay() { + return monthDay; + } + + public void setMonthDay(String monthDay) { + this.monthDay = monthDay; + } + + public BigDecimal getPcsTemp() { + return pcsTemp; + } + + public void setPcsTemp(BigDecimal pcsTemp) { + this.pcsTemp = pcsTemp; + } + + public BigDecimal getPcsYtdTemp() { + return pcsYtdTemp; + } + + public void setPcsYtdTemp(BigDecimal pcsYtdTemp) { + this.pcsYtdTemp = pcsYtdTemp; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SingleSiteBaseInfo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SingleSiteBaseInfo.java new file mode 100644 index 0000000..3f095d8 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SingleSiteBaseInfo.java @@ -0,0 +1,128 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 站点地图-某个站点基本信息 + * + */ +public class SingleSiteBaseInfo { + /** + * 今日充电量 + */ + private BigDecimal dayChargedCap; + + /** + * 今日放电量 + */ + private BigDecimal dayDisChargedCap; + + /** + * 总充电量 + */ + private BigDecimal totalChargedCap; + + /** + * 总放电量 + */ + private BigDecimal totalDischargedCap; + + /** + * 站点位置 + */ + private String siteLocation; + + /** + * 投运时间 + */ + private String runningTime; + + /** + * 装机功率(MW) + */ + private BigDecimal installedPower; + + /** + * 装机容量(MW) + */ + private BigDecimal installedCap; + + /** + * 七天放电统计 + */ + private List SevenDayDischargeStats; + + public BigDecimal getDayChargedCap() { + return dayChargedCap; + } + + public void setDayChargedCap(BigDecimal dayChargedCap) { + this.dayChargedCap = dayChargedCap; + } + + public List getSevenDayDischargeStats() { + return SevenDayDischargeStats; + } + + public void setSevenDayDischargeStats(List sevenDayDischargeStats) { + SevenDayDischargeStats = sevenDayDischargeStats; + } + + public BigDecimal getInstalledCap() { + return installedCap; + } + + public void setInstalledCap(BigDecimal installedCap) { + this.installedCap = installedCap; + } + + public BigDecimal getInstalledPower() { + return installedPower; + } + + public void setInstalledPower(BigDecimal installedPower) { + this.installedPower = installedPower; + } + + public String getRunningTime() { + return runningTime; + } + + public void setRunningTime(String runningTime) { + this.runningTime = runningTime; + } + + public String getSiteLocation() { + return siteLocation; + } + + public void setSiteLocation(String siteLocation) { + this.siteLocation = siteLocation; + } + + public BigDecimal getTotalDischargedCap() { + return totalDischargedCap; + } + + public void setTotalDischargedCap(BigDecimal totalDischargedCap) { + this.totalDischargedCap = totalDischargedCap; + } + + public BigDecimal getTotalChargedCap() { + return totalChargedCap; + } + + public void setTotalChargedCap(BigDecimal totalChargedCap) { + this.totalChargedCap = totalChargedCap; + } + + public BigDecimal getDayDisChargedCap() { + return dayDisChargedCap; + } + + public void setDayDisChargedCap(BigDecimal dayDisChargedCap) { + this.dayDisChargedCap = dayDisChargedCap; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorDataVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorDataVo.java new file mode 100644 index 0000000..e68c14d --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorDataVo.java @@ -0,0 +1,48 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 单站监控首页-能量流转数据 + * + */ +public class SiteMonitorDataVo { + /** + * 日期 + */ + private String ammeterDate; + + /** + * 放电量 + */ + private BigDecimal disChargedCap; + + /** + * 充电量 + */ + private BigDecimal chargedCap; + + public String getAmmeterDate() { + return ammeterDate; + } + + public void setAmmeterDate(String ammeterDate) { + this.ammeterDate = ammeterDate; + } + + public BigDecimal getDisChargedCap() { + return disChargedCap; + } + + public void setDisChargedCap(BigDecimal disChargedCap) { + this.disChargedCap = disChargedCap; + } + + public BigDecimal getChargedCap() { + return chargedCap; + } + + public void setChargedCap(BigDecimal chargedCap) { + this.chargedCap = chargedCap; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java new file mode 100644 index 0000000..f8f29e3 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java @@ -0,0 +1,46 @@ +package com.xzzn.ems.domain.vo; + +/** + * 单站监控首页告警数据 + * + */ +public class SiteMonitorHomeAlarmVo { + /** + * 告警名称 + */ + private String deviceName; + + /** + * 状态 + */ + private int status; + + /** + * 告警内容 + */ + private String alarmContent; + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(String alarmContent) { + this.alarmContent = alarmContent; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeVo.java new file mode 100644 index 0000000..0c8b748 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeVo.java @@ -0,0 +1,142 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 单站监控首页数据 + * + */ +public class SiteMonitorHomeVo { + + + /** + * 今日充电量 + */ + private BigDecimal dayChargedCap; + + /** + * 今日放电量 + */ + private BigDecimal dayDisChargedCap; + + /** + * 总充电量 + */ + private BigDecimal totalChargedCap; + + /** + * 总放电量 + */ + private BigDecimal totalDischargedCap; + + /** + * 告警集合 + */ + private List siteMonitorHomeAlarmVo; + + /** + * 电网实时功率 + */ + private BigDecimal gridNrtPower; + + /** + * 储能实时功率-暂空 + */ + private BigDecimal energyStorageNrtPower; + + /** + * 储能可用电量 + */ + private BigDecimal energyStorageAvailElec; + + /** + * 负载实时功率-暂空 + */ + private BigDecimal loadNrtPower; + + /** + * 能量流转数据 + */ + private List siteMonitorDataVo; + + public BigDecimal getDayChargedCap() { + return dayChargedCap; + } + + public void setDayChargedCap(BigDecimal dayChargedCap) { + this.dayChargedCap = dayChargedCap; + } + + public BigDecimal getDayDisChargedCap() { + return dayDisChargedCap; + } + + public void setDayDisChargedCap(BigDecimal dayDisChargedCap) { + this.dayDisChargedCap = dayDisChargedCap; + } + + public BigDecimal getTotalChargedCap() { + return totalChargedCap; + } + + public void setTotalChargedCap(BigDecimal totalChargedCap) { + this.totalChargedCap = totalChargedCap; + } + + public BigDecimal getTotalDischargedCap() { + return totalDischargedCap; + } + + public void setTotalDischargedCap(BigDecimal totalDischargedCap) { + this.totalDischargedCap = totalDischargedCap; + } + + public List getSiteMonitorHomeAlarmVo() { + return siteMonitorHomeAlarmVo; + } + + public void setSiteMonitorHomeAlarmVo(List siteMonitorHomeAlarmVo) { + this.siteMonitorHomeAlarmVo = siteMonitorHomeAlarmVo; + } + + public BigDecimal getGridNrtPower() { + return gridNrtPower; + } + + public void setGridNrtPower(BigDecimal gridNrtPower) { + this.gridNrtPower = gridNrtPower; + } + + public BigDecimal getEnergyStorageNrtPower() { + return energyStorageNrtPower; + } + + public void setEnergyStorageNrtPower(BigDecimal energyStorageNrtPower) { + this.energyStorageNrtPower = energyStorageNrtPower; + } + + public BigDecimal getEnergyStorageAvailElec() { + return energyStorageAvailElec; + } + + public void setEnergyStorageAvailElec(BigDecimal energyStorageAvailElec) { + this.energyStorageAvailElec = energyStorageAvailElec; + } + + public BigDecimal getLoadNrtPower() { + return loadNrtPower; + } + + public void setLoadNrtPower(BigDecimal loadNrtPower) { + this.loadNrtPower = loadNrtPower; + } + + public List getSiteMonitorDataVo() { + return siteMonitorDataVo; + } + + public void setSiteMonitorDataVo(List siteMonitorDataVo) { + this.siteMonitorDataVo = siteMonitorDataVo; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java new file mode 100644 index 0000000..baf0fab --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java @@ -0,0 +1,140 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 单站监控-设备监控-实时运行数据 + * + */ +public class SiteMonitorRuningInfoVo { + /** + * 实时有功功率 + */ + private BigDecimal totalActivePower; + + /** + * 实时无功功率 + */ + private BigDecimal totalReactivePower; + + /** + * 电池簇SOC + */ + private BigDecimal soc; + + /** + * 电池堆SOH + */ + private BigDecimal soh; + + /** + * 今日充电量 + */ + private BigDecimal dayChargedCap; + + /** + * 今日放电量 + */ + private BigDecimal dayDisChargedCap; + + /** + * 储能功率list + */ + private List energyStoragePowList; + + /** + * pcs平均温度list + */ + private List pcsAveTempList; + + /** + * 电池平均soclist + */ + private List batteryAveSOCList; + + /** + * 电池平均温度list + */ + private List batteryAveTempList; + + public BigDecimal getTotalActivePower() { + return totalActivePower; + } + + public void setTotalActivePower(BigDecimal totalActivePower) { + this.totalActivePower = totalActivePower; + } + + public BigDecimal getTotalReactivePower() { + return totalReactivePower; + } + + public void setTotalReactivePower(BigDecimal totalReactivePower) { + this.totalReactivePower = totalReactivePower; + } + + public BigDecimal getSoc() { + return soc; + } + + public void setSoc(BigDecimal soc) { + this.soc = soc; + } + + public BigDecimal getSoh() { + return soh; + } + + public void setSoh(BigDecimal soh) { + this.soh = soh; + } + + public BigDecimal getDayChargedCap() { + return dayChargedCap; + } + + public void setDayChargedCap(BigDecimal dayChargedCap) { + this.dayChargedCap = dayChargedCap; + } + + public BigDecimal getDayDisChargedCap() { + return dayDisChargedCap; + } + + public void setDayDisChargedCap(BigDecimal dayDisChargedCap) { + this.dayDisChargedCap = dayDisChargedCap; + } + + public List getEnergyStoragePowList() { + return energyStoragePowList; + } + + public void setEnergyStoragePowList(List energyStoragePowList) { + this.energyStoragePowList = energyStoragePowList; + } + + public List getPcsAveTempList() { + return pcsAveTempList; + } + + public void setPcsAveTempList(List pcsAveTempList) { + this.pcsAveTempList = pcsAveTempList; + } + + public List getBatteryAveSOCList() { + return batteryAveSOCList; + } + + public void setBatteryAveSOCList(List batteryAveSOCList) { + this.batteryAveSOCList = batteryAveSOCList; + } + + public List getBatteryAveTempList() { + return batteryAveTempList; + } + + public void setBatteryAveTempList(List batteryAveTempList) { + this.batteryAveTempList = batteryAveTempList; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteTotalInfoVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteTotalInfoVo.java new file mode 100644 index 0000000..496c483 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteTotalInfoVo.java @@ -0,0 +1,85 @@ +package com.xzzn.ems.domain.vo; + +import java.math.BigDecimal; + +/** + * 站点总信息 + * + */ +public class SiteTotalInfoVo { + /** + * 站点总数(座) + */ + private int siteNum; + + /** + * 装机功率(MW) + */ + private BigDecimal installedPower; + + /** + * 装机容量(MW) + */ + private BigDecimal installedCap; + + /** + * 总充电量(MWH) + */ + private BigDecimal totalChargedCap; + + /** + * 总放电量(MWH) + */ + private BigDecimal totalDischargedCap; + + public int getSiteNum() { + return siteNum; + } + + public void setSiteNum(int siteNum) { + this.siteNum = siteNum; + } + + public BigDecimal getTotalDischargedCap() { + return totalDischargedCap; + } + + public void setTotalDischargedCap(BigDecimal totalDischargedCap) { + this.totalDischargedCap = totalDischargedCap; + } + + public BigDecimal getTotalChargedCap() { + return totalChargedCap; + } + + public void setTotalChargedCap(BigDecimal totalChargedCap) { + this.totalChargedCap = totalChargedCap; + } + + public BigDecimal getInstalledCap() { + return installedCap; + } + + public void setInstalledCap(BigDecimal installedCap) { + this.installedCap = installedCap; + } + + public BigDecimal getInstalledPower() { + return installedPower; + } + + public void setInstalledPower(BigDecimal installedPower) { + this.installedPower = installedPower; + } + + @Override + public String toString() { + return "SiteVo{" + + "siteNum=" + siteNum + + ", installedPower=" + installedPower + + ", installedCap=" + installedCap + + ", totalChargedCap=" + totalChargedCap + + ", totalDischargedCap=" + totalDischargedCap + + '}'; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java new file mode 100644 index 0000000..a0a434e --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java @@ -0,0 +1,68 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsAlarmRecords; +import com.xzzn.ems.domain.vo.SiteMonitorHomeAlarmVo; + +/** + * 告警记录Mapper接口 + * + * @author xzzn + * @date 2025-06-17 + */ +public interface EmsAlarmRecordsMapper +{ + /** + * 查询告警记录 + * + * @param id 告警记录主键 + * @return 告警记录 + */ + public EmsAlarmRecords selectEmsAlarmRecordsById(Long id); + + /** + * 查询告警记录列表 + * + * @param emsAlarmRecords 告警记录 + * @return 告警记录集合 + */ + public List selectEmsAlarmRecordsList(EmsAlarmRecords emsAlarmRecords); + + /** + * 新增告警记录 + * + * @param emsAlarmRecords 告警记录 + * @return 结果 + */ + public int insertEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords); + + /** + * 修改告警记录 + * + * @param emsAlarmRecords 告警记录 + * @return 结果 + */ + public int updateEmsAlarmRecords(EmsAlarmRecords emsAlarmRecords); + + /** + * 删除告警记录 + * + * @param id 告警记录主键 + * @return 结果 + */ + public int deleteEmsAlarmRecordsById(Long id); + + /** + * 批量删除告警记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsAlarmRecordsByIds(Long[] ids); + + /** + * 根据站点id获取告警记录 + * + */ + public List getAlarmRecordsBySiteId(Long siteId); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java new file mode 100644 index 0000000..da8b9ce --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java @@ -0,0 +1,77 @@ +package com.xzzn.ems.mapper; + +import java.math.BigDecimal; +import java.util.List; +import com.xzzn.ems.domain.EmsPcsData; +import com.xzzn.ems.domain.vo.SiteMonitorDataVo; + +/** + * PCS数据Mapper接口 + * + * @author xzzn + * @date 2025-06-17 + */ +public interface EmsPcsDataMapper +{ + /** + * 查询PCS数据 + * + * @param id PCS数据主键 + * @return PCS数据 + */ + public EmsPcsData selectEmsPcsDataById(Long id); + + /** + * 查询PCS数据列表 + * + * @param emsPcsData PCS数据 + * @return PCS数据集合 + */ + public List selectEmsPcsDataList(EmsPcsData emsPcsData); + + /** + * 新增PCS数据 + * + * @param emsPcsData PCS数据 + * @return 结果 + */ + public int insertEmsPcsData(EmsPcsData emsPcsData); + + /** + * 修改PCS数据 + * + * @param emsPcsData PCS数据 + * @return 结果 + */ + public int updateEmsPcsData(EmsPcsData emsPcsData); + + /** + * 删除PCS数据 + * + * @param id PCS数据主键 + * @return 结果 + */ + public int deleteEmsPcsDataById(Long id); + + /** + * 批量删除PCS数据 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsPcsDataByIds(Long[] ids); + + /** + * 根据site_id获取日期对应的充放电数据 + * @param siteId + * @return + */ + public List getPcsDataBySiteId(Long siteId); + + /** + * 根据站点获取电网实时功率=sum(总交流有功电率) + * @param siteId + * @return + */ + public BigDecimal getGridNrtPower(Long siteId); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsSiteMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsSiteMapper.java new file mode 100644 index 0000000..c9b96d9 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsSiteMapper.java @@ -0,0 +1,67 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsSite; +import com.xzzn.ems.domain.vo.SiteTotalInfoVo; + +/** + * 站点Mapper接口 + * + * @author xzzn + * @date 2025-06-16 + */ +public interface EmsSiteMapper +{ + /** + * 查询站点 + * + * @param id 站点主键 + * @return 站点 + */ + public EmsSite selectSiteById(Long id); + + /** + * 查询站点列表 + * + * @return 站点集合 + */ + public List selectSiteList(); + + /** + * 新增站点 + * + * @param site 站点 + * @return 结果 + */ + public int insertSite(EmsSite site); + + /** + * 修改站点 + * + * @param site 站点 + * @return 结果 + */ + public int updateSite(EmsSite site); + + /** + * 删除站点 + * + * @param id 站点主键 + * @return 结果 + */ + public int deleteSiteById(Long id); + + /** + * 批量删除站点 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSiteByIds(Long[] ids); + + /** + * 获取站点总信息 + * @return + */ + public SiteTotalInfoVo getSiteTotalInfo(); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsSiteService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsSiteService.java new file mode 100644 index 0000000..c657629 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsSiteService.java @@ -0,0 +1,20 @@ +package com.xzzn.ems.service; + + +import com.xzzn.ems.domain.EmsSite; +import com.xzzn.ems.domain.vo.SiteTotalInfoVo; + +import java.util.List; + +/** + * 站点信息 服务层 + * + */ +public interface IEmsSiteService +{ + + public List getAllSites(); + + + public SiteTotalInfoVo getSiteTotalInfo(); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IHomePageService.java b/ems-system/src/main/java/com/xzzn/ems/service/IHomePageService.java new file mode 100644 index 0000000..38e3dc4 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/IHomePageService.java @@ -0,0 +1,16 @@ +package com.xzzn.ems.service; + +import com.xzzn.ems.domain.vo.SingleSiteBaseInfo; +import com.xzzn.ems.domain.vo.SiteTotalInfoVo; + +/** + * 站点信息 服务层 + * + */ +public interface IHomePageService +{ + + public SiteTotalInfoVo getSiteTotalInfo(); + + public SingleSiteBaseInfo getSingleSiteBaseInfo(Long siteId); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java new file mode 100644 index 0000000..318d623 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java @@ -0,0 +1,17 @@ +package com.xzzn.ems.service; + +import com.xzzn.ems.domain.vo.SiteMonitorHomeVo; +import com.xzzn.ems.domain.vo.SiteMonitorRuningInfoVo; + +/** + * 单点监控 服务层 + * + */ +public interface ISingleSiteService +{ + + public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId); + + + public SiteMonitorRuningInfoVo getSiteRuningInfo(Long siteId); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsSiteServiceImpl.java new file mode 100644 index 0000000..358f919 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsSiteServiceImpl.java @@ -0,0 +1,33 @@ +package com.xzzn.ems.service.impl; + +import com.xzzn.ems.domain.EmsSite; +import com.xzzn.ems.domain.vo.SiteTotalInfoVo; +import com.xzzn.ems.mapper.EmsSiteMapper; +import com.xzzn.ems.service.IEmsSiteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 站点信息 服务层实现 + * + */ +@Service +public class EmsSiteServiceImpl implements IEmsSiteService +{ + + @Autowired + private EmsSiteMapper emsSiteMapper; + + @Override + public List getAllSites() { + return emsSiteMapper.selectSiteList(); + } + + @Override + public SiteTotalInfoVo getSiteTotalInfo() { + return emsSiteMapper.getSiteTotalInfo(); + } + +} 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 new file mode 100644 index 0000000..0955bf3 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java @@ -0,0 +1,104 @@ +package com.xzzn.ems.service.impl; + +import com.xzzn.common.utils.DateUtils; +import com.xzzn.common.utils.StringUtils; +import com.xzzn.ems.domain.EmsSite; +import com.xzzn.ems.domain.vo.SingleSiteBaseInfo; +import com.xzzn.ems.domain.vo.SiteMonitorDataVo; +import com.xzzn.ems.domain.vo.SiteTotalInfoVo; +import com.xzzn.ems.mapper.EmsPcsDataMapper; +import com.xzzn.ems.mapper.EmsSiteMapper; +import com.xzzn.ems.service.IEmsSiteService; +import com.xzzn.ems.service.IHomePageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 首页看板+站点地图 服务层实现 + * + */ +@Service +public class HomePageServiceImpl implements IHomePageService +{ + + @Autowired + private IEmsSiteService emsSiteService; + @Autowired + private EmsPcsDataMapper emsPcsDataMapper; + @Autowired + private EmsSiteMapper emsSiteMapper; + + @Override + public SiteTotalInfoVo getSiteTotalInfo() { + return emsSiteService.getSiteTotalInfo(); + } + + @Override + public SingleSiteBaseInfo getSingleSiteBaseInfo(Long siteId) { + SingleSiteBaseInfo singleSiteBaseInfo = new SingleSiteBaseInfo(); + + if (siteId != null) { + // 站点基本信息 + EmsSite emsSite = emsSiteMapper.selectSiteById(siteId); + if (emsSite != null) { + singleSiteBaseInfo.setSiteLocation(emsSite.getRemark());//站点位置 + singleSiteBaseInfo.setRunningTime(DateUtils.parseDateToStr("yyyy-MM-dd",emsSite.getCreateTime()));//投运时间 + // 装机功率+装机容量 待定 + // 七天放电数据统计 + List siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId); + singleSiteBaseInfo.setSevenDayDischargeStats(siteMonitorDataVoList); + // 充放电基本数据处理 + dealSitePCSDate(singleSiteBaseInfo,siteMonitorDataVoList); + } + } + + return singleSiteBaseInfo; + } + + private void dealSitePCSDate(SingleSiteBaseInfo singleSiteBaseInfo, List siteMonitorDataVoList) { + if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) { + BigDecimal dayChargeCap = new BigDecimal(0); + BigDecimal dayDisChargeCap = new BigDecimal(0); + BigDecimal totalChargeCap = new BigDecimal(0); + BigDecimal totalDisChargeCap = new BigDecimal(0); + for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { + // 总充电量 + totalChargeCap = totalChargeCap.add(sitePcsData.getChargedCap()); + // 总放电量 + totalDisChargeCap = totalDisChargeCap.add(sitePcsData.getDisChargedCap()); + // 获取当天的充电量+放电量 + String pcsDate = sitePcsData.getAmmeterDate(); + boolean isToday= checkIsToday(pcsDate); + if(isToday){ + dayChargeCap = dayChargeCap.add(sitePcsData.getChargedCap()); + dayDisChargeCap = dayDisChargeCap.add(sitePcsData.getDisChargedCap()); + } + } + singleSiteBaseInfo.setDayChargedCap(dayChargeCap); + singleSiteBaseInfo.setDayDisChargedCap(dayDisChargeCap); + singleSiteBaseInfo.setTotalChargedCap(totalChargeCap); + singleSiteBaseInfo.setTotalDischargedCap(totalDisChargeCap); + } + } + + 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; + } + +} 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 new file mode 100644 index 0000000..77e1de5 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -0,0 +1,95 @@ +package com.xzzn.ems.service.impl; + +import com.xzzn.common.utils.DateUtils; +import com.xzzn.common.utils.StringUtils; +import com.xzzn.ems.domain.vo.SiteMonitorDataVo; +import com.xzzn.ems.domain.vo.SiteMonitorHomeAlarmVo; +import com.xzzn.ems.domain.vo.SiteMonitorHomeVo; +import com.xzzn.ems.domain.vo.SiteMonitorRuningInfoVo; +import com.xzzn.ems.mapper.EmsAlarmRecordsMapper; +import com.xzzn.ems.mapper.EmsPcsDataMapper; +import com.xzzn.ems.service.ISingleSiteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 单点监控 服务层实现 + */ +@Service +public class SingleSiteServiceImpl implements ISingleSiteService { + + @Autowired + private EmsPcsDataMapper emsPcsDataMapper; + @Autowired + private EmsAlarmRecordsMapper emsAlarmRecordsMapper; + + @Override + public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId) { + SiteMonitorHomeVo siteMonitorHomeVo = new SiteMonitorHomeVo(); + + if (siteId != null) { + // 实时告警数据 名称+状态+告警内容 + List siteMonitorHomeAlarmVo = emsAlarmRecordsMapper.getAlarmRecordsBySiteId(siteId); + siteMonitorHomeVo.setSiteMonitorHomeAlarmVo(siteMonitorHomeAlarmVo); + // 能量数据 + List siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId); + if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) { + BigDecimal dayChargeCap = new BigDecimal(0); + BigDecimal dayDisChargeCap = new BigDecimal(0); + BigDecimal totalChargeCap = new BigDecimal(0); + BigDecimal totalDisChargeCap = new BigDecimal(0); + for (SiteMonitorDataVo sitePcsData : siteMonitorDataVoList) { + // 总充电量 + totalChargeCap = totalChargeCap.add(sitePcsData.getChargedCap()); + // 总放电量 + totalDisChargeCap = totalDisChargeCap.add(sitePcsData.getDisChargedCap()); + // 获取当天的充电量+放电量 + String pcsDate = sitePcsData.getAmmeterDate(); + boolean isToday= checkIsToday(pcsDate); + if(isToday){ + dayChargeCap = dayChargeCap.add(sitePcsData.getChargedCap()); + dayDisChargeCap = dayDisChargeCap.add(sitePcsData.getDisChargedCap()); + } + } + siteMonitorHomeVo.setDayChargedCap(dayChargeCap); + siteMonitorHomeVo.setDayDisChargedCap(dayDisChargeCap); + siteMonitorHomeVo.setTotalChargedCap(totalChargeCap); + siteMonitorHomeVo.setTotalDischargedCap(totalDisChargeCap); + // 储能可用电量 + BigDecimal energyStorageAvailElec = siteMonitorHomeVo.getTotalDischargedCap().subtract(siteMonitorHomeVo.getTotalChargedCap()); + siteMonitorHomeVo.setEnergyStorageAvailElec(energyStorageAvailElec); + } + siteMonitorHomeVo.setSiteMonitorDataVo(siteMonitorDataVoList); + // 电网实时功率 + siteMonitorHomeVo.setGridNrtPower(emsPcsDataMapper.getGridNrtPower(siteId)); + } + + 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 SiteMonitorRuningInfoVo getSiteRuningInfo(Long siteId) { + return null; + } + +} diff --git a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml new file mode 100644 index 0000000..c7b8522 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, device_type, alarm_level, alarm_content, alarm_start_time, alarm_end_time, status, create_by, create_time, update_by, update_time, remark, site_id, device_id, device_name from ems_alarm_records + + + + + + + + insert into ems_alarm_records + + device_type, + alarm_level, + alarm_content, + alarm_start_time, + alarm_end_time, + status, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id, + device_name, + + + #{deviceType}, + #{alarmLevel}, + #{alarmContent}, + #{alarmStartTime}, + #{alarmEndTime}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{siteId}, + #{deviceId}, + #{deviceName}, + + + + + update ems_alarm_records + + device_type = #{deviceType}, + alarm_level = #{alarmLevel}, + alarm_content = #{alarmContent}, + alarm_start_time = #{alarmStartTime}, + alarm_end_time = #{alarmEndTime}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + site_id = #{siteId}, + device_id = #{deviceId}, + device_name = #{deviceName}, + + where id = #{id} + + + + delete from ems_alarm_records where id = #{id} + + + + delete from ems_alarm_records where id in + + #{id} + + + + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml new file mode 100644 index 0000000..3dc15e6 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, data_update_time, work_status, grid_status, device_status, control_mode, total_active_power, daily_ac_charge_energy, a_phase_voltage, a_phase_current, total_reactive_power, daily_ac_discharge_energy, b_phase_voltage, b_phase_current, total_apparent_power, pcs_module_temperature, c_phase_voltage, c_phase_current, total_power_factor, pcs_environment_temperature, ac_frequency, branch_status, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, date_month, date_day from ems_pcs_data + + + + + + + + insert into ems_pcs_data + + data_update_time, + work_status, + grid_status, + device_status, + control_mode, + total_active_power, + daily_ac_charge_energy, + a_phase_voltage, + a_phase_current, + total_reactive_power, + daily_ac_discharge_energy, + b_phase_voltage, + b_phase_current, + total_apparent_power, + pcs_module_temperature, + c_phase_voltage, + c_phase_current, + total_power_factor, + pcs_environment_temperature, + ac_frequency, + branch_status, + discharge_status, + dc_power, + dc_voltage, + dc_current, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id, + + + #{dataUpdateTime}, + #{workStatus}, + #{gridStatus}, + #{deviceStatus}, + #{controlMode}, + #{totalActivePower}, + #{dailyAcChargeEnergy}, + #{aPhaseVoltage}, + #{aPhaseCurrent}, + #{totalReactivePower}, + #{dailyAcDischargeEnergy}, + #{bPhaseVoltage}, + #{bPhaseCurrent}, + #{totalApparentPower}, + #{pcsModuleTemperature}, + #{cPhaseVoltage}, + #{cPhaseCurrent}, + #{totalPowerFactor}, + #{pcsEnvironmentTemperature}, + #{acFrequency}, + #{branchStatus}, + #{dischargeStatus}, + #{dcPower}, + #{dcVoltage}, + #{dcCurrent}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{siteId}, + #{deviceId}, + + + + + update ems_pcs_data + + data_update_time = #{dataUpdateTime}, + work_status = #{workStatus}, + grid_status = #{gridStatus}, + device_status = #{deviceStatus}, + control_mode = #{controlMode}, + total_active_power = #{totalActivePower}, + daily_ac_charge_energy = #{dailyAcChargeEnergy}, + a_phase_voltage = #{aPhaseVoltage}, + a_phase_current = #{aPhaseCurrent}, + total_reactive_power = #{totalReactivePower}, + daily_ac_discharge_energy = #{dailyAcDischargeEnergy}, + b_phase_voltage = #{bPhaseVoltage}, + b_phase_current = #{bPhaseCurrent}, + total_apparent_power = #{totalApparentPower}, + pcs_module_temperature = #{pcsModuleTemperature}, + c_phase_voltage = #{cPhaseVoltage}, + c_phase_current = #{cPhaseCurrent}, + total_power_factor = #{totalPowerFactor}, + pcs_environment_temperature = #{pcsEnvironmentTemperature}, + ac_frequency = #{acFrequency}, + branch_status = #{branchStatus}, + discharge_status = #{dischargeStatus}, + dc_power = #{dcPower}, + dc_voltage = #{dcVoltage}, + dc_current = #{dcCurrent}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + site_id = #{siteId}, + device_id = #{deviceId}, + + where id = #{id} + + + + delete from ems_pcs_data where id = #{id} + + + + delete from ems_pcs_data where id in + + #{id} + + + + + + + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsSiteMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsSiteMapper.xml new file mode 100644 index 0000000..2127add --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsSiteMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + select id, site_name, remark, create_by, update_by, create_time, update_time from ems_site_setting + + + + + + + + insert into ems_site_setting + + site_name, + remark, + create_by, + update_by, + create_time, + update_time, + + + #{siteName}, + #{remark}, + #{createBy}, + #{updateBy}, + #{createTime}, + #{updateTime}, + + + + + update ems_site_setting + + site_name = #{siteName}, + remark = #{remark}, + create_by = #{createBy}, + update_by = #{updateBy}, + create_time = #{createTime}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ems_site_setting where id = #{id} + + + + delete from ems_site_setting where id in + + #{id} + + + + + \ No newline at end of file