jinpengyong
2021-09-26 c7d5088dbd18cbbcb98d12aeac35e7d38cdf93be
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -12,7 +12,7 @@
import com.moral.api.service.DeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.service.GovMonitorPointService;
import com.moral.api.service.OrganizationService;
import com.moral.api.service.SysDictDataService;
import com.moral.api.util.CacheUtils;
import com.moral.api.util.AdjustDataUtils;
@@ -40,6 +40,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
@@ -93,6 +94,9 @@
    @Autowired
    private AdjustDataUtils adjustDataUtils;
    @Autowired
    private OrganizationService organizationService;
    /*
     * 从redis获取设备信息
@@ -243,8 +247,14 @@
    @Override
    public List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId) {
        //获取所有子组织
        List<Organization> organizations = organizationService.getAllChildrenOrganization(orgId);
        List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
        orgIds.add(orgId);
        QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("id", "name").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE);
        queryWrapper.select("id", "name")
                .eq("is_delete", Constants.NOT_DELETE)
                .in("organization_id", orgIds);
        return monitorPointMapper.selectMaps(queryWrapper);
    }
@@ -270,9 +280,13 @@
        Object orgId = parameters.get("organizationId");
        Object mpId = parameters.get("monitorPointId");
        //查询某组织下所有设备
        //查询某组织下所有设备,包括子组织
        if (orgId != null) {
            queryWrapper.eq("organization_id", orgId);
            //查询所有子组织
            List<Organization> organizations = organizationService.getAllChildrenOrganization(Integer.parseInt(orgId.toString()));
            List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
            orgIds.add(Integer.parseInt(orgId.toString()));
            queryWrapper.in("organization_id", orgIds);
        }
        //查询某站点下所有设备
@@ -394,13 +408,14 @@
        //国控站点
        Map<String, Object> govMpInfo = new LinkedHashMap<>();
        GovMonitorPoint govMonitorPoint = device.getGovMonitorPoint();
        if (govMonitorPoint != null) {
        govMpInfo.put("guid", null);
        govMpInfo.put("name", null);
        if (device.getGovMonitorPoint() != null) {
            govMpInfo.put("guid", device.getGovMonitorPoint().getGuid());
            govMpInfo.put("name", device.getGovMonitorPoint().getName());
        }
        deviceInfo.put("govMonitorPoint", govMpInfo);
        setDeviceInfoToRedis(mac, deviceInfo);
        return deviceInfo;
    }
@@ -441,14 +456,12 @@
        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
        if (!ObjectUtils.isEmpty(adjustFormula)) {
            Map<String, Object> deviceInfo = getDeviceByMac(mac);
            //没有绑定国控站,不校准
            Map<String, Object> govMpInfo = (Map) deviceInfo.get("govMonitorPoint");
            if (ObjectUtils.isEmpty(govMpInfo.get("guid"))) {
                return deviceData;
            //获取设备绑定的国控站信息
            Map<String, Object> govMpInfo = (Map<String, Object>) deviceInfo.get("govMonitorPoint");
            Map<String, Object> aqiMap = null;
            if (govMpInfo.get("guid") != null) {
                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString());
            }
            String guid = (String) govMpInfo.get("guid");
            //获取国控站aqi数据
            Map<String, Object> aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, guid);
            return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
        }
        deviceData.remove("DataTime");