Browse Source

修改标签报警状态

wangyangyang 3 years ago
parent
commit
d644d1e333

+ 9 - 2
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -168,9 +168,16 @@ public class MonitorInfoController {
         parm.setDeviceId(item.getDeviceId());
         parm.setAttributeId(item.getAttributeId());
         parm.setType(type);
-        if (type == 4||type == 3) {
+        if (type == 4 || type == 3) {
             //更新压力值或状态值
-            item.setAttributeValue(monitorDataReportService.getDeviceAttributeValue(item.getDeviceCode(),item.getAttributeId()).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
+            item.setAttributeValue(monitorDataReportService.getDeviceAttributeValue(item.getDeviceCode(), item.getAttributeId()).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue());
+        }
+        //查询报警信息
+        List<AlarmDetailsDto> alarmDetailsDtos = alarmDetailsService.selectByDeviceAttributeId(sceneId, item.getDeviceId().intValue(), item.getAttributeId().intValue());
+        if (alarmDetailsDtos.size() > 0) {
+            item.setIsAlarm(1);
+        } else {
+            item.setIsAlarm(0);
         }
         DeviceSetupRecordEntity recordEntity = deviceSetupRecordService.selectLastOne(parm);
         if (recordEntity != null) {

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/AlarmDetailMapper.java

@@ -133,4 +133,6 @@ public interface AlarmDetailMapper {
     Integer updateAlarmSendMessageState(List<DeviceAlarmInfoForOrder> list);
 
     List<AlarmDetailsDto> selectBySceneId(@Param("sceneId") Integer sceneId);
+
+    List<AlarmDetailsDto> selectByDeviceAttributeId(@Param("sceneId")Long sceneId,@Param("deviceId")Integer deviceId, @Param("attributeId")Integer attributeId);
 }

+ 6 - 0
sms_water/src/main/java/com/huaxu/service/AlarmDetailsService.java

@@ -26,6 +26,12 @@ public interface AlarmDetailsService {
      * @return
      */
     List<AlarmDetailsDto> selectByDeviceId(Long sceneId,Integer deviceId);
+    /**
+     * 查询单个设备属性
+     * @return
+     */
+    List<AlarmDetailsDto> selectByDeviceAttributeId(Long sceneId,Integer deviceId,Integer attributeId);
+
     /**
      * 按场景查询
      * @return

+ 4 - 0
sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java

@@ -64,6 +64,10 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
     public List<AlarmDetailsDto> selectByDeviceId(Long sceneId,Integer deviceId) {
         return alarmDetailMapper.selectByDeviceId(sceneId,deviceId);
     }
+    @Override
+    public List<AlarmDetailsDto> selectByDeviceAttributeId(Long sceneId,Integer deviceId,Integer attributeId) {
+        return alarmDetailMapper.selectByDeviceAttributeId(sceneId, deviceId,attributeId);
+    }
 
     @Override
     public List<AlarmDetailsDto> selectBySceneId(Integer sceneId) {

+ 10 - 0
sms_water/src/main/resources/mapper/AlarmDetailMapper.xml

@@ -685,6 +685,16 @@
         and a.DEVICE_ID=#{deviceId} and (a.scene_id=#{sceneId} or a.PARENT_SCENE_ID=#{sceneId}) and a.state=1
     </select>
 
+    <select id="selectByDeviceAttributeId" resultType="com.huaxu.dto.AlarmDetailsDto">
+        select
+        <include refid="Base_Column_List"/>,concat(b.alarm_condition,cast(b.alarm_value as char)+0) alarmRange
+        from sms_alarm_details a
+        left join sms_alarm_setting b on a.alarm_setting_id=b.id and b.status = 1 and b.alarm_condition!='='
+        <include refid="alarmDetailJoins"/>
+        where a.`STATUS` = 1
+        and a.DEVICE_ID=#{deviceId} and a.ATTRIBUTE_ID=#{attributeId} and (a.scene_id=#{sceneId} or a.PARENT_SCENE_ID=#{sceneId}) and a.state=1
+    </select>
+
     <select id="getAlarmInfoForWorkOrderManage" resultType="com.huaxu.dto.DeviceAlarmInfoForOrder">
         select
             ad.id as "alarmId"