From 629ee07ae56fbedeec143fa722b982f0e62d5219 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 23 Jun 2021 14:52:29 +0800
Subject: [PATCH] screen-manage 修复型号增加因子空指针异常BUG
---
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 92 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 78 insertions(+), 14 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 6a972f9..9365ad2 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -4,23 +4,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.moral.api.entity.Device;
-import com.moral.api.entity.ManageAccount;
-import com.moral.api.entity.MonitorPoint;
-import com.moral.api.entity.Organization;
-import com.moral.api.entity.SysDictData;
-import com.moral.api.entity.SysDictType;
-import com.moral.api.entity.Version;
-import com.moral.api.mapper.DeviceMapper;
-import com.moral.api.mapper.ManageAccountMapper;
-import com.moral.api.mapper.MonitorPointMapper;
-import com.moral.api.mapper.OrganizationMapper;
-import com.moral.api.mapper.SysDictDataMapper;
-import com.moral.api.mapper.SysDictTypeMapper;
+import com.moral.api.entity.*;
+import com.moral.api.mapper.*;
import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.service.DeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.util.CacheUtils;
import com.moral.api.util.LogUtils;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
@@ -31,6 +21,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -80,6 +71,13 @@
@Autowired
private RedisTemplate redisTemplate;
+ @Autowired
+ private OrganizationUnitAlarmMapper organizationUnitAlarmMapper;
+
+ @Autowired
+ private VersionSensorUnitMapper versionSensorUnitMapper;
+
+
/*
* ���redis������������������
@@ -127,12 +125,16 @@
device.setOrganizationId(orgId);
deviceMapper.insert(device);
Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId());
+ //���������������������������
+ insertOrganizationUnitAlarm(orgId,device.getDeviceVersionId());
//������������������������redis
String mac = device.getMac();
//���redis���������������������
delDeviceInfoFromRedis(mac);
//������������������redis
setDeviceInfoToRedis(mac, deviceInfo);
+ //������deviceInfo������
+ CacheUtils.flushDeviceAlarmInfo();
//������������������
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
StringBuilder content = new StringBuilder();
@@ -150,6 +152,12 @@
String mac = device.getMac();
//���redis���������������������
delDeviceInfoFromRedis(mac);
+ //���������������������������
+ Integer versionId = device.getDeviceVersionId();
+ Integer orgId = device.getOrganizationId();
+ deleteOrganizationUnitAlarm(orgId,versionId);
+ //������deviceInfo������
+ CacheUtils.flushDeviceAlarmInfo();
//������������������
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
StringBuilder content = new StringBuilder();
@@ -162,13 +170,30 @@
public void update(Device device) {
Integer deviceId = device.getId();
Device oldDevice = deviceMapper.selectById(deviceId);
+ //���������������������������������������������������������������������������������id������������
+ if(!ObjectUtils.isEmpty(device.getMonitorPointId())){
+ MonitorPoint monitorPoint = monitorPointMapper.selectById(device.getMonitorPointId());
+ device.setOrganizationId(monitorPoint.getOrganizationId());
+ }
deviceMapper.updateById(device);
- String mac = deviceMapper.selectById(deviceId).getMac();
+ Device updateDevice = deviceMapper.selectById(deviceId);
+ String mac = updateDevice.getMac();
+ //���������������������������
+ Integer oldOrgId = oldDevice.getOrganizationId();
+ Integer newOrgId = updateDevice.getOrganizationId();
+ Integer oldVersionId = oldDevice.getDeviceVersionId();
+ Integer newVersionId = updateDevice.getDeviceVersionId();
+ if(!oldOrgId.equals(newOrgId)||!oldVersionId.equals(newVersionId)){
+ deleteOrganizationUnitAlarm(oldOrgId,oldVersionId);
+ insertOrganizationUnitAlarm(newOrgId,newVersionId);
+ }
//���redis���������������������
delDeviceInfoFromRedis(mac);
Map<String, Object> deviceInfo = selectDeviceInfoById(deviceId);
//������������������redis
setDeviceInfoToRedis(mac, deviceInfo);
+ //������deviceInfo������
+ CacheUtils.flushDeviceAlarmInfo();
//������������������
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
StringBuilder content = new StringBuilder();
@@ -409,5 +434,44 @@
return null;
}
+ private void insertOrganizationUnitAlarm(Integer orgId,Integer versionId){
+ QueryWrapper<OrganizationUnitAlarm> queryOrganizationVersionWrapper = new QueryWrapper<>();
+ queryOrganizationVersionWrapper.eq("organization_id",orgId);
+ queryOrganizationVersionWrapper.eq("version_id",versionId);
+ queryOrganizationVersionWrapper.eq("is_delete",Constants.NOT_DELETE);
+ List<OrganizationUnitAlarm> organizationUnitAlarms = organizationUnitAlarmMapper.selectList(queryOrganizationVersionWrapper);
+ if(ObjectUtils.isEmpty(organizationUnitAlarms)){
+ QueryWrapper<VersionSensorUnit> queryVersionSensorUnitWrapper =new QueryWrapper<>();
+ queryVersionSensorUnitWrapper.eq("version_id",versionId);
+ queryVersionSensorUnitWrapper.eq("is_delete",Constants.NOT_DELETE);
+ List<VersionSensorUnit> versionSensorUnits = versionSensorUnitMapper.selectList(queryVersionSensorUnitWrapper);
+ if(!ObjectUtils.isEmpty(versionSensorUnits)){
+ for (VersionSensorUnit versionSensorUnit : versionSensorUnits) {
+ OrganizationUnitAlarm organizationUnitAlarm = new OrganizationUnitAlarm();
+ organizationUnitAlarm.setOrganizationId(orgId);
+ organizationUnitAlarm.setVersionId(versionId);
+ organizationUnitAlarm.setSensorCode(versionSensorUnit.getSensorCode());
+ organizationUnitAlarm.setUnitKey(versionSensorUnit.getUnitKey());
+ organizationUnitAlarm.setShowUnitKey(versionSensorUnit.getUnitKey());
+ organizationUnitAlarmMapper.insert(organizationUnitAlarm);
+ }
+ }
+ }
+ }
+ private void deleteOrganizationUnitAlarm(Integer orgId,Integer versionId){
+ QueryWrapper<Device> queryOrganizationVersionWrapper = new QueryWrapper<>();
+ queryOrganizationVersionWrapper.eq("organization_id",orgId);
+ queryOrganizationVersionWrapper.eq("device_version_id",versionId);
+ queryOrganizationVersionWrapper.eq("is_delete",Constants.NOT_DELETE);
+ List<Device> devices = deviceMapper.selectList(queryOrganizationVersionWrapper);
+ if(ObjectUtils.isEmpty(devices)){//������������������������������������������������������
+ UpdateWrapper deleteWrapper = new UpdateWrapper();
+ deleteWrapper.eq("organization_id",orgId);
+ deleteWrapper.eq("version_id",versionId);
+ deleteWrapper.eq("is_delete",Constants.NOT_DELETE);
+ deleteWrapper.set("is_delete",Constants.DELETE);
+ organizationUnitAlarmMapper.update(null,deleteWrapper);
+ }
+ }
}
--
Gitblit v1.8.0