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/service/impl/VersionServiceImpl.java | 72 ++++++++++++++++++++++++++++++++----
1 files changed, 64 insertions(+), 8 deletions(-)
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());
--
Gitblit v1.8.0