From e1fb6e30acfe1e64c9e877645e19d490ce76f472 Mon Sep 17 00:00:00 2001 From: mashili Date: Tue, 21 Oct 2025 13:55:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E9=98=B2=E6=95=B0=E6=8D=AE=E5=AD=98?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/RedisKeyConstants.java | 5 + .../xzzn/ems/domain/EmsMqttTopicConfig.java | 71 ++++++++ .../java/com/xzzn/ems/domain/EmsXfData.java | 151 ++++++++++++++++++ .../com/xzzn/ems/mapper/EmsXfDataMapper.java | 61 +++++++ .../impl/DDSDataProcessServiceImpl.java | 23 ++- .../resources/mapper/ems/EmsXfDataMapper.xml | 106 ++++++++++++ 6 files changed, 415 insertions(+), 2 deletions(-) create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttTopicConfig.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/EmsXfData.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/mapper/EmsXfDataMapper.java create mode 100644 ems-system/src/main/resources/mapper/ems/EmsXfDataMapper.xml diff --git a/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java b/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java index 09e84e5..37d7394 100644 --- a/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java +++ b/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java @@ -42,6 +42,11 @@ public class RedisKeyConstants */ public static final String DH = "DH_"; + /** + * 消防数据 redis key + */ + public static final String XF = "XF_"; + /** * 电池组 redis key */ diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttTopicConfig.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttTopicConfig.java new file mode 100644 index 0000000..ec16a32 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttTopicConfig.java @@ -0,0 +1,71 @@ +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; + +/** + * 站点topic配置对象 ems_mqtt_topic_config + * + * @author xzzn + * @date 2025-10-21 + */ +public class EmsMqttTopicConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 站点id */ + @Excel(name = "站点id") + private String siteId; + + /** 订阅topic */ + @Excel(name = "订阅topic") + private String mqttTopic; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setSiteId(String siteId) + { + this.siteId = siteId; + } + + public String getSiteId() + { + return siteId; + } + + public void setMqttTopic(String mqttTopic) + { + this.mqttTopic = mqttTopic; + } + + public String getMqttTopic() + { + return mqttTopic; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("siteId", getSiteId()) + .append("mqttTopic", getMqttTopic()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsXfData.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsXfData.java new file mode 100644 index 0000000..0d784aa --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsXfData.java @@ -0,0 +1,151 @@ +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; + +/** + * 消防数据对象 ems_xf_data + * + * @author xzzn + * @date 2025-10-21 + */ +public class EmsXfData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 数据采集时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "数据采集时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date dataTimestamp; + + /** 主电源备用电池状态 */ + @Excel(name = "主电源备用电池状态") + private BigDecimal dczt; + + /** 手自动状态延时状态 */ + @Excel(name = "手自动状态延时状态") + private BigDecimal yszt; + + /** 启动喷洒气体喷洒状态 */ + @Excel(name = "启动喷洒气体喷洒状态") + private BigDecimal pszt; + + /** 压力开关状态电磁阀状态 */ + @Excel(name = "压力开关状态电磁阀状态") + private BigDecimal dcfzt; + + /** 站点id */ + @Excel(name = "站点id") + private String siteId; + + /** 设备唯一标识符 */ + @Excel(name = "设备唯一标识符") + private String deviceId; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setDataTimestamp(Date dataTimestamp) + { + this.dataTimestamp = dataTimestamp; + } + + public Date getDataTimestamp() + { + return dataTimestamp; + } + + public void setDczt(BigDecimal dczt) + { + this.dczt = dczt; + } + + public BigDecimal getDczt() + { + return dczt; + } + + public void setYszt(BigDecimal yszt) + { + this.yszt = yszt; + } + + public BigDecimal getYszt() + { + return yszt; + } + + public void setPszt(BigDecimal pszt) + { + this.pszt = pszt; + } + + public BigDecimal getPszt() + { + return pszt; + } + + public void setDcfzt(BigDecimal dcfzt) + { + this.dcfzt = dcfzt; + } + + public BigDecimal getDcfzt() + { + return dcfzt; + } + + public void setSiteId(String siteId) + { + this.siteId = siteId; + } + + public String getSiteId() + { + return siteId; + } + + public void setDeviceId(String deviceId) + { + this.deviceId = deviceId; + } + + public String getDeviceId() + { + return deviceId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("dataTimestamp", getDataTimestamp()) + .append("dczt", getDczt()) + .append("yszt", getYszt()) + .append("pszt", getPszt()) + .append("dcfzt", getDcfzt()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("siteId", getSiteId()) + .append("deviceId", getDeviceId()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsXfDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsXfDataMapper.java new file mode 100644 index 0000000..2771b2e --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsXfDataMapper.java @@ -0,0 +1,61 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsXfData; + +/** + * 消防数据Mapper接口 + * + * @author xzzn + * @date 2025-10-21 + */ +public interface EmsXfDataMapper +{ + /** + * 查询消防数据 + * + * @param id 消防数据主键 + * @return 消防数据 + */ + public EmsXfData selectEmsXfDataById(Long id); + + /** + * 查询消防数据列表 + * + * @param emsXfData 消防数据 + * @return 消防数据集合 + */ + public List selectEmsXfDataList(EmsXfData emsXfData); + + /** + * 新增消防数据 + * + * @param emsXfData 消防数据 + * @return 结果 + */ + public int insertEmsXfData(EmsXfData emsXfData); + + /** + * 修改消防数据 + * + * @param emsXfData 消防数据 + * @return 结果 + */ + public int updateEmsXfData(EmsXfData emsXfData); + + /** + * 删除消防数据 + * + * @param id 消防数据主键 + * @return 结果 + */ + public int deleteEmsXfDataById(Long id); + + /** + * 批量删除消防数据 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsXfDataByIds(Long[] ids); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java index 181368e..80744ee 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java @@ -84,6 +84,8 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl private EmsDailyEnergyDataMapper emsDailyEnergyDataMapper; @Autowired private IEmsDeviceSettingService iEmsDeviceSettingService; + @Autowired + private EmsXfDataMapper emsXfDataMapper; public DDSDataProcessServiceImpl(ObjectMapper objectMapper) { super(objectMapper); @@ -127,7 +129,7 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl } else if (deviceId.contains("METE0")) { meteBranchDataProcess(deviceId, jsonData); } else if (deviceId.contains("XF")) { - meteXFProcess(deviceId, jsonData); + meteXFProcess(deviceId, jsonData, dataUpdateTime); } else if (deviceId.contains("DH")) { dhDataProcess(deviceId, jsonData); } @@ -155,12 +157,29 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl redisCache.setCacheObject(RedisKeyConstants.DH + SITE_ID + "_" +deviceId, dhData); } - private void meteXFProcess(String deviceId, String dataJson) { + private void meteXFProcess(String deviceId, String dataJson, Date dataUpdateTime) { //消防 Map obj = JSON.parseObject(dataJson, new TypeReference>() { }); // 暂时只更新设备表的设备状态 ZDYBYDCZT-主电源备用电池状态 + // 数据存表 + EmsXfData xfData = new EmsXfData(); + xfData.setDataTimestamp(dataUpdateTime); + xfData.setDcfzt(StringUtils.getBigDecimal(obj.get("YLKGDCFZT"))); + xfData.setDczt(StringUtils.getBigDecimal(obj.get("ZDYBYDCZT"))); + xfData.setPszt(StringUtils.getBigDecimal(obj.get("QDQTPSZT"))); + xfData.setYszt(StringUtils.getBigDecimal(obj.get("SZDYSZT"))); + + xfData.setCreateBy("system"); + xfData.setCreateTime(DateUtils.getNowDate()); + xfData.setUpdateBy("system"); + xfData.setUpdateTime(DateUtils.getNowDate()); + xfData.setSiteId(SITE_ID); + xfData.setDeviceId(deviceId); + emsXfDataMapper.insertEmsXfData(xfData); + + redisCache.setCacheObject(RedisKeyConstants.XF + SITE_ID + "_" +deviceId, xfData); // 状态枚举还没有提供 EmsDevicesSetting emsDevicesSetting = emsDevicesSettingMapper.getDeviceBySiteAndDeviceId(deviceId, SITE_ID); emsDevicesSetting.setCommunicationStatus(StringUtils.getString(obj.get("ZDYBYDCZT"))); diff --git a/ems-system/src/main/resources/mapper/ems/EmsXfDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsXfDataMapper.xml new file mode 100644 index 0000000..45bcf36 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsXfDataMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + select id, data_timestamp, dczt, yszt, pszt, dcfzt, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_xf_data + + + + + + + + insert into ems_xf_data + + data_timestamp, + dczt, + yszt, + pszt, + dcfzt, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id, + + + #{dataTimestamp}, + #{dczt}, + #{yszt}, + #{pszt}, + #{dcfzt}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{siteId}, + #{deviceId}, + + + + + update ems_xf_data + + data_timestamp = #{dataTimestamp}, + dczt = #{dczt}, + yszt = #{yszt}, + pszt = #{pszt}, + dcfzt = #{dcfzt}, + 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_xf_data where id = #{id} + + + + delete from ems_xf_data where id in + + #{id} + + + \ No newline at end of file