| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import annotation.DataScope; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.platform.domain.entity.TMonitor; |
| | | import com.ycl.platform.domain.query.DashboardQuery; |
| | | import com.ycl.platform.domain.query.DataCenterQuery; |
| | | import com.ycl.platform.domain.query.HomeQuery; |
| | | import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; |
| | | import com.ycl.platform.domain.result.HK.FaceDeviceSamplingResult; |
| | | import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; |
| | | import com.ycl.platform.domain.result.HK.VehicleDeviceSamplingResult; |
| | | import com.ycl.platform.domain.result.UY.VideoOnlineResult; |
| | | import com.ycl.platform.domain.vo.TMonitorVO; |
| | | import com.ycl.platform.domain.vo.screen.MonitorRateVO; |
| | | import com.ycl.platform.domain.vo.screen.MonitorTotalVO; |
| | | import com.ycl.platform.mapper.TMonitorMapper; |
| | | import com.ycl.platform.service.ITMonitorService; |
| | | import com.ycl.system.Result; |
| | | import com.ycl.system.page.PageUtil; |
| | | import com.ycl.system.service.ISysConfigService; |
| | | import com.ycl.utils.StringUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 设备资产Service业务层处理 |
| | |
| | | { |
| | | @Autowired |
| | | private TMonitorMapper tMonitorMapper; |
| | | @Autowired |
| | | private ISysConfigService configService; |
| | | @Autowired |
| | | private MongoTemplate mongoTemplate; |
| | | |
| | | /** |
| | | * 查询设备资产 |
| | |
| | | */ |
| | | @Override |
| | | @DataScope(deptAlias = "d",userAlias = "u") |
| | | public List<TMonitorVO> selectTMonitorList(TMonitor tMonitor) |
| | | { |
| | | return tMonitorMapper.selectTMonitorList(tMonitor); |
| | | public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) { |
| | | List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor); |
| | | // 异常设备 |
| | | if (Objects.equals(tMonitor.getRecovery(), 1L)) { |
| | | String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); |
| | | if (StringUtils.isBlank(time)) { |
| | | throw new RuntimeException("请配置异常设备连续关注时间"); |
| | | } |
| | | List<TMonitorVO> recoveryMonitors = tMonitorMapper.selectRecoveryMonitor(time); |
| | | monitors.addAll(recoveryMonitors); |
| | | } |
| | | // 视频监控设备 |
| | | if (Objects.equals(tMonitor.getCameraFunType(), "1")) { |
| | | monitors.forEach(monitor -> { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("deviceId").is(monitor.getSerialNumber()) |
| | | // .and("mongoCreateTime").is(LocalDate.now()) |
| | | ); |
| | | VideoOnlineResult one = mongoTemplate.findOne(query, VideoOnlineResult.class); |
| | | if (one != null) { |
| | | monitor.setIfmDelay(one.getIfmDelay()); |
| | | monitor.setSipDelay(one.getSipDelay()); |
| | | monitor.setVideoDelay(one.getVideoDelay()); |
| | | monitor.setMongoCreateTime(one.getMongoCreateTime()); |
| | | } |
| | | }); |
| | | } |
| | | // 车辆监控设备 |
| | | if (Objects.equals(tMonitor.getCameraFunType(), "2")) { |
| | | monitors.forEach(monitor -> { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber()) |
| | | // .and("mongoCreateTime").is(LocalDate.now()) |
| | | ); |
| | | VehicleDeviceInspectionResult one = mongoTemplate.findOne(query, VehicleDeviceInspectionResult.class); |
| | | VehicleDeviceSamplingResult two = mongoTemplate.findOne(query, VehicleDeviceSamplingResult.class); |
| | | if (one != null) { |
| | | monitor.setDataCount(one.getDataCount()); |
| | | monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null); |
| | | monitor.setMongoCreateTime(one.getMongoCreateTime()); |
| | | } |
| | | if (two != null) { |
| | | monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful()) ? two.getBigUseful().getBigUsefulPercent() : null); |
| | | monitor.setMajorConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getMajorConPercent() : null); |
| | | monitor.setImportantConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getImportantConPercent() : null); |
| | | monitor.setMongoCreateTime(two.getMongoCreateTime()); |
| | | } |
| | | }); |
| | | } |
| | | // 人脸监控设备 |
| | | if (Objects.equals(tMonitor.getCameraFunType(), "3")) { |
| | | monitors.forEach(monitor -> { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber()) |
| | | // .and("mongoCreateTime").is(LocalDate.now()) |
| | | ); |
| | | FaceDeviceInspectionResult one = mongoTemplate.findOne(query, FaceDeviceInspectionResult.class); |
| | | FaceDeviceSamplingResult two = mongoTemplate.findOne(query, FaceDeviceSamplingResult.class); |
| | | if (one != null) { |
| | | monitor.setDataCount(one.getDataCount()); |
| | | monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null); |
| | | monitor.setMongoCreateTime(one.getMongoCreateTime()); |
| | | } |
| | | if (two != null) { |
| | | monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful())? two.getBigUseful().getBigUsefulPercent() : null); |
| | | monitor.setFaceEligPercent(Objects.nonNull(two.getFaceEligibility()) ? two.getFaceEligibility().getFaceEligPercent() : null); |
| | | monitor.setMongoCreateTime(two.getMongoCreateTime()); |
| | | } |
| | | }); |
| | | } |
| | | return monitors; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | @Override |
| | | public Map<String, String> recoveryException() { |
| | | return tMonitorMapper.recoveryException(); |
| | | String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); |
| | | return tMonitorMapper.recoveryException(time); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> home(HomeQuery monitorQuery) { |
| | | Map<String, Object> dataMap = new HashMap<>(); |
| | | Map<String, Object> monthMap1 = new HashMap<>(); |
| | | Map<String, Object> monthMap2 = new HashMap<>(); |
| | | List<Map<String, Object>> home = baseMapper.home(monitorQuery); |
| | | if (ObjectUtils.isNotEmpty(home)) { |
| | | for (Map<String, Object> map : home) { |
| | | monthMap1.put(map.get("months").toString(), map.get("num1")); |
| | | monthMap2.put(map.get("months").toString(), map.get("num2")); |
| | | } |
| | | dataMap.put("name", home.get(0).get("name")); |
| | | dataMap.put("state", monthMap1); |
| | | dataMap.put("state2", monthMap2); |
| | | } |
| | | return dataMap; |
| | | } |
| | | |
| | | @Override |
| | | public List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery) { |
| | | return baseMapper.monitorTotal(dashboardQuery); |
| | | } |
| | | |
| | | @Override |
| | | public List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery) { |
| | | return baseMapper.monitorRate(dashboardQuery); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Result assetManagement(DataCenterQuery query) { |
| | | IPage<TMonitorVO> page = PageUtil.getPage(query, TMonitorVO.class); |
| | | baseMapper.assetManagement(page, query); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | } |