‘liusuyi’
2023-08-21 4a10315e35dd547300990e9f806d19d33c261d74
一键调度按登录用户得部门查询人和相机
已修改4个文件
88 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
@@ -125,45 +125,50 @@
     */
    @Override
    public List<SysUser> getNearAppUsers(SchedulingParam param) {
        Double longitude = param.getLongitude();
        Double latitude = param.getLatitude();
        if (longitude == null && latitude == null) {
            log.debug("原点坐标为空");
            return null;
        }
        Integer radius = param.getSealingRadius();
        if (radius == null) {
            log.debug("半径距离为空");
            return null;
        }
        SysUser user = new SysUser();
        List<SysUser> appUserList = iSysUserService.selectAllAppUserList(user);
        //过滤在线
        List<SysUser> onLineList = appUserList.stream()
                .filter(sysUser -> (sysUser.getAppOnlineState().equals("1")))
                .collect(Collectors.toList());
        //过滤范围
        List<SysUser> filteredList = new ArrayList<>();
        for(SysUser sysUser:onLineList) {
            ArdAppPosition ardAppPosition = ardAppPositionMapper.selectLastArdAppPositionByUserId(sysUser.getUserId());
            if (ardAppPosition != null) {
                Double lon = ardAppPosition.getLongitude();
                Double lat = ardAppPosition.getLatitude();
                if(longitude==null||latitude==null)
                {
                    continue;
                }
                double distance = GisTool.getDistance(new double[]{ longitude, latitude}, new double[]{ lon, lat});
                if (distance <= radius) {
                    Map<String,Object> params=new HashMap<>();
                    params.put("longitude",lon);
                    params.put("latitude",lat);
                    sysUser.setParams(params);
                    filteredList.add(sysUser); // 将满足条件的用户添加到筛选列表中
        try {
            Long deptId = SecurityUtils.getLoginUser().getUser().getDeptId();
            Double longitude = param.getLongitude();
            Double latitude = param.getLatitude();
            if (longitude == null && latitude == null) {
                log.debug("原点坐标为空");
                return null;
            }
            Integer radius = param.getSealingRadius();
            if (radius == null) {
                log.debug("半径距离为空");
                return null;
            }
            SysUser user = new SysUser();
            user.setDeptId(deptId);
            List<SysUser> appUserList = iSysUserService.selectAllAppUserList(user);
            //过滤在线
            List<SysUser> onLineList = appUserList.stream()
                    .filter(sysUser -> (sysUser.getAppOnlineState().equals("1")))
                    .collect(Collectors.toList());
            //过滤范围
            for (SysUser sysUser : onLineList) {
                ArdAppPosition ardAppPosition = ardAppPositionMapper.selectLastArdAppPositionByUserId(sysUser.getUserId());
                if (ardAppPosition != null) {
                    Double lon = ardAppPosition.getLongitude();
                    Double lat = ardAppPosition.getLatitude();
                    if (longitude == null || latitude == null) {
                        continue;
                    }
                    double distance = GisTool.getDistance(new double[]{longitude, latitude}, new double[]{lon, lat});
                    if (distance <= radius) {
                        Map<String, Object> params = new HashMap<>();
                        params.put("longitude", lon);
                        params.put("latitude", lat);
                        sysUser.setParams(params);
                        filteredList.add(sysUser); // 将满足条件的用户添加到筛选列表中
                    }
                }
            }
        } catch (Exception ex) {
            log.error("获取封控圈内所有在线app用户异常" + ex.getMessage());
        }
        return filteredList;
    }
ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java
@@ -104,7 +104,7 @@
     * 部门ID
     */
    @Excel(name = "部门ID")
    private Integer deptId;
    private Long deptId;
    /**
     * 方位角
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -303,6 +303,7 @@
    @Override
    public List<ArdCameras> getNearCameras(SchedulingParam param) {
        try {
            Long deptId=SecurityUtils.getLoginUser().getUser().getDeptId();
            Double longitude = param.getLongitude();
            Double latitude = param.getLatitude();
            if (longitude == null && latitude == null) {
@@ -315,8 +316,10 @@
                return null;
            }
            String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
            //获取所有光电
            List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
            //获取所有光电(按部门)
            ArdCameras cameras= new ArdCameras();
            cameras.setDeptId(deptId);
            List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(cameras);
            //统计所有光电可视范围内与报警点的距离
            List<ArdCameras> ardCameras = new ArrayList<>();
            for (ArdCameras camera : ardCamerasList) {
ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java
@@ -1,7 +1,5 @@
package com.ruoyi.scheduling.domian;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**