lihui001 3 anni fa
parent
commit
2b7ed8d6e8
19 ha cambiato i file con 164 aggiunte e 23 eliminazioni
  1. 24 1
      zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/dto/AlarmDetailsAddDto.java
  2. 3 1
      zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/dto/DeviceStateDto.java
  3. 9 1
      zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/vo/DeviceSceneVo.java
  4. 9 0
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/dao/AlarmTypeMapper.java
  5. 1 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/AlarmDetailsEntity.java
  6. 1 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/AlarmType.java
  7. 4 4
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeDetailMapper.xml
  8. 8 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeMapper.xml
  9. 1 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeMapper.xml
  10. 2 0
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeSpecsMapper.xml
  11. 5 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceSceneMapper.xml
  12. 22 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/AttributesController.java
  13. 10 3
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/MonitorInfoController.java
  14. 1 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/NotifyController.java
  15. 9 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/AlarmTypeService.java
  16. 41 6
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeDetailsServiceImpl.java
  17. 7 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeServiceImpl.java
  18. 2 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/DeviceAttributeService.java
  19. 5 2
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/NotifyServiceImpl.java

+ 24 - 1
zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/dto/AlarmDetailsAddDto.java

@@ -3,6 +3,10 @@ package com.bz.zoneiot.water.api.dto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+import java.util.Map;
 
 /**
  * @description
@@ -11,12 +15,31 @@ import lombok.Data;
  */
 @Api("报警信息")
 @Data
+@ToString
 public class AlarmDetailsAddDto {
 
     @ApiModelProperty(value = "物联网告警Id")
     private Integer alarmId;
 
     @ApiModelProperty("告警时间")
-    private Integer alarmStartTime;
+    private Date alarmTime;
+
+    @ApiModelProperty("告警描述")
+    private String description;
+
+    @ApiModelProperty("设备ID")
+    private String deviceId;
+
+    @ApiModelProperty("设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty("告警名字")
+    private String name;
+
+    @ApiModelProperty("告警类型ID")
+    private Integer alarmTypeId;
+
+    @ApiModelProperty("报警数据")
+    private Map<String, Object> data;
 
 }

+ 3 - 1
zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/dto/DeviceStateDto.java

@@ -2,6 +2,7 @@ package com.bz.zoneiot.water.api.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.ToString;
 
 import java.io.Serializable;
 
@@ -12,6 +13,7 @@ import java.io.Serializable;
  * @date 2021/10/19
  **/
 @Data
+@ToString
 public class DeviceStateDto implements Serializable {
 
     @ApiModelProperty(value = "设备ID")
@@ -24,5 +26,5 @@ public class DeviceStateDto implements Serializable {
     private String description ;
 
     @ApiModelProperty(value = "状态")
-    private int state ;
+    private int deviceStatus ;
 }

+ 9 - 1
zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/vo/DeviceSceneVo.java

@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
- * @description 目前只做两级
+ * @description
  * @author  Andy
  * @data 2020-11-16 11:47
  */
@@ -13,6 +13,14 @@ import lombok.Data;
 @ApiModel("设备信息")
 public class DeviceSceneVo {
 
+    @ApiModelProperty(value = "公司id")
+    private Integer companyOrgId;
+
+    @ApiModelProperty(value = "租户ID")
+    private String tenantId;
+
+    @ApiModelProperty(value = "部门ID")
+    private Integer deptOrgId;
 
     @ApiModelProperty(value = "场景ID")
     private Integer sceneId;

+ 9 - 0
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/dao/AlarmTypeMapper.java

@@ -85,4 +85,13 @@ public interface AlarmTypeMapper {
     int findByNameUnique( @Param("excludeId") Integer  excludeId, @Param("tenantId") String tenantId, @Param("name") String name);
 
 
+    /**
+    * 根据物联网告警id查询
+    * @author Andy
+    * @date 9:48 2021/11/5
+    * @param iotAlarmId:
+    * @return com.bz.zoneiot.water.core.entity.AlarmType
+    **/
+    AlarmType findByIotAlarmId(int iotAlarmId);
+
 }

+ 1 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/AlarmDetailsEntity.java

@@ -53,7 +53,7 @@ public class AlarmDetailsEntity implements Serializable {
     @ApiModelProperty(value = "报警参数设置id")
     private Integer alarmSettingId;
 
-    @ApiModelProperty(value = "报警类型")
+    @ApiModelProperty(value = "报警类型文字说明")
     private String alarmType;
 
     @ApiModelProperty(value = "报警参数ID")

+ 1 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/AlarmType.java

@@ -56,7 +56,7 @@ public class AlarmType {
     @ApiModelProperty(value="告警描述")
     private String desc;
 
-    @ApiModelProperty(value="告警分类 1:设备告警,2:离线告警")
+    @ApiModelProperty(value="告警分类 1:设备告警,2:离线告警 / 1 参数报警、2 状态报警")
     private Integer alarmCategory;
 
     @ApiModelProperty(value="天")

+ 4 - 4
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeDetailMapper.xml

@@ -35,16 +35,16 @@
 
     <!-- 新增所有列 -->
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        INSERT INTO  sms_alarm_details (  ALARM_ID,TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY , MIN_VALUE, MAX_VALUE, ALARM_SETTING_ID )
-        VALUES ( #{alarmId}, #{tenantId} , #{parentSceneId} ,#{parentSceneName} ,#{sceneId} ,#{sceneName} , #{deviceId} ,  #{companyOrgId} ,  #{deptOrgId} ,  #{alarmType} ,  #{attributeId} ,  #{alarmValue} ,  #{alarmContent} ,  #{alarmStartTime} ,  #{alarmEndTime} ,  #{state} ,  #{opState} ,  #{remark} ,  #{status} ,  #{dateCreate} ,  #{createBy} ,  #{dateUpdate} ,  #{updateBy},#{minValue} ,#{maxValue}, #{alarmSettingId} )
+        INSERT INTO  sms_alarm_details (  ALARM_ID,TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY , MIN_VALUE, MAX_VALUE, ALARM_SETTING_ID)
+        VALUES ( #{alarmId}, #{tenantId} , #{parentSceneId} ,#{parentSceneName} ,#{sceneId} ,#{sceneName} , #{deviceId} ,  #{companyOrgId} ,  #{deptOrgId} ,  #{alarmType} ,  #{attributeId} ,  #{alarmValue} ,  #{alarmContent} ,  #{alarmStartTime} ,  #{alarmEndTime} ,  #{state} ,  #{opState} ,  #{remark} ,  #{status} ,  #{dateCreate} ,  #{createBy} ,  #{dateUpdate} ,  #{updateBy},#{minValue} ,#{maxValue}, #{alarmSettingId})
     </insert>
 
     <!-- 批量新增 -->
     <insert id="batchInsert" keyProperty="id" useGeneratedKeys="true">
-        INSERT INTO  sms_alarm_details (  ALARM_ID,TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY, MIN_VALUE, MAX_VALUE,ALARM_SETTING_ID )
+        INSERT INTO  sms_alarm_details (  ALARM_ID,TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY, MIN_VALUE, MAX_VALUE,ALARM_SETTING_ID)
         values
         <foreach collection="alarmDetails" item="item" index="index" separator=",">
-            ( #{alarmId}, #{item.tenantId} , #{item.parentSceneId} ,#{item.parentSceneName} ,#{item.sceneId} ,#{item.sceneName} , #{item.deviceId} ,  #{item.companyOrgId} ,  #{item.deptOrgId} ,  #{item.alarmType} ,  #{item.attributeId} ,  #{item.alarmValue} ,  #{item.alarmContent} ,  #{item.alarmStartTime} ,  #{item.alarmEndTime} ,  #{item.state} ,  #{item.opState} ,  #{item.remark} ,  #{item.status} ,  #{item.dateCreate} ,  #{item.createBy} ,  #{item.dateUpdate} ,  #{item.updateBy} ,#{item.minValue} ,#{item.maxValue},#{item.alarmSettingId})
+            ( #{item.alarmId}, #{item.tenantId} , #{item.parentSceneId} ,#{item.parentSceneName} ,#{item.sceneId} ,#{item.sceneName} , #{item.deviceId} ,  #{item.companyOrgId} ,  #{item.deptOrgId} ,  #{item.alarmType} ,  #{item.attributeId} ,  #{item.alarmValue} ,  #{item.alarmContent} ,  #{item.alarmStartTime} ,  #{item.alarmEndTime} ,  #{item.state} ,  #{item.opState} ,  #{item.remark} ,  #{item.status} ,  #{item.dateCreate} ,  #{item.createBy} ,  #{item.dateUpdate} ,  #{item.updateBy} ,#{item.minValue} ,#{item.maxValue},#{item.alarmSettingId})
         </foreach>
     </insert>
 

+ 8 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeMapper.xml

@@ -35,7 +35,7 @@
 
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, tenant_id, company_org_id, dept_org_id, product_id, `name`, attribute_id, `desc`, alarm_category, enabled,
+    id, tenant_id, company_org_id,device_id, dept_org_id, product_id, `name`, attribute_id, `desc`, alarm_category, enabled,
     alarm_rule_num, days, times,`status`, create_date, create_by, update_date, update_by, iot_alarm_id
   </sql>
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.bz.zoneiot.water.core.entity.AlarmType" useGeneratedKeys="true">
@@ -287,4 +287,11 @@
     </if>
   </select>
 
+  <select id="findByIotAlarmId" resultType="com.bz.zoneiot.water.core.entity.AlarmType">
+    select
+    <include refid="Base_Column_List"></include>
+    from sms_alarm_type
+    where iot_alarm_id = #{iotAlarmId} and status = 1
+  </select>
+
 </mapper>

+ 1 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeMapper.xml

@@ -12,7 +12,7 @@
          a.data_type as "dataType" ,
          a.description as "description" ,
          a.unit as "unit" ,
-         a.device_mode_id as "deviceModeId" ,
+         a.device_type_id as "deviceTypeId" ,
          a.status as "status" ,
          a.date_create as "dateCreate" ,
          a.create_by as "createBy" ,

+ 2 - 0
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeSpecsMapper.xml

@@ -47,12 +47,14 @@
         <include refid="deviceAttributeSpecsColumns"/>
         FROM sms_device_attribute_specs a
         <where>
+            1=1
             <if test="attributeId != null  and attributeId != ''">
                 and a.attribute_id =#{attributeId}
             </if>
             <if test="specsName != null  and specsName != ''">
                 and a.specs_name LIKE concat('%',#{specsName},'%')
             </if>
+            and a.status = 1
         </where>
     </select>
 

+ 5 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceSceneMapper.xml

@@ -76,7 +76,11 @@
     <select id="findSceneByDeviceId" resultType="com.bz.zoneiot.water.api.vo.DeviceSceneVo">
         SELECT
 
-        sds.SCENE_ID, sds.PARENT_SCENE_ID, ss1.SCENE_NAME, ss2.SCENE_NAME as parent_scene_name from sms_device_scene sds
+        s.COMPANY_ORG_ID, s.TENANT_ID, s.DEPT_ORG_ID, sds.SCENE_ID, sds.PARENT_SCENE_ID, ss1.SCENE_NAME, ss2.SCENE_NAME as parent_scene_name
+
+        from sms_device s
+
+		INNER JOIN sms_device_scene sds on s.id = sds.DEVICE_ID
 
         INNER JOIN sms_scene ss1 on ss1.id  = sds.SCENE_ID
 

+ 22 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/AttributesController.java

@@ -2,7 +2,10 @@ package com.bz.zoneiot.water.web.controller;
 
 import com.bz.zoneiot.core.common.pojo.AjaxMessage;
 import com.bz.zoneiot.water.api.enums.WaterErrorEnum;
+import com.bz.zoneiot.water.core.entity.DeviceAttributeEntity;
+import com.bz.zoneiot.water.core.entity.DeviceAttributeSpecsEntity;
 import com.bz.zoneiot.water.web.service.impl.DeviceAttributeService;
+import com.bz.zoneiot.water.web.service.impl.DeviceAttributeSpecsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -12,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * @author Andy
  * @version V1.0
@@ -26,6 +31,9 @@ public class AttributesController {
     @Autowired
     private DeviceAttributeService deviceAttributeService;
 
+    @Resource
+    private DeviceAttributeSpecsService deviceAttributeSpecsService;
+
     @RequestMapping(value = "selectAttributes", method = RequestMethod.GET)
     @ApiOperation(value = "根据设备id查询属性信息")
     public AjaxMessage selectAttributes(@ApiParam(value = "设备id", required = true)@RequestParam Integer deviceId) {
@@ -34,4 +42,18 @@ public class AttributesController {
         }
         return AjaxMessage.success(deviceAttributeService.selectAttributes(deviceId));
     }
+
+
+    @RequestMapping(value = "/specs/list", method = RequestMethod.GET)
+    @ApiOperation(value = "根据设备id查询属性信息")
+    public AjaxMessage findList(@ApiParam(value = "属性Id", required = true)@RequestParam Long attributeId) {
+        if (attributeId == null) {
+            return AjaxMessage.fail(WaterErrorEnum.PARAM_ERROR);
+        }
+        DeviceAttributeSpecsEntity entity = new DeviceAttributeSpecsEntity();
+        entity.setAttributeId(attributeId);
+        return AjaxMessage.success(deviceAttributeSpecsService.findList(entity));
+    }
+
+
 }

+ 10 - 3
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/MonitorInfoController.java

@@ -106,9 +106,16 @@ public class MonitorInfoController {
     public AjaxMessage<List<MonitorInfoEntity>> findBySceneId(@RequestBody @Valid MonitorInfoDto dto) {
         MonitorInfoEntity monitorInfoEntity = new MonitorInfoEntity();
         monitorInfoEntity.setSceneId(dto.getId());
-        monitorInfoEntity.setImageType(dto.getImageType());
-        monitorInfoEntity.setType(dto.getType());
-        monitorInfoEntity.setDeviceId(dto.getDeviceId());
+        if (dto.getImageType() != null) {
+            monitorInfoEntity.setImageType(dto.getImageType());
+        }
+        if (dto.getType() != null ) {
+            monitorInfoEntity.setType(dto.getType());
+        }
+        if (dto.getDeviceId() != null) {
+            monitorInfoEntity.setDeviceId(dto.getDeviceId());
+        }
+
         List<MonitorInfoEntity> page = monitorInfoService.findList(monitorInfoEntity);
         for (MonitorInfoEntity item : page) {
             switch (item.getMonitorType().intValue()) {

+ 1 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/NotifyController.java

@@ -1,5 +1,6 @@
 package com.bz.zoneiot.water.web.controller;
 
+import com.bz.zoneiot.core.common.exception.BusinessException;
 import com.bz.zoneiot.core.common.pojo.AjaxMessage;
 import com.bz.zoneiot.water.api.dto.AlarmDetailsAddDto;
 import com.bz.zoneiot.water.api.dto.DeviceDataDto;

+ 9 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/AlarmTypeService.java

@@ -98,4 +98,13 @@ public interface AlarmTypeService {
     **/
     void updateEnabled(Integer id);
 
+    /**
+     * 根据物联网告警id查询
+     * @author Andy
+     * @date 9:48 2021/11/5
+     * @param iotAlarmId:
+     * @return com.bz.zoneiot.water.core.entity.AlarmType
+     **/
+    AlarmType findByIotAlarmId(int iotAlarmId);
+
 }

+ 41 - 6
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeDetailsServiceImpl.java

@@ -1,8 +1,10 @@
 package com.bz.zoneiot.water.web.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.bz.zoneiot.core.common.enums.StatusEnum;
 import com.bz.zoneiot.core.common.util.BeanCopyUtils;
 import com.bz.zoneiot.core.oauth2.util.UserUtil;
+import com.bz.zoneiot.core.utils.BigDecimalUtils;
 import com.bz.zoneiot.water.api.dto.AlarmDetailsAddDto;
 import com.bz.zoneiot.water.api.dto.AlarmTypeDetailsDto;
 import com.bz.zoneiot.water.api.enums.AlarmStateEnum;
@@ -11,13 +13,17 @@ import com.bz.zoneiot.water.api.vo.DeviceSceneVo;
 import com.bz.zoneiot.water.core.dao.AlarmTypeDetailMapper;
 import com.bz.zoneiot.water.core.dao.DeviceSceneMapper;
 import com.bz.zoneiot.water.core.entity.AlarmDetailsEntity;
+import com.bz.zoneiot.water.core.entity.AlarmType;
+import com.bz.zoneiot.water.core.entity.DeviceAttributeEntity;
 import com.bz.zoneiot.water.web.service.AlarmTypeDetailsService;
 import com.bz.zoneiot.water.web.service.AlarmTypeService;
+import io.swagger.models.auth.In;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -40,6 +46,9 @@ public class AlarmTypeDetailsServiceImpl implements AlarmTypeDetailsService {
     @Resource
     private DeviceSceneMapper deviceSceneMapper;
 
+    @Resource
+    private DeviceAttributeService deviceAttributeService;
+
     @Override
     public Integer insert(AlarmDetailsAddDto dto) {
         List<AlarmDetailsEntity> entities = this.convert(dto);
@@ -106,20 +115,46 @@ public class AlarmTypeDetailsServiceImpl implements AlarmTypeDetailsService {
     **/
     private List<AlarmDetailsEntity> convert(AlarmDetailsAddDto dto){
         List<AlarmDetailsEntity> result;
-        Long deviceId = alarmTypeService.findDeviceIdByIotAlarmId(dto.getAlarmId());
-        if (deviceId == null || deviceId == 0) {
+        AlarmType alarmType = alarmTypeService.findByIotAlarmId(dto.getAlarmTypeId());
+        if (alarmType == null) {
+            log.error("【接收告警信息失败】:告警信息为空 ,请求参数:{}", dto.toString());
+            return null;
+        }
+        DeviceAttributeEntity attributeEntity = deviceAttributeService.findDeviceAttributeById(alarmType.getAttributeId());
+        if (attributeEntity == null) {
+            log.error("【接收告警信息失败】:属性为空 ,请求参数:{}", dto.toString());
             return null;
         }
         result = new ArrayList<>();
-        List<DeviceSceneVo> sceneVos = deviceSceneMapper.findSceneByDeviceId(deviceId);
+        BigDecimal value = new BigDecimal(dto.getData().get(attributeEntity.getIdentifier()).toString());
+        List<DeviceSceneVo> sceneVos = deviceSceneMapper.findSceneByDeviceId(alarmType.getDeviceId());
         for (DeviceSceneVo sceneVo : sceneVos) {
-            AlarmDetailsEntity alarmDetailsEntity = BeanCopyUtils.copy(dto, AlarmDetailsEntity.class);
-            alarmDetailsEntity.setDateCreate(new Date());
-            alarmDetailsEntity.setState(AlarmStateEnum.REALTIME_ALARM.getCode());
+            AlarmDetailsEntity alarmDetailsEntity = new AlarmDetailsEntity();
+
+            alarmDetailsEntity.setAlarmStartTime(dto.getAlarmTime());
+            alarmDetailsEntity.setAlarmContent(dto.getDescription());
+
             alarmDetailsEntity.setSceneId(sceneVo.getSceneId());
             alarmDetailsEntity.setSceneName(sceneVo.getSceneName());
             alarmDetailsEntity.setParentSceneId(sceneVo.getParentSceneId());
             alarmDetailsEntity.setParentSceneName(sceneVo.getParentSceneName());
+
+            alarmDetailsEntity.setAlarmValue(value.doubleValue());
+            alarmDetailsEntity.setCompanyOrgId(alarmType.getCompanyOrgId());
+            alarmDetailsEntity.setDeptOrgId(alarmType.getDeptOrgId());
+            alarmDetailsEntity.setTenantId(alarmType.getTenantId());
+            alarmDetailsEntity.setAlarmId(Long.parseLong(alarmType.getId().toString()));
+            alarmDetailsEntity.setAlarmType(alarmType.getAlarmCategory() == 1 ? "参数报警" : "状态报警");
+            alarmDetailsEntity.setDeviceId(Integer.parseInt(alarmType.getDeviceId().toString()));
+
+            if (alarmType.getAttributeId() != null){
+                alarmDetailsEntity.setAttributeId(Integer.parseInt(alarmType.getAttributeId().toString()));
+            }
+
+            alarmDetailsEntity.setOpState(1);
+            alarmDetailsEntity.setStatus(StatusEnum.OK.getCode());
+            alarmDetailsEntity.setState(AlarmStateEnum.REALTIME_ALARM.getCode());
+            alarmDetailsEntity.setDateCreate(new Date());
             result.add(alarmDetailsEntity);
         }
         return result;

+ 7 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeServiceImpl.java

@@ -103,6 +103,8 @@ public class AlarmTypeServiceImpl implements AlarmTypeService {
             dataDTO.setDeviceId(dto.getIotDeviceId());
             dataDTO.setProductId(dto.getIotProductId());
             dataDTO.setCode(dto.getIdentifier());
+            dataDTO.setOperator(dto.getRules().get(0).getOperator());
+            dataDTO.setValue(dto.getRules().get(0).getValue());
             iotAlarmId = syncAlarmService.addOfflineConfig(dataDTO);
         }
         if (iotAlarmId == null || iotAlarmId == 0) {
@@ -209,6 +211,11 @@ public class AlarmTypeServiceImpl implements AlarmTypeService {
         log.info("end updateStatusAlarmType result=" + result);
     }
 
+    @Override
+    public AlarmType findByIotAlarmId(int iotAlarmId) {
+        return alarmTypeMapper.findByIotAlarmId(iotAlarmId);
+    }
+
     /**
     * 批量插入告警规则
     * @author Andy

+ 2 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/DeviceAttributeService.java

@@ -25,6 +25,8 @@ public class DeviceAttributeService extends ServiceImpl<DeviceAttributeMapper, D
     @Resource
     private DeviceAttributeMapper deviceAttributeMapper;
 
+
+
     /**
      * 查列表
      */

+ 5 - 2
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/NotifyServiceImpl.java

@@ -36,8 +36,10 @@ public class NotifyServiceImpl implements NotifyService {
     @Resource
     private DeviceMapper deviceMapper;
 
+
     @Override
     public Integer insertAlarmInfo(AlarmDetailsAddDto dto) {
+        log.info("【接收通知】物联告警信息:{}", dto.toString());
         return alarmTypeDetailsService.insert(dto);
     }
 
@@ -49,9 +51,10 @@ public class NotifyServiceImpl implements NotifyService {
     @Override
     public void updateDeviceSate(DeviceStateDto dto) {
         // 修改设备状态
-        deviceMapper.updateStateByIotDeviceId(dto.getDeviceId(), dto.getState());
+        log.info("【接收通知】物联修改设备信息:{}", dto.toString());
+        deviceMapper.updateStateByIotDeviceId(dto.getDeviceId(), dto.getDeviceStatus());
         // 如果状态正常就要变更报警为正常
-        if (!DeviceStatusEnum.offline(dto.getState())) {
+        if (!DeviceStatusEnum.offline(dto.getDeviceStatus())) {
             Long deviceId = deviceMapper.findDeviceIdByIotDeviceId(dto.getDeviceId());
             alarmTypeDetailsService.updateStateByDeviceId(deviceId, AlarmStateEnum.HISTORY_ALARM.getCode());
         }