|
@@ -1,8 +1,10 @@
|
|
package com.bz.zoneiot.water.web.service.impl;
|
|
package com.bz.zoneiot.water.web.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
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.common.util.BeanCopyUtils;
|
|
import com.bz.zoneiot.core.oauth2.util.UserUtil;
|
|
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.AlarmDetailsAddDto;
|
|
import com.bz.zoneiot.water.api.dto.AlarmTypeDetailsDto;
|
|
import com.bz.zoneiot.water.api.dto.AlarmTypeDetailsDto;
|
|
import com.bz.zoneiot.water.api.enums.AlarmStateEnum;
|
|
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.AlarmTypeDetailMapper;
|
|
import com.bz.zoneiot.water.core.dao.DeviceSceneMapper;
|
|
import com.bz.zoneiot.water.core.dao.DeviceSceneMapper;
|
|
import com.bz.zoneiot.water.core.entity.AlarmDetailsEntity;
|
|
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.AlarmTypeDetailsService;
|
|
import com.bz.zoneiot.water.web.service.AlarmTypeService;
|
|
import com.bz.zoneiot.water.web.service.AlarmTypeService;
|
|
|
|
+import io.swagger.models.auth.In;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -40,6 +46,9 @@ public class AlarmTypeDetailsServiceImpl implements AlarmTypeDetailsService {
|
|
@Resource
|
|
@Resource
|
|
private DeviceSceneMapper deviceSceneMapper;
|
|
private DeviceSceneMapper deviceSceneMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private DeviceAttributeService deviceAttributeService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Integer insert(AlarmDetailsAddDto dto) {
|
|
public Integer insert(AlarmDetailsAddDto dto) {
|
|
List<AlarmDetailsEntity> entities = this.convert(dto);
|
|
List<AlarmDetailsEntity> entities = this.convert(dto);
|
|
@@ -106,20 +115,46 @@ public class AlarmTypeDetailsServiceImpl implements AlarmTypeDetailsService {
|
|
**/
|
|
**/
|
|
private List<AlarmDetailsEntity> convert(AlarmDetailsAddDto dto){
|
|
private List<AlarmDetailsEntity> convert(AlarmDetailsAddDto dto){
|
|
List<AlarmDetailsEntity> result;
|
|
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;
|
|
return null;
|
|
}
|
|
}
|
|
result = new ArrayList<>();
|
|
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) {
|
|
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.setSceneId(sceneVo.getSceneId());
|
|
alarmDetailsEntity.setSceneName(sceneVo.getSceneName());
|
|
alarmDetailsEntity.setSceneName(sceneVo.getSceneName());
|
|
alarmDetailsEntity.setParentSceneId(sceneVo.getParentSceneId());
|
|
alarmDetailsEntity.setParentSceneId(sceneVo.getParentSceneId());
|
|
alarmDetailsEntity.setParentSceneName(sceneVo.getParentSceneName());
|
|
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);
|
|
result.add(alarmDetailsEntity);
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|