kaiyu
2020-09-22 8055e2dec629a0a1a8f468d8713bca80c2df9116
src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -298,45 +298,42 @@
    public List<MonitorPoint> getMonitorPointsAndDevicesByRegion(Map<String, Object> parameters) {
        //校验参数
        Object organizationId = parameters.remove("organizationId");
        //判断参数是否为null,如果为null则抛出自定义异常,msgKey为异常信息
        ValidateUtil.notNull(organizationId, "param.is.null");
        ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null");
        //组装查询条件
        ParameterUtils.getRegionType4RegionCode(parameters);
        //查询对应code的站点数据
        Example example = new Example(MonitorPoint.class);
        Criteria criteria = example.createCriteria();
        criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
        //判断是否为本公司开发人员,如果不是则添加orgid限制用户查看权限
        if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) {
            //criteria.andEqualTo("organizationId", organizationId);
            Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString()));
            criteria.andIn("organizationId", organizationIds);
        }
        criteria.andEqualTo(parameters.get("regionType") + "Code", parameters.remove("regionCode"));
        //查询监控点数据
        List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example);
        //查询监控点下所有的设备
        Iterator<MonitorPoint> iterator = monitorPoints.iterator();
      /*while (iterator.hasNext()) {
         MonitorPoint monitorPoint = iterator.next();
         List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPoint.getId());
         if (ObjectUtils.isEmpty(devices)) {
            iterator.remove();
         } else {
            monitorPoint.setDevices(devices);
         }
      }*/
        Example deviceExample = new Example(Device.class);//实例化
        //查询所有设备信息
        Example deviceExample = new Example(Device.class);
        Criteria deviceCriteria = deviceExample.createCriteria();
        deviceCriteria.orEqualTo("isDelete", Constants.IS_DELETE_FALSE);
        List<Device> devicesInfo = deviceMapper.selectByExample(deviceExample);
        Example monitorExample = new Example(MonitorPoint.class);//实例化
        //获取所有站点信息
        Example monitorExample = new Example(MonitorPoint.class);
        Criteria monitorCriteria = monitorExample.createCriteria();
        monitorCriteria.orEqualTo("isDelete", Constants.IS_DELETE_FALSE);
        List<MonitorPoint> monitorPointInfo = monitorPointMapper.selectByExample(monitorExample);
        //获取所有设备附加属性
        List<DeviceProperty> devicePropertyList = devicePropertyMapper.selectAll();
        //附加属性全部添加到设备实体中
        for (Device d : devicesInfo) {
            for (DeviceProperty dp : devicePropertyList) {
                if (dp.getId().equals(d.getId())) {
@@ -344,6 +341,8 @@
                }
            }
        }
        //把对应的设备信息添加到站点中
        Map<Integer, List<Device>> monitorDeviceMap = new HashMap();
        for (MonitorPoint m : monitorPointInfo) {
            List<Device> monitorDevices = new ArrayList<>();
@@ -354,6 +353,9 @@
            }
            monitorDeviceMap.put(m.getId(), monitorDevices);
        }
        //对应地区Code的迭代器,向站点中添加设备信息
        Iterator<MonitorPoint> iterator = monitorPoints.iterator();
        while (iterator.hasNext()) {
            MonitorPoint monitorPoint = iterator.next();
            for (Map.Entry<Integer, List<Device>> entry : monitorDeviceMap.entrySet()) {