cjl
2023-10-14 4a50bd93dfcdedb85f117d25f89e67291eb65cf7
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -11,6 +11,7 @@
import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.service.SpecialDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.util.AdjustDataUtils;
import com.moral.api.util.CacheUtils;
import com.moral.api.util.LogUtils;
import com.moral.constant.Constants;
@@ -74,7 +75,7 @@
    private GovMonitorPointMapper govMonitorPointMapper;
    @Autowired
    private LogUtils logUtils;
    private AdjustDataUtils adjustDataUtils;
    /*
     * 从redis获取设备信息
@@ -285,7 +286,7 @@
            HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
            StringBuilder content = new StringBuilder();
            content.append("添加了特殊设备历史数据:").append(insertSpecialDeviceHistory.getName()).append(":").append("mac:").append(insertSpecialDeviceHistory.getMac());
            logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
            LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
        }else {
            /*UpdateWrapper<SpecialDeviceHistory> wrapper_insertSpecialDeviceHistory = new UpdateWrapper<>();
            wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
@@ -320,7 +321,7 @@
                }
            }
            logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
        }
        //Map<String, Object> deviceInfo = selectDeviceInfoById(specialDevice.getId());
        SpecialDeviceInfoDTO specialDeviceInfoDTO = selectDeviceInfoDTOById(specialDevice.getId());
@@ -338,7 +339,7 @@
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("添加了特殊设备:").append(specialDevice.getName()).append(":").append("mac:").append(mac);
        logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
        LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
        resultMap.put("code", ResponseCodeEnum.SUCCESS.getCode());
        resultMap.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
        return resultMap;
@@ -384,7 +385,7 @@
            HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
            StringBuilder content = new StringBuilder();
            content.append("添加了特殊设备历史数据:").append(updateSpecialDeviceHistory.getName()).append(":").append("mac:").append(updateSpecialDeviceHistory.getMac());
            logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
            LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
        }else {
            /*UpdateWrapper<SpecialDeviceHistory> wrapper_insertSpecialDeviceHistory = new UpdateWrapper<>();
            wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
@@ -394,7 +395,7 @@
            //操作日志记录
            HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
            StringBuilder content = new StringBuilder();
            content.append("修改了特殊设备:").append(specialDeviceHistory.getId()).append(":");
            content.append("修改了历史特殊设备:").append(specialDeviceHistory.getId()).append(";");
            Field[] fields = SpecialDevice.class.getDeclaredFields();
            for (Field field : fields) {
                if (field.getName().equals("id")) {
@@ -411,7 +412,7 @@
                    Object o1 = method.invoke(specialDeviceHistory);
                    Object o2 = method.invoke(updateSpecialDeviceHistory);
                    if (o2 != null) {
                        content.append(fieldName).append(":").append(o1).append("-->").append(o2).append(":");
                        content.append(fieldName).append(":").append(o1).append("-->").append(o2).append(";");
                    }
                } catch (Exception e) {
@@ -419,12 +420,12 @@
                }
            }
            logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
        }
        //操作日志记录
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("修改了特殊设备:").append(specialDeviceId).append(":");
        content.append("修改了特殊设备:").append(specialDeviceId).append(";");
        Field[] fields = SpecialDevice.class.getDeclaredFields();
        for (Field field : fields) {
            if (field.getName().equals("id")) {
@@ -441,7 +442,7 @@
                Object o1 = method.invoke(oldSpecialDevice);
                Object o2 = method.invoke(specialDevice);
                if (o2 != null) {
                    content.append(fieldName).append(":").append(o1).append("-->").append(o2).append(":");
                    content.append(fieldName).append(":").append(o1).append("-->").append(o2).append(";");
                }
            } catch (Exception e) {
@@ -449,7 +450,7 @@
            }
        }
        logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
    }
    @Override
@@ -471,7 +472,7 @@
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("删除了设备:").append(specialDevice.getName()).append(";").append("mac:").append(mac);
        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
        LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
    }
    @Override
@@ -540,11 +541,39 @@
        organizationInfo = organizationMapper.selectById(specialDevice.getOrganizationId());
        specialDeviceInfoDTO.setOrganization(organizationInfo);
        System.out.println("========================");
        System.out.println(specialDeviceInfoDTO);
        return specialDeviceInfoDTO;
    }
    @Override
    public Map<String, Object> adjustSpecialDeviceData(Map<String, Object> deviceData) {
//        String mac = deviceData.remove("mac").toString();
        String mac = deviceData.get("mac").toString();
        //从redis获取校准公式
        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
        if (!org.springframework.util.ObjectUtils.isEmpty(adjustFormula)) {
            SpecialDeviceInfoDTO specialDeviceInfo = getDeviceInfoFromRedis(mac);
            if (org.springframework.util.ObjectUtils.isEmpty(specialDeviceInfo)) {
                QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper<>();
                queryWrapper.eq("mac", mac).eq("is_delete", Constants.NOT_DELETE);
                SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
                if (specialDevice != null) {
                    specialDeviceInfo = selectDeviceInfoDTOById(specialDevice.getId());
                    setDeviceInfoToRedis(mac, specialDeviceInfo);
                }
            }
            //获取设备绑定的国控站信息
            //Map<String, Object> govMpInfo = (Map<String, Object>) specialDeviceInfo.getGovMonitorPoint();
            Map<String, Object> govMpInfo = JSON.parseObject(JSON.toJSONString(specialDeviceInfo.getGovMonitorPoint()),Map.class);
            Map<String, Object> aqiMap = null;
            if (null != govMpInfo && null != govMpInfo.get("guid")) {
                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString());
            }
            return adjustDataUtils.adjust(deviceData, adjustFormula, org.springframework.util.ObjectUtils.isEmpty(aqiMap) ? null : aqiMap,"0");
        }
        deviceData.remove("DataTime");
        return deviceData;
    }
    private void insertOrganizationUnitAlarm(Integer orgId, Integer versionId) {
        QueryWrapper<OrganizationUnitAlarm> queryOrganizationVersionWrapper = new QueryWrapper<>();
        queryOrganizationVersionWrapper.eq("organization_id", orgId);