From 5981f3413b9db0dea9ef7b5e33fd39d214ebb636 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 23 Jun 2021 14:19:47 +0800
Subject: [PATCH] screen-manage 增加功能: 修改型号的因子,组织型号关系表也进行维护
---
screen-manage/src/main/java/com/moral/api/controller/TestController.java | 5 --
screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java | 72 ++++++++++++++++++++++++++++++++----
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java | 3 +
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 7 +++
screen-manage/src/main/java/com/moral/api/util/CacheUtils.java | 5 ++
screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java | 17 ++++++++
6 files changed, 94 insertions(+), 15 deletions(-)
diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
index 8f51aad..cf8b71c 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -59,7 +59,8 @@
ORGANIZATION_EXIST_MONITORPOINT(-44,"���������������������������������"),
CHILDREN_ORGANIZATION_EXIST_MONITORPOINT(-45,"������������������������������������"),
DEVICE_IS_NULL(-46, "���������������"),
- TARGET_IS_NULL(-47, "���������������������")
+ TARGET_IS_NULL(-47, "���������������������"),
+ VERSION_USED(-48,"������������������������������")
;
private final Integer code;
private final String msg;
diff --git a/screen-manage/src/main/java/com/moral/api/controller/TestController.java b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
index 3cb3911..a3e07fc 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/TestController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
@@ -165,9 +165,4 @@
writer.close();
fis.close();
}
-
- @GetMapping("testCacheUtils")
- public void testCacheUtils(){
- CacheUtils.flushDeviceAlarmUnit();
- }
}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java b/screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java
index 33c428e..0e2ee21 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java
@@ -7,6 +7,7 @@
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
+import java.util.Objects;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -77,6 +78,22 @@
*/
private String isDelete;
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ VersionSensorUnit that = (VersionSensorUnit) o;
+ return Objects.equals(sensorCode, that.sensorCode) &&
+ Objects.equals(unitKey, that.unitKey) &&
+ Objects.equals(upper, that.upper) &&
+ Objects.equals(lower, that.lower);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(super.hashCode(), sensorCode, unitKey, upper, lower);
+ }
@Override
protected Serializable pkVal() {
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 9e06f36..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;
@@ -132,6 +133,8 @@
delDeviceInfoFromRedis(mac);
//������������������redis
setDeviceInfoToRedis(mac, deviceInfo);
+ //������deviceInfo������
+ CacheUtils.flushDeviceAlarmInfo();
//������������������
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
StringBuilder content = new StringBuilder();
@@ -153,6 +156,8 @@
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();
@@ -187,6 +192,8 @@
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();
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
index 26f3540..452227f 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
@@ -165,6 +165,16 @@
VersionDTO dto = new VersionDTO();
//������
Integer id = form.getId();
+ //������������������������������������������������������������
+ QueryWrapper<OrganizationUnitAlarm> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_delete",Constants.NOT_DELETE);
+ queryWrapper.eq("version_id",id);
+ List<OrganizationUnitAlarm> organizationUnitAlarms = organizationUnitAlarmMapper.selectList(queryWrapper);
+ if(!ObjectUtils.isEmpty(organizationUnitAlarms)){
+ dto.setCode(ResponseCodeEnum.VERSION_USED.getCode());
+ dto.setMsg(ResponseCodeEnum.VERSION_USED.getMsg());
+ return dto;
+ }
//������������������������������������������
Version oldVersion = versionMapper.selectById(id);
//������������
@@ -191,21 +201,67 @@
//������
List<VersionSensorUnit> sensorUnits = form.getSensorUnits();
Integer versionId = form.getVersionId();
- //������������������������������������
- UpdateWrapper deleteWrapper = new UpdateWrapper();
- deleteWrapper.eq("version_id", versionId);
- deleteWrapper.set("is_delete", Constants.DELETE);
- versionSensorUnitMapper.update(null, deleteWrapper);
//������������������id������code
for (VersionSensorUnit sensorUnit : sensorUnits) {
Sensor sensor = sensorMapper.selectById(sensorUnit.getSensorId());
sensorUnit.setSensorCode(sensor.getCode());
}
- //���������������������������������
- for (VersionSensorUnit sensorUnit : sensorUnits) {
- sensorUnit.setVersionId(versionId);
+ //������������������������������������
+ QueryWrapper<VersionSensorUnit> queryOldWrapper = new QueryWrapper<>();
+ queryOldWrapper.eq("version_id",versionId);
+ queryOldWrapper.eq("is_delete",Constants.NOT_DELETE);
+ List<VersionSensorUnit> oldSensorUnits = versionSensorUnitMapper.selectList(queryOldWrapper);
+ //������������������������(������������������������)
+ List<VersionSensorUnit> insertList = new ArrayList<>();
+ List<VersionSensorUnit> deleteList = new ArrayList<>();
+ sensorUnits.forEach(value->{
+ value.setVersionId(versionId);
+ if(!oldSensorUnits.contains(value))
+ insertList.add(value);
+ });
+ oldSensorUnits.forEach(value->{
+ if(!sensorUnits.contains(value))
+ deleteList.add(value);
+ });
+ //������������
+ UpdateWrapper deleteWrapper = new UpdateWrapper();
+ List<Integer> deleteIds = new ArrayList<>();
+ deleteList.forEach(value->deleteIds.add(value.getId()));
+ deleteWrapper.in("id",deleteIds);
+ deleteWrapper.set("is_delete", Constants.DELETE);
+ versionSensorUnitMapper.update(null, deleteWrapper);
+ //������������
+ for (VersionSensorUnit sensorUnit : insertList) {
versionSensorUnitMapper.insert(sensorUnit);
}
+ //���������������������������
+ QueryWrapper<OrganizationUnitAlarm> queryOrgUnitAlarmWrapper = new QueryWrapper<>();
+ queryOrgUnitAlarmWrapper.select("distinct organization_id");
+ queryOrgUnitAlarmWrapper.eq("version_id",versionId);
+ queryOrgUnitAlarmWrapper.eq("is_delete",Constants.NOT_DELETE);
+ List<OrganizationUnitAlarm> organizationUnitAlarms = organizationUnitAlarmMapper.selectList(queryOrgUnitAlarmWrapper);
+ List<Integer> organizationIds = new ArrayList<>();
+ organizationUnitAlarms.forEach(value->organizationIds.add(value.getOrganizationId()));
+ for (Integer organizationId : organizationIds) {
+ //������������
+ for (VersionSensorUnit versionSensorUnit : deleteList) {
+ UpdateWrapper deleteOrganizationUnitAlarmWrapper = new UpdateWrapper();
+ deleteOrganizationUnitAlarmWrapper.eq("orgniazation_id",organizationId);
+ deleteOrganizationUnitAlarmWrapper.eq("version_id",versionId);
+ deleteOrganizationUnitAlarmWrapper.eq("sensor_code",versionSensorUnit.getSensorCode());
+ organizationUnitAlarmMapper.update(null,deleteOrganizationUnitAlarmWrapper);
+ }
+ //������������
+ for (VersionSensorUnit versionSensorUnit : insertList) {
+ OrganizationUnitAlarm organizationUnitAlarm = new OrganizationUnitAlarm();
+ organizationUnitAlarm.setOrganizationId(organizationId);
+ organizationUnitAlarm.setVersionId(versionId);
+ organizationUnitAlarm.setSensorCode(versionSensorUnit.getSensorCode());
+ organizationUnitAlarm.setUnitKey(versionSensorUnit.getUnitKey());
+ organizationUnitAlarm.setShowUnitKey(versionSensorUnit.getUnitKey());
+ organizationUnitAlarmMapper.insert(organizationUnitAlarm);
+ }
+ }
//������������������
dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
index 8fa6e54..4975afd 100644
--- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
+++ b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
@@ -71,7 +71,10 @@
redisTemplate.delete(RedisConstants.DICT_TYPE_KEY);
}
- public static void flushDeviceAlarmUnit() {
+ public static void flushDeviceAlarmInfo() {
+ //������������
+ redisTemplate.delete(RedisConstants.DEVICE_INFO);
+ //������������������
List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo();
Map<String, SysDictData> unitMap = sysDictDataService.getDictDatasByType("unit");
//���������������������������������������������
--
Gitblit v1.8.0