jinpengyong
2023-08-31 2b5a2bb0525cc70d7f44d18b8bcf44f46db8a35e
screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java
@@ -3,9 +3,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.Menu;
import com.moral.api.entity.MonitorPoint;
import com.moral.api.entity.Organization;
import com.moral.api.entity.SysArea;
import com.moral.api.mapper.DeviceMapper;
import com.moral.api.mapper.MonitorPointMapper;
import com.moral.api.mapper.SysAreaMapper;
import com.moral.api.service.OrganizationService;
import com.moral.api.service.SysAreaService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
@@ -39,23 +42,44 @@
    @Autowired
    private MonitorPointMapper monitorPointMapper;
    @Autowired
    private OrganizationService organizationService;
    @Autowired
    private DeviceMapper deviceMapper;
    @Override
    public List<Map<String, Object>> getMapPath(Integer orgId) {
        //根据组织id查询所有站点
        //获取组织下所有子组织
        /*List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId);
        List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
        orgIds.add(orgId);*/
        List<Integer> orgIds = deviceMapper.deviceOrgIdList(orgId);
        QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("province_code", "city_code", "area_code")
                .eq("organization_id", orgId)
                .eq("is_delete", Constants.NOT_DELETE);
                .eq("is_delete", Constants.NOT_DELETE)
                .in("organization_id", orgIds);
        //根据组织id查询所有站点
        List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(queryWrapper);
        Set<Integer> cityCodes = new HashSet<>();
        for (MonitorPoint monitorPoint : monitorPoints) {
            cityCodes.add(monitorPoint.getProvinceCode());
            cityCodes.add(monitorPoint.getCityCode());
            cityCodes.add(monitorPoint.getAreaCode());
            Integer provinceCode = monitorPoint.getProvinceCode();
            Integer cityCode = monitorPoint.getCityCode();
            Integer areaCode = monitorPoint.getAreaCode();
            if (provinceCode != null) {
                cityCodes.add(provinceCode);
            }
            if (cityCode != null) {
                cityCodes.add(cityCode);
            }
            if (areaCode != null) {
                cityCodes.add(areaCode);
            }
        }
        QueryWrapper<SysArea> sysAreaQueryWrapper = new QueryWrapper<>();
        sysAreaQueryWrapper.select("area_code", "area_name", "parent_code").in("area_code", cityCodes);
        //获取当前用户拥有权限的地图列表
        List<SysArea> allAreas = sysAreaMapper.selectList(sysAreaQueryWrapper);
        //第一级城市
@@ -76,7 +100,21 @@
        return newList;
    }
    //获取用户层级菜单递归方法
    @Override
    public List<SysArea> getChildren(Integer regionCode) {
        QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_code",regionCode);
        return sysAreaMapper.selectList(wrapper);
    }
    @Override
    public SysArea getAreaByCode(Integer regionCode) {
        QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
        wrapper.eq("area_code",regionCode);
        return sysAreaMapper.selectOne(wrapper);
    }
    //获取层级城市列表
    private List<Map<String, Object>> getAreasByRecursion(SysArea sysArea, List<SysArea> sysAreas) {
        SysArea newSysArea = new SysArea();
        newSysArea.setParentCode(sysArea.getAreaCode());