Kaynağa Gözat

告警管理增加设施ID字段

hanzhengyi 1 yıl önce
ebeveyn
işleme
b237f1de98

+ 6 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseAlarm.java

@@ -150,4 +150,10 @@ public class BaseAlarm implements Serializable {
      */
     @TableField(exist = false)
     private String typeImg;
+
+    /**
+     * 设施编号
+     */
+    @TableField(exist = false)
+    private Integer facilityId;
 }

+ 33 - 19
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseAlarmServiceImpl.java

@@ -11,6 +11,7 @@ import com.usky.iot.domain.*;
 import com.usky.iot.mapper.BaseAlarmMapper;
 import com.usky.iot.service.BaseAlarmService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.BaseFacilityDeviceService;
 import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.DmpProductInfoService;
 import com.usky.iot.service.config.websocket.WebSocket;
@@ -20,7 +21,6 @@ import com.usky.iot.service.vo.BaseAlarmResponeVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -42,6 +42,9 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
     @Autowired
     private DmpDeviceInfoService dmpDeviceInfoService;
 
+    @Autowired
+    private BaseFacilityDeviceService baseFacilityDeviceService;
+
     @Autowired
     private WebSocket webSocket;
 
@@ -219,27 +222,38 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
     @Override
     public boolean add(BaseAlarm baseAlarm) {
         baseAlarm.setHandleStatus(0);
-
-        LambdaQueryWrapper<DmpProductInfo> lambdaQuery = Wrappers.lambdaQuery();
-        lambdaQuery.eq(StringUtils.isNotBlank(baseAlarm.getProductCode()),DmpProductInfo::getProductCode,baseAlarm.getProductCode())
-                .eq(DmpProductInfo::getDeleteFlag,0);
-        List<DmpProductInfo> records = dmpProductInfoService.list(lambdaQuery);
-        if(records.size()>0){
-            baseAlarm.setTenantId(records.get(0).getTenantId());
-            if (StringUtils.isNotBlank(baseAlarm.getHandleBy()) || StringUtils.isNotBlank(baseAlarm.getHandlePhone())){
-                baseAlarm.setHandleStatus(1);
-                LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
-                queryWrapper.eq(BaseAlarm::getDeviceId,baseAlarm.getDeviceId())
-                        .eq(BaseAlarm::getAlarmType,baseAlarm.getAlarmType())
-                        .eq(BaseAlarm::getAlarmAddress,baseAlarm.getAlarmAddress())
-                        .eq(BaseAlarm::getAlarmGrade,baseAlarm.getAlarmGrade());
-                return this.update(baseAlarm,queryWrapper);
+        if (StringUtils.isNotBlank(baseAlarm.getProductCode()) && StringUtils.isNotBlank(baseAlarm.getDeviceId())){
+            LambdaQueryWrapper<DmpProductInfo> lambdaQuery = Wrappers.lambdaQuery();
+            lambdaQuery.eq(StringUtils.isNotBlank(baseAlarm.getProductCode()),DmpProductInfo::getProductCode,baseAlarm.getProductCode())
+                    .eq(DmpProductInfo::getDeleteFlag,0);
+            List<DmpProductInfo> records = dmpProductInfoService.list(lambdaQuery);
+            LambdaQueryWrapper<BaseFacilityDevice> lambdaQuery1 = Wrappers.lambdaQuery();
+            lambdaQuery1.eq(StringUtils.isNotBlank(baseAlarm.getDeviceId()),BaseFacilityDevice::getDeviceId,
+                    baseAlarm.getDeviceId());
+            List<BaseFacilityDevice> records1 = baseFacilityDeviceService.list(lambdaQuery1);
+            if(records.size()>0){
+                baseAlarm.setTenantId(records.get(0).getTenantId());
+                if (StringUtils.isNotBlank(baseAlarm.getHandleBy()) || StringUtils.isNotBlank(baseAlarm.getHandlePhone())){
+                    baseAlarm.setHandleStatus(1);
+                    LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
+                    queryWrapper.eq(BaseAlarm::getDeviceId,baseAlarm.getDeviceId())
+                            .eq(BaseAlarm::getAlarmType,baseAlarm.getAlarmType())
+                            .eq(BaseAlarm::getAlarmAddress,baseAlarm.getAlarmAddress())
+                            .eq(BaseAlarm::getAlarmGrade,baseAlarm.getAlarmGrade());
+                    return this.update(baseAlarm,queryWrapper);
+                }else {
+                    boolean saveResult = this.save(baseAlarm);
+                    if(records1.size()>0){
+                        baseAlarm.setFacilityId(records1.get(0).getFacilityId());
+                    }
+                    webSocket.sendMessage(baseAlarm,records.get(0).getTenantId().toString());
+                    return saveResult;
+                }
             }else {
-                webSocket.sendMessage(baseAlarm,records.get(0).getTenantId().toString());
-                return this.save(baseAlarm);
+                throw new BusinessException("告警数据投递失败,产品编码有误");
             }
         }else {
-            throw new BusinessException("告警数据投递失败,产品编码有误");
+            throw new BusinessException("告警数据投递失败,产品编码或设备编号不能为空");
         }
     }
 }