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 | 103 +++++++++++++++++++++++++++++++++------------------
1 files changed, 67 insertions(+), 36 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 39190df..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
@@ -10,6 +10,7 @@
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;
@@ -76,6 +77,8 @@
@Autowired
private VersionSensorUnitMapper versionSensorUnitMapper;
+
+
/*
* ���redis������������������
* */
@@ -123,33 +126,15 @@
deviceMapper.insert(device);
Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId());
//���������������������������
- QueryWrapper<OrganizationUnitAlarm> queryOrganizationVersionWrapper = new QueryWrapper<>();
- queryOrganizationVersionWrapper.eq("organization_id",orgId);
- queryOrganizationVersionWrapper.eq("version_id",device.getDeviceVersionId());
- 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",device.getDeviceVersionId());
- 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(device.getDeviceVersionId());
- organizationUnitAlarm.setSensorCode(versionSensorUnit.getSensorCode());
- organizationUnitAlarm.setUnitKey(versionSensorUnit.getUnitKey());
- organizationUnitAlarmMapper.insert(organizationUnitAlarm);
- }
- }
- }
+ 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();
@@ -169,20 +154,10 @@
delDeviceInfoFromRedis(mac);
//���������������������������
Integer versionId = device.getDeviceVersionId();
- Integer organizationId = device.getOrganizationId();
- QueryWrapper<Device> queryOrganizationVersionWrapper = new QueryWrapper<>();
- queryOrganizationVersionWrapper.eq("organization_id",organizationId);
- 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",organizationId);
- deleteWrapper.eq("version_id",versionId);
- deleteWrapper.eq("is_delete",Constants.NOT_DELETE);
- deleteWrapper.set("is_delete",Constants.DELETE);
- organizationUnitAlarmMapper.update(null,deleteWrapper);
- }
+ Integer orgId = device.getOrganizationId();
+ deleteOrganizationUnitAlarm(orgId,versionId);
+ //������deviceInfo������
+ CacheUtils.flushDeviceAlarmInfo();
//������������������
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
StringBuilder content = new StringBuilder();
@@ -195,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();
@@ -442,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