From 26884d96aed1ffd7df408cc163dfe2464cfe952b Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Wed, 3 Apr 2024 11:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/system/SystemGlobal.java | 11 +++ .../inter/controller/BdController.java | 32 ++++----- .../inter/mapper/BdMapper.java | 28 ++++++++ .../inter/service/BdServiceImpl.java | 68 +++++++++++++++++- .../securitycontrol/inter/vo/DetailsVo.java | 29 ++++++++ .../securitycontrol/inter/vo/DeviceInfo.java | 26 +++++++ .../inter/vo/DeviceInfoVo.java | 4 ++ .../inter/vo/HisDeviceValueVo.java | 31 +++++++++ .../securitycontrol/inter/vo/IsWarnVo.java | 18 +++++ .../inter/vo/PropertiesVo.java | 21 ++++++ .../inter/vo/SelectDataVo.java | 69 +++++++++++++++++++ .../src/main/resources/mapper/BdMapper.xml | 30 +++++++- 12 files changed, 346 insertions(+), 21 deletions(-) create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DetailsVo.java create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfo.java create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/HisDeviceValueVo.java create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/IsWarnVo.java create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/PropertiesVo.java create mode 100644 securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/SelectDataVo.java diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/SystemGlobal.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/SystemGlobal.java index fdab865..6dad588 100644 --- a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/SystemGlobal.java +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/SystemGlobal.java @@ -100,5 +100,16 @@ public class SystemGlobal { public final static int AQM_TYPE=1804; public final static int WEEK_DAY=7; + /** + * 告警默认值 + */ + public final static String WARN_DEFEAT="0"; + /** + * 数据类型 + */ + public final static String FLOAT_TYPE="float"; + + + } diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/controller/BdController.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/controller/BdController.java index 72c7d66..b0be61e 100644 --- a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/controller/BdController.java +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/controller/BdController.java @@ -150,23 +150,6 @@ public class BdController { } return AjaxResult.success(0); } - - - - /** - * 设备采集信息上班 - * @param param - * @return - */ - @PostMapping("devInfo") - public AjaxResult devInfo(@RequestBody DeviceInfoVo param){ - try{ - return service.devInfo(param); - }catch (Exception e){ - log.error(e.toString(),e); - } - return AjaxResult.success(0); - } /** * 设备告警信息上班 * @param param @@ -182,7 +165,20 @@ public class BdController { return AjaxResult.success(0); } - + /** + * 设备采集信息上班 + * @param param + * @return + */ + @PostMapping("devInfo") + public AjaxResult devInfo(@RequestBody DeviceInfoVo param){ + try{ + return service.devInfo(param); + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success(0); + } diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/mapper/BdMapper.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/mapper/BdMapper.java index 4bcce25..f6522dc 100644 --- a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/mapper/BdMapper.java +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/mapper/BdMapper.java @@ -1,6 +1,7 @@ package com.securitycontrol.inter.mapper; import com.securitycontrol.inter.vo.*; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -88,4 +89,31 @@ public interface BdMapper { * @return */ int insertWarn(WarnInfoVo param); + + /** + * 依据设备id查询系统 的设备编码 + * @param id + * @return + */ + String getDevCodeById(String id); + + /** + * 查询属性id 依据设备id 属性编码 + * @param id + * @param id1 + * @return + */ + SelectDataVo getBdDeviceDetailByIdCode(@Param("id") String id, @Param("code") String id1); + + /** + * 插入数据 + * @param selectDataVo + */ + void insertValue(SelectDataVo selectDataVo); + + /** + * 插入历史数据 + * @param selectDataVo + */ + void insertHistoryValue(SelectDataVo selectDataVo); } diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/service/BdServiceImpl.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/service/BdServiceImpl.java index 6e01cc0..2084bfa 100644 --- a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/service/BdServiceImpl.java +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/service/BdServiceImpl.java @@ -2,14 +2,15 @@ package com.securitycontrol.inter.service; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.alibaba.nacos.common.utils.UuidUtils; import com.securitycontrol.common.core.constant.HttpStatus; import com.securitycontrol.common.core.constant.SecurityConstants; import com.securitycontrol.common.core.domain.Result; import com.securitycontrol.common.core.utils.aes.ListHelper; import com.securitycontrol.common.core.utils.aes.StringHelper; +import com.securitycontrol.common.core.utils.uuid.IdUtils; import com.securitycontrol.common.core.web.domain.AjaxResult; import com.securitycontrol.entity.system.SystemGlobal; -import com.securitycontrol.entity.system.base.vo.ProVo; import com.securitycontrol.inter.mapper.BdMapper; import com.securitycontrol.inter.vo.*; import com.securitycontrol.system.api.RemoteFileService; @@ -21,8 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; +import java.math.BigDecimal; import java.util.List; +import java.util.Set; /** * 边带业务处理层 @@ -159,10 +161,72 @@ public class BdServiceImpl { */ public AjaxResult devInfo(DeviceInfoVo param) { try{ + String id=param.getDeviceId(); + //json数据 + String json=param.getData(); + + + + + + JSONObject data=JSON.parseObject(json); + String isWarn=param.getIsWarn(); + if(StringHelper.isEmpty(isWarn)){ + isWarn=SystemGlobal.WARN_DEFEAT; + } + //获取全部key + Set keys=data.keySet(); + String finalIsWarn = isWarn; + keys.forEach(key->{ + //查询系统的id + SelectDataVo selectDataVo=mapper.getBdDeviceDetailByIdCode(id,key); + //查询存储值 + String value=data.getString(key); + selectDataVo.setValue(value); + selectDataVo.setChangeValue(getChangeValue(selectDataVo)); + selectDataVo.setSourceData(json); + selectDataVo.setIsWarn(finalIsWarn); + mapper.insertValue(selectDataVo); + selectDataVo.setId(IdUtils.getUUId()); + mapper.insertHistoryValue(selectDataVo); + }); + }catch (Exception e){ log.error(e.toString(),e); } return null; } + + + /** + * 数据处理 + * @param vo + * @return + */ + public String getChangeValue(SelectDataVo vo){ + try{ + if(StringHelper.isNotEmpty(vo.getDataType())){ + switch (vo.getDataType()){ + case SystemGlobal.FLOAT_TYPE: + if(StringHelper.isNotEmpty(vo.getHistoryValue())){ + BigDecimal d1=new BigDecimal(vo.getValue()); + BigDecimal d2=new BigDecimal(vo.getHistoryValue()); + BigDecimal resultSub = d1.subtract(d2); + return resultSub.toString(); + } + return vo.getValue(); + default: + return vo.getValue(); + } + } + }catch (Exception e){ + log.error(e.toString(),e); + } + return ""; + } + + + + } diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DetailsVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DetailsVo.java new file mode 100644 index 0000000..692ea10 --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DetailsVo.java @@ -0,0 +1,29 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +/** + * 设备 推送数据解析 + * @author 黑子 + */ +@Data +public class DetailsVo { + + private String dataType; + + private String desc; + + private String id; + + private String value; + + private String minValue; + + private String maxValue; + + private String name; + + private String unit; + + private String nullable; +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfo.java new file mode 100644 index 0000000..5554f47 --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfo.java @@ -0,0 +1,26 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @author 黑子 + */ +@Data +public class DeviceInfo { + /** + * 基础信息 + */ + public List staticProperties; + /** + * 采集信息 + */ + public List dynamicProperties; + /** + * 预警信息 + */ + private List events; + + +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfoVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfoVo.java index ec2d4f3..8fb39f1 100644 --- a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfoVo.java +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/DeviceInfoVo.java @@ -36,6 +36,10 @@ public class DeviceInfoVo { private String data; private String dataTime; + /** + * 是否告警 + */ + private String isWarn; diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/HisDeviceValueVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/HisDeviceValueVo.java new file mode 100644 index 0000000..118a9ae --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/HisDeviceValueVo.java @@ -0,0 +1,31 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +/** + * 历史数据实体类 + * @author 黑子 + */ +@Data +public class HisDeviceValueVo { + + public String id; + + public String bidCode; + + public String attributeId; + + public String val; + + public String createTime; + + public String isWarn; + + public String sourceType; + + public String sourceData; + + public String changeVal; + + +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/IsWarnVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/IsWarnVo.java new file mode 100644 index 0000000..d91070c --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/IsWarnVo.java @@ -0,0 +1,18 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +/** + * @author 黑子 + */ +@Data +public class IsWarnVo { + + private String descL; + + private String id; + + private String name; + + +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/PropertiesVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/PropertiesVo.java new file mode 100644 index 0000000..c925afe --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/PropertiesVo.java @@ -0,0 +1,21 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +/** + * @author 黑子 + */ +@Data +public class PropertiesVo { + + + public String dataType; + + public String desc; + + public String id; + + public String name; + + +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/SelectDataVo.java b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/SelectDataVo.java new file mode 100644 index 0000000..e1ecb8a --- /dev/null +++ b/securitycontrol-model/securitycontrol-Interface/src/main/java/com/securitycontrol/inter/vo/SelectDataVo.java @@ -0,0 +1,69 @@ +package com.securitycontrol.inter.vo; + +import lombok.Data; + +/** + * 查询数据封装 + * @author 黑子 + */ +@Data +public class SelectDataVo { + /** + * 标段工程编码 + */ + private String id; + + /** + * 标段工程编码 + */ + private String bidCode; + /** + * 设备id + */ + private String deviceId; + /** + * 属性id + */ + private String attributeId; + /** + * 历史值 + */ + private String historyValue; + /** + * 单位 + */ + private String unit; + + /** + * -设备编码现场 + */ + private String deviceCode; + + /** + * -检测数据编码 + */ + private String attributeCode; + + /** + * 数据类型 + */ + private String dataType; + /** + * 值 + */ + private String value; + /** + * 变化值 + */ + private String changeValue; + /** + * 数据源 + */ + private String sourceData; + + private String isWarn; + + + private String dataTime; + +} diff --git a/securitycontrol-model/securitycontrol-Interface/src/main/resources/mapper/BdMapper.xml b/securitycontrol-model/securitycontrol-Interface/src/main/resources/mapper/BdMapper.xml index a632e9c..e53efe7 100644 --- a/securitycontrol-model/securitycontrol-Interface/src/main/resources/mapper/BdMapper.xml +++ b/securitycontrol-model/securitycontrol-Interface/src/main/resources/mapper/BdMapper.xml @@ -11,8 +11,19 @@ insert into tb_warn (warn_time,warn_content,warn_type,bd_device,db_id,bid_code) value (#{eventTime},#{eventDesc},#{eventCode},#{deviceId},#{gatewayId},#{bidCode}) + + replace into tb_device_value (attribute_id,val,create_time,is_warn,unit,change_val) + value(#{attributeId},#{value},#{dataTime},#{isWarn},#{unit},#{changeValue}) + + + insert into(id, bid_code, attribute_id, val, create_time, is_warn, source_type, + source_data, change_val, unit) + values( #{id}, #{bidCode}, #{attributeId}, #{value}, #{dataTime}, #{isWarn},'边带数据上传', + #{sourceData},#{changeValue},#{unit} + ) + - update tb_pro_bd set bid_code=#{bidNo},bind_time=now() where bd_code=#{gatewayId} ; + update tb_pro_bd set bid_code=#{bidNo},bind_time=now() where bd_code=#{gatewayId}; update tb_bd_device set del_flag=1 where device_id=#{deviceId} and bd_id=#{gatewayId} @@ -88,4 +99,21 @@ from tb_pro_bd where bd_code=#{gatewayId} + + + + + \ No newline at end of file