فهرست منبع

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

zhulu 1 سال پیش
والد
کامیت
b178787e92

+ 12 - 9
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotBoardController.java

@@ -2,21 +2,16 @@ package com.xunmei.iot.controller;
 
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.domain.PageDto;
-import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.iot.dto.dvrDisk.DvrDiskAlarmHistoryPageDto;
-import com.xunmei.iot.dto.dvrDisk.DvrDiskAppPageDto;
-import com.xunmei.iot.dto.dvrDisk.DvrDiskPageDto;
 import com.xunmei.iot.service.IotBoardService;
-import com.xunmei.iot.service.IotDvsDiskService;
 import com.xunmei.iot.vo.board.IotBoardOverviewVo;
-import com.xunmei.iot.vo.dvrDisk.DvrDiskAlarmHistoryPageVo;
-import com.xunmei.iot.vo.dvrDisk.DvrDiskAppPageVo;
-import com.xunmei.iot.vo.dvrDisk.DvrDiskPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
@@ -38,4 +33,12 @@ class IotBoardController {
         IotBoardOverviewVo vo = this.iotBoardService.overview(request.getOrgId());
         return AjaxResult.success(vo);
     }
+
+
+    @ApiOperation("分页")
+    @PostMapping({"/iot/app"})
+    AjaxResult iotOverview(@RequestBody final PageDto request)  throws ExecutionException, InterruptedException, TimeoutException {
+        return AjaxResult.success(this.iotBoardService.iotOverview(request.getOrgId()));
+    }
+
 }

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmDataMapper.java

@@ -9,6 +9,8 @@ import com.xunmei.iot.vo.alarmData.AppAlarmDataPageVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 @Mapper
 public interface IotAlarmDataMapper extends BaseMapper<IotAlarmData> {
     Page<IotAlarmDataVo> selectPageList(@Param("page") Page<IotAlarmDataVo> page, @Param("param") IotAlarmDataVo param);
@@ -18,4 +20,6 @@ public interface IotAlarmDataMapper extends BaseMapper<IotAlarmData> {
     IotAlarmDataVo detail(Long id);
 
     Integer appBadge(Long orgId);
+
+    List<IotAlarmData> selectAlarmDataListByOrgPath(@Param("orgPath") String orgPath, @Param("dataType") Integer dataType);
 }

+ 2 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotCommonSensorMapper.java

@@ -38,4 +38,6 @@ public interface IotCommonSensorMapper extends BaseMapper<IotSensor> {
     Page<SensorAppPageVo> selectAppPageData(Page<SensorAppPageVo> pageRequest, @Param("request") SensorAppPageDto request);
 
     SensorAppStateVo stateStatistic(@Param("request") SensorAppPageDto request);
+
+    List<IotSensor> selectListSensor(@Param("orgPath") String orgPath);
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IIotCommonSensorService.java

@@ -11,6 +11,7 @@ import com.xunmei.iot.vo.sensor.SensorAppVo;
 import com.xunmei.iot.vo.sensor.SensorPageVo;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * <p>
@@ -35,4 +36,6 @@ public interface IIotCommonSensorService extends IService<IotSensor> {
     SensorAppVo appDetail(Long id);
 
     Integer badge(Long orgId);
+
+    List<IotSensor> selectSensorListByOrgPath(String path);
 }

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmDataService.java

@@ -8,6 +8,8 @@ import com.xunmei.iot.dto.alarmData.dealAlarmDto;
 import com.xunmei.iot.vo.alarm.IotAlarmDataVo;
 import com.xunmei.iot.vo.alarmData.AppAlarmDataPageVo;
 
+import java.util.List;
+
 public interface IotAlarmDataService extends IService<IotAlarmData> {
 
     /**
@@ -24,4 +26,6 @@ public interface IotAlarmDataService extends IService<IotAlarmData> {
     Integer dealAlarm(dealAlarmDto requestDto);
 
     Integer appBadge(Long orgId);
+
+    List<IotAlarmData> selectAlarmDataListByOrgPath(String orgPath,Integer dataType);
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotBoardService.java

@@ -2,9 +2,12 @@ package com.xunmei.iot.service;
 
 import com.xunmei.iot.vo.board.IotBoardOverviewVo;
 
+import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
 
 public interface IotBoardService {
     IotBoardOverviewVo overview(Long orgId)  throws ExecutionException, InterruptedException, TimeoutException;
+
+    Map<String, Object> iotOverview(Long orgId);
 }

+ 8 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmDataServiceImpl.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
-import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.iot.dto.alarmData.AppAlarmPageDto;
@@ -21,7 +20,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
+import java.util.List;
 
 @Service
 public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, IotAlarmData> implements IotAlarmDataService {
@@ -121,4 +120,11 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
 
         return  count;
     }
+
+    @Override
+    public List<IotAlarmData> selectAlarmDataListByOrgPath(String orgPath,Integer dataType) {
+
+
+        return baseMapper.selectAlarmDataListByOrgPath(orgPath,dataType);
+    }
 }

+ 63 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotBoardServiceImpl.java

@@ -2,8 +2,12 @@ package com.xunmei.iot.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.iot.domain.IotSensor;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
 import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.iot.mapper.IotBoardMapper;
+import com.xunmei.iot.service.IIotCommonSensorService;
+import com.xunmei.iot.service.IotAlarmDataService;
 import com.xunmei.iot.service.IotBoardService;
 import com.xunmei.iot.vo.board.IotBoardOverviewItemVo;
 import com.xunmei.iot.vo.board.IotBoardOverviewVo;
@@ -14,10 +18,16 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.stream.Collectors;
 
 @Service
 public class IotBoardServiceImpl implements IotBoardService {
@@ -123,4 +133,57 @@ public class IotBoardServiceImpl implements IotBoardService {
 
         return vo;
     }
+
+    @Resource
+    IIotCommonSensorService sensorService;
+    @Resource
+    IotAlarmDataService alarmDataService;
+
+    @Override
+    public  Map<String, Object> iotOverview(Long orgId) {
+        Map<String, Object> dataMap = new HashMap<>();
+        List<Map<String,Object>> resultList = new ArrayList<>();
+        SysOrg org = remoteOrgService.selectOrgById(orgId, SecurityConstants.INNER);
+        List<IotSensor> list= sensorService.selectSensorListByOrgPath(org.getPath());
+        if (ObjectUtil.isEmpty(list)){
+            return dataMap;
+        }
+        //默认为正常
+        list.forEach(r -> {
+            if (ObjectUtil.isNull(r.getState())) {
+                r.setState(0);
+            }
+        });
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("key", "传感器设备");
+        map.put("sensorNums", list.size());
+        map.put("normal", 0);
+        map.put("alarm", 0);
+        dataMap.put("sensor",map);
+        Map<Integer, Long> collect = list.stream().collect(Collectors.groupingBy(IotSensor::getState, Collectors.counting()));
+        collect.forEach((k, v) -> {
+            if (ObjectUtil.equal(0, k)) {
+                map.put("normal", v.intValue());
+            }
+            if (ObjectUtil.equal(1, k)) {
+                map.put("alarm", v.intValue());
+            }
+        });
+        resultList.add(map);
+       List<IotAlarmData> alarmDataList= alarmDataService.selectAlarmDataListByOrgPath(org.getPath(),0);
+        Map<Object, List<IotAlarmData>> dataList = alarmDataList.stream().collect(Collectors.groupingBy(IotAlarmData::getSourceType));
+        for (Map.Entry<Object, List<IotAlarmData>> listEntry : dataList.entrySet()) {
+            List<IotAlarmData> value = listEntry.getValue();
+            Map<String, Object> hashMap = new HashMap<>();
+            long count = value.stream().filter(d -> ObjectUtil.isNotNull(d.getEndTime())).count();
+            long unDealAlarm = value.stream().filter(d -> ObjectUtil.isNull(d.getDoTime())).count();
+            hashMap.put("key",value.get(0).getSourceTypeDes());
+            hashMap.put("historyAlarm", count);
+            hashMap.put("currentAlarm", value.size() - count);
+            hashMap.put("unDealAlarm", unDealAlarm);
+            resultList.add(hashMap);
+        }
+        dataMap.put("resultData",resultList);
+        return dataMap;
+    }
 }

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

@@ -1,13 +1,13 @@
 package com.xunmei.iot.service.impl;
 
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -19,16 +19,11 @@ import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.iot.dto.sensor.SensorAppPageDto;
-import com.xunmei.iot.vo.sensor.SensorAppStateVo;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 import com.xunmei.iot.mapper.IotCommonSensorMapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.iot.mapper.MediatorCategoryMapper;
 import com.xunmei.iot.service.IIotCommonSensorService;
-import com.xunmei.iot.vo.sensor.SensorAppPageVo;
-import com.xunmei.iot.vo.sensor.SensorAppVo;
-import com.xunmei.iot.vo.sensor.SensorExportVo;
-import com.xunmei.iot.vo.sensor.SensorPageVo;
+import com.xunmei.iot.vo.sensor.*;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.vo.SysOrgVO;
@@ -174,6 +169,11 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
         return count.intValue();
     }
 
+    @Override
+    public List<IotSensor> selectSensorListByOrgPath(String orgPath) {
+        return baseMapper.selectListSensor(orgPath);
+    }
+
     private void dealAppPageParam(SensorAppPageDto request) {
         final SysOrg sysOrg = orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER);
         if (ObjectUtil.equal(Boolean.TRUE, request.getCheckSub())) {

+ 7 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmDataMapper.xml

@@ -115,4 +115,11 @@
         FROM iot_alarm_data a
         where a.org_id = #{orgId} and a.end_time is null
     </select>
+
+    <select id="selectAlarmDataListByOrgPath" resultType="com.xunmei.common.core.domain.mediator.domain.IotAlarmData">
+        select d.* from iot_alarm_data d inner join sys_org o on d.org_id = o.id where o.path like concat(#{orgPath},'%') and o.deleted = 0
+        <if test="dataType != null">
+            and d.data_type = #{dataType}
+        </if>
+    </select>
 </mapper>

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

@@ -129,4 +129,12 @@
             and s.state_update_time <![CDATA[<=]]>  #{request.endTime}
         </if>
     </select>
+
+    <select id="selectListSensor" resultType="com.xunmei.common.core.domain.iot.domain.IotSensor">
+        SELECT
+        *
+        FROM
+        iot_sensor a
+        where  a.org_path like  concat(#{orgPath},'%') and a.deleted=0
+    </select>
 </mapper>