From 59b3b2b0c7a55b8acd6f122dad4b2ff8df1b1bce Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 21 Jun 2021 11:16:23 +0800
Subject: [PATCH] screen-manage                更新组织维护组织型号关系表

---
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   88 ++++++++++++++++++++++++++------------------
 1 files changed, 52 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..55f62ee 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
@@ -123,27 +123,7 @@
         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���������������������
@@ -169,20 +149,8 @@
         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);
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -196,7 +164,17 @@
         Integer deviceId = device.getId();
         Device oldDevice = deviceMapper.selectById(deviceId);
         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);
@@ -442,5 +420,43 @@
         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());
+                    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