|
|
@@ -1,9 +1,11 @@
|
|
|
package com.usky.ems.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.usky.common.security.utils.SecurityUtils;
|
|
|
import com.usky.ems.domain.*;
|
|
|
import com.usky.ems.mapper.*;
|
|
|
import com.usky.ems.service.EmsModelService;
|
|
|
+import com.usky.ems.service.vo.DmpGatewayDetailResponse;
|
|
|
import com.usky.ems.service.vo.EnergyTypeWrapperProductVO;
|
|
|
import com.usky.ems.service.vo.EmsAttributePointVO;
|
|
|
import com.usky.ems.service.vo.EmsEnergyTypeVO;
|
|
|
@@ -15,28 +17,38 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.LinkedHashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.UUID;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 基础建模服务实现(结构树、能源类型、建筑/区域/网关/通道/设备/属性点位 CRUD)
|
|
|
+ * 空间:base_space;建筑/区域实体:base_build、base_area;关联:base_space_build、base_space_area、base_space_gateway;网关:dmp_gateway
|
|
|
*/
|
|
|
@Service
|
|
|
public class EmsModelServiceImpl implements EmsModelService {
|
|
|
|
|
|
@Autowired
|
|
|
- private EmsProjectMapper emsProjectMapper;
|
|
|
+ private BaseSpaceMapper baseSpaceMapper;
|
|
|
@Autowired
|
|
|
- private EmsSpaceMapper emsSpaceMapper;
|
|
|
+ private BaseBuildMapper baseBuildMapper;
|
|
|
@Autowired
|
|
|
- private EmsSpaceBuildingMapper emsSpaceBuildingMapper;
|
|
|
+ private BaseAreaMapper baseAreaMapper;
|
|
|
@Autowired
|
|
|
- private EmsSpaceAreaMapper emsSpaceAreaMapper;
|
|
|
+ private BaseSpaceBuildMapper baseSpaceBuildMapper;
|
|
|
@Autowired
|
|
|
- private EmsGatewayMapper emsGatewayMapper;
|
|
|
+ private BaseSpaceAreaMapper baseSpaceAreaMapper;
|
|
|
+ @Autowired
|
|
|
+ private BaseSpaceGatewayMapper baseSpaceGatewayMapper;
|
|
|
+ @Autowired
|
|
|
+ private DmpGatewayMapper dmpGatewayMapper;
|
|
|
@Autowired
|
|
|
private EmsChannelMapper emsChannelMapper;
|
|
|
@Autowired
|
|
|
@@ -50,61 +62,91 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
private static final int SPACE_TYPE_REGION = 2;
|
|
|
private static final int SPACE_TYPE_BUILDING = 3;
|
|
|
|
|
|
- private EmsProject firstProject() {
|
|
|
- List<EmsProject> list = emsProjectMapper.selectList(null);
|
|
|
- return list.isEmpty() ? null : list.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public EmsStructureTreeNode getStructureTree(Long projectId, Boolean includeGateway) {
|
|
|
- EmsProject project = projectId != null ? emsProjectMapper.selectById(projectId) : firstProject();
|
|
|
- if (project == null) {
|
|
|
+ /** base_build.create_by / update_by 为 varchar(25) */
|
|
|
+ private static String trimAuditUser(String username) {
|
|
|
+ if (username == null) {
|
|
|
return null;
|
|
|
}
|
|
|
- EmsStructureTreeNode root = new EmsStructureTreeNode();
|
|
|
- root.setId(project.getId());
|
|
|
- root.setName(project.getName());
|
|
|
- root.setType("project");
|
|
|
- root.setChildren(buildSpaceChildren(project.getSpaceId(), includeGateway == null || includeGateway));
|
|
|
- return root;
|
|
|
+ return username.length() > 25 ? username.substring(0, 25) : username;
|
|
|
}
|
|
|
|
|
|
- private List<EmsStructureTreeNode> buildSpaceChildren(Long parentId, boolean includeGateway) {
|
|
|
- if (parentId == null) return Collections.emptyList();
|
|
|
- List<EmsSpace> list = emsSpaceMapper.selectList(new LambdaQueryWrapper<EmsSpace>().eq(EmsSpace::getParentId, parentId));
|
|
|
- List<EmsStructureTreeNode> children = new ArrayList<>();
|
|
|
- for (EmsSpace s : list) {
|
|
|
- EmsStructureTreeNode node = new EmsStructureTreeNode();
|
|
|
- node.setId(s.getId());
|
|
|
- node.setName(s.getName());
|
|
|
- if (s.getType() == SPACE_TYPE_BUILDING) {
|
|
|
- node.setType("building");
|
|
|
- EmsSpaceBuilding b = emsSpaceBuildingMapper.selectOne(new LambdaQueryWrapper<EmsSpaceBuilding>().eq(EmsSpaceBuilding::getSpaceId, s.getId()));
|
|
|
- if (b != null) node.setName(b.getName());
|
|
|
- } else if (s.getType() == SPACE_TYPE_REGION) {
|
|
|
- node.setType("region");
|
|
|
- EmsSpaceArea a = emsSpaceAreaMapper.selectOne(new LambdaQueryWrapper<EmsSpaceArea>().eq(EmsSpaceArea::getSpaceId, s.getId()));
|
|
|
- if (a != null) node.setName(a.getName());
|
|
|
- } else {
|
|
|
- node.setType("space");
|
|
|
- }
|
|
|
- List<EmsStructureTreeNode> sub = buildSpaceChildren(s.getId(), includeGateway);
|
|
|
- // 网关挂在非「建筑」空间下(区域、历史遗留子空间等),不包含建筑节点本身
|
|
|
- if (includeGateway && s.getType() != SPACE_TYPE_BUILDING) {
|
|
|
- List<EmsGateway> gateways = emsGatewayMapper.selectList(new LambdaQueryWrapper<EmsGateway>().eq(EmsGateway::getSpaceId, s.getId()));
|
|
|
- for (EmsGateway g : gateways) {
|
|
|
- EmsStructureTreeNode gw = new EmsStructureTreeNode();
|
|
|
- gw.setId(g.getId());
|
|
|
- gw.setName(g.getName());
|
|
|
- gw.setType("gateway");
|
|
|
- sub.add(gw);
|
|
|
- }
|
|
|
- }
|
|
|
- node.setChildren(sub);
|
|
|
- children.add(node);
|
|
|
- }
|
|
|
- return children;
|
|
|
- }
|
|
|
+// private EmsProject firstProject() {
|
|
|
+// List<EmsProject> list = emsProjectMapper.selectList(null);
|
|
|
+// return list.isEmpty() ? null : list.get(0);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public EmsStructureTreeNode getStructureTree(Long projectId, Boolean includeGateway) {
|
|
|
+// EmsProject project = projectId != null ? emsProjectMapper.selectById(projectId) : firstProject();
|
|
|
+// if (project == null) {
|
|
|
+// return null;
|
|
|
+// }
|
|
|
+// EmsStructureTreeNode root = new EmsStructureTreeNode();
|
|
|
+// root.setId(project.getId());
|
|
|
+// root.setName(project.getName());
|
|
|
+// root.setType("project");
|
|
|
+// root.setChildren(buildSpaceChildren(project.getSpaceId(), includeGateway == null || includeGateway));
|
|
|
+// return root;
|
|
|
+// }
|
|
|
+//
|
|
|
+// private List<EmsStructureTreeNode> buildSpaceChildren(Long parentId, boolean includeGateway) {
|
|
|
+// if (parentId == null) {
|
|
|
+// return Collections.emptyList();
|
|
|
+// }
|
|
|
+// List<BaseSpace> list = baseSpaceMapper.selectList(new LambdaQueryWrapper<BaseSpace>().eq(BaseSpace::getParentId, parentId));
|
|
|
+// List<EmsStructureTreeNode> children = new ArrayList<>();
|
|
|
+// for (BaseSpace s : list) {
|
|
|
+// EmsStructureTreeNode node = new EmsStructureTreeNode();
|
|
|
+// node.setId(s.getId());
|
|
|
+// node.setName(s.getName());
|
|
|
+// if (s.getType() != null && s.getType() == SPACE_TYPE_BUILDING) {
|
|
|
+// node.setType("building");
|
|
|
+// BaseSpaceBuild link = baseSpaceBuildMapper.selectOne(
|
|
|
+// new LambdaQueryWrapper<BaseSpaceBuild>().eq(BaseSpaceBuild::getSpaceId, s.getId()).last("LIMIT 1"));
|
|
|
+// if (link != null && link.getBuildId() != null) {
|
|
|
+// BaseBuild b = baseBuildMapper.selectById(link.getBuildId());
|
|
|
+// if (b != null && b.getBuildName() != null) {
|
|
|
+// node.setName(b.getBuildName());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// } else if (s.getType() != null && s.getType() == SPACE_TYPE_REGION) {
|
|
|
+// node.setType("region");
|
|
|
+// BaseSpaceArea sa = baseSpaceAreaMapper.selectOne(
|
|
|
+// new LambdaQueryWrapper<BaseSpaceArea>().eq(BaseSpaceArea::getSpaceId, s.getId()).last("LIMIT 1"));
|
|
|
+// if (sa != null && sa.getAreaId() != null) {
|
|
|
+// BaseArea a = baseAreaMapper.selectById(sa.getAreaId());
|
|
|
+// if (a != null && a.getName() != null) {
|
|
|
+// node.setName(a.getName());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// node.setType("space");
|
|
|
+// }
|
|
|
+// List<EmsStructureTreeNode> sub = buildSpaceChildren(s.getId(), includeGateway);
|
|
|
+// if (includeGateway && (s.getType() == null || s.getType() != SPACE_TYPE_BUILDING)) {
|
|
|
+// List<BaseSpaceGateway> links = baseSpaceGatewayMapper.selectList(
|
|
|
+// new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getSpaceId, s.getId()));
|
|
|
+// for (BaseSpaceGateway link : links) {
|
|
|
+// if (link.getGatewayUuid() == null) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// DmpGateway g = dmpGatewayMapper.selectOne(
|
|
|
+// new LambdaQueryWrapper<DmpGateway>().eq(DmpGateway::getDeviceUuid, link.getGatewayUuid()).last("LIMIT 1"));
|
|
|
+// if (g == null) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// EmsStructureTreeNode gw = new EmsStructureTreeNode();
|
|
|
+// gw.setId(g.getDeviceUuid());
|
|
|
+// gw.setName(g.getName());
|
|
|
+// gw.setType("gateway");
|
|
|
+// sub.add(gw);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// node.setChildren(sub);
|
|
|
+// children.add(node);
|
|
|
+// }
|
|
|
+// return children;
|
|
|
+// }
|
|
|
|
|
|
@Override
|
|
|
public List<EmsEnergyTypeVO> getEnergyTypeList() {
|
|
|
@@ -124,15 +166,12 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 展示已关联的类型及其下属产品列表
|
|
|
- * 这里按 dmp_product.deviceType 进行分组,每个产品作为一个 SimpleProductVO 返回。
|
|
|
- */
|
|
|
@Override
|
|
|
public List<EnergyTypeWrapperProductVO> showAssociatedEnergyTypes() {
|
|
|
List<DmpProduct> products = dmpProductMapper.selectList(
|
|
|
new LambdaQueryWrapper<DmpProduct>()
|
|
|
.eq(DmpProduct::getDeleteFlag, 0)
|
|
|
+ .eq(DmpProduct::getTenantId, SecurityUtils.getTenantId())
|
|
|
);
|
|
|
if (products == null || products.isEmpty()) {
|
|
|
return Collections.emptyList();
|
|
|
@@ -156,14 +195,17 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
});
|
|
|
|
|
|
result.sort((o1, o2) -> {
|
|
|
- if (o1.getEnergyType() == null) return -1;
|
|
|
- if (o2.getEnergyType() == null) return 1;
|
|
|
+ if (o1.getEnergyType() == null) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ if (o2.getEnergyType() == null) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
return o1.getEnergyType().compareTo(o2.getEnergyType());
|
|
|
});
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- /** 根据 dmp_product.deviceType 获取类型名称 */
|
|
|
private String deviceTypeName(Integer deviceType) {
|
|
|
if (deviceType == null) {
|
|
|
return "";
|
|
|
@@ -189,20 +231,39 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Long createBuilding(EmsModelSaveRequest request) {
|
|
|
- Long projectId = request.getProjectId();
|
|
|
- String name = request.getName();
|
|
|
- EmsProject project = projectId != null ? emsProjectMapper.selectById(projectId) : firstProject();
|
|
|
- if (project == null) return null;
|
|
|
- EmsSpace space = new EmsSpace();
|
|
|
- space.setName(name);
|
|
|
- space.setParentId(project.getSpaceId());
|
|
|
+ Long parentSpaceId = request.getParentSpaceId();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ String auditUser = trimAuditUser(SecurityUtils.getUsername());
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
+ BaseBuild build = new BaseBuild();
|
|
|
+ build.setTenantId(tenantId);
|
|
|
+ build.setCreateBy(auditUser);
|
|
|
+ build.setUpdateBy(auditUser);
|
|
|
+ build.setCreateTime(now);
|
|
|
+ build.setUpdateTime(now);
|
|
|
+ baseBuildMapper.insert(build);
|
|
|
+
|
|
|
+ BaseSpace space = new BaseSpace();
|
|
|
+ space.setName(request.getBuildName());
|
|
|
+ space.setParentId(request.getParentSpaceId());
|
|
|
space.setType(SPACE_TYPE_BUILDING);
|
|
|
- space.setRootId(project.getSpaceId());
|
|
|
- emsSpaceMapper.insert(space);
|
|
|
- EmsSpaceBuilding building = new EmsSpaceBuilding();
|
|
|
- building.setSpaceId(space.getId());
|
|
|
- building.setName(name);
|
|
|
- emsSpaceBuildingMapper.insert(building);
|
|
|
+ BaseSpace parent = parentSpaceId != null ? baseSpaceMapper.selectById(parentSpaceId) : null;
|
|
|
+ space.setRootId(parent != null ? parent.getRootId() : parentSpaceId);
|
|
|
+ space.setTenantId(tenantId);
|
|
|
+ space.setCreatedBy(auditUser);
|
|
|
+ space.setUpdatedBy(auditUser);
|
|
|
+ space.setCreateTime(now);
|
|
|
+ space.setUpdateTime(now);
|
|
|
+ space.setPath(parent.getPath()+"/"+parentSpaceId);
|
|
|
+ space.setPathName(parent.getPathName()+"/"+parent.getName());
|
|
|
+ space.setDeep(parent.getDeep()+1);
|
|
|
+ baseSpaceMapper.insert(space);
|
|
|
+
|
|
|
+ BaseSpaceBuild rel = new BaseSpaceBuild();
|
|
|
+ rel.setSpaceId(space.getId());
|
|
|
+ rel.setBuildId(build.getId());
|
|
|
+ rel.setCreatedTime(now);
|
|
|
+ baseSpaceBuildMapper.insert(rel);
|
|
|
return space.getId();
|
|
|
}
|
|
|
|
|
|
@@ -210,41 +271,90 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateBuilding(Long id, EmsModelSaveRequest request) {
|
|
|
String name = request.getName();
|
|
|
- EmsSpace space = emsSpaceMapper.selectById(id);
|
|
|
+ BaseSpace space = baseSpaceMapper.selectById(id);
|
|
|
if (space != null && name != null) {
|
|
|
space.setName(name);
|
|
|
- emsSpaceMapper.updateById(space);
|
|
|
+ space.setUpdatedBy(SecurityUtils.getUsername());
|
|
|
+ space.setUpdateTime(LocalDateTime.now());
|
|
|
+ baseSpaceMapper.updateById(space);
|
|
|
}
|
|
|
- EmsSpaceBuilding b = emsSpaceBuildingMapper.selectOne(new LambdaQueryWrapper<EmsSpaceBuilding>().eq(EmsSpaceBuilding::getSpaceId, id));
|
|
|
- if (b != null && name != null) {
|
|
|
- b.setName(name);
|
|
|
- emsSpaceBuildingMapper.updateById(b);
|
|
|
+ BaseSpaceBuild b = baseSpaceBuildMapper.selectOne(new LambdaQueryWrapper<BaseSpaceBuild>().eq(BaseSpaceBuild::getSpaceId, id).last("LIMIT 1"));
|
|
|
+ if (b != null && b.getBuildId() != null && name != null) {
|
|
|
+ BaseBuild build = baseBuildMapper.selectById(b.getBuildId());
|
|
|
+ if (build != null) {
|
|
|
+ build.setUpdateBy(trimAuditUser(SecurityUtils.getUsername()));
|
|
|
+ build.setUpdateTime(LocalDateTime.now());
|
|
|
+ baseBuildMapper.updateById(build);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void deleteBuilding(Long id) {
|
|
|
- emsSpaceBuildingMapper.delete(new LambdaQueryWrapper<EmsSpaceBuilding>().eq(EmsSpaceBuilding::getSpaceId, id));
|
|
|
- emsSpaceMapper.deleteById(id);
|
|
|
+ List<BaseSpaceBuild> links = baseSpaceBuildMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<BaseSpaceBuild>().eq(BaseSpaceBuild::getSpaceId, id));
|
|
|
+ for (BaseSpaceBuild link : links) {
|
|
|
+ if (link.getBuildId() != null) {
|
|
|
+ baseBuildMapper.deleteById(link.getBuildId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ baseSpaceBuildMapper.delete(new LambdaQueryWrapper<BaseSpaceBuild>().eq(BaseSpaceBuild::getSpaceId, id));
|
|
|
+ baseSpaceMapper.deleteById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Long createRegion(EmsModelSaveRequest request) {
|
|
|
- Long buildingId = request.getBuildingId();
|
|
|
+ Long parentSpaceId = request.getParentSpaceId();
|
|
|
String name = request.getName();
|
|
|
- EmsSpace space = new EmsSpace();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
+ String auditUser = trimAuditUser(SecurityUtils.getUsername());
|
|
|
+
|
|
|
+ BaseArea area = new BaseArea();
|
|
|
+ area.setName(name);
|
|
|
+ area.setType(request.getType());
|
|
|
+ if (request.getArea() != null) {
|
|
|
+ area.setArea(request.getArea());
|
|
|
+ }
|
|
|
+ if(request.getCommonArea() != null) {
|
|
|
+ area.setCommonArea(request.getCommonArea());
|
|
|
+ }
|
|
|
+ if(request.getAirConditionedArea() != null) {
|
|
|
+ area.setAirConditionedArea(request.getAirConditionedArea());
|
|
|
+ }
|
|
|
+ if(request.getResidentPopulation() != null) {
|
|
|
+ area.setResidentPopulation(request.getResidentPopulation());
|
|
|
+ }
|
|
|
+ area.setCreateBy(auditUser);
|
|
|
+ area.setUpdateBy(auditUser);
|
|
|
+ area.setCreateTime(now);
|
|
|
+ area.setUpdateTime(now);
|
|
|
+ area.setTenantId(tenantId);
|
|
|
+ baseAreaMapper.insert(area);
|
|
|
+
|
|
|
+ BaseSpace space = new BaseSpace();
|
|
|
space.setName(name);
|
|
|
- space.setParentId(buildingId);
|
|
|
- EmsSpace parent = emsSpaceMapper.selectById(buildingId);
|
|
|
- space.setRootId(parent != null ? parent.getRootId() : buildingId);
|
|
|
+ space.setParentId(parentSpaceId);
|
|
|
+ BaseSpace parent = parentSpaceId != null ? baseSpaceMapper.selectById(parentSpaceId) : null;
|
|
|
+ space.setRootId(parent != null ? parent.getRootId() : parentSpaceId);
|
|
|
space.setType(SPACE_TYPE_REGION);
|
|
|
- emsSpaceMapper.insert(space);
|
|
|
- EmsSpaceArea area = new EmsSpaceArea();
|
|
|
- area.setSpaceId(space.getId());
|
|
|
- area.setName(name);
|
|
|
- if (request.getArea() != null) area.setArea(request.getArea());
|
|
|
+ space.setPath(parent.getPath()+"/"+parentSpaceId);
|
|
|
+ space.setPathName(parent.getPathName()+"/"+parent.getName());
|
|
|
+ space.setDeep(parent.getDeep()+1);
|
|
|
+ space.setCreatedBy(auditUser);
|
|
|
+ space.setUpdatedBy(auditUser);
|
|
|
+ space.setCreateTime(now);
|
|
|
+ space.setUpdateTime(now);
|
|
|
+ space.setTenantId(tenantId);
|
|
|
+ baseSpaceMapper.insert(space);
|
|
|
+
|
|
|
+ BaseSpaceArea rel = new BaseSpaceArea();
|
|
|
+ rel.setSpaceId(space.getId());
|
|
|
+ rel.setAreaId(area.getId());
|
|
|
+ rel.setCreatedTime(now);
|
|
|
+ baseSpaceAreaMapper.insert(rel);
|
|
|
return space.getId();
|
|
|
}
|
|
|
|
|
|
@@ -252,24 +362,51 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateRegion(Long id, EmsModelSaveRequest request) {
|
|
|
String name = request.getName();
|
|
|
- EmsSpace space = emsSpaceMapper.selectById(id);
|
|
|
+ BaseSpace space = baseSpaceMapper.selectById(id);
|
|
|
if (space != null && name != null) {
|
|
|
space.setName(name);
|
|
|
- emsSpaceMapper.updateById(space);
|
|
|
+ space.setUpdateTime(LocalDateTime.now());
|
|
|
+ baseSpaceMapper.updateById(space);
|
|
|
}
|
|
|
- EmsSpaceArea a = emsSpaceAreaMapper.selectOne(new LambdaQueryWrapper<EmsSpaceArea>().eq(EmsSpaceArea::getSpaceId, id));
|
|
|
- if (a != null) {
|
|
|
- if (name != null) a.setName(name);
|
|
|
- if (request.getArea() != null) a.setArea(request.getArea());
|
|
|
- emsSpaceAreaMapper.updateById(a);
|
|
|
+ BaseSpaceArea sa = baseSpaceAreaMapper.selectOne(new LambdaQueryWrapper<BaseSpaceArea>().eq(BaseSpaceArea::getSpaceId, id).last("LIMIT 1"));
|
|
|
+ if (sa != null && sa.getAreaId() != null) {
|
|
|
+ BaseArea area = baseAreaMapper.selectById(sa.getAreaId());
|
|
|
+ if (area != null) {
|
|
|
+ if (name != null) {
|
|
|
+ area.setName(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(request.getType() != null) {
|
|
|
+ area.setType(request.getType());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (request.getArea() != null) {
|
|
|
+ area.setArea(request.getArea());
|
|
|
+ }
|
|
|
+ if(request.getCommonArea() != null) {
|
|
|
+ area.setCommonArea(request.getCommonArea());
|
|
|
+ }
|
|
|
+ if(request.getAirConditionedArea() != null) {
|
|
|
+ area.setAirConditionedArea(request.getAirConditionedArea());
|
|
|
+ }
|
|
|
+ if(request.getResidentPopulation() != null) {
|
|
|
+ area.setResidentPopulation(request.getResidentPopulation());
|
|
|
+ }
|
|
|
+ area.setUpdateTime(LocalDateTime.now());
|
|
|
+ baseAreaMapper.updateById(area);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void deleteRegion(Long id) {
|
|
|
- emsSpaceAreaMapper.delete(new LambdaQueryWrapper<EmsSpaceArea>().eq(EmsSpaceArea::getSpaceId, id));
|
|
|
- emsSpaceMapper.deleteById(id);
|
|
|
+ BaseSpaceArea sa = baseSpaceAreaMapper.selectOne(new LambdaQueryWrapper<BaseSpaceArea>().eq(BaseSpaceArea::getSpaceId, id).last("LIMIT 1"));
|
|
|
+ baseSpaceAreaMapper.delete(new LambdaQueryWrapper<BaseSpaceArea>().eq(BaseSpaceArea::getSpaceId, id));
|
|
|
+ if (sa != null && sa.getAreaId() != null) {
|
|
|
+ baseAreaMapper.deleteById(sa.getAreaId());
|
|
|
+ }
|
|
|
+ baseSpaceMapper.deleteById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -277,171 +414,219 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
public String createGateway(EmsModelSaveRequest request) {
|
|
|
Long spaceId = request.getSpaceId();
|
|
|
String name = request.getName();
|
|
|
- String gwId = "GW" + System.currentTimeMillis();
|
|
|
- if (gwId.length() > 13) gwId = gwId.substring(0, 13);
|
|
|
- EmsGateway g = new EmsGateway();
|
|
|
- g.setId(gwId);
|
|
|
- g.setName(name);
|
|
|
- g.setSpaceId(spaceId);
|
|
|
- g.setProjectId(0L);
|
|
|
- EmsSpace space = spaceId != null ? emsSpaceMapper.selectById(spaceId) : null;
|
|
|
- if (space != null) {
|
|
|
- EmsProject p = firstProject();
|
|
|
- if (p != null) g.setProjectId(p.getId());
|
|
|
+ String uuid = UUID.randomUUID().toString().replace("-", "");
|
|
|
+ if (uuid.length() > 50) {
|
|
|
+ uuid = uuid.substring(0, 50);
|
|
|
}
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DmpGateway g = new DmpGateway();
|
|
|
+ g.setDeviceUuid(uuid);
|
|
|
+ g.setName(name != null ? name : "gateway");
|
|
|
g.setCommStatus(0);
|
|
|
- g.setDataCenterId(0L);
|
|
|
- g.setSecretKey("");
|
|
|
g.setVirtualDevice(0);
|
|
|
- emsGatewayMapper.insert(g);
|
|
|
- return g.getId();
|
|
|
+ g.setCreateTime(now);
|
|
|
+ g.setUpdateTime(now);
|
|
|
+ dmpGatewayMapper.insert(g);
|
|
|
+
|
|
|
+ if (spaceId != null) {
|
|
|
+ BaseSpaceGateway rel = new BaseSpaceGateway();
|
|
|
+ rel.setSpaceId(spaceId);
|
|
|
+ rel.setGatewayUuid(uuid);
|
|
|
+ rel.setCreatedTime(now);
|
|
|
+ baseSpaceGatewayMapper.insert(rel);
|
|
|
+ }
|
|
|
+ return uuid;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateGateway(String id, EmsModelSaveRequest request) {
|
|
|
- EmsGateway g = emsGatewayMapper.selectById(id);
|
|
|
- if (g == null) return;
|
|
|
- if (request.getName() != null) g.setName(request.getName());
|
|
|
- if (request.getSpaceId() != null) g.setSpaceId(request.getSpaceId());
|
|
|
- emsGatewayMapper.updateById(g);
|
|
|
+ DmpGateway g = dmpGatewayMapper.selectOne(
|
|
|
+ new LambdaQueryWrapper<DmpGateway>().eq(DmpGateway::getDeviceUuid, id).last("LIMIT 1"));
|
|
|
+ if (g == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (request.getName() != null) {
|
|
|
+ g.setName(request.getName());
|
|
|
+ }
|
|
|
+ g.setUpdateTime(LocalDateTime.now());
|
|
|
+ dmpGatewayMapper.updateById(g);
|
|
|
+
|
|
|
+ if (request.getSpaceId() != null) {
|
|
|
+ baseSpaceGatewayMapper.delete(new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getGatewayUuid, id));
|
|
|
+ BaseSpaceGateway rel = new BaseSpaceGateway();
|
|
|
+ rel.setSpaceId(request.getSpaceId());
|
|
|
+ rel.setGatewayUuid(id);
|
|
|
+ rel.setCreatedTime(LocalDateTime.now());
|
|
|
+ baseSpaceGatewayMapper.insert(rel);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void deleteGateway(String id) {
|
|
|
- emsGatewayMapper.deleteById(id);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public Long createChannel(EmsModelSaveRequest request) {
|
|
|
- String gatewayId = request.getGatewayId();
|
|
|
- String name = request.getName();
|
|
|
- EmsChannel c = new EmsChannel();
|
|
|
- c.setGatewayId(gatewayId);
|
|
|
- c.setName(name);
|
|
|
- c.setChannelTypeId(request.getChannelTypeId());
|
|
|
- emsChannelMapper.insert(c);
|
|
|
- return c.getId();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateChannel(Long id, EmsModelSaveRequest request) {
|
|
|
- EmsChannel c = emsChannelMapper.selectById(id);
|
|
|
- if (c == null) return;
|
|
|
- if (request.getName() != null) c.setName(request.getName());
|
|
|
- if (request.getGatewayId() != null) c.setGatewayId(request.getGatewayId());
|
|
|
- emsChannelMapper.updateById(c);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void deleteChannel(Long id) {
|
|
|
- emsChannelMapper.deleteById(id);
|
|
|
+ baseSpaceGatewayMapper.delete(new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getGatewayUuid, id));
|
|
|
+ dmpGatewayMapper.delete(new LambdaQueryWrapper<DmpGateway>().eq(DmpGateway::getDeviceUuid, id));
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public String createDevice(EmsModelSaveRequest request) {
|
|
|
- Long channelId = request.getChannelId();
|
|
|
- String name = request.getName();
|
|
|
- String devId = "DV" + System.currentTimeMillis();
|
|
|
- if (devId.length() > 13) devId = devId.substring(0, 13);
|
|
|
- EmsDevice d = new EmsDevice();
|
|
|
- d.setId(devId);
|
|
|
- d.setName(name);
|
|
|
- d.setProjectId(0L);
|
|
|
- d.setChannelId(channelId != null ? channelId : 0L);
|
|
|
- d.setGatewayId("");
|
|
|
- EmsChannel ch = channelId != null ? emsChannelMapper.selectById(channelId) : null;
|
|
|
- if (ch != null) d.setGatewayId(ch.getGatewayId());
|
|
|
- d.setProductId(0L);
|
|
|
- d.setInstallationLocation(0L);
|
|
|
- d.setMonitoringLocation(0L);
|
|
|
- d.setCommAddress("");
|
|
|
- d.setVirtualDevice(0);
|
|
|
- d.setFocus(0);
|
|
|
- d.setDeviceSystem(0);
|
|
|
- d.setStatus(1);
|
|
|
- d.setCommStatus(0);
|
|
|
- emsDeviceMapper.insert(d);
|
|
|
- return d.getId();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateDevice(String id, EmsModelSaveRequest request) {
|
|
|
- EmsDevice d = emsDeviceMapper.selectById(id);
|
|
|
- if (d == null) return;
|
|
|
- if (request.getName() != null) d.setName(request.getName());
|
|
|
- if (request.getChannelId() != null) d.setChannelId(request.getChannelId());
|
|
|
- emsDeviceMapper.updateById(d);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void deleteDevice(String id) {
|
|
|
- emsDeviceMapper.deleteById(id);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public Long createAttributePoint(EmsModelSaveRequest request) {
|
|
|
- String deviceId = request.getDeviceId();
|
|
|
- String name = request.getName();
|
|
|
- String code = request.getCode();
|
|
|
- EmsDeviceFunction f = new EmsDeviceFunction();
|
|
|
- f.setDeviceId(deviceId);
|
|
|
- f.setName(name);
|
|
|
- f.setIdentifier(code != null ? code : name);
|
|
|
- f.setProductId(0L);
|
|
|
- f.setProductTemplateId(0L);
|
|
|
- f.setPreservable(1);
|
|
|
- f.setBindingAcq(0);
|
|
|
- emsDeviceFunctionMapper.insert(f);
|
|
|
- return f.getId();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateAttributePoint(Long id, EmsModelSaveRequest request) {
|
|
|
- EmsDeviceFunction f = emsDeviceFunctionMapper.selectById(id);
|
|
|
- if (f == null) return;
|
|
|
- if (request.getName() != null) f.setName(request.getName());
|
|
|
- if (request.getCode() != null) f.setIdentifier(request.getCode());
|
|
|
- emsDeviceFunctionMapper.updateById(f);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void deleteAttributePoint(Long id) {
|
|
|
- emsDeviceFunctionMapper.deleteById(id);
|
|
|
- }
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public Long createChannel(EmsModelSaveRequest request) {
|
|
|
+// String gatewayId = request.getGatewayId();
|
|
|
+// String name = request.getName();
|
|
|
+// EmsChannel c = new EmsChannel();
|
|
|
+// c.setGatewayId(gatewayId);
|
|
|
+// c.setName(name);
|
|
|
+// c.setChannelTypeId(request.getChannelTypeId());
|
|
|
+// emsChannelMapper.insert(c);
|
|
|
+// return c.getId();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void updateChannel(Long id, EmsModelSaveRequest request) {
|
|
|
+// EmsChannel c = emsChannelMapper.selectById(id);
|
|
|
+// if (c == null) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// if (request.getName() != null) {
|
|
|
+// c.setName(request.getName());
|
|
|
+// }
|
|
|
+// if (request.getGatewayId() != null) {
|
|
|
+// c.setGatewayId(request.getGatewayId());
|
|
|
+// }
|
|
|
+// emsChannelMapper.updateById(c);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void deleteChannel(Long id) {
|
|
|
+// emsChannelMapper.deleteById(id);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public String createDevice(EmsModelSaveRequest request) {
|
|
|
+// Long channelId = request.getChannelId();
|
|
|
+// String name = request.getName();
|
|
|
+// String devId = "DV" + System.currentTimeMillis();
|
|
|
+// if (devId.length() > 13) {
|
|
|
+// devId = devId.substring(0, 13);
|
|
|
+// }
|
|
|
+// EmsDevice d = new EmsDevice();
|
|
|
+// d.setId(devId);
|
|
|
+// d.setName(name);
|
|
|
+// d.setProjectId(0L);
|
|
|
+// d.setChannelId(channelId != null ? channelId : 0L);
|
|
|
+// d.setGatewayId("");
|
|
|
+// EmsChannel ch = channelId != null ? emsChannelMapper.selectById(channelId) : null;
|
|
|
+// if (ch != null) {
|
|
|
+// d.setGatewayId(ch.getGatewayId());
|
|
|
+// }
|
|
|
+// d.setProductId(0L);
|
|
|
+// d.setInstallationLocation(0L);
|
|
|
+// d.setMonitoringLocation(0L);
|
|
|
+// d.setCommAddress("");
|
|
|
+// d.setVirtualDevice(0);
|
|
|
+// d.setFocus(0);
|
|
|
+// d.setDeviceSystem(0);
|
|
|
+// d.setStatus(1);
|
|
|
+// d.setCommStatus(0);
|
|
|
+// emsDeviceMapper.insert(d);
|
|
|
+// return d.getId();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void updateDevice(String id, EmsModelSaveRequest request) {
|
|
|
+// EmsDevice d = emsDeviceMapper.selectById(id);
|
|
|
+// if (d == null) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// if (request.getName() != null) {
|
|
|
+// d.setName(request.getName());
|
|
|
+// }
|
|
|
+// if (request.getChannelId() != null) {
|
|
|
+// d.setChannelId(request.getChannelId());
|
|
|
+// }
|
|
|
+// emsDeviceMapper.updateById(d);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void deleteDevice(String id) {
|
|
|
+// emsDeviceMapper.deleteById(id);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public Long createAttributePoint(EmsModelSaveRequest request) {
|
|
|
+// String deviceId = request.getDeviceId();
|
|
|
+// String name = request.getName();
|
|
|
+// String code = request.getCode();
|
|
|
+// EmsDeviceFunction f = new EmsDeviceFunction();
|
|
|
+// f.setDeviceId(deviceId);
|
|
|
+// f.setName(name);
|
|
|
+// f.setIdentifier(code != null ? code : name);
|
|
|
+// f.setProductId(0L);
|
|
|
+// f.setProductTemplateId(0L);
|
|
|
+// f.setPreservable(1);
|
|
|
+// f.setBindingAcq(0);
|
|
|
+// emsDeviceFunctionMapper.insert(f);
|
|
|
+// return f.getId();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void updateAttributePoint(Long id, EmsModelSaveRequest request) {
|
|
|
+// EmsDeviceFunction f = emsDeviceFunctionMapper.selectById(id);
|
|
|
+// if (f == null) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// if (request.getName() != null) {
|
|
|
+// f.setName(request.getName());
|
|
|
+// }
|
|
|
+// if (request.getCode() != null) {
|
|
|
+// f.setIdentifier(request.getCode());
|
|
|
+// }
|
|
|
+// emsDeviceFunctionMapper.updateById(f);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
+// public void deleteAttributePoint(Long id) {
|
|
|
+// emsDeviceFunctionMapper.deleteById(id);
|
|
|
+// }
|
|
|
|
|
|
@Override
|
|
|
public List<EmsGatewayDeviceTreeNode> getGatewayDeviceTree(Long spaceId, String keyword) {
|
|
|
- // 1. 查询网关列表
|
|
|
- LambdaQueryWrapper<EmsGateway> gwWrapper = new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<DmpGateway> gwWrapper = new LambdaQueryWrapper<>();
|
|
|
if (spaceId != null) {
|
|
|
- gwWrapper.eq(EmsGateway::getSpaceId, spaceId);
|
|
|
+ List<BaseSpaceGateway> links = baseSpaceGatewayMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getSpaceId, spaceId));
|
|
|
+ Set<String> uuids = links.stream()
|
|
|
+ .map(BaseSpaceGateway::getGatewayUuid)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ if (uuids.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ gwWrapper.in(DmpGateway::getDeviceUuid, uuids);
|
|
|
}
|
|
|
if (keyword != null && !keyword.trim().isEmpty()) {
|
|
|
- gwWrapper.like(EmsGateway::getName, keyword.trim());
|
|
|
+ gwWrapper.like(DmpGateway::getName, keyword.trim());
|
|
|
}
|
|
|
- List<EmsGateway> gateways = emsGatewayMapper.selectList(gwWrapper);
|
|
|
+ List<DmpGateway> gateways = dmpGatewayMapper.selectList(gwWrapper);
|
|
|
|
|
|
List<EmsGatewayDeviceTreeNode> result = new ArrayList<>();
|
|
|
- for (EmsGateway gw : gateways) {
|
|
|
+ for (DmpGateway gw : gateways) {
|
|
|
EmsGatewayDeviceTreeNode gwNode = new EmsGatewayDeviceTreeNode();
|
|
|
- gwNode.setId(gw.getId());
|
|
|
+ gwNode.setId(gw.getDeviceUuid());
|
|
|
gwNode.setName(gw.getName());
|
|
|
gwNode.setType("gateway");
|
|
|
|
|
|
- // 2. 查询该网关下的通道
|
|
|
List<EmsChannel> channels = emsChannelMapper.selectList(
|
|
|
- new LambdaQueryWrapper<EmsChannel>().eq(EmsChannel::getGatewayId, gw.getId()));
|
|
|
+ new LambdaQueryWrapper<EmsChannel>().eq(EmsChannel::getGatewayId, gw.getDeviceUuid()));
|
|
|
List<EmsGatewayDeviceTreeNode> channelNodes = new ArrayList<>();
|
|
|
for (EmsChannel ch : channels) {
|
|
|
EmsGatewayDeviceTreeNode chNode = new EmsGatewayDeviceTreeNode();
|
|
|
@@ -449,7 +634,6 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
chNode.setName(ch.getName());
|
|
|
chNode.setType("channel");
|
|
|
|
|
|
- // 3. 查询该通道下的设备
|
|
|
List<EmsDevice> devices = emsDeviceMapper.selectList(
|
|
|
new LambdaQueryWrapper<EmsDevice>().eq(EmsDevice::getChannelId, ch.getId()));
|
|
|
List<EmsGatewayDeviceTreeNode> deviceNodes = new ArrayList<>();
|
|
|
@@ -461,14 +645,12 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
deviceNodes.add(devNode);
|
|
|
}
|
|
|
|
|
|
- // 只有当设备列表不为空时,才设置通道的 children
|
|
|
if (!deviceNodes.isEmpty()) {
|
|
|
chNode.setChildren(deviceNodes);
|
|
|
channelNodes.add(chNode);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 只有当通道列表不为空时,才设置网关的 children
|
|
|
if (!channelNodes.isEmpty()) {
|
|
|
gwNode.setChildren(channelNodes);
|
|
|
result.add(gwNode);
|
|
|
@@ -477,7 +659,6 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public List<EmsAttributePointVO> getAttributePointList(String deviceId) {
|
|
|
if (deviceId == null || deviceId.trim().isEmpty()) {
|
|
|
@@ -507,4 +688,96 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void bindSpaceGateways(Long spaceId, List<String> gatewayUuids) {
|
|
|
+ if (spaceId == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ baseSpaceGatewayMapper.delete(new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getSpaceId, spaceId));
|
|
|
+ if (gatewayUuids == null || gatewayUuids.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<String> normalizedUuids = gatewayUuids.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(String::trim)
|
|
|
+ .filter(s -> !s.isEmpty())
|
|
|
+ .collect(Collectors.toCollection(LinkedHashSet::new));
|
|
|
+ if (normalizedUuids.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DmpGateway> gateways = dmpGatewayMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<DmpGateway>().in(DmpGateway::getDeviceUuid, normalizedUuids));
|
|
|
+ Set<String> existsGatewayUuids = gateways.stream()
|
|
|
+ .map(DmpGateway::getDeviceUuid)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ if (existsGatewayUuids.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ String auditUser = trimAuditUser(SecurityUtils.getUsername());
|
|
|
+ for (String gatewayUuid : normalizedUuids) {
|
|
|
+ if (!existsGatewayUuids.contains(gatewayUuid)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BaseSpaceGateway relation = new BaseSpaceGateway();
|
|
|
+ relation.setSpaceId(spaceId);
|
|
|
+ relation.setGatewayUuid(gatewayUuid);
|
|
|
+ relation.setCreatedBy(auditUser);
|
|
|
+ relation.setCreatedTime(now);
|
|
|
+ baseSpaceGatewayMapper.insert(relation);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DmpGatewayDetailResponse> getGatewayListBySpaceId(Long spaceId) {
|
|
|
+ if (spaceId == null) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ List<BaseSpaceGateway> links = baseSpaceGatewayMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<BaseSpaceGateway>().eq(BaseSpaceGateway::getSpaceId, spaceId));
|
|
|
+ if (links == null || links.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ Set<String> gatewayUuids = links.stream()
|
|
|
+ .map(BaseSpaceGateway::getGatewayUuid)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toCollection(LinkedHashSet::new));
|
|
|
+ if (gatewayUuids.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DmpGateway> gateways = dmpGatewayMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<DmpGateway>().in(DmpGateway::getDeviceUuid, gatewayUuids));
|
|
|
+ if (gateways == null || gateways.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ return gateways.stream().map(item -> {
|
|
|
+ DmpGatewayDetailResponse resp = new DmpGatewayDetailResponse();
|
|
|
+ resp.setId(item.getId());
|
|
|
+ resp.setDeviceUuid(item.getDeviceUuid());
|
|
|
+ resp.setName(item.getName());
|
|
|
+ resp.setIp(item.getIp());
|
|
|
+ resp.setPort(item.getPort());
|
|
|
+ resp.setCommunicationStatus(item.getCommStatus());
|
|
|
+ resp.setOnlineTime(item.getOnlineTime());
|
|
|
+ resp.setOfflineTime(item.getOfflineTime());
|
|
|
+ resp.setUpdateConfigTime(item.getUpdateConfigTime());
|
|
|
+ resp.setUpdateProtocolTime(item.getUpdateProtocolTime());
|
|
|
+ resp.setUpgradeTime(item.getUpgradeTime());
|
|
|
+ resp.setVirtualDevice(item.getVirtualDevice());
|
|
|
+ resp.setRemark(item.getRemark());
|
|
|
+ resp.setUpdatedBy(item.getUpdatedBy());
|
|
|
+ resp.setUpdateTime(item.getUpdateTime());
|
|
|
+ resp.setCreatedBy(item.getCreatedBy());
|
|
|
+ resp.setCreateTime(item.getCreateTime());
|
|
|
+ return resp;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|