PCS抽数逻辑
This commit is contained in:
@ -71,4 +71,22 @@ public class EmsSiteMonitorController extends BaseController{
|
|||||||
{
|
{
|
||||||
return success(iSingleSiteService.getBMSBatteryCluster(siteId));
|
return success(iSingleSiteService.getBMSBatteryCluster(siteId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有电池堆
|
||||||
|
*/
|
||||||
|
@GetMapping("/getStackNameList")
|
||||||
|
public AjaxResult getStackNameList(@RequestParam Long siteId)
|
||||||
|
{
|
||||||
|
return success(iSingleSiteService.getBMSBatteryCluster(siteId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有电池簇
|
||||||
|
*/
|
||||||
|
@GetMapping("/getClusterNameList")
|
||||||
|
public AjaxResult getClusterNameList(@RequestParam Long siteId)
|
||||||
|
{
|
||||||
|
return success(iSingleSiteService.getBMSBatteryCluster(siteId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,149 @@
|
|||||||
|
package com.xzzn.ems.domain;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
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_branch_data
|
||||||
|
*
|
||||||
|
* @author xzzn
|
||||||
|
* @date 2025-06-24
|
||||||
|
*/
|
||||||
|
public class EmsPcsBranchData extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** $column.columnComment */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 放电状态 */
|
||||||
|
@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;
|
||||||
|
|
||||||
|
/** 支路id */
|
||||||
|
@Excel(name = "支路id")
|
||||||
|
private Long branchId;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 void setBranchId(Long branchId)
|
||||||
|
{
|
||||||
|
this.branchId = branchId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getBranchId()
|
||||||
|
{
|
||||||
|
return branchId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.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("branchId", getBranchId())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
@ -138,6 +138,10 @@ public class EmsPcsData extends BaseEntity
|
|||||||
@Excel(name = "日")
|
@Excel(name = "日")
|
||||||
private int dateDay;
|
private int dateDay;
|
||||||
|
|
||||||
|
/** 通信状态 */
|
||||||
|
@Excel(name = "通信状态")
|
||||||
|
private String communicationStatus;
|
||||||
|
|
||||||
public void setId(Long id)
|
public void setId(Long id)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
@ -434,6 +438,16 @@ public class EmsPcsData extends BaseEntity
|
|||||||
this.dateDay = dateDay;
|
this.dateDay = dateDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setCommunicationStatus(String communicationStatus)
|
||||||
|
{
|
||||||
|
this.communicationStatus = communicationStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCommunicationStatus()
|
||||||
|
{
|
||||||
|
return communicationStatus;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
@ -472,6 +486,8 @@ public class EmsPcsData extends BaseEntity
|
|||||||
.append("deviceId", getDeviceId())
|
.append("deviceId", getDeviceId())
|
||||||
.append("dateMonth", getDateMonth())
|
.append("dateMonth", getDateMonth())
|
||||||
.append("dateDay", getDateDay())
|
.append("dateDay", getDateDay())
|
||||||
|
.append("communicationStatus", getCommunicationStatus())
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,91 @@
|
|||||||
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PCS支路数据
|
||||||
|
*
|
||||||
|
* @author xzzn
|
||||||
|
* @date 2025-06-24
|
||||||
|
*/
|
||||||
|
public class PcsBranchInfo
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 放电状态 */
|
||||||
|
private String dischargeStatus;
|
||||||
|
|
||||||
|
/** 直流功率 (kW) */
|
||||||
|
private BigDecimal dcPower;
|
||||||
|
|
||||||
|
/** 直流电压 (V) */
|
||||||
|
private BigDecimal dcVoltage;
|
||||||
|
|
||||||
|
/** 直流电流 (A) */
|
||||||
|
private BigDecimal dcCurrent;
|
||||||
|
|
||||||
|
/** 站点id */
|
||||||
|
private Long siteId;
|
||||||
|
|
||||||
|
/** 设备唯一标识符 */
|
||||||
|
private Long deviceId;
|
||||||
|
|
||||||
|
/** 支路id */
|
||||||
|
private Long branchId;
|
||||||
|
|
||||||
|
public String getDischargeStatus() {
|
||||||
|
return dischargeStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDischargeStatus(String dischargeStatus) {
|
||||||
|
this.dischargeStatus = dischargeStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDcPower() {
|
||||||
|
return dcPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDcPower(BigDecimal dcPower) {
|
||||||
|
this.dcPower = dcPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDcVoltage() {
|
||||||
|
return dcVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDcVoltage(BigDecimal dcVoltage) {
|
||||||
|
this.dcVoltage = dcVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDcCurrent() {
|
||||||
|
return dcCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDcCurrent(BigDecimal dcCurrent) {
|
||||||
|
this.dcCurrent = dcCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getSiteId() {
|
||||||
|
return siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSiteId(Long siteId) {
|
||||||
|
this.siteId = siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceId(Long deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getBranchId() {
|
||||||
|
return branchId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBranchId(Long branchId) {
|
||||||
|
this.branchId = branchId;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,284 @@
|
|||||||
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xzzn.common.annotation.Excel;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单个PCS详细数据
|
||||||
|
*
|
||||||
|
* @author xzzn
|
||||||
|
* @date 2025-06-24
|
||||||
|
*/
|
||||||
|
public class PcsDetailInfoVo implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 通讯状态 */
|
||||||
|
private String communicationStatus;
|
||||||
|
|
||||||
|
/** 数据更新时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date dataUpdateTime;
|
||||||
|
|
||||||
|
/** 工作状态 */
|
||||||
|
private String workStatus;
|
||||||
|
|
||||||
|
/** 并网状态 */
|
||||||
|
private String gridStatus;
|
||||||
|
|
||||||
|
/** 设备状态 */
|
||||||
|
private String deviceStatus;
|
||||||
|
|
||||||
|
/** 控制模式 */
|
||||||
|
private String controlMode;
|
||||||
|
|
||||||
|
/** 总交流有功电率 (kW) */
|
||||||
|
private BigDecimal totalActivePower;
|
||||||
|
|
||||||
|
/** 当天交流充电量 (kWh) */
|
||||||
|
private BigDecimal dailyAcChargeEnergy;
|
||||||
|
|
||||||
|
/** A相电压 (V) */
|
||||||
|
private BigDecimal aPhaseVoltage;
|
||||||
|
|
||||||
|
/** A相电流 (A) */
|
||||||
|
private BigDecimal aPhaseCurrent;
|
||||||
|
|
||||||
|
/** 总交流无功电率 (kVar) */
|
||||||
|
private BigDecimal totalReactivePower;
|
||||||
|
|
||||||
|
/** 当天交流放电量 (kWh) */
|
||||||
|
@Excel(name = " (kWh)")
|
||||||
|
private BigDecimal dailyAcDischargeEnergy;
|
||||||
|
|
||||||
|
/** B相电压 (V) */
|
||||||
|
private BigDecimal bPhaseVoltage;
|
||||||
|
|
||||||
|
/** B相电流 (A) */
|
||||||
|
private BigDecimal bPhaseCurrent;
|
||||||
|
|
||||||
|
/** 总交流视在功率 (kVA) */
|
||||||
|
private BigDecimal totalApparentPower;
|
||||||
|
|
||||||
|
/** PCS模块温度 (℃) */
|
||||||
|
private BigDecimal pcsModuleTemperature;
|
||||||
|
|
||||||
|
/** C相电压 (V) */
|
||||||
|
private BigDecimal cPhaseVoltage;
|
||||||
|
|
||||||
|
/** C相电流 (A) */
|
||||||
|
private BigDecimal cPhaseCurrent;
|
||||||
|
|
||||||
|
/** 总交流功率因数 */
|
||||||
|
private BigDecimal totalPowerFactor;
|
||||||
|
|
||||||
|
/** PCS环境温度 (℃) */
|
||||||
|
private BigDecimal pcsEnvironmentTemperature;
|
||||||
|
|
||||||
|
/** 交流频率 (Hz) */
|
||||||
|
private BigDecimal acFrequency;
|
||||||
|
|
||||||
|
/** 站点id */
|
||||||
|
private Long siteId;
|
||||||
|
|
||||||
|
/** 设备唯一标识符 */
|
||||||
|
private Long deviceId;
|
||||||
|
|
||||||
|
private List<PcsBranchInfo> pcsBranchInfoList;
|
||||||
|
|
||||||
|
public Long getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceId(Long deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getSiteId() {
|
||||||
|
return siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSiteId(Long siteId) {
|
||||||
|
this.siteId = siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAcFrequency() {
|
||||||
|
return acFrequency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAcFrequency(BigDecimal acFrequency) {
|
||||||
|
this.acFrequency = acFrequency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPcsEnvironmentTemperature() {
|
||||||
|
return pcsEnvironmentTemperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPcsEnvironmentTemperature(BigDecimal pcsEnvironmentTemperature) {
|
||||||
|
this.pcsEnvironmentTemperature = pcsEnvironmentTemperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTotalPowerFactor() {
|
||||||
|
return totalPowerFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalPowerFactor(BigDecimal totalPowerFactor) {
|
||||||
|
this.totalPowerFactor = totalPowerFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getcPhaseCurrent() {
|
||||||
|
return cPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setcPhaseCurrent(BigDecimal cPhaseCurrent) {
|
||||||
|
this.cPhaseCurrent = cPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getcPhaseVoltage() {
|
||||||
|
return cPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setcPhaseVoltage(BigDecimal cPhaseVoltage) {
|
||||||
|
this.cPhaseVoltage = cPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPcsModuleTemperature() {
|
||||||
|
return pcsModuleTemperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPcsModuleTemperature(BigDecimal pcsModuleTemperature) {
|
||||||
|
this.pcsModuleTemperature = pcsModuleTemperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTotalApparentPower() {
|
||||||
|
return totalApparentPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalApparentPower(BigDecimal totalApparentPower) {
|
||||||
|
this.totalApparentPower = totalApparentPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getbPhaseCurrent() {
|
||||||
|
return bPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setbPhaseCurrent(BigDecimal bPhaseCurrent) {
|
||||||
|
this.bPhaseCurrent = bPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getbPhaseVoltage() {
|
||||||
|
return bPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setbPhaseVoltage(BigDecimal bPhaseVoltage) {
|
||||||
|
this.bPhaseVoltage = bPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDailyAcDischargeEnergy() {
|
||||||
|
return dailyAcDischargeEnergy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyAcDischargeEnergy(BigDecimal dailyAcDischargeEnergy) {
|
||||||
|
this.dailyAcDischargeEnergy = dailyAcDischargeEnergy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTotalReactivePower() {
|
||||||
|
return totalReactivePower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalReactivePower(BigDecimal totalReactivePower) {
|
||||||
|
this.totalReactivePower = totalReactivePower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getaPhaseCurrent() {
|
||||||
|
return aPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setaPhaseCurrent(BigDecimal aPhaseCurrent) {
|
||||||
|
this.aPhaseCurrent = aPhaseCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getaPhaseVoltage() {
|
||||||
|
return aPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setaPhaseVoltage(BigDecimal aPhaseVoltage) {
|
||||||
|
this.aPhaseVoltage = aPhaseVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDailyAcChargeEnergy() {
|
||||||
|
return dailyAcChargeEnergy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyAcChargeEnergy(BigDecimal dailyAcChargeEnergy) {
|
||||||
|
this.dailyAcChargeEnergy = dailyAcChargeEnergy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTotalActivePower() {
|
||||||
|
return totalActivePower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalActivePower(BigDecimal totalActivePower) {
|
||||||
|
this.totalActivePower = totalActivePower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getControlMode() {
|
||||||
|
return controlMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setControlMode(String controlMode) {
|
||||||
|
this.controlMode = controlMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDeviceStatus() {
|
||||||
|
return deviceStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceStatus(String deviceStatus) {
|
||||||
|
this.deviceStatus = deviceStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGridStatus() {
|
||||||
|
return gridStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGridStatus(String gridStatus) {
|
||||||
|
this.gridStatus = gridStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkStatus() {
|
||||||
|
return workStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkStatus(String workStatus) {
|
||||||
|
this.workStatus = workStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataUpdateTime() {
|
||||||
|
return dataUpdateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataUpdateTime(Date dataUpdateTime) {
|
||||||
|
this.dataUpdateTime = dataUpdateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PcsBranchInfo> getPcsBranchInfoList() {
|
||||||
|
return pcsBranchInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCommunicationStatus() {
|
||||||
|
return communicationStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommunicationStatus(String communicationStatus) {
|
||||||
|
this.communicationStatus = communicationStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPcsBranchInfoList(List<PcsBranchInfo> pcsBranchInfoList) {
|
||||||
|
this.pcsBranchInfoList = pcsBranchInfoList;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
package com.xzzn.ems.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.xzzn.ems.domain.EmsPcsBranchData;
|
||||||
|
import com.xzzn.ems.domain.vo.PcsBranchInfo;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pcs支路数据Mapper接口
|
||||||
|
*
|
||||||
|
* @author xzzn
|
||||||
|
* @date 2025-06-24
|
||||||
|
*/
|
||||||
|
public interface EmsPcsBranchDataMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询pcs支路数据
|
||||||
|
*
|
||||||
|
* @param id pcs支路数据主键
|
||||||
|
* @return pcs支路数据
|
||||||
|
*/
|
||||||
|
public EmsPcsBranchData selectEmsPcsBranchDataById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询pcs支路数据列表
|
||||||
|
*
|
||||||
|
* @param emsPcsBranchData pcs支路数据
|
||||||
|
* @return pcs支路数据集合
|
||||||
|
*/
|
||||||
|
public List<EmsPcsBranchData> selectEmsPcsBranchDataList(EmsPcsBranchData emsPcsBranchData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增pcs支路数据
|
||||||
|
*
|
||||||
|
* @param emsPcsBranchData pcs支路数据
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改pcs支路数据
|
||||||
|
*
|
||||||
|
* @param emsPcsBranchData pcs支路数据
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateEmsPcsBranchData(EmsPcsBranchData emsPcsBranchData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除pcs支路数据
|
||||||
|
*
|
||||||
|
* @param id pcs支路数据主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteEmsPcsBranchDataById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除pcs支路数据
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteEmsPcsBranchDataByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据site_id和device_id获取支路最新数据
|
||||||
|
* @param siteId
|
||||||
|
* @param deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<PcsBranchInfo> getPcsBranchInfoList(@Param("siteId")Long siteId, @Param("deviceId")Long deviceId);
|
||||||
|
}
|
@ -92,9 +92,9 @@ public interface EmsPcsDataMapper
|
|||||||
public List<ElectricIndexList> getElectDataList();
|
public List<ElectricIndexList> getElectDataList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据site_id获取pcs最新update的数据
|
* 根据site_id获取所有pcs最新update的数据
|
||||||
* @param siteId
|
* @param siteId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public EmsPcsData getPcsDetailInfoBySiteId(Long siteId);
|
public List<EmsPcsData> getPcsDetailInfoBySiteId(Long siteId);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package com.xzzn.ems.service;
|
package com.xzzn.ems.service;
|
||||||
|
|
||||||
import com.xzzn.ems.domain.EmsPcsData;
|
|
||||||
import com.xzzn.ems.domain.vo.*;
|
import com.xzzn.ems.domain.vo.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单点监控 服务层
|
* 单点监控 服务层
|
||||||
*
|
*
|
||||||
@ -17,7 +18,7 @@ public interface ISingleSiteService
|
|||||||
|
|
||||||
public SiteMonitorRuningInfoVo getRunningGraph(Long siteId);
|
public SiteMonitorRuningInfoVo getRunningGraph(Long siteId);
|
||||||
|
|
||||||
public EmsPcsData getPcsDetailInfo(Long siteId);
|
public List<PcsDetailInfoVo> getPcsDetailInfo(Long siteId);
|
||||||
|
|
||||||
public BMSOverViewVo getBMSOverView(Long siteId);
|
public BMSOverViewVo getBMSOverView(Long siteId);
|
||||||
|
|
||||||
|
@ -11,8 +11,10 @@ import com.xzzn.ems.mapper.*;
|
|||||||
import com.xzzn.ems.service.ISingleSiteService;
|
import com.xzzn.ems.service.ISingleSiteService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -32,6 +34,8 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
private EmsBatteryStackMapper emsBatteryStackMapper;
|
private EmsBatteryStackMapper emsBatteryStackMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmsBatteryClusterMapper emsBatteryClusterMapper;
|
private EmsBatteryClusterMapper emsBatteryClusterMapper;
|
||||||
|
@Autowired
|
||||||
|
private EmsPcsBranchDataMapper emsPcsBranchDataMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId) {
|
public SiteMonitorHomeVo getSiteMonitorDataVo(Long siteId) {
|
||||||
@ -43,7 +47,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
siteMonitorHomeVo.setSiteMonitorHomeAlarmVo(siteMonitorHomeAlarmVo);
|
siteMonitorHomeVo.setSiteMonitorHomeAlarmVo(siteMonitorHomeAlarmVo);
|
||||||
// 能量数据
|
// 能量数据
|
||||||
List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId);
|
List<SiteMonitorDataVo> siteMonitorDataVoList = emsPcsDataMapper.getPcsDataBySiteId(siteId);
|
||||||
if (siteMonitorDataVoList != null && !siteMonitorDataVoList.isEmpty()) {
|
if (!CollectionUtils.isEmpty(siteMonitorDataVoList)) {
|
||||||
BigDecimal dayChargeCap = new BigDecimal(0);
|
BigDecimal dayChargeCap = new BigDecimal(0);
|
||||||
BigDecimal dayDisChargeCap = new BigDecimal(0);
|
BigDecimal dayDisChargeCap = new BigDecimal(0);
|
||||||
BigDecimal totalChargeCap = new BigDecimal(0);
|
BigDecimal totalChargeCap = new BigDecimal(0);
|
||||||
@ -125,10 +129,31 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据site_id获取pcs详细数据
|
// 根据site_id获取pcs详细数据+支路数据
|
||||||
@Override
|
@Override
|
||||||
public EmsPcsData getPcsDetailInfo(Long siteId) {
|
public List<PcsDetailInfoVo> getPcsDetailInfo(Long siteId) {
|
||||||
return emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId);
|
List<PcsDetailInfoVo> pcsDetailInfoVoList = new ArrayList<>();
|
||||||
|
|
||||||
|
if (siteId != null) {
|
||||||
|
// 获取pcs最新数据
|
||||||
|
List<EmsPcsData> emsPcsDataList = emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId);
|
||||||
|
if (!CollectionUtils.isEmpty(emsPcsDataList)) {
|
||||||
|
for (EmsPcsData sitePcsData : emsPcsDataList) {
|
||||||
|
// 赋值
|
||||||
|
PcsDetailInfoVo pcsDetailInfoVo = new PcsDetailInfoVo();
|
||||||
|
BeanUtils.copyProperties(sitePcsData, pcsDetailInfoVo);
|
||||||
|
|
||||||
|
Long deviceId = sitePcsData.getDeviceId();
|
||||||
|
// 获取支路最新数据
|
||||||
|
if (deviceId != null) {
|
||||||
|
List<PcsBranchInfo> pcsBranchInfoList = emsPcsBranchDataMapper.getPcsBranchInfoList(siteId, deviceId);
|
||||||
|
pcsDetailInfoVo.setPcsBranchInfoList(pcsBranchInfoList);
|
||||||
|
}
|
||||||
|
pcsDetailInfoVoList.add(pcsDetailInfoVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pcsDetailInfoVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取BMS总览数据
|
// 获取BMS总览数据
|
||||||
|
@ -0,0 +1,118 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.xzzn.ems.mapper.EmsPcsBranchDataMapper">
|
||||||
|
|
||||||
|
<resultMap type="EmsPcsBranchData" id="EmsPcsBranchDataResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="dischargeStatus" column="discharge_status" />
|
||||||
|
<result property="dcPower" column="dc_power" />
|
||||||
|
<result property="dcVoltage" column="dc_voltage" />
|
||||||
|
<result property="dcCurrent" column="dc_current" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
<result property="siteId" column="site_id" />
|
||||||
|
<result property="deviceId" column="device_id" />
|
||||||
|
<result property="branchId" column="branch_id" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectEmsPcsBranchDataVo">
|
||||||
|
select id, discharge_status, dc_power, dc_voltage, dc_current, create_by, create_time, update_by, update_time, remark, site_id, device_id, branch_id from ems_pcs_branch_data
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectEmsPcsBranchDataList" parameterType="EmsPcsBranchData" resultMap="EmsPcsBranchDataResult">
|
||||||
|
<include refid="selectEmsPcsBranchDataVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="dischargeStatus != null and dischargeStatus != ''"> and discharge_status = #{dischargeStatus}</if>
|
||||||
|
<if test="dcPower != null "> and dc_power = #{dcPower}</if>
|
||||||
|
<if test="dcVoltage != null "> and dc_voltage = #{dcVoltage}</if>
|
||||||
|
<if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if>
|
||||||
|
<if test="siteId != null "> and site_id = #{siteId}</if>
|
||||||
|
<if test="deviceId != null "> and device_id = #{deviceId}</if>
|
||||||
|
<if test="branchId != null "> and branch_id = #{branchId}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEmsPcsBranchDataById" parameterType="Long" resultMap="EmsPcsBranchDataResult">
|
||||||
|
<include refid="selectEmsPcsBranchDataVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertEmsPcsBranchData" parameterType="EmsPcsBranchData" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into ems_pcs_branch_data
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="dischargeStatus != null">discharge_status,</if>
|
||||||
|
<if test="dcPower != null">dc_power,</if>
|
||||||
|
<if test="dcVoltage != null">dc_voltage,</if>
|
||||||
|
<if test="dcCurrent != null">dc_current,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
<if test="siteId != null">site_id,</if>
|
||||||
|
<if test="deviceId != null">device_id,</if>
|
||||||
|
<if test="branchId != null">branch_id,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="dischargeStatus != null">#{dischargeStatus},</if>
|
||||||
|
<if test="dcPower != null">#{dcPower},</if>
|
||||||
|
<if test="dcVoltage != null">#{dcVoltage},</if>
|
||||||
|
<if test="dcCurrent != null">#{dcCurrent},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
<if test="siteId != null">#{siteId},</if>
|
||||||
|
<if test="deviceId != null">#{deviceId},</if>
|
||||||
|
<if test="branchId != null">#{branchId},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateEmsPcsBranchData" parameterType="EmsPcsBranchData">
|
||||||
|
update ems_pcs_branch_data
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="dischargeStatus != null">discharge_status = #{dischargeStatus},</if>
|
||||||
|
<if test="dcPower != null">dc_power = #{dcPower},</if>
|
||||||
|
<if test="dcVoltage != null">dc_voltage = #{dcVoltage},</if>
|
||||||
|
<if test="dcCurrent != null">dc_current = #{dcCurrent},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="siteId != null">site_id = #{siteId},</if>
|
||||||
|
<if test="deviceId != null">device_id = #{deviceId},</if>
|
||||||
|
<if test="branchId != null">branch_id = #{branchId},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteEmsPcsBranchDataById" parameterType="Long">
|
||||||
|
delete from ems_pcs_branch_data where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteEmsPcsBranchDataByIds" parameterType="String">
|
||||||
|
delete from ems_pcs_branch_data where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<select id="getPcsBranchInfoList" resultType="com.xzzn.ems.domain.vo.PcsBranchInfo">
|
||||||
|
select tmp.branch_id as branchId, tmp.discharge_status as dischargeStatus,
|
||||||
|
tmp.dc_power as dcPower, tmp.dc_voltage as dcVoltage,
|
||||||
|
tmp.dc_current as dcCurrent, tmp.site_id as siteId, tmp.device_id as deviceId
|
||||||
|
from ems_pcs_branch_data tmp
|
||||||
|
where tmp.site_id = #{siteId}
|
||||||
|
and tmp.device_id = #{deviceId}
|
||||||
|
and tmp.update_time = (select MAX(t.update_time) FROM ems_pcs_branch_data t where t.site_id = tmp.site_id
|
||||||
|
and t.device_id = tmp.device_id and t.branch_id = tmp.branch_id)
|
||||||
|
order by tmp.branch_id
|
||||||
|
</select>
|
||||||
|
</mapper>
|
@ -40,10 +40,11 @@
|
|||||||
<result property="deviceId" column="device_id" />
|
<result property="deviceId" column="device_id" />
|
||||||
<result property="dateMonth" column="date_month" />
|
<result property="dateMonth" column="date_month" />
|
||||||
<result property="dateDay" column="date_day" />
|
<result property="dateDay" column="date_day" />
|
||||||
|
<result property="communicationStatus" column="communication_status" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectEmsPcsDataVo">
|
<sql id="selectEmsPcsDataVo">
|
||||||
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
|
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, communication_status from ems_pcs_data
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectEmsPcsDataList" parameterType="EmsPcsData" resultMap="EmsPcsDataResult">
|
<select id="selectEmsPcsDataList" parameterType="EmsPcsData" resultMap="EmsPcsDataResult">
|
||||||
@ -76,6 +77,9 @@
|
|||||||
<if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if>
|
<if test="dcCurrent != null "> and dc_current = #{dcCurrent}</if>
|
||||||
<if test="siteId != null "> and site_id = #{siteId}</if>
|
<if test="siteId != null "> and site_id = #{siteId}</if>
|
||||||
<if test="deviceId != null "> and device_id = #{deviceId}</if>
|
<if test="deviceId != null "> and device_id = #{deviceId}</if>
|
||||||
|
<if test="dateMonth != null "> and date_month = #{dateMonth}</if>
|
||||||
|
<if test="dateDay != null "> and date_day = #{dateDay}</if>
|
||||||
|
<if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@ -119,6 +123,9 @@
|
|||||||
<if test="remark != null">remark,</if>
|
<if test="remark != null">remark,</if>
|
||||||
<if test="siteId != null">site_id,</if>
|
<if test="siteId != null">site_id,</if>
|
||||||
<if test="deviceId != null">device_id,</if>
|
<if test="deviceId != null">device_id,</if>
|
||||||
|
<if test="dateMonth != null">date_month,</if>
|
||||||
|
<if test="dateDay != null">date_day,</if>
|
||||||
|
<if test="communicationStatus != null">communication_status,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="dataUpdateTime != null">#{dataUpdateTime},</if>
|
<if test="dataUpdateTime != null">#{dataUpdateTime},</if>
|
||||||
@ -153,6 +160,9 @@
|
|||||||
<if test="remark != null">#{remark},</if>
|
<if test="remark != null">#{remark},</if>
|
||||||
<if test="siteId != null">#{siteId},</if>
|
<if test="siteId != null">#{siteId},</if>
|
||||||
<if test="deviceId != null">#{deviceId},</if>
|
<if test="deviceId != null">#{deviceId},</if>
|
||||||
|
<if test="dateMonth != null">#{dateMonth},</if>
|
||||||
|
<if test="dateDay != null">#{dateDay},</if>
|
||||||
|
<if test="communicationStatus != null">#{communicationStatus},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
@ -191,6 +201,9 @@
|
|||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
<if test="siteId != null">site_id = #{siteId},</if>
|
<if test="siteId != null">site_id = #{siteId},</if>
|
||||||
<if test="deviceId != null">device_id = #{deviceId},</if>
|
<if test="deviceId != null">device_id = #{deviceId},</if>
|
||||||
|
<if test="dateMonth != null">date_month = #{dateMonth},</if>
|
||||||
|
<if test="dateDay != null">date_day = #{dateDay},</if>
|
||||||
|
<if test="communicationStatus != null">communication_status = #{communicationStatus},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
@ -256,8 +269,11 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getPcsDetailInfoBySiteId" parameterType="Long" resultMap="EmsPcsDataResult">
|
<select id="getPcsDetailInfoBySiteId" parameterType="Long" resultMap="EmsPcsDataResult">
|
||||||
<include refid="selectEmsPcsDataVo"/>
|
select tmp.*
|
||||||
where site_id = #{siteId}
|
from ems_pcs_data tmp
|
||||||
order by data_update_time desc limit 1
|
where tmp.site_id = #{siteId}
|
||||||
|
and tmp.data_update_time = (select MAX(data_update_time) FROM ems_pcs_data where site_id = tmp.site_id
|
||||||
|
and device_id = tmp.device_id)
|
||||||
|
order by tmp.device_id
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Reference in New Issue
Block a user