PCS抽数逻辑

This commit is contained in:
2025-06-24 17:04:59 +08:00
parent 7134bc03f8
commit 7b64e193fc
11 changed files with 801 additions and 12 deletions

View File

@ -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));
}
} }

View File

@ -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();
}
}

View File

@ -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();
} }
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);
} }

View File

@ -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);

View File

@ -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总览数据

View File

@ -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>

View File

@ -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>