From 46e0b94571025d4361dd9c398aa0693967a2fcfd Mon Sep 17 00:00:00 2001 From: mashili Date: Wed, 25 Jun 2025 11:27:53 +0800 Subject: [PATCH] =?UTF-8?q?PCS+BMS=E6=80=BB=E8=A7=88+=E7=94=B5=E6=B1=A0?= =?UTF-8?q?=E7=B0=87=E6=8A=BD=E6=95=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xzzn/ems/domain/EmsDevicesSetting.java | 296 ++++++++++++++++++ .../java/com/xzzn/ems/domain/EmsPcsData.java | 15 - .../ems/domain/vo/BMSBatteryClusterVo.java | 34 +- .../com/xzzn/ems/domain/vo/BMSOverViewVo.java | 34 +- .../xzzn/ems/domain/vo/PcsDetailInfoVo.java | 15 +- .../ems/mapper/EmsBatteryClusterMapper.java | 3 +- .../ems/mapper/EmsBatteryStackMapper.java | 3 +- .../ems/mapper/EmsDevicesSettingMapper.java | 61 ++++ .../com/xzzn/ems/mapper/EmsPcsDataMapper.java | 3 +- .../xzzn/ems/service/ISingleSiteService.java | 4 +- .../service/impl/SingleSiteServiceImpl.java | 59 ++-- .../mapper/ems/EmsBatteryClusterMapper.xml | 15 +- .../mapper/ems/EmsBatteryStackMapper.xml | 15 +- .../mapper/ems/EmsDevicesSettingMapper.xml | 136 ++++++++ .../resources/mapper/ems/EmsPcsDataMapper.xml | 17 +- 15 files changed, 643 insertions(+), 67 deletions(-) create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/EmsDevicesSetting.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java create mode 100644 ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsDevicesSetting.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsDevicesSetting.java new file mode 100644 index 0000000..de71eee --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsDevicesSetting.java @@ -0,0 +1,296 @@ +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; + +/** + * Modbus设备配置对象 ems_devices_setting + * + * @author xzzn + * @date 2025-06-24 + */ +public class EmsDevicesSetting extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 设备ID,主键自增长 */ + private Long id; + + /** 设备名称,用于标识设备 */ + @Excel(name = "设备名称,用于标识设备") + private String deviceName; + + /** 设备类型: TCP (网络设备),RTU(串口设备) */ + @Excel(name = "设备类型: TCP ", readConverterExp = "网=络设备") + private String deviceType; + + /** 从站地址,默认为1 */ + @Excel(name = "从站地址,默认为1") + private Long slaveId; + + /** 通信超时时间(毫秒),默认1000ms */ + @Excel(name = "通信超时时间(毫秒),默认1000ms") + private Long timeoutMs; + + /** 通信失败重试次数,默认3次 */ + @Excel(name = "通信失败重试次数,默认3次") + private Long retries; + + /** TCP设备的IP地址,仅TCP类型需要 */ + @Excel(name = "TCP设备的IP地址,仅TCP类型需要") + private String ipAddress; + + /** TCP端口号,通常502,仅TCP类型需要 */ + @Excel(name = "TCP端口号,通常502,仅TCP类型需要") + private Long ipPort; + + /** 串口路径(如COM3或/dev/ttyUSB0),仅RTU类型需要 */ + @Excel(name = "串口路径(如COM3或/dev/ttyUSB0),仅RTU类型需要") + private String serialPort; + + /** 波特率(如9600,19200),仅RTU类型需要 */ + @Excel(name = "波特率(如9600,19200),仅RTU类型需要") + private Long baudRate; + + /** 数据位(通常8),仅RTU类型需要 */ + @Excel(name = "数据位(通常8),仅RTU类型需要") + private Long dataBits; + + /** 停止位(1或2),仅RTU类型需要 */ + @Excel(name = "停止位(1或2),仅RTU类型需要") + private Long stopBits; + + /** 校验位(NONE无校验/EVEN偶校验/ODD奇校验),仅RTU类型需要 */ + @Excel(name = "校验位(NONE无校验/EVEN偶校验/ODD奇校验),仅RTU类型需要") + private String parity; + + /** 设备描述信息 */ + @Excel(name = "设备描述信息") + private String description; + + /** 记录创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "记录创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createdAt; + + /** 记录最后更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "记录最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date updatedAt; + + /** 站点id */ + @Excel(name = "站点id") + private Long siteId; + + /** 通信状态 */ + @Excel(name = "通信状态") + private String communicationStatus; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setDeviceName(String deviceName) + { + this.deviceName = deviceName; + } + + public String getDeviceName() + { + return deviceName; + } + + public void setDeviceType(String deviceType) + { + this.deviceType = deviceType; + } + + public String getDeviceType() + { + return deviceType; + } + + public void setSlaveId(Long slaveId) + { + this.slaveId = slaveId; + } + + public Long getSlaveId() + { + return slaveId; + } + + public void setTimeoutMs(Long timeoutMs) + { + this.timeoutMs = timeoutMs; + } + + public Long getTimeoutMs() + { + return timeoutMs; + } + + public void setRetries(Long retries) + { + this.retries = retries; + } + + public Long getRetries() + { + return retries; + } + + public void setIpAddress(String ipAddress) + { + this.ipAddress = ipAddress; + } + + public String getIpAddress() + { + return ipAddress; + } + + public void setIpPort(Long ipPort) + { + this.ipPort = ipPort; + } + + public Long getIpPort() + { + return ipPort; + } + + public void setSerialPort(String serialPort) + { + this.serialPort = serialPort; + } + + public String getSerialPort() + { + return serialPort; + } + + public void setBaudRate(Long baudRate) + { + this.baudRate = baudRate; + } + + public Long getBaudRate() + { + return baudRate; + } + + public void setDataBits(Long dataBits) + { + this.dataBits = dataBits; + } + + public Long getDataBits() + { + return dataBits; + } + + public void setStopBits(Long stopBits) + { + this.stopBits = stopBits; + } + + public Long getStopBits() + { + return stopBits; + } + + public void setParity(String parity) + { + this.parity = parity; + } + + public String getParity() + { + return parity; + } + + public void setDescription(String description) + { + this.description = description; + } + + public String getDescription() + { + return description; + } + + public void setCreatedAt(Date createdAt) + { + this.createdAt = createdAt; + } + + public Date getCreatedAt() + { + return createdAt; + } + + public void setUpdatedAt(Date updatedAt) + { + this.updatedAt = updatedAt; + } + + public Date getUpdatedAt() + { + return updatedAt; + } + + public void setSiteId(Long siteId) + { + this.siteId = siteId; + } + + public Long getSiteId() + { + return siteId; + } + + public void setCommunicationStatus(String communicationStatus) + { + this.communicationStatus = communicationStatus; + } + + public String getCommunicationStatus() + { + return communicationStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("deviceName", getDeviceName()) + .append("deviceType", getDeviceType()) + .append("slaveId", getSlaveId()) + .append("timeoutMs", getTimeoutMs()) + .append("retries", getRetries()) + .append("ipAddress", getIpAddress()) + .append("ipPort", getIpPort()) + .append("serialPort", getSerialPort()) + .append("baudRate", getBaudRate()) + .append("dataBits", getDataBits()) + .append("stopBits", getStopBits()) + .append("parity", getParity()) + .append("description", getDescription()) + .append("createdAt", getCreatedAt()) + .append("updatedAt", getUpdatedAt()) + .append("siteId", getSiteId()) + .append("communicationStatus", getCommunicationStatus()) + .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 index 031d813..98c2c72 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsPcsData.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsPcsData.java @@ -138,10 +138,6 @@ public class EmsPcsData extends BaseEntity @Excel(name = "日") private int dateDay; - /** 通信状态 */ - @Excel(name = "通信状态") - private String communicationStatus; - public void setId(Long id) { this.id = id; @@ -438,16 +434,6 @@ public class EmsPcsData extends BaseEntity this.dateDay = dateDay; } - public void setCommunicationStatus(String communicationStatus) - { - this.communicationStatus = communicationStatus; - } - - public String getCommunicationStatus() - { - return communicationStatus; - } - @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -486,7 +472,6 @@ public class EmsPcsData extends BaseEntity .append("deviceId", getDeviceId()) .append("dateMonth", getDateMonth()) .append("dateDay", getDateDay()) - .append("communicationStatus", getCommunicationStatus()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSBatteryClusterVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSBatteryClusterVo.java index ecd2dcc..f576b6b 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSBatteryClusterVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSBatteryClusterVo.java @@ -9,8 +9,8 @@ import java.util.List; */ public class BMSBatteryClusterVo { - - private Long id; + /** 设备名称 */ + private String deviceName; /** 工作状态 */ private String workStatus; @@ -51,14 +51,20 @@ public class BMSBatteryClusterVo { /** 当前SOC (%) */ private BigDecimal currentSoc; + /** 站点id */ + private Long siteId; + + /** 设备唯一标识符 */ + private Long deviceId; + private List batteryDataList; - public Long getId() { - return id; + public String getDeviceName() { + return deviceName; } - public void setId(Long id) { - this.id = id; + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; } public String getWorkStatus() { @@ -165,6 +171,22 @@ public class BMSBatteryClusterVo { this.currentSoc = currentSoc; } + 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 List getBatteryDataList() { return batteryDataList; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSOverViewVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSOverViewVo.java index 1426d43..e5b2a43 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSOverViewVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BMSOverViewVo.java @@ -9,8 +9,8 @@ import java.util.List; */ public class BMSOverViewVo { - - private Long id; + /** 设备名称 */ + private String deviceName; /** 工作状态 */ private String workStatus; @@ -51,14 +51,20 @@ public class BMSOverViewVo { /** 当前SOC (%) */ private BigDecimal currentSoc; + /** 站点id */ + private Long siteId; + + /** 设备唯一标识符 */ + private Long deviceId; + private List batteryDataList; - public Long getId() { - return id; + public String getDeviceName() { + return deviceName; } - public void setId(Long id) { - this.id = id; + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; } public String getWorkStatus() { @@ -165,6 +171,22 @@ public class BMSOverViewVo { this.currentSoc = currentSoc; } + 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 List getBatteryDataList() { return batteryDataList; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsDetailInfoVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsDetailInfoVo.java index e20980e..1fa77c1 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsDetailInfoVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PcsDetailInfoVo.java @@ -3,7 +3,6 @@ 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; @@ -14,8 +13,7 @@ import java.util.List; * @author xzzn * @date 2025-06-24 */ -public class PcsDetailInfoVo implements Serializable { - private static final long serialVersionUID = 1L; +public class PcsDetailInfoVo { /** 通讯状态 */ private String communicationStatus; @@ -88,6 +86,9 @@ public class PcsDetailInfoVo implements Serializable { /** 设备唯一标识符 */ private Long deviceId; + /** 设备名称 */ + private String deviceName; + private List pcsBranchInfoList; public Long getDeviceId() { @@ -281,4 +282,12 @@ public class PcsDetailInfoVo implements Serializable { public void setPcsBranchInfoList(List pcsBranchInfoList) { this.pcsBranchInfoList = pcsBranchInfoList; } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java index a761ee4..a7c54cd 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java @@ -2,6 +2,7 @@ package com.xzzn.ems.mapper; import java.util.List; import com.xzzn.ems.domain.EmsBatteryCluster; +import com.xzzn.ems.domain.vo.BMSBatteryClusterVo; /** * 电池簇数据Mapper接口 @@ -64,5 +65,5 @@ public interface EmsBatteryClusterMapper * @param siteId * @return */ - public EmsBatteryCluster getBMSBatteryCluster(Long siteId); + public List getBMSBatteryCluster(Long siteId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java index a095dc8..e1b8155 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java @@ -2,6 +2,7 @@ package com.xzzn.ems.mapper; import java.util.List; import com.xzzn.ems.domain.EmsBatteryStack; +import com.xzzn.ems.domain.vo.BMSOverViewVo; /** * 电池堆数据Mapper接口 @@ -64,5 +65,5 @@ public interface EmsBatteryStackMapper * @param siteId * @return */ - public EmsBatteryStack selectEmsBatteryStackBySiteId(Long siteId); + public List selectEmsBatteryStackBySiteId(Long siteId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java new file mode 100644 index 0000000..a21507b --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java @@ -0,0 +1,61 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsDevicesSetting; + +/** + * Modbus设备配置Mapper接口 + * + * @author xzzn + * @date 2025-06-24 + */ +public interface EmsDevicesSettingMapper +{ + /** + * 查询Modbus设备配置 + * + * @param id Modbus设备配置主键 + * @return Modbus设备配置 + */ + public EmsDevicesSetting selectEmsDevicesSettingById(Long id); + + /** + * 查询Modbus设备配置列表 + * + * @param emsDevicesSetting Modbus设备配置 + * @return Modbus设备配置集合 + */ + public List selectEmsDevicesSettingList(EmsDevicesSetting emsDevicesSetting); + + /** + * 新增Modbus设备配置 + * + * @param emsDevicesSetting Modbus设备配置 + * @return 结果 + */ + public int insertEmsDevicesSetting(EmsDevicesSetting emsDevicesSetting); + + /** + * 修改Modbus设备配置 + * + * @param emsDevicesSetting Modbus设备配置 + * @return 结果 + */ + public int updateEmsDevicesSetting(EmsDevicesSetting emsDevicesSetting); + + /** + * 删除Modbus设备配置 + * + * @param id Modbus设备配置主键 + * @return 结果 + */ + public int deleteEmsDevicesSettingById(Long id); + + /** + * 批量删除Modbus设备配置 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsDevicesSettingByIds(Long[] ids); +} 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 index 8d224be..99d6e2b 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.xzzn.ems.domain.EmsPcsData; import com.xzzn.ems.domain.vo.ElectricIndexList; +import com.xzzn.ems.domain.vo.PcsDetailInfoVo; import com.xzzn.ems.domain.vo.SiteMonitorDataVo; import com.xzzn.ems.domain.vo.SiteMonitorRuningHeadInfoVo; @@ -96,5 +97,5 @@ public interface EmsPcsDataMapper * @param siteId * @return */ - public List getPcsDetailInfoBySiteId(Long siteId); + public List getPcsDetailInfoBySiteId(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 index 7eccbb0..55228a5 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java @@ -20,7 +20,7 @@ public interface ISingleSiteService public List getPcsDetailInfo(Long siteId); - public BMSOverViewVo getBMSOverView(Long siteId); + public List getBMSOverView(Long siteId); - public BMSBatteryClusterVo getBMSBatteryCluster(Long siteId); + public List getBMSBatteryCluster(Long siteId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index 715b28d..4401c97 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -1,11 +1,7 @@ package com.xzzn.ems.service.impl; import com.xzzn.common.utils.StringUtils; -import com.xzzn.common.utils.bean.BeanUtils; -import com.xzzn.ems.domain.EmsBatteryCluster; import com.xzzn.ems.domain.EmsBatteryData; -import com.xzzn.ems.domain.EmsBatteryStack; -import com.xzzn.ems.domain.EmsPcsData; import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.mapper.*; import com.xzzn.ems.service.ISingleSiteService; @@ -136,20 +132,15 @@ public class SingleSiteServiceImpl implements ISingleSiteService { if (siteId != null) { // 获取pcs最新数据 - List emsPcsDataList = emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId); - if (!CollectionUtils.isEmpty(emsPcsDataList)) { - for (EmsPcsData sitePcsData : emsPcsDataList) { - // 赋值 - PcsDetailInfoVo pcsDetailInfoVo = new PcsDetailInfoVo(); - BeanUtils.copyProperties(sitePcsData, pcsDetailInfoVo); - - Long deviceId = sitePcsData.getDeviceId(); + pcsDetailInfoVoList = emsPcsDataMapper.getPcsDetailInfoBySiteId(siteId); + if (!CollectionUtils.isEmpty(pcsDetailInfoVoList)) { + for (PcsDetailInfoVo pcsDetailInfoVo : pcsDetailInfoVoList) { + Long deviceId = pcsDetailInfoVo.getDeviceId(); // 获取支路最新数据 if (deviceId != null) { List pcsBranchInfoList = emsPcsBranchDataMapper.getPcsBranchInfoList(siteId, deviceId); pcsDetailInfoVo.setPcsBranchInfoList(pcsBranchInfoList); } - pcsDetailInfoVoList.add(pcsDetailInfoVo); } } } @@ -158,20 +149,42 @@ public class SingleSiteServiceImpl implements ISingleSiteService { // 获取BMS总览数据 @Override - public BMSOverViewVo getBMSOverView(Long siteId) { - BMSOverViewVo bmsOverViewVo = new BMSOverViewVo(); - EmsBatteryStack emsBatteryStack = emsBatteryStackMapper.selectEmsBatteryStackBySiteId(siteId); - BeanUtils.copyProperties(emsBatteryStack, bmsOverViewVo); - return bmsOverViewVo; + public List getBMSOverView(Long siteId) { + List bmsOverViewVoList = new ArrayList<>(); + + if (siteId != null) { + // 获取电池堆list + bmsOverViewVoList = emsBatteryStackMapper.selectEmsBatteryStackBySiteId(siteId); + if (!CollectionUtils.isEmpty(bmsOverViewVoList)) { + for (BMSOverViewVo bmsOverViewVo : bmsOverViewVoList) { + // 获取单体电池数据-待确认 + Long deviceId = bmsOverViewVo.getDeviceId(); + if (deviceId != null) { + List batteryDataList = new ArrayList(); + bmsOverViewVo.setBatteryDataList(batteryDataList); + } + } + } + } + return bmsOverViewVoList; } // 获取BMS电池簇数据 @Override - public BMSBatteryClusterVo getBMSBatteryCluster(Long siteId) { - BMSBatteryClusterVo bmsBatteryClusterVo = new BMSBatteryClusterVo(); - EmsBatteryCluster emsBatteryCluster = emsBatteryClusterMapper.getBMSBatteryCluster(siteId); - BeanUtils.copyProperties(emsBatteryCluster, bmsBatteryClusterVo); - return bmsBatteryClusterVo; + public List getBMSBatteryCluster(Long siteId) { + List bmsBatteryClusterVoList = new ArrayList<>(); + + if (siteId != null) { + bmsBatteryClusterVoList = emsBatteryClusterMapper.getBMSBatteryCluster(siteId); + if (!CollectionUtils.isEmpty(bmsBatteryClusterVoList)) { + for (BMSBatteryClusterVo bmsBatteryClusterVo : bmsBatteryClusterVoList) { + // 获取单体电池数据 + Long deviceId = bmsBatteryClusterVo.getDeviceId(); + } + } + } + + return bmsBatteryClusterVoList; } } diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml index e8005fb..8b061cf 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml @@ -144,8 +144,17 @@ - + select td.device_name as deviceName, tmp.work_status as workStatus, + tmp.pcs_communication_status as pcsCommunicationStatus, tmp.ems_communication_status as emsCommunicationStatus, + tmp.cluster_voltage as clusterVoltage,tmp.chargeable_capacity as chargeableCapacity, tmp.total_charged_capacity as totalChargedCapacity, + tmp.cluster_current as clusterCurrent,tmp.dischargeable_capacity as dischargeableCapacity, tmp.total_discharged_capacity as totalDischargedCapacity, + tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance, + tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId + from ems_battery_cluster tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id + where tmp.site_id = #{siteId} + and tmp.update_time = (select MAX(t.update_time) FROM ems_battery_cluster t where t.site_id = tmp.site_id + and t.device_id = tmp.device_id) + order by tmp.device_id \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml index 47e74dd..724d750 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml @@ -144,8 +144,17 @@ - + select td.device_name as deviceName,tmp.work_status as workStatus, + tmp.pcs_communication_status as pcsCommunicationStatus,tmp.ems_communication_status as emsCommunicationStatus, + tmp.total_voltage as totalVoltage,tmp.chargeable_capacity as chargeableCapacity,tmp.total_charged_capacity as totalChargedCapacity, + tmp.total_current as totalCurrent,tmp.dischargeable_capacity as dischargeableCapacity,tmp.total_discharged_capacity as totalDischargedCapacity, + tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance, + tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId + from ems_battery_stack tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id + where tmp.site_id = #{siteId} + and tmp.update_time = (select MAX(t.update_time) FROM ems_battery_stack t where t.site_id = tmp.site_id + and t.device_id = tmp.device_id) + order by tmp.device_id \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml new file mode 100644 index 0000000..c90b2c3 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, device_name, device_type, slave_id, timeout_ms, retries, ip_address, ip_port, serial_port, baud_rate, data_bits, stop_bits, parity, description, created_at, updated_at, site_id, communication_status from ems_devices_setting + + + + + + + + insert into ems_devices_setting + + device_name, + device_type, + slave_id, + timeout_ms, + retries, + ip_address, + ip_port, + serial_port, + baud_rate, + data_bits, + stop_bits, + parity, + description, + created_at, + updated_at, + site_id, + communication_status, + + + #{deviceName}, + #{deviceType}, + #{slaveId}, + #{timeoutMs}, + #{retries}, + #{ipAddress}, + #{ipPort}, + #{serialPort}, + #{baudRate}, + #{dataBits}, + #{stopBits}, + #{parity}, + #{description}, + #{createdAt}, + #{updatedAt}, + #{siteId}, + #{communicationStatus}, + + + + + update ems_devices_setting + + device_name = #{deviceName}, + device_type = #{deviceType}, + slave_id = #{slaveId}, + timeout_ms = #{timeoutMs}, + retries = #{retries}, + ip_address = #{ipAddress}, + ip_port = #{ipPort}, + serial_port = #{serialPort}, + baud_rate = #{baudRate}, + data_bits = #{dataBits}, + stop_bits = #{stopBits}, + parity = #{parity}, + description = #{description}, + created_at = #{createdAt}, + updated_at = #{updatedAt}, + site_id = #{siteId}, + communication_status = #{communicationStatus}, + + where id = #{id} + + + + delete from ems_devices_setting where id = #{id} + + + + delete from ems_devices_setting 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 index a44a16d..7a34a77 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml @@ -268,9 +268,20 @@ group by dateMonth - + select td.device_name as deviceName,td.communication_status as communicationStatus, + tmp.site_id as siteId,tmp.device_id as deviceId, + tmp.data_update_time as dataUpdateTime,tmp.work_status as workStatus, + tmp.grid_status as gridStatus,tmp.device_status as deviceStatus,tmp.control_mode as controlMode, + tmp.total_active_power as totalActivePower,tmp.daily_ac_charge_energy as dailyAcChargeEnergy, + tmp.a_phase_voltage as aPhaseVoltage,tmp.a_phase_current as aPhaseCurrent, + tmp.total_reactive_power as totalReactivePower,tmp.daily_ac_discharge_energy as dailyAcDischargeEnergy, + tmp.b_phase_voltage as bPhaseVoltage,tmp.b_phase_current as bPhaseCurrent, + tmp.total_apparent_power as totalApparentPower,tmp.pcs_module_temperature as pcsModuleTemperature, + tmp.c_phase_current as cPhaseVoltage,tmp.c_phase_current as cPhaseCurrent, + tmp.total_power_factor as totalPowerFactor, + tmp.pcs_environment_temperature as pcsEnvironmentTemperature,tmp.ac_frequency as acFrequency + from ems_pcs_data tmp left join ems_devices_setting td on tmp.device_id = td.id and tmp.site_id = td.site_id 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)