Преглед на файлове

Merge branch 'V0.1.1_alarm' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.1.1_alarm

zhulu преди 1 година
родител
ревизия
29ae119f75
променени са 15 файла, в които са добавени 254 реда и са изтрити 179 реда
  1. 3 1
      project_data/sql/0.1.1/soc/soc.sql
  2. 2 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/work/dto/WorkRuleReq.java
  3. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/iot/SensorType.java
  4. 6 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java
  5. 1 14
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceStatusServiceImpl.java
  6. 32 18
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/server/service/impl/IotServerInfoServiceImpl.java
  7. 1 1
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/IotDvrDiskServiceImpl.java
  8. 26 3
      soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotWorkRuleServiceImpl.java
  9. 109 95
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmDataServiceImpl.java
  10. 5 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java
  11. 9 9
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDvrDiskServiceImpl.java
  12. 2 2
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarmData/DeviceTypeCountVo.java
  13. 18 18
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarmData/SensorAlarmCountVo.java
  14. 37 14
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmDataMapper.xml
  15. 2 2
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml

+ 3 - 1
project_data/sql/0.1.1/soc/soc.sql

@@ -1373,4 +1373,6 @@ delete from sys_menu where id=01836604852290682881;
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (01836604852290682881, '通知规则', 1, 100, 'notice', 'notice/index', NULL, 1, 0, 'C', '0', '0', NULL, '1', 'skill', NULL, '超级管理员', '2024-09-19 11:15:37', '', NULL, '');
 
 -- 修改sys_version表path字段类型和长度
-ALTER TABLE `sys_version` MODIFY COLUMN `path` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '下载地址' AFTER `note`;
+ALTER TABLE `sys_version` MODIFY COLUMN `path` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '下载地址' AFTER `note`;
+ALTER TABLE `iot_alarm_defence_area`
+    MODIFY COLUMN `sensor_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '传感器类型' AFTER `defence_area_name`;

+ 2 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/work/dto/WorkRuleReq.java

@@ -19,4 +19,6 @@ public class WorkRuleReq {
     private List<WorkRuleItemReq> items;
 
     private String remark;
+
+    private String password;
 }

+ 1 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/iot/SensorType.java

@@ -40,7 +40,7 @@ public enum SensorType {
     DO_POWER_BOX_BUTTON(4185, "DO8小时电箱按钮", "FSU_DoPowerControlBoxButton"),
 
     //待确认
-    THREE_PHASE_AC_VOLTAGE(41881, "三相电电压传感器", "FSU_ThreePhaseACVoltage"),
+    //THREE_PHASE_AC_VOLTAGE(41881, "三相电电压传感器", "FSU_ThreePhaseACVoltage"),
 
 
     ;

+ 6 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -26,6 +26,7 @@ import com.xunmei.host.iot.service.SysDeviceService;
 import com.xunmei.host.protection.service.IotAlarmDefenceAreaService;
 import com.xunmei.host.protection.service.IotAlarmSubsystemService;
 import com.xunmei.host.server.service.IotServerInfoService;
+import com.xunmei.host.video.service.IotDvrDiskService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.DeviceStatusInfo;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
@@ -67,6 +68,8 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     @Autowired
     private IotServerInfoService iotServerInfoService;
     @Autowired
+    private IotDvrDiskService dvrDiskService;
+    @Autowired
     private IotAlarmDefenceAreaService iotAlarmDefenceAreaService;
     @Autowired
     private IotAlarmSubsystemService iotAlarmSubsystemService;
@@ -288,11 +291,13 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void delData(String iotCode) {
         if (ObjectUtil.isEmpty(iotCode)) {
             return;
         }
         deleteDeviceByToken(iotCode);
+        dvrDiskService.deleteByTokenAndHostCode(iotCode, null);
         iotAlarmSubsystemService.deleteByIotToken(iotCode);
         iotAlarmDefenceAreaService.deleteByIotToken(iotCode);
         LogUtils.SOCKET_BASE_DEVICE_INFO.info("删除设备数据,token:{}", iotCode);
@@ -422,7 +427,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
 
             }
             for (SubDeviceInfo subSystemInfo : subSystemList) {
-                IotAlarmSubsystem info = iotAlarmSubsystemService.getByDeviceNameAndSubSystemId(token, subSystemInfo.getDeviceName(), subSystemInfo.getDeviceCode());
+                IotAlarmSubsystem info = iotAlarmSubsystemService.getByDeviceNameAndSubSystemId(token, subSystemInfo.getParentCode(), subSystemInfo.getDeviceCode());
                 if (info == null) {
                     info = createAlarmSubSystem(subSystemInfo, serverInfo);
                     addSubSystemList.add(info);

+ 1 - 14
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceStatusServiceImpl.java

@@ -1,25 +1,19 @@
 package com.xunmei.host.iot.service.impl;
 
-import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
-import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
-import com.xunmei.common.core.domain.notice.CoreNoticeRuleItem;
-import com.xunmei.common.core.domain.notice.WebsocketNoticeLog;
 import com.xunmei.common.core.enums.iot.BaseDeviceTypeEnum;
 import com.xunmei.common.core.enums.iot.DeviceStatusEnum;
 import com.xunmei.common.core.enums.iot.SensorType;
 import com.xunmei.common.core.util.BeanHelper;
-import com.xunmei.common.core.vo.notice.WebSocketNoticeVo;
 import com.xunmei.host.alarm.mapper.IotAlarmSystemFieldMapper;
 import com.xunmei.host.alarm.service.IotAlarmDataService;
 import com.xunmei.host.iot.dto.AlarmDataReq;
@@ -27,8 +21,6 @@ import com.xunmei.host.iot.mapper.IotDeviceStatusMapper;
 import com.xunmei.host.iot.service.IIotDeviceInfoService;
 import com.xunmei.host.iot.service.IotDeviceStatusLogService;
 import com.xunmei.host.iot.service.IotDeviceStatusService;
-import com.xunmei.host.notice.service.ICoreNoticeRuleItemService;
-import com.xunmei.host.notice.service.ICoreNoticeRuleService;
 import com.xunmei.host.notice.service.IWebsocketNoticeLogService;
 import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
@@ -37,13 +29,10 @@ import com.xunmei.host.websocket.dto.WebsocketResult;
 import com.xunmei.host.websocket.enums.DeviceNetStatusEnum;
 import com.xunmei.host.websocket.enums.ProductEnums;
 import com.xunmei.host.websocket.service.RouterService;
-import com.xunmei.system.api.RemoteOrgService;
-import com.xunmei.system.api.RemoteWebsocketSendService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.domain.iot.IotDeviceStatus;
 import com.xunmei.system.api.util.LogUtils;
-import com.xunmei.system.api.vo.WebSocketSendVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -93,8 +82,6 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
         final JSONArray array = new JSONArray();
         for (Object datum : data) {
             JSONObject jsb = (JSONObject) datum;
-
-
             final Optional<IotAlarmSystemField> fieldOptional = fieldList
                     .stream()
                     .filter(r -> ObjectUtil.equal(r.getProductProperty(), jsb.get("propertyName")))
@@ -264,7 +251,7 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
         }
         String deviceType = SensorType.getCodeByProduct(productName);
         List<IotAlarmSystemField> fieldList = alarmSystemFieldMapper.selectList(new LambdaQueryWrapper<>());
-        final JSONArray array = dealStatusData(data, fieldList, deviceType);
+        final JSONArray array = dealStatusData(data, fieldList, deviceTypeEnum.name());
         IotDeviceStatus status = getByDeviceId(code.getId());
         final LocalDateTime now = LocalDateTime.now();
         if (status == null) {

+ 32 - 18
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/server/service/impl/IotServerInfoServiceImpl.java

@@ -7,14 +7,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
 import com.xunmei.common.core.utils.uuid.UUID;
+import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.host.server.mapper.IotServerInfoMapper;
 import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.util.LogUtils;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
@@ -30,25 +34,35 @@ public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, I
 
     @Override
     public IotServerInfo getToken(String registerCode) {
-        //未使用过的注册码应该是唯一的
-        LambdaQueryWrapper<IotServerInfo> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(IotServerInfo::getRegisterCode, registerCode);
-        queryWrapper.eq(IotServerInfo::getRegisterCodeStatus, 0);
-        queryWrapper.eq(IotServerInfo::getEnable, 0);
-        queryWrapper.last(Constants.LIMIT1);
-        IotServerInfo serverInfo = baseMapper.selectOne(queryWrapper);
-        if (serverInfo == null) {
-            LogUtils.SOCKET_DAILY_HEALTH.error("未能根据registerCode查询到对应的token,registerCode:{}", registerCode);
-            return null;
+        final RedissonClient client = RedisUtils.getClient();
+        final RLock lock = client.getLock("getToken" + registerCode);
+        try {
+            final boolean tryLock = lock.tryLock(10, 10, TimeUnit.SECONDS);
+            if (tryLock) {
+                //未使用过的注册码应该是唯一的
+                LambdaQueryWrapper<IotServerInfo> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(IotServerInfo::getRegisterCode, registerCode);
+                queryWrapper.eq(IotServerInfo::getRegisterCodeStatus, 0);
+                queryWrapper.eq(IotServerInfo::getEnable, 0);
+                queryWrapper.last(Constants.LIMIT1);
+                IotServerInfo serverInfo = baseMapper.selectOne(queryWrapper);
+                if (serverInfo == null) {
+                    LogUtils.SOCKET_DAILY_HEALTH.error("未能根据registerCode查询到对应的token,registerCode:{}", registerCode);
+                    return null;
+                }
+                if (ObjectUtil.isEmpty(serverInfo.getIotCode())) {
+                    LogUtils.WEBSOCKET_MSG.info("iotCode为空,生成iotCode");
+                    serverInfo.setIotCode(UUID.randomUUID().toString());
+                }
+
+                updateById(serverInfo);
+
+                return serverInfo;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        if (ObjectUtil.isEmpty(serverInfo.getIotCode())) {
-            LogUtils.WEBSOCKET_MSG.info("iotCode为空,生成iotCode");
-            serverInfo.setIotCode(UUID.randomUUID().toString());
-        }
-
-        updateById(serverInfo);
-
-        return serverInfo;
+        throw new RuntimeException("获取token失败");
     }
 
 

+ 1 - 1
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/video/service/impl/IotDvrDiskServiceImpl.java

@@ -131,7 +131,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
     public void deleteByTokenAndHostCode(String token,String hostCode) {
         UpdateWrapper<IotDvrDisk> uw = new UpdateWrapper<>();
         uw.lambda().eq(IotDvrDisk::getIotToken, token);
-        uw.lambda().eq(IotDvrDisk::getHostCode, hostCode);
+        uw.lambda().eq(ObjectUtil.isNotNull(hostCode),IotDvrDisk::getHostCode, hostCode);
         uw.lambda().set(IotDvrDisk::getDeleted, 1);
         update(uw);
     }

+ 26 - 3
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/work/service/impl/IotWorkRuleServiceImpl.java

@@ -7,12 +7,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
+import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
 import com.xunmei.common.core.domain.work.domain.IotWorkRule;
 import com.xunmei.common.core.domain.work.domain.IotWorkRuleItem;
 import com.xunmei.common.core.domain.work.dto.WorkRuleItemReq;
 import com.xunmei.common.core.domain.work.dto.WorkRuleReq;
 import com.xunmei.common.core.utils.JacksonUtils;
+import com.xunmei.common.core.utils.RsaHelper;
+import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.host.protection.service.IotAlarmSubsystemService;
+import com.xunmei.host.server.service.IotServerInfoService;
 import com.xunmei.host.websocket.constant.WebSocketConstants;
 import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
 import com.xunmei.host.websocket.enums.ProductEnums;
@@ -36,6 +40,9 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
     @Resource
     private IotAlarmSubsystemService subsystemService;
 
+    @Resource
+    private IotServerInfoService iotServerInfoService;
+
 
     @Override
     public void deleteWorkRule(IotWorkRule iotWorkRule) {
@@ -81,7 +88,7 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void saveBatchWorkRule(WebsocketExecuteReq req){
+    public void saveBatchWorkRule(WebsocketExecuteReq req) {
         Object data = req.getData();
         JSONArray dataArray = (JSONArray) data;
         List<WorkRuleReq> dataList = dataArray.toJavaList(WorkRuleReq.class);
@@ -118,7 +125,7 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void saveOrUpdateWorkRule(WebsocketExecuteReq req){
+    public void saveOrUpdateWorkRule(WebsocketExecuteReq req) {
         Object data = req.getData();
         WorkRuleReq workRuleReq = JSON.parseObject(data.toString(), WorkRuleReq.class);
         saveData(workRuleReq,req.getServerInfo().getIotCode());
@@ -134,7 +141,7 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void saveData(WorkRuleReq workRuleReq,String iotToken){
+    public void saveData(WorkRuleReq workRuleReq,String iotToken) {
         IotWorkRule workRule = getWorkRule(workRuleReq, iotToken);
         List<IotWorkRuleItem> deleteList = new ArrayList<>();
         List<IotWorkRuleItem> updateList = new ArrayList<>();
@@ -223,6 +230,22 @@ public class IotWorkRuleServiceImpl extends ServiceImpl<IotWorkRuleMapper, IotWo
             ruleItemService.removeBatchByIds(deleteList);
         }
 
+        String password = null;
+        //修改操作密码
+        if (StringUtils.isNotEmpty(workRuleReq.getPassword())){
+            try {
+                password = RsaHelper.decodeStr(workRuleReq.getPassword());
+            }catch (Exception e){
+                throw new RuntimeException("密码解密失败");
+            }
+        }
+        QueryWrapper<IotServerInfo> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(IotServerInfo::getIotCode, iotToken);
+        IotServerInfo serverInfo = iotServerInfoService.getOne(wrapper);
+        if (null != serverInfo){
+            serverInfo.setPassword(password);
+            iotServerInfoService.updateById(serverInfo);
+        }
     }
 
     private IotWorkRule getWorkRule(WorkRuleReq workRuleReq,String iotToken){

+ 109 - 95
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmDataServiceImpl.java

@@ -41,6 +41,7 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
 
     @Resource
     private RemoteOrgService orgService;
+
     @Override
     public TableDataInfo<IotAlarmDataVo> selectListPage(IotAlarmDataVo request) {
         //未删除
@@ -52,31 +53,30 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
             page = new Page<>();
         }
 
-        if(ObjectUtil.isNotEmpty(request.getAlarmTime())){
+        if (ObjectUtil.isNotEmpty(request.getAlarmTime())) {
             DateTime startTime = DateUtil.parse(request.getAlarmTime().get(0), "yyyy-MM-dd HH:mm:ss");
             DateTime endTime = DateUtil.parse(request.getAlarmTime().get(1), "yyyy-MM-dd HH:mm:ss");
-            request.getParams().put("alarmStartTime",DateUtil.beginOfDay(startTime));
-            request.getParams().put("alarmEndTime",DateUtil.endOfDay(endTime));
+            request.getParams().put("alarmStartTime", DateUtil.beginOfDay(startTime));
+            request.getParams().put("alarmEndTime", DateUtil.endOfDay(endTime));
         }
 
-        if(ObjectUtil.isNotEmpty(request.getAlarmEndTime())){
+        if (ObjectUtil.isNotEmpty(request.getAlarmEndTime())) {
             DateTime startTime = DateUtil.parse(request.getAlarmEndTime().get(0), "yyyy-MM-dd HH:mm:ss");
             DateTime endTime = DateUtil.parse(request.getAlarmEndTime().get(1), "yyyy-MM-dd HH:mm:ss");
-            request.getParams().put("endAlarmStartTime",DateUtil.beginOfDay(startTime));
-            request.getParams().put("endAlarmEndTime",DateUtil.endOfDay(endTime));
+            request.getParams().put("endAlarmStartTime", DateUtil.beginOfDay(startTime));
+            request.getParams().put("endAlarmEndTime", DateUtil.endOfDay(endTime));
 
         }
 
-        if(ObjectUtil.isNotEmpty(request.getAlarmDealTime())){
+        if (ObjectUtil.isNotEmpty(request.getAlarmDealTime())) {
             DateTime startTime = DateUtil.parse(request.getAlarmDealTime().get(0), "yyyy-MM-dd HH:mm:ss");
             DateTime endTime = DateUtil.parse(request.getAlarmDealTime().get(1), "yyyy-MM-dd HH:mm:ss");
-            request.getParams().put("dealAlarmStartTime",DateUtil.beginOfDay(startTime));
-            request.getParams().put("dealAlarmEndTime",DateUtil.endOfDay(endTime));
+            request.getParams().put("dealAlarmStartTime", DateUtil.beginOfDay(startTime));
+            request.getParams().put("dealAlarmEndTime", DateUtil.endOfDay(endTime));
         }
 
 
-
-        if(request.getCheckSub() && ObjectUtil.isNotEmpty(request.getOrgId())){
+        if (request.getCheckSub() && ObjectUtil.isNotEmpty(request.getOrgId())) {
             SysOrg org = orgService.selectSysOrgById(request.getOrgId(), SecurityConstants.INNER);
             request.setOrgPath(org.getPath());
             request.setOrgId(null);
@@ -85,54 +85,54 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
         List<String> deviceTypes = Lists.newArrayList();
         Integer dataType = request.getDataType();
         String deviceType = request.getDeviceType();
-        if(dataType == null){
-            if(StringUtils.isNotEmpty(deviceType)){
+        if (dataType == null) {
+            if (StringUtils.isNotEmpty(deviceType)) {
                 //两种告警分类都包含的告警类型合并
-                if(String.valueOf(SensorType.INFRARED_SENSOR.getProductName()).equals(deviceType)){
+                if (String.valueOf(SensorType.INFRARED_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Infrared");
                     deviceTypes.add(deviceType);
-                }else if(String.valueOf(SensorType.SMOKE_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.SMOKE_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Smoke");
                     deviceTypes.add(deviceType);
-                }else if(String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Humidity");
                     deviceTypes.add("AlarmHostInput_Temperature");
                     deviceTypes.add(deviceType);
-                }else if(String.valueOf(SensorType.WATER_INTRUSION.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.WATER_INTRUSION.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Soaking");
                     deviceTypes.add(deviceType);
-                }else if(String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_DoorSensor");
                     deviceTypes.add(deviceType);
-                }else{
+                } else {
                     deviceTypes.add(deviceType);
                 }
             }
-        }else if(dataType == 2){
+        } else if (dataType == 2) {
             //报警主机类:下拉框告警类型转换
-            if(StringUtils.isNotEmpty(deviceType)){
-                if(String.valueOf(SensorType.INFRARED_SENSOR.getProductName()).equals(deviceType)){
+            if (StringUtils.isNotEmpty(deviceType)) {
+                if (String.valueOf(SensorType.INFRARED_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Infrared");
-                }else if(String.valueOf(SensorType.SMOKE_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.SMOKE_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Smoke");
-                }else if(String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Humidity");
                     deviceTypes.add("AlarmHostInput_Temperature");
-                }else if(String.valueOf(SensorType.WATER_INTRUSION.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.WATER_INTRUSION.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_Soaking");
-                }else if(String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getProductName()).equals(deviceType)){
+                } else if (String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getProductName()).equals(deviceType)) {
                     deviceTypes.add("AlarmHostInput_DoorSensor");
-                }else{
+                } else {
                     deviceTypes.add(deviceType);
                 }
             }
-        }else{
-            if(StringUtils.isNotEmpty(deviceType)) {
+        } else {
+            if (StringUtils.isNotEmpty(deviceType)) {
                 deviceTypes.add(deviceType);
             }
         }
 
-        Page<IotAlarmDataVo> iotAlarmDataVoPage = baseMapper.selectPageList(page, request,deviceTypes);
+        Page<IotAlarmDataVo> iotAlarmDataVoPage = baseMapper.selectPageList(page, request, deviceTypes);
 
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(iotAlarmDataVoPage);
@@ -140,29 +140,29 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
 
     @Override
     public TableDataInfo<AppAlarmDataPageVo> selectListAppPage(AppAlarmPageDto request) {
-        Page<AppAlarmDataPageVo> page=request.toPage();
-        if(request.getCheckSub() && ObjectUtil.isNotEmpty(request.getOrgId())){
+        Page<AppAlarmDataPageVo> page = request.toPage();
+        if (request.getCheckSub() && ObjectUtil.isNotEmpty(request.getOrgId())) {
             SysOrg org = orgService.selectSysOrgById(request.getOrgId(), SecurityConstants.INNER);
             request.setOrgPath(org.getPath());
             request.setOrgId(null);
         }
-        if(ObjectUtil.isNotEmpty(request.getAlarmTime()) && request.getAlarmTime().size() > 0){
-            LocalDateTime alarmStartTime =LocalDateTime.parse(request.getAlarmTime().get(0), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-            LocalDateTime alarmEndTime =LocalDateTime.parse(request.getAlarmTime().get(1), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-            request.getParams().put("alarmStartTime",alarmStartTime);
-            request.getParams().put("alarmEndTime",alarmEndTime);
+        if (ObjectUtil.isNotEmpty(request.getAlarmTime()) && request.getAlarmTime().size() > 0) {
+            LocalDateTime alarmStartTime = LocalDateTime.parse(request.getAlarmTime().get(0), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+            LocalDateTime alarmEndTime = LocalDateTime.parse(request.getAlarmTime().get(1), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+            request.getParams().put("alarmStartTime", alarmStartTime);
+            request.getParams().put("alarmEndTime", alarmEndTime);
         }
 
-        page=baseMapper.selectAppPageList(page,request);
+        page = baseMapper.selectAppPageList(page, request);
 
         return TableDataInfo.build(page);
     }
 
     @Override
     public IotAlarmDataVo getDetail(Long id) {
-        IotAlarmDataVo vo=baseMapper.detail(id);
+        IotAlarmDataVo vo = baseMapper.detail(id);
 
-        return  vo;
+        return vo;
     }
 
     @Override
@@ -179,57 +179,71 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
     }
 
     @Override
-    public Integer appBadge(Long orgId){
-        Integer count=baseMapper.appBadge(orgId);
+    public Integer appBadge(Long orgId) {
+        Integer count = baseMapper.appBadge(orgId);
 
-        return  count;
+        return count;
     }
 
     @Override
-    public List<IotAlarmData> selectAlarmDataListByOrgPath(String orgPath,Integer dataType) {
+    public List<IotAlarmData> selectAlarmDataListByOrgPath(String orgPath, Integer dataType) {
 
 
-        return baseMapper.selectAlarmDataListByOrgPath(orgPath,dataType);
+        return baseMapper.selectAlarmDataListByOrgPath(orgPath, dataType);
     }
 
     @Override
     public SensorAlarmCountVo selectDeviceTypeCount(AppAlarmPageDto requestDto) {
         SensorAlarmCountVo sensorAlarmCountVo = new SensorAlarmCountVo();
-        if(requestDto.getCheckSub() && ObjectUtil.isNotEmpty(requestDto.getOrgId())){
+        if (requestDto.getCheckSub() && ObjectUtil.isNotEmpty(requestDto.getOrgId())) {
             SysOrg org = orgService.selectSysOrgById(requestDto.getOrgId(), SecurityConstants.INNER);
             requestDto.setOrgPath(org.getPath());
         }
         List<DeviceTypeCountVo> list = baseMapper.selectDeviceTypeCount(requestDto);
         for (DeviceTypeCountVo vo : list) {
             final BaseDeviceTypeEnum typeEnum = BaseDeviceTypeEnum.getEnumByCode(vo.getDeviceType());
-            switch (typeEnum){
+            switch (typeEnum) {
                 case FSU_Infrared://红外
-                    sensorAlarmCountVo.setInfraredCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setInfraredAlarmCount(vo.getDeviceTypeAlarmCount());
+                case AlarmHostInput_Infrared://红外
+                    sensorAlarmCountVo.setInfraredCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getInfraredCount());
+                    sensorAlarmCountVo.setInfraredAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getInfraredAlarmCount());
                     break;
                 case FSU_Smoke://烟感
-                    sensorAlarmCountVo.setSmokeCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setSmokeAlarmCount(vo.getDeviceTypeAlarmCount());
+                case AlarmHostInput_Smoke://烟感
+                    sensorAlarmCountVo.setSmokeCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getSmokeCount());
+                    sensorAlarmCountVo.setSmokeAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getSmokeAlarmCount());
                     break;
                 case FSU_TemperatureAndHumidity://温湿度
-                    sensorAlarmCountVo.setTemperatureAndHumidityCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setTemperatureAndHumidityAlarmCount(vo.getDeviceTypeAlarmCount());
+                case AlarmHostInput_Humidity://湿度
+                case AlarmHostInput_Temperature://温度
+                    sensorAlarmCountVo.setTemperatureAndHumidityCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getTemperatureAndHumidityCount());
+                    sensorAlarmCountVo.setTemperatureAndHumidityAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getTemperatureAndHumidityAlarmCount());
                     break;
                 case FSU_Water://水浸
-                    sensorAlarmCountVo.setWaterCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setWaterAlarmCount(vo.getDeviceTypeAlarmCount());
+                case AlarmHostInput_Soaking://水浸
+                    sensorAlarmCountVo.setWaterCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getWaterCount());
+                    sensorAlarmCountVo.setWaterAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getWaterAlarmCount());
                     break;
                 case FSU_DoorMagnetic://门磁
-                    sensorAlarmCountVo.setDoorCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setDoorAlarmCount(vo.getDeviceTypeAlarmCount());
+                case AlarmHostInput_DoorSensor://门磁
+                    sensorAlarmCountVo.setDoorCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getDoorCount());
+                    sensorAlarmCountVo.setDoorAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getDoorAlarmCount());
                     break;
                 case FSU_Theft://防盗
-                    sensorAlarmCountVo.setThiefCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setThiefAlarmCount(vo.getDeviceTypeAlarmCount());
+                    sensorAlarmCountVo.setThiefCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getThiefCount());
+                    sensorAlarmCountVo.setThiefAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getThiefAlarmCount());
                     break;
                 case FSU_Gas://燃气
-                    sensorAlarmCountVo.setGasCount(vo.getDeviceTypeCount());
-                    sensorAlarmCountVo.setGasAlarmCount(vo.getDeviceTypeAlarmCount());
+                    sensorAlarmCountVo.setGasCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getGasCount());
+                    sensorAlarmCountVo.setGasAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getGasAlarmCount());
+                    break;
+                case FSU_Ups://ups
+                    sensorAlarmCountVo.setUpsCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getUpsCount());
+                    sensorAlarmCountVo.setUpsAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getUpsAlarmCount());
+                    break;
+                case FSU_AirConditioner://空调
+                    sensorAlarmCountVo.setAirCount(vo.getDeviceTypeCount() + sensorAlarmCountVo.getAirCount());
+                    sensorAlarmCountVo.setAirAlarmCount(vo.getDeviceTypeAlarmCount() + sensorAlarmCountVo.getAirAlarmCount());
                     break;
             }
         }
@@ -242,10 +256,10 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
         pageDto.setOrgId(orgId);
         pageDto.setCheckSub(true);
         SensorAlarmCountVo alarmCountVo = this.selectDeviceTypeCount(pageDto);
-        if (alarmCountVo != null){
-            Integer smokeAlarmCount = alarmCountVo.getSmokeAlarmCount() == null ? 0 : alarmCountVo.getSmokeAlarmCount();
-            Integer gasAlarmCount = alarmCountVo.getGasAlarmCount() == null ? 0 : alarmCountVo.getGasAlarmCount();
-            Integer htAlarmCount = alarmCountVo.getTemperatureAndHumidityAlarmCount() == null ? 0 : alarmCountVo.getTemperatureAndHumidityAlarmCount();
+        if (alarmCountVo != null) {
+            Integer smokeAlarmCount = alarmCountVo.getSmokeAlarmCount();
+            Integer gasAlarmCount = alarmCountVo.getGasAlarmCount();
+            Integer htAlarmCount = alarmCountVo.getTemperatureAndHumidityAlarmCount();
             Integer count = smokeAlarmCount + gasAlarmCount + htAlarmCount;
             return count;
         }
@@ -258,13 +272,13 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
         pageDto.setCheckSub(true);
         pageDto.setOrgId(orgId);
         SensorAlarmCountVo alarmCountVo = this.selectDeviceTypeCount(pageDto);
-        if (alarmCountVo != null){
-            Integer thiefAlarmCount = alarmCountVo.getThiefAlarmCount() == null ? 0 : alarmCountVo.getThiefAlarmCount();
-            Integer infraredAlarmCount = alarmCountVo.getInfraredAlarmCount() == null ? 0 : alarmCountVo.getInfraredAlarmCount();
-            Integer doorAlarmCount = alarmCountVo.getDoorAlarmCount() == null ? 0 : alarmCountVo.getDoorAlarmCount();
-            Integer waterAlarmCount = alarmCountVo.getWaterAlarmCount() == null ? 0 : alarmCountVo.getWaterAlarmCount();
-            Integer upsAlarmCount = alarmCountVo.getUpsAlarmCount() == null ? 0 : alarmCountVo.getUpsAlarmCount();
-            Integer airAlarmCount = alarmCountVo.getAirAlarmCount() == null ? 0 : alarmCountVo.getAirAlarmCount();
+        if (alarmCountVo != null) {
+            Integer thiefAlarmCount = alarmCountVo.getThiefAlarmCount();
+            Integer infraredAlarmCount = alarmCountVo.getInfraredAlarmCount();
+            Integer doorAlarmCount = alarmCountVo.getDoorAlarmCount();
+            Integer waterAlarmCount = alarmCountVo.getWaterAlarmCount();
+            Integer upsAlarmCount = alarmCountVo.getUpsAlarmCount();
+            Integer airAlarmCount = alarmCountVo.getAirAlarmCount();
             Integer count = thiefAlarmCount + infraredAlarmCount + doorAlarmCount + waterAlarmCount + upsAlarmCount + airAlarmCount;
             return count;
         }
@@ -286,10 +300,10 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
     }
 
     @Override
-    public List<Map<String,String>> selectAlarmCount(String orgPath) {
+    public List<Map<String, String>> selectAlarmCount(String orgPath) {
         Date date = new Date();
         Date beginTime = DateUtil.offsetDay(DateUtil.beginOfDay(date), -90);
-        return baseMapper.selectAlarmCount(orgPath,beginTime);
+        return baseMapper.selectAlarmCount(orgPath, beginTime);
     }
 
     @Override
@@ -303,8 +317,8 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
         List<AlarmTypeSelectedVO> list = Lists.newArrayList();
         AlarmTypeSelectedVO bean;
         String suffix = "告警";
-        List<String> excludeTypes = Lists.newArrayList("FSU_AirConditioner","FSU_DoPowerCollection","FSU_DoPowerControlBoxButton",
-                "AlarmHostInput_Humidity","AlarmHostInput_Temperature","AlarmHostInput_Smoke","AlarmHostInput_Infrared","AlarmHostInput_Soaking","AlarmHostInput_DoorSensor");
+        List<String> excludeTypes = Lists.newArrayList("FSU_AirConditioner", "FSU_DoPowerCollection", "FSU_DoPowerControlBoxButton",
+                "AlarmHostInput_Humidity", "AlarmHostInput_Temperature", "AlarmHostInput_Smoke", "AlarmHostInput_Infrared", "AlarmHostInput_Soaking", "AlarmHostInput_DoorSensor");
         List<String> mixTypes = Lists.newArrayList(
                 String.valueOf(SensorType.INFRARED_SENSOR.getProductName()),
                 String.valueOf(SensorType.SMOKE_SENSOR.getProductName()),
@@ -312,52 +326,52 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
                 String.valueOf(SensorType.WATER_INTRUSION.getProductName()),
                 String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getProductName())
         );
-        if(StringUtils.isEmpty(type)){
-            List<AlarmTypeSelectedVO> types0=baseMapper.selectAlarmTypeList(excludeTypes,null,type);
-            for(AlarmTypeSelectedVO vo:types0){
-                vo.setLabel(vo.getLabel()+suffix);
+        if (StringUtils.isEmpty(type)) {
+            List<AlarmTypeSelectedVO> types0 = baseMapper.selectAlarmTypeList(excludeTypes, null, type);
+            for (AlarmTypeSelectedVO vo : types0) {
+                vo.setLabel(vo.getLabel() + suffix);
 
                 //两种告警分类都包含的告警类型合并
-                boolean isMix =false;
-                for(String mix :mixTypes){
-                    if(mix.equals(vo.getValue())){
-                        isMix =true;
+                boolean isMix = false;
+                for (String mix : mixTypes) {
+                    if (mix.equals(vo.getValue())) {
+                        isMix = true;
                         break;
                     }
                 }
-                if(isMix){
+                if (isMix) {
                     vo.setType("0_2");
-                }else{
+                } else {
                     vo.setType(vo.getValue().startsWith("FSU_") ? "0" : "2");
                 }
             }
             list.addAll(types0);
 
             List<AlarmTypeSelectedVO> types1 = Lists.newArrayList();
-            for(AlarmVideoTypeEnum enums:AlarmVideoTypeEnum.values()){
+            for (AlarmVideoTypeEnum enums : AlarmVideoTypeEnum.values()) {
                 bean = new AlarmTypeSelectedVO();
                 String value = String.valueOf(enums.getValue());
                 bean.setValue(value);
-                bean.setLabel(enums.getText()+suffix);
+                bean.setLabel(enums.getText() + suffix);
                 bean.setType("1");
                 types1.add(bean);
             }
             list.addAll(types1);
-        }else if(type.equals("1")){
+        } else if (type.equals("1")) {
             List<AlarmTypeSelectedVO> types1 = Lists.newArrayList();
-            for(AlarmVideoTypeEnum enums:AlarmVideoTypeEnum.values()){
+            for (AlarmVideoTypeEnum enums : AlarmVideoTypeEnum.values()) {
                 bean = new AlarmTypeSelectedVO();
                 String value = String.valueOf(enums.getValue());
                 bean.setValue(value);
-                bean.setLabel(enums.getText()+suffix);
+                bean.setLabel(enums.getText() + suffix);
                 bean.setType(type);
                 types1.add(bean);
             }
             list.addAll(types1);
-        }else{
-            List<AlarmTypeSelectedVO> types0=baseMapper.selectAlarmTypeList(excludeTypes,mixTypes,type);
-            for(AlarmTypeSelectedVO vo:types0){
-                vo.setLabel(vo.getLabel()+suffix);
+        } else {
+            List<AlarmTypeSelectedVO> types0 = baseMapper.selectAlarmTypeList(excludeTypes, mixTypes, type);
+            for (AlarmTypeSelectedVO vo : types0) {
+                vo.setLabel(vo.getLabel() + suffix);
                 vo.setType(type);
             }
             list.addAll(types0);

+ 5 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -238,10 +238,15 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
             request.setOrgPath(sysOrg.getPath());
             request.setOrgId(null);
         }
+
         final List<String> list = sensorTurnToDefenceArea(request.getDeviceType());
         if (ObjectUtil.isNotEmpty(list)) {
             request.setDefenceAreaType(list);
         }
+        if (ObjectUtil.isNotEmpty(request.getDeviceType())) {
+            final SensorType sensorType = SensorType.getSensorTypeEnum(Integer.parseInt(request.getDeviceType()));
+            request.setDeviceType(sensorType.getProductName());
+        }
     }
 
     private void dealPageParam(SensorPageDto request) {

+ 9 - 9
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDvrDiskServiceImpl.java

@@ -109,7 +109,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
             SysOrg org = orgService.selectOrgById(pageDto.getOrgId(), SecurityConstants.INNER);
             orgPath = org.getPath();
         }
-       // pageDto.setCategoryId(CategoryDataEnum.MONITOR_HOST_DEVICE.getId());
+        // pageDto.setCategoryId(CategoryDataEnum.MONITOR_HOST_DEVICE.getId());
         Page<DvrDiskAppPageVo> page = pageDto.toPage();
         page = baseMapper.selectAppHostPage(page, pageDto, orgPath);
         page.getRecords().forEach(r -> {
@@ -122,27 +122,27 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
             } else {
                 r.setState(2);
             }
-            if (SecurityUtils.isApp()){
-                r.setOrgName(orgService.concatOrgName(r.getOrgId(),SecurityConstants.INNER));
+            if (SecurityUtils.isApp()) {
+                r.setOrgName(orgService.concatOrgName(r.getOrgId(), SecurityConstants.INNER));
             }
         });
         return TableDataInfo.success(page);
     }
 
     @Override
-    public Integer badge(Long orgId,boolean checkSub) {
+    public Integer badge(Long orgId, boolean checkSub) {
 
 
 //        Long count = baseMapper.selectCount(new LambdaQueryWrapper<IotDvrDisk>()
 //                .eq(IotDvrDisk::getOrgId, orgId)
 //                .eq(IotDvrDisk::getState, 1)
 //                .eq(IotDvrDisk::getDeleted, 0));
-        String orgPath=null;
-        if(checkSub)
-        {
+        String orgPath = null;
+        if (checkSub) {
             SysOrg sysOrg = orgService.selectOrgById(orgId, SecurityConstants.INNER);
-            orgPath=sysOrg.getPath();
+            orgPath = sysOrg.getPath();
+            orgId = null;
         }
-        return baseMapper.selectDiskBadge(orgId,orgPath);
+        return baseMapper.selectDiskBadge(orgId, orgPath);
     }
 }

+ 2 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarmData/DeviceTypeCountVo.java

@@ -7,7 +7,7 @@ public class DeviceTypeCountVo {
 
     private String deviceType;
 
-    private Integer deviceTypeCount;
+    private int deviceTypeCount;
 
-    private Integer deviceTypeAlarmCount;
+    private int deviceTypeAlarmCount;
 }

+ 18 - 18
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarmData/SensorAlarmCountVo.java

@@ -5,39 +5,39 @@ import lombok.Data;
 @Data
 public class SensorAlarmCountVo {
 
-    private Integer smokeCount;
+    private int smokeCount;
 
-    private Integer smokeAlarmCount;
+    private int smokeAlarmCount;
 
-    private Integer gasCount;
+    private int gasCount;
 
-    private Integer gasAlarmCount;
+    private int gasAlarmCount;
 
-    private Integer temperatureAndHumidityCount;
+    private int temperatureAndHumidityCount;
 
-    private Integer temperatureAndHumidityAlarmCount;
+    private int temperatureAndHumidityAlarmCount;
 
-    private Integer thiefCount;
+    private int thiefCount;
 
-    private Integer thiefAlarmCount;
+    private int thiefAlarmCount;
 
-    private Integer infraredCount;
+    private int infraredCount;
 
-    private Integer infraredAlarmCount;
+    private int infraredAlarmCount;
 
-    private Integer doorCount;
+    private int doorCount;
 
-    private Integer doorAlarmCount;
+    private int doorAlarmCount;
 
-    private Integer waterCount;
+    private int waterCount;
 
-    private Integer waterAlarmCount;
+    private int waterAlarmCount;
 
-    private Integer upsCount;
+    private int upsCount;
 
-    private Integer upsAlarmCount;
+    private int upsAlarmCount;
 
-    private Integer airCount;
+    private int airCount;
 
-    private Integer airAlarmCount;
+    private int airAlarmCount;
 }

+ 37 - 14
soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmDataMapper.xml

@@ -129,21 +129,44 @@
     </select>
 
     <select id="selectDeviceTypeCount" resultType="com.xunmei.iot.vo.alarmData.DeviceTypeCountVo">
-        SELECT a.device_type as deviceType ,count(1) as deviceTypeCount,t.alarmNums as deviceTypeAlarmCount
-        FROM iot_device_info a INNER JOIN (
-        SELECT s.device_id as deviceId,COUNT(1) as alarmNums from iot_device_info i INNER join iot_device_status s on
-        i.id = s.device_id and i.iot_token = s.iot_token
-        WHERE s.state=1
+        SELECT
+            a.device_type as deviceType,
+            count(1) as deviceTypeCount,
+            t.alarmNums as deviceTypeAlarmCount
+        FROM iot_device_info a
+        left JOIN (
+            SELECT s.device_id as deviceId,
+                      COUNT(1) as alarmNums
+            from iot_device_info i
+            INNER join iot_device_status s on i.id = s.device_id and i.iot_token = s.iot_token and i.deleted = 0
+            WHERE s.state=1
+            group by s.device_id
         ) t on t.deviceId= a.id
-        <where>
-            <if test="  query.checkSub != null and query.checkSub == true">
-                and a.org_path like concat(concat('%',#{query.orgPath}),'%')
-            </if>
-            <if test="  query.checkSub != null and query.checkSub == false">
-                and a.org_id = #{query.orgId}
-            </if>
-        </where>
-        GROUP BY a.device_type;
+        WHERE a.deleted = 0
+        <if test="  query.checkSub != null and query.checkSub == true">
+            and a.org_path like concat(concat('%',#{query.orgPath}),'%')
+        </if>
+        <if test="  query.checkSub != null and query.checkSub == false">
+            and a.org_id = #{query.orgId}
+        </if>
+        GROUP BY a.device_type
+        union all
+        SELECT
+            a.sensor_type as deviceType,
+            count(1) as deviceTypeCount,
+            t.alarmNums as deviceTypeAlarmCount
+        FROM iot_alarm_defence_area a
+        left JOIN (
+                SELECT a.id as deviceId,
+                sum(IF(a.state='alarm',1,0)) as alarmNums FROM iot_alarm_defence_area a where a.deleted=0 GROUP BY a.id
+        ) t on a.id=t.deviceId WHERE a.deleted = 0
+        <if test="  query.checkSub != null and query.checkSub == true">
+            and a.org_path like concat(concat('%',#{query.orgPath}),'%')
+        </if>
+        <if test="  query.checkSub != null and query.checkSub == false">
+            and a.org_id = #{query.orgId}
+        </if>
+        GROUP BY a.sensor_type;
     </select>
     <select id="selectSensorAlarmPageList" resultType="com.xunmei.iot.vo.alarm.IotAlarmDataVo">
         SELECT

+ 2 - 2
soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml

@@ -108,7 +108,7 @@
     </select>
     <select id="selectAppPageData" resultType="com.xunmei.iot.vo.sensor.SensorAppPageVo">
         select s.id, s.org_id, s.org_name, s.device_name, ds.device_type, ds.info as info, ds.state_update_time,ds.state
-        from iot_device_info s inner join iot_device_status ds on s.id=ds.device_id
+        from iot_device_info s left join iot_device_status ds on s.id=ds.device_id
         where s.deleted=0
         <if test="request.orgId!= null">
             and s.org_id=#{request.orgId}
@@ -120,7 +120,7 @@
             and ds.state = #{request.state}
         </if>
         <if test="request.deviceType!= null and request.deviceType!= ''">
-            and ds.device_type = #{request.deviceType}
+            and s.device_product = #{request.deviceType}
         </if>
         <if test="request.defenceAreaType != null and request.defenceAreaType.size()>0">
             UNION ALL