Ver código fonte

增加烟感声光报警联动

hanzhengyi 10 meses atrás
pai
commit
c574f6d690

+ 21 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/DmpDeviceLinkageController.java

@@ -0,0 +1,21 @@
+package com.usky.alarm.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-06-14
+ */
+@Controller
+@RequestMapping("/dmpDeviceLinkage")
+public class DmpDeviceLinkageController {
+
+}
+

+ 5 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/DmpDevice.java

@@ -122,5 +122,10 @@ public class DmpDevice implements Serializable {
      */
     private String productCode;
 
+    /**
+     * 设备UUID
+     */
+    private String deviceUuid;
+
 
 }

+ 47 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/DmpDeviceLinkage.java

@@ -0,0 +1,47 @@
+package com.usky.alarm.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author han
+ * @since 2024-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DmpDeviceLinkage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备ID;设备注册时系统自动生成一个唯一编号
+     */
+    private String deviceId;
+
+    /**
+     * 设备类型(501、监控系统  502、门禁系统  503、梯控系统  504、机房系统  509、环境系统  510、照明系统)
+     */
+    private Integer deviceType;
+
+    /**
+     * 联动地址
+     */
+    private String linkageAddress;
+
+    /**
+     * 分组id
+     */
+    private Integer groupId;
+
+
+}

+ 16 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/mapper/DmpDeviceLinkageMapper.java

@@ -0,0 +1,16 @@
+package com.usky.alarm.mapper;
+
+import com.usky.alarm.domain.DmpDeviceLinkage;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-06-14
+ */
+public interface DmpDeviceLinkageMapper extends CrudMapper<DmpDeviceLinkage> {
+
+}

+ 16 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/DmpDeviceLinkageService.java

@@ -0,0 +1,16 @@
+package com.usky.alarm.service;
+
+import com.usky.alarm.domain.DmpDeviceLinkage;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-06-14
+ */
+public interface DmpDeviceLinkageService extends CrudService<DmpDeviceLinkage> {
+
+}

+ 3 - 3
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/config/ExecutorConfig.java

@@ -15,13 +15,13 @@ import java.util.concurrent.ThreadPoolExecutor;
 public class ExecutorConfig {
 
     /** 核心线程数(默认线程数) */
-    private int corePoolSize = 10;
+    private int corePoolSize = 20;
     /** 最大线程数 */
-    private int maxPoolSize = 20;
+    private int maxPoolSize = 40;
     /** 允许线程空闲时间(单位:默认为秒) */
     private static final int keepAliveTime = 60;
     /** 缓冲队列大小 */
-    private int queueCapacity = 10;
+    private int queueCapacity = 20;
 
     @Bean
     public Executor asyncServiceExecutor(){

+ 20 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/DmpDeviceLinkageServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.alarm.service.impl;
+
+import com.usky.alarm.domain.DmpDeviceLinkage;
+import com.usky.alarm.mapper.DmpDeviceLinkageMapper;
+import com.usky.alarm.service.DmpDeviceLinkageService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-06-14
+ */
+@Service
+public class DmpDeviceLinkageServiceImpl extends AbstractCrudService<DmpDeviceLinkageMapper, DmpDeviceLinkage> implements DmpDeviceLinkageService {
+
+}

+ 0 - 11
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/job/DmpDataOverviewJob.java

@@ -1,11 +0,0 @@
-package com.usky.alarm.service.job;
-
-import org.springframework.stereotype.Service;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Service
-public class DmpDataOverviewJob {
-
-}

+ 33 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/job/alarmLinkageJob.java

@@ -0,0 +1,33 @@
+package com.usky.alarm.service.job;
+
+import com.alibaba.fastjson.JSONObject;
+import com.usky.alarm.service.util.HttpClientUtils;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+
+
+@Component
+public class AlarmLinkageJob {
+
+    private String URL = "";
+
+    /**
+     * 添加事件信息
+     * @return
+     */
+    //异步多线程调用
+    @Async("asyncServiceExecutor")
+    public JSONObject addLinkage(String requestBody) {
+        JSONObject eventVO = JSONObject.parseObject(requestBody);
+        HashMap map = new HashMap();
+        map.put("productId", eventVO.get("productId"));
+        map.put("tcDeviceId", eventVO.get("tcDeviceId"));
+        map.put("deviceId", eventVO.get("deviceId"));
+        map.put("deviceType", eventVO.get("deviceType"));
+        String resultString = HttpClientUtils.doPost(eventVO.get("linkageAddress").toString(),map);
+        JSONObject resultVO = JSONObject.parseObject(resultString);
+        return resultVO;
+    }
+}

+ 29 - 1
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/mqtt/alarm/Alarm.java

@@ -1,10 +1,12 @@
 package com.usky.alarm.service.mqtt.alarm;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.alarm.service.enums.TopListener;
+import com.usky.alarm.service.job.AlarmLinkageJob;
 import com.usky.common.core.util.JsonUtils;
 import com.usky.alarm.domain.*;
 import com.usky.alarm.service.*;
@@ -31,6 +33,12 @@ public class Alarm implements MqttStrategy {
     @Autowired
     private DmpDeviceService dmpDeviceService;
 
+    @Autowired
+    private DmpDeviceLinkageService dmpDeviceLinkageService;
+
+    @Autowired
+    private AlarmLinkageJob alarmLinkageJob;
+
     @Override
     public String disposeMessage(MqttBaseVO mqttBaseVO) {
         Map map = JsonUtils.fromJson(mqttBaseVO.getData().toString(), Map.class);
@@ -42,7 +50,7 @@ public class Alarm implements MqttStrategy {
         String topic = mqttBaseVO.getTopic();
         String[] code4 = TopListener.VIDEO_ALERT.getCode().split("/");
         LambdaQueryWrapper<DmpDevice> queryWrapper1 = Wrappers.lambdaQuery();
-        queryWrapper1.select(DmpDevice::getProductCode)
+        queryWrapper1.select(DmpDevice::getProductCode,DmpDevice::getDeviceUuid)
                 .eq(DmpDevice::getDeviceId, map.get("devId").toString())
                 .eq(DmpDevice::getDeleteFlag, 0);
         List<DmpDevice> list = dmpDeviceService.list(queryWrapper1);
@@ -64,6 +72,26 @@ public class Alarm implements MqttStrategy {
             baseAlarm.setAlarmContent(dp.get(0).get("property").toString());
             baseAlarm.setAlarmGrade(2);
             baseAlarm.setAlarmAddress(alarams.get(0).get("deviceName").toString());
+            LambdaQueryWrapper<DmpDeviceLinkage> queryWrapper5 = Wrappers.lambdaQuery();
+            queryWrapper5.eq(DmpDeviceLinkage::getDeviceId,map.get("devId").toString());
+            List<DmpDeviceLinkage> list5 = dmpDeviceLinkageService.list(queryWrapper5);
+            if(CollectionUtils.isNotEmpty(list5)){
+                LambdaQueryWrapper<DmpDevice> queryWrapper6 = Wrappers.lambdaQuery();
+                queryWrapper6.select(DmpDevice::getDeviceId,DmpDevice::getProductCode,DmpDevice::getDeviceUuid)
+                        .eq(DmpDevice::getGroupId, list5.get(0).getGroupId())
+                        .eq(DmpDevice::getDeviceType, 138)
+                        .eq(DmpDevice::getDeleteFlag, 0);
+                List<DmpDevice> list6 = dmpDeviceService.list(queryWrapper6);
+                JsonObject jsonObject = new JsonObject();
+                if (CollectionUtils.isNotEmpty(list6)) {
+                    jsonObject.addProperty("productId", list6.get(0).getProductCode());
+                    jsonObject.addProperty("tcDeviceId",list6.get(0).getDeviceUuid());
+                    jsonObject.addProperty("deviceId",list6.get(0).getDeviceId());
+                    jsonObject.addProperty("deviceType","JH");
+                    jsonObject.addProperty("linkageAddress",list5.get(0).getLinkageAddress());
+                    alarmLinkageJob.addLinkage(jsonObject.toString());
+                }
+            }
         }else if (alarams.get(0).get("deviceType").equals("6")){
             baseAlarm.setAlarmContent(dp.get(0).get("property").toString()+","+dp.get(0).get("stuname").toString());
             baseAlarm.setAlarmGrade(2);

+ 14 - 0
service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/DmpDeviceLinkageMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.alarm.mapper.DmpDeviceLinkageMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.alarm.domain.DmpDeviceLinkage">
+        <id column="id" property="id" />
+        <result column="device_id" property="deviceId" />
+        <result column="device_type" property="deviceType" />
+        <result column="linkage_address" property="linkageAddress" />
+        <result column="group_id" property="groupId" />
+    </resultMap>
+
+</mapper>

+ 1 - 0
service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/DmpDeviceMapper.xml

@@ -24,6 +24,7 @@
         <result column="install_address" property="installAddress" />
         <result column="service_status" property="serviceStatus" />
         <result column="product_code" property="productCode" />
+        <result column="device_uuid" property="deviceUuid" />
     </resultMap>
 
 </mapper>

+ 33 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/AppInfoRequest.java

@@ -0,0 +1,33 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseGgpFacilityRequest {
+
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 设施名称
+     */
+    private String facilityName;
+    /**
+     * 设施编号
+     */
+    private String facilityNum;
+    /**
+     * 设施类型
+     */
+    private Integer facilityType;
+    /**
+     * id
+     */
+    private Integer id;
+}