From c7dd4a195d8d893d92c49963447cdf6486844584 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 20 Oct 2023 09:45:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wb' into cjl
---
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 174 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 116 insertions(+), 58 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index bfca277..d281aa0 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -7,9 +7,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.*;
import com.moral.api.mapper.*;
+import com.moral.api.pojo.redisBean.SpecialDeviceInfoDTO;
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;
@@ -69,28 +71,31 @@
@Autowired(required = false)
private VersionSensorUnitMapper versionSensorUnitMapper;
+ @Autowired(required = false)
+ private GovMonitorPointMapper govMonitorPointMapper;
+
@Autowired
- private LogUtils logUtils;
+ private AdjustDataUtils adjustDataUtils;
/*
* ���redis������������������
* */
- private Map<String, Object> getDeviceInfoFromRedis(String mac) {
- return (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac);
+ private SpecialDeviceInfoDTO getDeviceInfoFromRedis(String mac) {
+ return (SpecialDeviceInfoDTO) redisTemplate.opsForHash().get(RedisConstants.SPECIAL_DEVICE, mac);
}
/*
* ������������������redis
*/
- private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
- redisTemplate.opsForHash().put(RedisConstants.DEVICE, mac, deviceInfo);
+ private void setDeviceInfoToRedis(String mac, SpecialDeviceInfoDTO specialDeviceInfoDTO) {
+ redisTemplate.opsForHash().put(RedisConstants.SPECIAL_DEVICE, mac, specialDeviceInfoDTO);
}
/*
* ���redis������������������
*/
private void delDeviceInfoFromRedis(String mac) {
- redisTemplate.opsForHash().delete(RedisConstants.DEVICE, mac);
+ redisTemplate.opsForHash().delete(RedisConstants.SPECIAL_DEVICE, mac);
}
@Override
@@ -125,6 +130,20 @@
String updateTime = SDF.format(specialDevice.getUpdateTime());
specialDeviceMap.put("createTime",createTime);
specialDeviceMap.put("updateTime",updateTime);
+ Map<String,Object> govMonitorPointMap = new HashMap<>();
+ if (!ObjectUtils.isEmpty(specialDevice.getGuid()) && specialDevice.getGuid()!=null && !"".equals(specialDevice.getGuid())){
+ String guid = specialDevice.getGuid().toString();
+ QueryWrapper<GovMonitorPoint> wapper_govMonitorPoint = new QueryWrapper<>();
+ wapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+ wapper_govMonitorPoint.eq("guid",guid);
+ GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wapper_govMonitorPoint);
+ if (!ObjectUtils.isEmpty(govMonitorPoint)){
+ govMonitorPointMap.put("id",govMonitorPoint.getId());
+ govMonitorPointMap.put("guid",govMonitorPoint.getGuid());
+ govMonitorPointMap.put("name",govMonitorPoint.getName());
+ }
+ }
+ specialDeviceMap.put("govMonitorPoint",govMonitorPointMap);
List<Map<String,Object>> operateList = new ArrayList<>();
if (!ObjectUtils.isEmpty(specialDevice.getOperateIds()) && specialDevice.getOperateIds()!=null){
String operateIds = specialDevice.getOperateIds();
@@ -137,6 +156,7 @@
QueryWrapper<ManageAccount> wapper_manageAccount = new QueryWrapper<>();
wapper_manageAccount.eq("is_delete",Constants.NOT_DELETE);
wapper_manageAccount.in("id",operateIdList);
+ wapper_manageAccount.select("id", "user_name");
List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wapper_manageAccount);
for (ManageAccount manageAccount:manageAccounts) {
Map<String,Object> operateMap = new HashMap<>();
@@ -266,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);
@@ -301,9 +321,10 @@
}
}
- 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());
+ //Map<String, Object> deviceInfo = selectDeviceInfoById(specialDevice.getId());
+ SpecialDeviceInfoDTO specialDeviceInfoDTO = selectDeviceInfoDTOById(specialDevice.getId());
//���������������������������
insertOrganizationUnitAlarm(specialDevice.getOrganizationId(), specialDevice.getDeviceVersionId());
//������������������������redis
@@ -311,14 +332,14 @@
//���redis���������������������
delDeviceInfoFromRedis(mac1);
//������������������redis
- setDeviceInfoToRedis(mac1, deviceInfo);
+ setDeviceInfoToRedis(mac1, specialDeviceInfoDTO);
//������deviceInfo������
CacheUtils.refreshSpecialDeviceAlarmInfo();
//������������������
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;
@@ -343,9 +364,9 @@
}
//���redis���������������������
delDeviceInfoFromRedis(oleMac);
- Map<String, Object> deviceInfo = selectDeviceInfoById(specialDeviceId);
+ SpecialDeviceInfoDTO specialDeviceInfoDTO = selectDeviceInfoDTOById(specialDevice.getId());
//������������������redis
- setDeviceInfoToRedis(updateSpecialDevice.getMac(), deviceInfo);
+ setDeviceInfoToRedis(updateSpecialDevice.getMac(), specialDeviceInfoDTO);
//������deviceInfo������
CacheUtils.refreshSpecialDeviceAlarmInfo();
QueryWrapper<SpecialDeviceHistory> wrapper_specialDeviceHistory = new QueryWrapper<>();
@@ -364,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);
@@ -374,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")) {
@@ -391,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) {
@@ -399,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")) {
@@ -421,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) {
@@ -429,7 +450,7 @@
}
}
- logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+ LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
}
@Override
@@ -446,47 +467,63 @@
Integer orgId = specialDevice.getOrganizationId();
deleteOrganizationUnitAlarm(orgId, versionId);
//������deviceInfo������
- CacheUtils.refreshDeviceAlarmInfo();
+ CacheUtils.refreshSpecialDeviceAlarmInfo();
//������������������
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
public Map<String, Object> selectDeviceInfoById(Integer deviceId) {
+ return null;
+ }
+
+ @Override
+ public SpecialDeviceInfoDTO selectDeviceInfoDTOById(Integer deviceId) {
String mac = specialDeviceMapper.selectById(deviceId).getMac();
- Map<String, Object> specialDeviceInfo = getDeviceInfoFromRedis(mac);
+ SpecialDeviceInfoDTO specialDeviceInfoDTO = new SpecialDeviceInfoDTO();
+ SpecialDeviceInfoDTO specialDeviceInfoDTORedis = getDeviceInfoFromRedis(mac);
//������redis������
- if (specialDeviceInfo != null) {
- return specialDeviceInfo;
+ if (specialDeviceInfoDTORedis != null) {
+ return specialDeviceInfoDTORedis;
}
- specialDeviceInfo = new LinkedHashMap<>();
- //DeviceVO device = deviceMapper.selectDeviceInfoById(deviceId);
+
+ //������������������������
+ SpecialDevice specialDeviceInfo = new SpecialDevice();
SpecialDevice specialDevice = specialDeviceMapper.selectById(deviceId);
- //������
- specialDeviceInfo.put("id", specialDevice.getId());
- specialDeviceInfo.put("name", specialDevice.getName());
- specialDeviceInfo.put("mac", specialDevice.getMac());
- specialDeviceInfo.put("createTime", DateUtils.dateToDateString(specialDevice.getCreateTime()));
+ System.out.println(specialDevice);
+ /*specialDeviceInfo.setId(specialDevice.getId());
+ specialDeviceInfo.setName(specialDevice.getName());
+ specialDeviceInfo.setMac(specialDevice.getMac());
+ specialDeviceInfo.setCreateTime(specialDevice.getCreateTime());*/
+ specialDeviceInfoDTO.setSpecialDevice(specialDevice);
- //������������
- //specialDeviceInfo.put("extend", device.getExtend());
+ //������������������������
+ GovMonitorPoint govMonitorPointInfo = new GovMonitorPoint();
+ QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+ wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+ wrapper_govMonitorPoint.eq("guid",specialDevice.getGuid());
+ GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wrapper_govMonitorPoint);
+ /*govMonitorPointInfo.setId(govMonitorPoint.getId());
+ govMonitorPointInfo.setGuid(govMonitorPoint.getGuid());
+ govMonitorPointInfo.setName(govMonitorPoint.getName());*/
+ specialDeviceInfoDTO.setGovMonitorPoint(govMonitorPoint);
- //������
- Map<String, Object> versionInfo = new LinkedHashMap<>();
+ //������������������
+ Version versionInfo = new Version();
Version version = versionMapper.selectById(specialDevice.getDeviceVersionId());
- versionInfo.put("id", version.getId());
- versionInfo.put("name", version.getName());
- specialDeviceInfo.put("version", versionInfo);
+ /*versionInfo.setId(version.getId());
+ versionInfo.setName(version.getName());*/
+ specialDeviceInfoDTO.setVersion(version);
- //���������
- List<Map<String, Object>> operatorsInfo = new ArrayList<>();
+ //���������������
+ List<ManageAccount> operatorsInfo = new ArrayList<>();
String operateIds = specialDevice.getOperateIds();
if (!ObjectUtils.isEmpty(operateIds)){
String[] operateIdArr = operateIds.split(",");
- if (operateIdArr.length>0){
+ if (operateIdArr.length > 0){
List<Integer> operateIdList = new ArrayList<>();
for (int i = 0; i < operateIdArr.length; i++){
operateIdList.add(Integer.parseInt(operateIdArr[i]));
@@ -494,26 +531,47 @@
QueryWrapper<ManageAccount> wapper_manageAccount = new QueryWrapper<>();
wapper_manageAccount.eq("is_delete",Constants.NOT_DELETE);
wapper_manageAccount.in("id",operateIdList);
- List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wapper_manageAccount);
- for (ManageAccount manageAccount:manageAccounts) {
- Map<String,Object> operateMap = new HashMap<>();
- operateMap.put("id",manageAccount.getId());
- operateMap.put("name",manageAccount.getUserName());
- operatorsInfo.add(operateMap);
- }
+ operatorsInfo = manageAccountMapper.selectList(wapper_manageAccount);
}
}
- specialDeviceInfo.put("operators", operatorsInfo);
+ specialDeviceInfoDTO.setOperates(operatorsInfo);
- //������
- Map<String, Object> orgInfo = new LinkedHashMap<>();
- Organization organization = organizationMapper.selectById(specialDevice.getOrganizationId());
- orgInfo.put("id", organization.getId());
- orgInfo.put("name", organization.getName());
- specialDeviceInfo.put("organization", orgInfo);
+ //������������
+ Organization organizationInfo = new Organization();
+ organizationInfo = organizationMapper.selectById(specialDevice.getOrganizationId());
+ specialDeviceInfoDTO.setOrganization(organizationInfo);
- setDeviceInfoToRedis(mac, specialDeviceInfo);
- return specialDeviceInfo;
+ 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) {
--
Gitblit v1.8.0