| | |
| | | |
| | | /** |
| | | * 区域枚举 |
| | | * osdName为摄像头上显示的区域名,用于Osd定时任务比对Osd是否正确 |
| | | */ |
| | | @Getter |
| | | public enum AreaDeptEnum { |
| | | ZLJQ("自流井", "510302", 201), |
| | | GJQ("贡井", "510303", 202), |
| | | DAQ("大安", "510304", 102), |
| | | YTQ("沿滩", "510311", 211), |
| | | RX("荣县", "510321", 203), |
| | | FSX("富顺", "510322", 101), |
| | | GXQ("高新", "510399", 210), |
| | | ZLJQ("自流井区","自流井", "510302", 201), |
| | | GJQ("贡井区", "贡井","510303", 202), |
| | | DAQ("大安区","大安","510304", 102), |
| | | YTQ("沿滩区", "沿滩","510311", 211), |
| | | RX("荣县", "荣县","510321", 203), |
| | | FSX("富顺县", "富顺","510322", 101), |
| | | GXQ("高新区", "高新","510399", 210), |
| | | ; |
| | | |
| | | private final String name; |
| | | private final String osdName; |
| | | |
| | | private final String code; |
| | | |
| | | private final Integer deptId; |
| | | |
| | | AreaDeptEnum(String name, String code, Integer deptId) { |
| | | AreaDeptEnum(String name,String osdName, String code, Integer deptId) { |
| | | this.name = name; |
| | | this.osdName = osdName; |
| | | this.code = code; |
| | | this.deptId = deptId; |
| | | } |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | package com.ycl.platform.domain.vo.screen; |
| | | |
| | | import enumeration.general.AreaDeptEnum; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Comparator; |
| | | |
| | | /** |
| | | * @author gonghl |
| | |
| | | */ |
| | | private Integer videoErrorNum; |
| | | |
| | | |
| | | } |
| | |
| | | * @param dashboardQuery 查询条件 |
| | | * @return 数据 |
| | | */ |
| | | List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery); |
| | | Map<String, List<Map<String, Object>>> monitorTotal(DashboardQuery dashboardQuery); |
| | | |
| | | /** |
| | | * 大屏设备正常率 |
| | |
| | | import com.ycl.system.service.ISysConfigService; |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.StringUtils; |
| | | import enumeration.general.AreaDeptEnum; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.mongodb.core.MongoTemplate; |
| | |
| | | private MongoTemplate mongoTemplate; |
| | | @Autowired |
| | | private WorkOrderMapper workOrderMapper; |
| | | |
| | | /** |
| | | * 查询设备资产 |
| | | * |
| | |
| | | } |
| | | List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor); |
| | | // 异常恢复监控 |
| | | if(Objects.equals(tMonitor.getRecovery(), 1L)){ |
| | | if (Objects.equals(tMonitor.getRecovery(), 1L)) { |
| | | //工单号 |
| | | List<String> orders = monitors.stream().map(TMonitorVO::getWorkOrderNo).collect(Collectors.toList()); |
| | | if(CollectionUtils.isEmpty(orders)){ |
| | | if (CollectionUtils.isEmpty(orders)) { |
| | | return monitors; |
| | | } |
| | | List<WorkOrderVO> voList = workOrderMapper.getRecoveryInfo(orders); |
| | | for (TMonitorVO monitor : monitors) { |
| | | if(!CollectionUtils.isEmpty(voList)){ |
| | | if (!CollectionUtils.isEmpty(voList)) { |
| | | for (WorkOrderVO workOrderVO : voList) { |
| | | if(monitor.getWorkOrderNo().equals(workOrderVO.getWorkOrderNo())){ |
| | | if (monitor.getWorkOrderNo().equals(workOrderVO.getWorkOrderNo())) { |
| | | monitor.setUnitContact(workOrderVO.getUnitContact()); |
| | | monitor.setUnitContactPhone(workOrderVO.getUnitContactPhone()); |
| | | monitor.setYwPeopleName(workOrderVO.getYwPeopleName()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery) { |
| | | return baseMapper.monitorTotal(dashboardQuery); |
| | | public Map<String, List<Map<String, Object>>> monitorTotal(DashboardQuery dashboardQuery) { |
| | | List<MonitorTotalVO> monitorTotalVOS = baseMapper.monitorTotal(dashboardQuery); |
| | | /** facilityData: { |
| | | * video:[ |
| | | * {value: 4589,title: '设备总数'}, |
| | | * {value: 4294,title: '设备正常数'}, |
| | | * {value: 295,title: '设备异常数'} |
| | | * ]} */ |
| | | Map<String, List<Map<String, Object>>> resultMap = new HashMap<>(); |
| | | for (MonitorTotalVO vo : monitorTotalVOS) { |
| | | List<Map<String, Object>> list = new ArrayList(); |
| | | Map<String, Object> total = new HashMap<>(); |
| | | total.put("value", vo.getTotalNum()); |
| | | total.put("title", "设备总数"); |
| | | Map<String, Object> normal = new HashMap<>(); |
| | | normal.put("value", vo.getNormalNum()); |
| | | normal.put("title", "设备正常数"); |
| | | Map<String, Object> error = new HashMap<>(); |
| | | error.put("value", vo.getErrorNum()); |
| | | error.put("title", "设备异常数"); |
| | | list.add(total); |
| | | list.add(normal); |
| | | list.add(error); |
| | | resultMap.put(vo.getType(), list); |
| | | } |
| | | return resultMap; |
| | | } |
| | | |
| | | @Override |
| | | public List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery) { |
| | | //TODO:新增dept AreaCode字段 |
| | | return baseMapper.monitorRate(dashboardQuery); |
| | | } |
| | | |
| | |
| | | //检查区县是否正确 |
| | | if (!StringUtils.isEmpty(osdResult.getOSD3())) { |
| | | AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(monitor.getSerialNumber().substring(0, 6)); |
| | | if (areaDeptEnum != null && osdResult.getOSD3().equals(areaDeptEnum.getName())) { |
| | | if (areaDeptEnum != null && osdResult.getOSD3().equals(areaDeptEnum.getOsdName())) { |
| | | osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Correct); |
| | | } else { |
| | | osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Error); |
| | |
| | | |
| | | <select id="monitorTotal" resultType="com.ycl.platform.domain.vo.screen.MonitorTotalVO"> |
| | | SELECT |
| | | '视频' as type, |
| | | 'video' as type, |
| | | COUNT(p1.id) AS totalNum, |
| | | COUNT(p2.id) AS errorNum, |
| | | COUNT(p1.id) - COUNT(p2.id) AS normalNum |
| | |
| | | WHERE INSTR(camera_fun_type, 1) |
| | | UNION ALL |
| | | SELECT |
| | | '车辆' as type, |
| | | 'car' as type, |
| | | COUNT(p1.id) AS totalNum, |
| | | COUNT(p2.id) AS errorNum, |
| | | COUNT(p1.id) - COUNT(p2.id) AS normalNum |
| | |
| | | WHERE INSTR(camera_fun_type, 2) |
| | | UNION ALL |
| | | SELECT |
| | | '人脸' as type, |
| | | 'face' as type, |
| | | COUNT(p1.id) AS totalNum, |
| | | COUNT(p2.id) AS errorNum, |
| | | COUNT(p1.id) - COUNT(p2.id) AS normalNum |
| | |
| | | LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.recovery = 1 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.important_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if> |
| | | WHERE INSTR(camera_fun_type, 3) |
| | | </select> |
| | | |
| | | <select id="monitorRate" resultType="com.ycl.platform.domain.vo.screen.MonitorRateVO"> |
| | | SELECT |
| | | * |
| | |
| | | LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 1) |
| | | WHERE d.del_flag = 0 AND d.area IS NOT NULL |
| | | GROUP BY d.area, d.dept_id |
| | | ORDER BY d.dept_id |
| | | ORDER BY d.area_code |
| | | ) a |
| | | INNER JOIN |
| | | -- 车辆设备 |
| | |
| | | LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 2) |
| | | LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 2) |
| | | WHERE d.del_flag = 0 AND d.area IS NOT NULL |
| | | GROUP BY d.area, d.dept_id |
| | | ORDER BY d.dept_id |
| | | GROUP BY d.area, d.dept_id, d.area_code |
| | | ORDER BY d.area_code |
| | | ) b ON a.area = b.area |
| | | INNER JOIN |
| | | -- 视频设备 |
| | |
| | | LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 3) |
| | | LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 3) |
| | | WHERE d.del_flag = 0 AND d.area IS NOT NULL |
| | | GROUP BY d.area, d.dept_id |
| | | ORDER BY d.dept_id |
| | | GROUP BY d.area, d.area_code, d.dept_id |
| | | ORDER BY d.area_code |
| | | ) c ON a.area = c.area |
| | | </select> |
| | | |