瀏覽代碼

mqtt告警数据同步代码

jichaobo 2 年之前
父節點
當前提交
00f23f733a

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseAutonomyController.java

@@ -36,8 +36,9 @@ public class BscEnterpriseAutonomyController {
      */
     @GetMapping("enterpriseAutonomy")
     public ApiResult<Object> enterpriseAutonomy(@RequestParam(value = "dataType") String dataType,
-                                                @RequestParam(value = "moduleType") String moduleType) {
-        return ApiResult.success(bscEnterpriseAutonomyService.enterpriseAutonomy(moduleType, dataType));
+                                                @RequestParam(value = "moduleType") String moduleType,
+                                                @RequestParam(value = "streetTown", required = false) String streetTown) {
+        return ApiResult.success(bscEnterpriseAutonomyService.enterprise(moduleType, dataType, streetTown));
     }
 
 

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BscEnterpriseStreetTownController.java

@@ -42,7 +42,7 @@ public class BscEnterpriseStreetTownController {
 
     @GetMapping("streetCompany")
     public ApiResult<Void> streetCompany() {
-        bscEnterpriseStreetTownService.enterpriseStreetTownTask();
+        bscEnterpriseStreetTownService.enterpriseStreetTownData("梅陇镇");
         return ApiResult.success();
     }
 }

+ 2 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BscEnterpriseAutonomyService.java

@@ -16,6 +16,8 @@ import java.util.Map;
  */
 public interface BscEnterpriseAutonomyService extends CrudService<BscEnterpriseAutonomy> {
 
+    Object enterprise(String moduleType, String dataType, String streetTown);
+
     /**
      * 企业自主管理大屏统计-全部单位数据查询
      *

+ 6 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/enums/TopListener.java

@@ -30,8 +30,12 @@ public enum TopListener {
     LIQUID_INFO("waterAlert","/usky/ytDP0005/+/+/info",1),
     LIQUID_ALERT("waterAlert","/usky/ytDP0005/+/+/alarm",1),
     RTU_INFO("waterAlert","/usky/ytDP0006/+/+/info",1),
-    RTU_ALERT("waterAlert","/usky/ytDP0006/+/+/alarm",1),
-    VIDEO_ALERT("waterAlert","/usky/ytCamCore/+/+/alarm",1);
+    RTU_ALERT("rtuAlert","/usky/ytDP0006/+/+/alarm",1),
+    VIDEO_ALERT("videoAlert","/usky/ytCamCore/+/+/alarm",1),
+    SMOKE_ALERT("smokeAlarm","/usky/ytDP0003/+/+/alarm",1),
+    ELECTRICAL_ALERT("electricalAlarm","/usky/ytDP0007/+/+/alarm",1);
+
+
 
 
     private String name;

+ 13 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BscEnterpriseAutonomyServiceImpl.java

@@ -87,6 +87,19 @@ public class BscEnterpriseAutonomyServiceImpl extends AbstractCrudService<BscEnt
     @Autowired
     private AlarmVideoService alarmVideoService;
 
+
+    @Override
+    public Object enterprise(String moduleType, String dataType, String streetTown){
+        Object list = null;
+        if (StringUtils.isNotBlank(streetTown)){
+            list = bscEnterpriseStreetTownService.enterpriseStreetTown(moduleType, dataType, streetTown);
+        }else {
+            list = this.enterpriseAutonomy(moduleType, dataType);
+        }
+        return list;
+    }
+
+
     @Override
     public Object enterpriseAutonomy(String moduleType, String dataType) {
         LambdaQueryWrapper<BscEnterpriseAutonomy> queryWrapper = Wrappers.lambdaQuery();

+ 18 - 10
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemBuildScoreRecordServiceImpl.java

@@ -25,23 +25,31 @@ import java.util.List;
 public class DemBuildScoreRecordServiceImpl extends AbstractCrudService<DemBuildScoreRecordMapper, DemBuildScoreRecord> implements DemBuildScoreRecordService {
 
     @Override
-    public int demBuildScoreRecordCount(String scoreDate, Integer buildScore1,Integer buildScore2, String companyId) {
+    public int demBuildScoreRecordCount(String scoreDate, Integer buildScore1, Integer buildScore2, String companyId) {
         LambdaQueryWrapper<DemBuildScoreRecord> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(StringUtils.isNotBlank(scoreDate), DemBuildScoreRecord::getScoreDate, scoreDate)
-                .ge(buildScore2 != null, DemBuildScoreRecord::getBuildScore, buildScore2)
-                .lt(buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore1)
                 .eq(StringUtils.isNotBlank(companyId), DemBuildScoreRecord::getCompanyId, companyId);
+        if (buildScore2 != null && buildScore1 != null) {
+            queryWrapper.between(buildScore2 != null && buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore2, buildScore1);
+        } else {
+            queryWrapper.ge(buildScore2 != null, DemBuildScoreRecord::getBuildScore, buildScore2)
+                    .le(buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore1);
+        }
         int count = this.count(queryWrapper);
         return count;
     }
 
     @Override
-    public int demBuildScoreRecordCountOne(String scoreDate, Integer buildScore1,Integer buildScore2, List<String> companyIdList) {
+    public int demBuildScoreRecordCountOne(String scoreDate, Integer buildScore1, Integer buildScore2, List<String> companyIdList) {
         LambdaQueryWrapper<DemBuildScoreRecord> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(StringUtils.isNotBlank(scoreDate), DemBuildScoreRecord::getScoreDate, scoreDate)
-                .ge(buildScore2 != null, DemBuildScoreRecord::getBuildScore, buildScore2)
-                .lt(buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore1)
-                .eq(CollectionUtils.isNotEmpty(companyIdList), DemBuildScoreRecord::getCompanyId, companyIdList);
+                .in(CollectionUtils.isNotEmpty(companyIdList), DemBuildScoreRecord::getCompanyId, companyIdList);
+        if (buildScore2 != null && buildScore1 != null) {
+            queryWrapper.between(buildScore2 != null && buildScore1 != null, DemBuildScoreRecord::getBuildScore, (int)buildScore2, (int)buildScore1);
+        } else {
+            queryWrapper.ge(buildScore2 != null, DemBuildScoreRecord::getBuildScore, buildScore2)
+                    .le(buildScore1 != null, DemBuildScoreRecord::getBuildScore, buildScore1);
+        }
         int count = this.count(queryWrapper);
         return count;
     }
@@ -58,10 +66,10 @@ public class DemBuildScoreRecordServiceImpl extends AbstractCrudService<DemBuild
     }
 
     @Override
-    public List<DemBuildScoreRecord> demBuildScoreRecordListOne(String scoreDate,String companyId){
+    public List<DemBuildScoreRecord> demBuildScoreRecordListOne(String scoreDate, String companyId) {
         LambdaQueryWrapper<DemBuildScoreRecord> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(StringUtils.isNotBlank(scoreDate),DemBuildScoreRecord::getScoreDate,scoreDate)
-                .eq(StringUtils.isNotBlank(companyId),DemBuildScoreRecord::getCompanyId,companyId);
+        queryWrapper.eq(StringUtils.isNotBlank(scoreDate), DemBuildScoreRecord::getScoreDate, scoreDate)
+                .eq(StringUtils.isNotBlank(companyId), DemBuildScoreRecord::getCompanyId, companyId);
         List<DemBuildScoreRecord> list = this.list(queryWrapper);
         return list;
     }

+ 27 - 9
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/listener/MqttListener.java

@@ -26,8 +26,10 @@ public class MqttListener {
 
     @Autowired
     private SimpleContext simpleContext;
+
     /**
      * 处理消息-消费者
+     *
      * @return
      */
     @Bean(MESSAGE_NAME)
@@ -36,33 +38,49 @@ public class MqttListener {
         return message -> {
             String payload = message.getPayload().toString();
             //进行接口推送
+            String[] code1 = TopListener.FIRE_ALERT.getCode().split("/");
+            String[] code2 = TopListener.WATER_ALERT.getCode().split("/");
+            String[] code3 = TopListener.RTU_ALERT.getCode().split("/");
+            String[] code4 = TopListener.VIDEO_ALERT.getCode().split("/");
+            String[] code5 = TopListener.SMOKE_ALERT.getCode().split("/");
+            String[] code6 = TopListener.ELECTRICAL_ALERT.getCode().split("/");
+            String[] code7 = TopListener.LIQUID_ALERT.getCode().split("/");
             Object mqttReceivedTopic = message.getHeaders().get("mqtt_receivedTopic");
-            if (null != mqttReceivedTopic){
+            if (null != mqttReceivedTopic) {
                 String topic = mqttReceivedTopic.toString();
                 MqttBaseVO mqttBaseVO = new MqttBaseVO();
                 mqttBaseVO.setTopic(topic);
-                if (TopListener.MH_WATER_INFO.getCode().equals(topic)){
+                if (TopListener.MH_WATER_INFO.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("cy");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.MH_WATER_ALERT.getCode().equals(topic)){
+                } else if (TopListener.MH_WATER_ALERT.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("cy");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.MH_WATER_STATISTICS.getCode().equals(topic)){
+                } else if (TopListener.MH_WATER_STATISTICS.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("cy");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.DEVICE_DETAIL.getCode().equals(topic)){
+                } else if (TopListener.DEVICE_DETAIL.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("mhwater");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.DEVICE_INFO.getCode().equals(topic)){
+                } else if (TopListener.DEVICE_INFO.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("mhwater");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.DEVICE_ALERT.getCode().equals(topic)){
+                } else if (TopListener.DEVICE_ALERT.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("mhwater");
                     mqttBaseVO.setData(payload);
-                }else if (TopListener.DEVICE_AJ.getCode().equals(topic)){
+                } else if (TopListener.DEVICE_AJ.getCode().equals(topic)) {
                     mqttBaseVO.setDescribe("mhwater");
                     mqttBaseVO.setData(payload);
-                }else {
+                } else if ((topic.indexOf(code1[2]) != -1 && topic.indexOf(code1[5]) != -1) ||
+                        (topic.indexOf(code2[2]) != -1 && topic.indexOf(code2[5]) != -1) ||
+                        (topic.indexOf(code3[2]) != -1 && topic.indexOf(code3[5]) != -1) ||
+                        (topic.indexOf(code4[2]) != -1 && topic.indexOf(code4[5]) != -1) ||
+                        (topic.indexOf(code5[2]) != -1 && topic.indexOf(code5[5]) != -1) ||
+                        (topic.indexOf(code6[2]) != -1 && topic.indexOf(code6[5]) != -1) ||
+                        (topic.indexOf(code7[2]) != -1 && topic.indexOf(code7[5]) != -1)) {
+                    mqttBaseVO.setDescribe("alarm");
+                    mqttBaseVO.setData(payload);
+                } else {
                     mqttBaseVO.setDescribe("fireInfoAndAlarm");
                     mqttBaseVO.setData(payload);
                 }

+ 5 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/mqtt/MqttStrategy.java

@@ -1,8 +1,12 @@
 package com.usky.fire.service.mqtt;
 
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.usky.fire.service.vo.MqttBaseVO;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 策略类
  *
@@ -17,4 +21,5 @@ public interface MqttStrategy {
      * @return
      */
     String disposeMessage(MqttBaseVO mqttBaseVO);
+
 }

+ 287 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/mqtt/alarm/Alarm.java

@@ -0,0 +1,287 @@
+package com.usky.fire.service.mqtt.alarm;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.JsonUtils;
+import com.usky.fire.domain.*;
+import com.usky.fire.service.*;
+import com.usky.fire.service.mqtt.MqttStrategy;
+import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.MqttBaseVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author yq
+ * @date 2022/3/4 15:07
+ */
+@Service("alarm")
+public class Alarm implements MqttStrategy {
+
+    @Autowired
+    private AlarmFireService alarmFireService;
+
+    @Autowired
+    private BaseDeviceService baseDeviceService;
+
+    @Autowired
+    private BaseDeviceAttributeService baseDeviceAttributeService;
+
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
+    @Autowired
+    private AlarmSprayWaterService alarmSprayWaterService;
+
+    @Autowired
+    private AlarmHydrantWaterService alarmHydrantWaterService;
+
+    @Autowired
+    private AlarmSmokeControlService alarmSmokeControlService;
+
+    @Autowired
+    private AlarmElectricalFireService alarmElectricalFireService;
+
+    @Autowired
+    private AlarmVideoService alarmVideoService;
+
+    @Override
+    public String disposeMessage(MqttBaseVO mqttBaseVO) {
+        Map map = JsonUtils.fromJson(mqttBaseVO.getData().toString(), Map.class);
+        List<Map<String, Object>> alarams = (List) JSONObject.parseArray(JSONObject.toJSONString(map.get("alarams")));
+        List<Map<String, Object>> dp = (List) JSONObject.parseArray(JSONObject.toJSONString(alarams.get(0).get("dp")));
+        LambdaQueryWrapper<BaseDevice> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.select(BaseDevice::getCompanyId, BaseDevice::getDeviceType)
+                .eq(BaseDevice::getDeviceCode, map.get("devId").toString())
+                .eq(BaseDevice::getEnable, 1);
+        List<BaseDevice> list = baseDeviceService.list(queryWrapper1);
+        List<BaseDeviceAttribute> list1 = new ArrayList<>();
+        List<BaseCompany> list2 = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            LambdaQueryWrapper<BaseDeviceAttribute> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.select(BaseDeviceAttribute::getSystemType)
+                    .eq(BaseDeviceAttribute::getDeviceCode, map.get("devId").toString());
+            if (list.get(0).getDeviceType() == 6) {
+                if (!dp.get(0).get("property").toString().equals("离线")) {
+                    queryWrapper.eq(BaseDeviceAttribute::getPortCode, dp.get(0).get("serial"));
+                }
+            }
+            list1 = baseDeviceAttributeService.list(queryWrapper);
+
+            LambdaQueryWrapper<BaseCompany> queryWrapper2 = Wrappers.lambdaQuery();
+            queryWrapper2.select(BaseCompany::getCompanyName).
+                    eq(BaseCompany::getCompanyId, list.get(0).getCompanyId());
+            list2 = baseCompanyService.list(queryWrapper2);
+        }
+        if (CollectionUtils.isNotEmpty(list) && CollectionUtils.isNotEmpty(list1)) {
+            switch (list1.get(0).getSystemType()) {
+                case 1:
+                    AlarmFire alarmFire = new AlarmFire();
+                    alarmFire.setDeviceCode(map.get("devId").toString());
+                    alarmFire.setDeviceName(map.get("deviceName").toString());
+                    alarmFire.setAlarmType(OnlineMethod.getAlarmType(dp.get(0).get("property").toString(), list.get(0).getDeviceType()));
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmFire.setAlarmTime(time2);
+                    }
+//                    alarmFire.setAddress();
+                    alarmFire.setAlarmStatus(dp.get(0).get("type").toString());
+                    alarmFire.setSystemType(1);
+                    if (dp.get(0).get("value").toString().indexOf("端口号") != -1) {
+                        String[] values = dp.get(0).get("value").toString().split(",");
+                        int index = 0;
+                        boolean pd = false;
+                        for (int i = 0; i < values.length; i++) {
+                            if (values[i].indexOf("端口号") != -1) {
+                                index = i;
+                                pd = true;
+                            }
+                        }
+                        if (pd == true) {
+                            String portNum = values[index].split(":")[1];
+                            alarmFire.setPortNum(portNum);
+                        }
+                    }
+                    alarmFire.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmFire.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmFire.setAttributeValue1(dp.get(0).get("type").toString());
+                    alarmFire.setAttributeValue2(dp.get(0).get("property").toString());
+                    alarmFire.setAttributeValue3(dp.get(0).get("address").toString());
+                    alarmFire.setAttributeValue4(dp.get(0).get("value").toString());
+                    alarmFire.setPointType(0);
+                    if (dp.get(0).get("value").toString().indexOf("主机号") != -1) {
+                        String[] values = dp.get(0).get("value").toString().split(",");
+                        int index = 0;
+                        boolean pd = false;
+                        for (int i = 0; i < values.length; i++) {
+                            if (values[i].indexOf("主机号") != -1) {
+                                index = i;
+                                pd = true;
+                            }
+                        }
+                        if (pd == true) {
+                            String hostNum = values[index].split(":")[1];
+                            alarmFire.setHostNum(Integer.parseInt(hostNum));
+                        }
+                    }
+
+                    if (dp.get(0).get("value").toString().indexOf("回路号") != -1) {
+                        String[] values = dp.get(0).get("value").toString().split(",");
+                        int index = 0;
+                        boolean pd = false;
+                        for (int i = 0; i < values.length; i++) {
+                            if (values[i].indexOf("回路号") != -1) {
+                                index = i;
+                                pd = true;
+                            }
+                        }
+                        if (pd == true) {
+                            String loopNum = values[index].split(":")[1];
+                            alarmFire.setLoopNum(Integer.parseInt(loopNum));
+                        }
+                    }
+
+                    if (dp.get(0).get("value").toString().indexOf("点位号") != -1) {
+                        String[] values = dp.get(0).get("value").toString().split(",");
+                        int index = 0;
+                        boolean pd = false;
+                        for (int i = 0; i < values.length; i++) {
+                            if (values[i].indexOf("点位号") != -1) {
+                                index = i;
+                                pd = true;
+                            }
+                        }
+                        if (pd == true) {
+                            String ptNum = values[index].split(":")[1];
+                            alarmFire.setPtNum(Integer.parseInt(ptNum));
+                        }
+                    }
+                    alarmFire.setHandlingStatus(0);
+                    alarmFireService.save(alarmFire);
+                    break;
+                case 2:
+                    AlarmSprayWater alarmSprayWater = new AlarmSprayWater();
+                    alarmSprayWater.setDeviceCode(map.get("devId").toString());
+                    alarmSprayWater.setDeviceName(map.get("deviceName").toString());
+                    alarmSprayWater.setAlarmType(OnlineMethod.getAlarmType(dp.get(0).get("property").toString(), list.get(0).getDeviceType()));
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmSprayWater.setAlarmTime(time2);
+                    }
+//                    alarmSprayWater.setAddress();
+                    alarmSprayWater.setAlarmStatus(dp.get(0).get("property").toString());
+                    alarmSprayWater.setSystemType(2);
+                    alarmSprayWater.setPortNum("0");
+                    alarmSprayWater.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmSprayWater.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmSprayWater.setAttributeValue4(dp.get(0).get("value").toString());
+                    alarmSprayWater.setHandlingStatus(0);
+                    alarmSprayWaterService.save(alarmSprayWater);
+                    break;
+                case 3:
+                    AlarmHydrantWater alarmHydrantWater = new AlarmHydrantWater();
+                    alarmHydrantWater.setDeviceCode(map.get("devId").toString());
+                    alarmHydrantWater.setDeviceName(map.get("deviceName").toString());
+                    alarmHydrantWater.setAlarmType(OnlineMethod.getAlarmType(dp.get(0).get("property").toString(), list.get(0).getDeviceType()));
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmHydrantWater.setAlarmTime(time2);
+                    }
+//                    alarmHydrantWater.setAddress();
+                    alarmHydrantWater.setAlarmStatus(dp.get(0).get("property").toString());
+                    alarmHydrantWater.setSystemType(3);
+                    alarmHydrantWater.setPortNum("0");
+                    alarmHydrantWater.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmHydrantWater.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmHydrantWater.setAttributeValue4(dp.get(0).get("value").toString());
+                    alarmHydrantWater.setHandlingStatus(0);
+                    alarmHydrantWaterService.save(alarmHydrantWater);
+                    break;
+                case 4:
+                    AlarmSmokeControl alarmSmokeControl = new AlarmSmokeControl();
+                    alarmSmokeControl.setDeviceCode(map.get("devId").toString());
+                    alarmSmokeControl.setDeviceName(map.get("deviceName").toString());
+                    alarmSmokeControl.setAlarmType(OnlineMethod.getAlarmType(dp.get(0).get("property").toString(), list.get(0).getDeviceType()));
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmSmokeControl.setAlarmTime(time2);
+                    }
+//                    alarmSmokeControl.setAddress();
+                    alarmSmokeControl.setAlarmStatus(dp.get(0).get("property").toString());
+                    alarmSmokeControl.setSystemType(4);
+                    alarmSmokeControl.setPortNum("0");
+                    alarmSmokeControl.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmSmokeControl.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmSmokeControl.setAttributeValue4(dp.get(0).get("value").toString());
+                    alarmSmokeControl.setHandlingStatus(0);
+                    alarmSmokeControlService.save(alarmSmokeControl);
+                    break;
+                case 5:
+                    AlarmElectricalFire alarmElectricalFire = new AlarmElectricalFire();
+                    alarmElectricalFire.setDeviceCode(map.get("devId").toString());
+                    alarmElectricalFire.setDeviceName(map.get("deviceName").toString());
+                    alarmElectricalFire.setAlarmType(OnlineMethod.getAlarmType(dp.get(0).get("property").toString(), list.get(0).getDeviceType()));
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmElectricalFire.setAlarmTime(time2);
+                    }
+//                    alarmElectricalFire.setAddress();
+                    alarmElectricalFire.setAlarmStatus(dp.get(0).get("property").toString());
+                    alarmElectricalFire.setSystemType(5);
+                    alarmElectricalFire.setPortNum("0");
+                    alarmElectricalFire.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmElectricalFire.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmElectricalFire.setAttributeValue4(dp.get(0).get("value").toString());
+                    alarmElectricalFire.setHandlingStatus(0);
+                    alarmElectricalFireService.save(alarmElectricalFire);
+                    break;
+                case 6:
+                    AlarmVideo alarmVideo = new AlarmVideo();
+                    alarmVideo.setDeviceCode(map.get("devId").toString());
+                    alarmVideo.setDeviceName(map.get("deviceName").toString());
+                    alarmVideo.setAlarmType(dp.get(0).get("property").toString());
+                    if (StringUtils.isBlank(map.get("timestamp").toString())) {
+                        LocalDateTime time2 = LocalDateTime.ofEpochSecond(Long.valueOf(map.get("timestamp").toString()).longValue(), 0, ZoneOffset.ofHours(8));
+                        alarmVideo.setAlarmTime(time2);
+                    }
+//                    alarmVideo.setAddress();
+                    alarmVideo.setAlarmStatus(dp.get(0).get("property").toString());
+                    alarmVideo.setSystemType(6);
+                    alarmVideo.setPortNum("0");
+                    alarmVideo.setCompanyId(list.get(0).getCompanyId());
+                    if (CollectionUtils.isNotEmpty(list2)) {
+                        alarmVideo.setCompanyName(list2.get(0).getCompanyName());
+                    }
+                    alarmVideo.setSitePhoto(dp.get(0).get("value").toString());
+                    alarmVideo.setHandlingStatus(0);
+                    alarmVideoService.save(alarmVideo);
+                    break;
+                default:
+                    throw new BusinessException("未定义类型");
+            }
+        }
+        return null;
+    }
+
+
+}

+ 112 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -5,6 +5,7 @@ package com.usky.fire.service.util;
 import com.alibaba.nacos.common.utils.StringUtils;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.HttpUtils;
 import com.usky.fire.service.vo.LocateInfo;
 import com.usky.fire.service.vo.PatrolInspectionAreaVo;
@@ -31,6 +32,116 @@ import java.util.stream.Collectors;
 @Slf4j
 public class OnlineMethod {
 
+    public static String getAlarmType(String value,Integer deviceType) {
+        String alarmType = null;
+        switch (value) {
+            case "火警":
+                alarmType = "2";
+                break;
+            case "故障":
+                if (deviceType==1){
+                    alarmType = "4";
+                }else if (deviceType==2){
+                    alarmType = "WP3";
+                }else if (deviceType==5){
+                    alarmType = "LL3";
+                }else if (deviceType==7){
+                    alarmType = "y05";
+                }
+                break;
+            case "监管":
+                alarmType = "16";
+                break;
+            case "正常/报警撤销":
+                alarmType = "EF0";
+                break;
+            case "欠压报警":
+                alarmType = "EF1";
+                break;
+            case "过压报警":
+                alarmType = "EF2";
+                break;
+            case "过流报警":
+                alarmType = "EF3";
+                break;
+            case "漏电报警":
+                alarmType = "EF4";
+                break;
+            case "温度1超高报警":
+                alarmType = "EF5";
+                break;
+            case "温度2超高报警":
+                alarmType = "EF6";
+                break;
+            case "温度3超高报警":
+                alarmType = "EF7";
+                break;
+            case "温度4超高报警":
+                alarmType = "EF8";
+                break;
+            case "离线":
+                if (deviceType==2){
+                    alarmType = "WP4";
+                }else if (deviceType==7){
+                    alarmType = "EF9";
+                }
+                break;
+            case "正常":
+                if (deviceType==2){
+                    alarmType = "WP0";
+                }else if (deviceType==5){
+                    alarmType = "LL0";
+                }
+                break;
+            case "低压":
+                if (deviceType==2){
+                    alarmType = "WP1";
+                }else if (deviceType==3){
+                    alarmType = "y04";
+                }
+                break;
+            case "高压":
+                alarmType = "WP2";
+                break;
+            case "低水位":
+                alarmType = "LL1";
+                break;
+            case "高水位":
+                alarmType = "LL2";
+                break;
+            case "报警":
+                alarmType = "y01";
+                break;
+            case "报警静音":
+                alarmType = "y02";
+                break;
+            case "保留":
+                alarmType = "y03";
+                break;
+            case "火灾报警":
+                alarmType = "y07";
+                break;
+            case "温度报警":
+                alarmType = "y08";
+                break;
+            case "烟感电量低":
+                alarmType = "y09";
+                break;
+            case "防拆报警":
+                alarmType = "y10";
+                break;
+            case "发射电路故障":
+                alarmType = "y11";
+                break;
+            case "设备自检":
+                alarmType = "y12";
+                break;
+            default:
+                alarmType = value;
+        }
+        return alarmType;
+    }
+
     /**
      * 1.地址转换为经纬度
      *
@@ -83,7 +194,7 @@ public class OnlineMethod {
             JsonNode arrNode = new ObjectMapper().readTree(queryResult).get("regeocode");
             JsonNode addressComponent = arrNode.get("addressComponent");
             streetTown = addressComponent.get("township").toString();
-            streetTown = streetTown.replace("\"","");
+            streetTown = streetTown.replace("\"", "");
         } catch (Exception e) {
             log.error(e.getMessage());
         }