|
|
@@ -217,103 +217,112 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
|
|
|
public Integer editAlarmHostDevice(EditAlarmHostDeviceDto req) {
|
|
|
Long deviceId = req.getId();
|
|
|
SysOrg sysOrg = orgService.selectOrgById(req.getOrgId(), SecurityConstants.INNER);
|
|
|
+
|
|
|
if (deviceId == null) {
|
|
|
addAlarmHostDevice(req, sysOrg);
|
|
|
return 1;
|
|
|
}
|
|
|
- updateAddAlarmHostDevice(req, sysOrg);
|
|
|
-
|
|
|
|
|
|
+ updateAddAlarmHostDevice(req, sysOrg);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
private void updateAddAlarmHostDevice(EditAlarmHostDeviceDto req, SysOrg sysOrg) {
|
|
|
- final SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
- final IotDeviceInfo deviceInfo = getById(req.getId());
|
|
|
+ SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
+ IotDeviceInfo deviceInfo = getById(req.getId());
|
|
|
+
|
|
|
deviceInfo.setDeviceName(req.getDeviceName());
|
|
|
deviceInfo.setDeviceModel(req.getModels());
|
|
|
deviceInfo.setEnable(req.getEnable());
|
|
|
deviceInfo.setUpdateTime(new Date());
|
|
|
deviceInfo.setUpdateBy(sysUser.getName());
|
|
|
- deviceInfo.setDeviceModel(req.getModels());
|
|
|
- //扩展信息
|
|
|
+
|
|
|
extendService.updateAlarmHostExtendByDeviceId(deviceInfo.getId(), req);
|
|
|
- //子系统
|
|
|
- final List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList = req.getSubSystemList();
|
|
|
- if (CollUtil.isEmpty(subSystemList)) {
|
|
|
- return;
|
|
|
+
|
|
|
+ List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList = req.getSubSystemList();
|
|
|
+ if (CollUtil.isNotEmpty(subSystemList)) {
|
|
|
+ updateSubsystems(deviceInfo, subSystemList);
|
|
|
+ updateSensors(deviceInfo, req.getInputSensorList());
|
|
|
}
|
|
|
- //修改报警主机下子系统delete=1
|
|
|
- final LambdaQueryWrapper<IotAlarmSubsystem> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateSubsystems(IotDeviceInfo deviceInfo, List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList) {
|
|
|
+ LambdaQueryWrapper<IotAlarmSubsystem> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(IotAlarmSubsystem::getAlarmHostCode, deviceInfo.getDeviceCode());
|
|
|
- final List<IotAlarmSubsystem> selectList = subsystemMapper.selectList(wrapper);
|
|
|
+
|
|
|
+ List<IotAlarmSubsystem> selectList = subsystemMapper.selectList(wrapper);
|
|
|
if (CollUtil.isNotEmpty(selectList)) {
|
|
|
- final List<Long> subSystemIds = selectList.stream().map(IotAlarmSubsystem::getId).collect(Collectors.toList());
|
|
|
+ List<Long> subSystemIds = selectList.stream().map(IotAlarmSubsystem::getId).collect(Collectors.toList());
|
|
|
subsystemMapper.updateDeletedByIds(subSystemIds);
|
|
|
+
|
|
|
+ for (IotAlarmSubsystem subsystem : selectList) {
|
|
|
+ subSystemList.stream()
|
|
|
+ .filter(item -> item.getSubSystemIndex().equals(subsystem.getCode()))
|
|
|
+ .findFirst()
|
|
|
+ .ifPresent(subSystemDto -> {
|
|
|
+ updateSubsystem(subsystem, subSystemDto);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
- //修改子系统下传感器delete=1
|
|
|
- final LambdaQueryWrapper<IotAlarmDefenceArea> sensorWrapper = new LambdaQueryWrapper<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateSubsystem(IotAlarmSubsystem subsystem, EditAlarmHostDeviceDto.SubSystemDto subSystemDto) {
|
|
|
+ subsystem.setDeleted(0);
|
|
|
+ subsystem.setEnable(subSystemDto.getEnable());
|
|
|
+ subsystem.setCode(subSystemDto.getSubSystemIndex());
|
|
|
+ subsystem.setName(subSystemDto.getSubSystemName());
|
|
|
+ subsystem.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getName());
|
|
|
+ subsystem.setUpdateTime(LocalDateTime.now());
|
|
|
+ subsystemMapper.updateById(subsystem);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateSensors(IotDeviceInfo deviceInfo, List<EditAlarmHostDeviceDto.InputSensorDto> sensorList) {
|
|
|
+ LambdaQueryWrapper<IotAlarmDefenceArea> sensorWrapper = new LambdaQueryWrapper<>();
|
|
|
sensorWrapper.eq(IotAlarmDefenceArea::getAlarmHostCode, deviceInfo.getDeviceCode());
|
|
|
- final List<IotAlarmDefenceArea> defenceAreaList = defenceAreaMapper.selectList(sensorWrapper);
|
|
|
+
|
|
|
+ List<IotAlarmDefenceArea> defenceAreaList = defenceAreaMapper.selectList(sensorWrapper);
|
|
|
if (CollUtil.isNotEmpty(defenceAreaList)) {
|
|
|
- final List<Long> defenceAreaIds = defenceAreaList.stream().map(IotAlarmDefenceArea::getId).collect(Collectors.toList());
|
|
|
+ List<Long> defenceAreaIds = defenceAreaList.stream().map(IotAlarmDefenceArea::getId).collect(Collectors.toList());
|
|
|
defenceAreaMapper.updateDeletedByIds(defenceAreaIds);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- if (CollUtil.isNotEmpty(selectList)) {
|
|
|
- for (IotAlarmSubsystem subsystem : selectList) {
|
|
|
- final EditAlarmHostDeviceDto.SubSystemDto subSystemDto = subSystemList.stream().filter(item -> item.getSubSystemIndex().equals(subsystem.getCode())).findFirst().orElseGet(null);
|
|
|
- if (subSystemDto != null) {
|
|
|
- subsystem.setDeleted(0);
|
|
|
- subsystem.setEnable(subSystemDto.getEnable());
|
|
|
- subsystem.setCode(subSystemDto.getSubSystemIndex());
|
|
|
- subsystem.setName(subSystemDto.getSubSystemName());
|
|
|
- subsystem.setUpdateBy(sysUser.getName());
|
|
|
- subsystem.setUpdateTime(LocalDateTime.now());
|
|
|
- subsystemMapper.updateById(subsystem);
|
|
|
- // 传感器
|
|
|
- final List<EditAlarmHostDeviceDto.InputSensorDto> sensorList = req.getInputSensorList();
|
|
|
- if (CollUtil.isEmpty(sensorList)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- final List<IotAlarmDefenceArea> exitAreaList = defenceAreaList.stream().filter(r -> ObjectUtil.equal(r.getSubSystemCode(), subsystem.getCode())).collect(Collectors.toList());
|
|
|
- final List<EditAlarmHostDeviceDto.InputSensorDto> newAreaList = sensorList.stream().filter(r -> ObjectUtil.equal(r.getSubSystemIndex(), subsystem.getCode())).collect(Collectors.toList());
|
|
|
- if (CollUtil.isEmpty(newAreaList)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- for (IotAlarmDefenceArea defenceArea : exitAreaList) {
|
|
|
- final EditAlarmHostDeviceDto.InputSensorDto sensorDto = newAreaList.stream().filter(r -> ObjectUtil.equal(r.getInputSensorIndex(), defenceArea.getDefenceAreaIndex())).findFirst().orElseGet(null);
|
|
|
- if (sensorDto != null) {
|
|
|
- defenceArea.setDefenceAreaName(sensorDto.getInputSensorName());
|
|
|
- defenceArea.setSensorType(sensorDto.getSensorType());
|
|
|
- defenceArea.setDefenceAreaIndex(sensorDto.getInputSensorIndex());
|
|
|
- defenceArea.setEnable(sensorDto.getEnable());
|
|
|
- defenceArea.setUpdateBy(sysUser.getName());
|
|
|
- defenceArea.setModuleAddress(sensorDto.getModuleAddress());
|
|
|
- defenceArea.setDeleted(0);
|
|
|
- defenceAreaMapper.updateById(defenceArea);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ defenceAreaList.forEach(defenceArea -> {
|
|
|
+ sensorList.stream()
|
|
|
+ .filter(sensorDto -> ObjectUtil.equal(sensorDto.getInputSensorIndex(), defenceArea.getDefenceAreaIndex()))
|
|
|
+ .findFirst()
|
|
|
+ .ifPresent(sensorDto -> {
|
|
|
+ updateDefenceArea(defenceArea, sensorDto);
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateDefenceArea(IotAlarmDefenceArea defenceArea, EditAlarmHostDeviceDto.InputSensorDto sensorDto) {
|
|
|
+ defenceArea.setDefenceAreaName(sensorDto.getInputSensorName());
|
|
|
+ defenceArea.setSensorType(sensorDto.getSensorType());
|
|
|
+ defenceArea.setDefenceAreaIndex(sensorDto.getInputSensorIndex());
|
|
|
+ defenceArea.setEnable(sensorDto.getEnable());
|
|
|
+ defenceArea.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getName());
|
|
|
+ defenceArea.setModuleAddress(sensorDto.getModuleAddress());
|
|
|
+ defenceArea.setDeleted(0);
|
|
|
|
|
|
+ defenceAreaMapper.updateById(defenceArea);
|
|
|
}
|
|
|
|
|
|
private void addAlarmHostDevice(EditAlarmHostDeviceDto req, SysOrg sysOrg) {
|
|
|
- final SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
- //主机信息
|
|
|
- final IotDeviceInfo deviceInfo = new IotDeviceInfo();
|
|
|
+ SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
+ IotDeviceInfo deviceInfo = new IotDeviceInfo();
|
|
|
+
|
|
|
deviceInfo.setId(IdWorker.getId());
|
|
|
deviceInfo.setDeviceName(req.getDeviceName());
|
|
|
deviceInfo.setDeviceType(BaseDeviceTypeEnum.AlarmHost.getCode());
|
|
|
deviceInfo.setDeviceProduct(req.getDeviceProduct());
|
|
|
+
|
|
|
if (ObjectUtil.isEmpty(deviceInfo.getDeviceCode())) {
|
|
|
- final JSONObject object = new JSONObject();
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
object.put("deviceProduct", req.getDeviceProduct());
|
|
|
deviceInfo.setDeviceCode(generalDeviceCode(BaseDeviceTypeEnum.AlarmHost, object));
|
|
|
}
|
|
|
+
|
|
|
deviceInfo.setDeviceModel(req.getModels());
|
|
|
deviceInfo.setIotToken(req.getIotCode());
|
|
|
deviceInfo.setOrgId(req.getOrgId());
|
|
|
@@ -325,14 +334,20 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
|
|
|
deviceInfo.setUpdateBy(sysUser.getId().toString());
|
|
|
deviceInfo.setOrgName(sysOrg.getShortName());
|
|
|
deviceInfo.setOrgPath(sysOrg.getPath());
|
|
|
+
|
|
|
save(deviceInfo);
|
|
|
- //扩展信息
|
|
|
+
|
|
|
extendService.updateAlarmHostExtendByDeviceId(deviceInfo.getId(), req);
|
|
|
- //子系统 传感器
|
|
|
- final List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList = req.getSubSystemList();
|
|
|
- if (CollUtil.isEmpty(subSystemList)) {
|
|
|
- return;
|
|
|
+ List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList = req.getSubSystemList();
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(subSystemList)) {
|
|
|
+ createSubsystems(deviceInfo, subSystemList, req.getInputSensorList(),sysOrg);
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createSubsystems(IotDeviceInfo deviceInfo, List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList, List<EditAlarmHostDeviceDto.InputSensorDto> sensorList,SysOrg sysOrg) {
|
|
|
+ SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
|
|
+
|
|
|
for (EditAlarmHostDeviceDto.SubSystemDto systemDto : subSystemList) {
|
|
|
IotAlarmSubsystem subsystem = new IotAlarmSubsystem();
|
|
|
subsystem.setId(IdWorker.getId());
|
|
|
@@ -348,25 +363,23 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
|
|
|
subsystem.setUpdateTime(LocalDateTime.now());
|
|
|
subsystem.setCreateBy(sysUser.getName());
|
|
|
subsystem.setUpdateBy(sysUser.getName());
|
|
|
- subsystem.setIotToken(req.getIotCode());
|
|
|
+ subsystem.setIotToken(deviceInfo.getIotToken());
|
|
|
+
|
|
|
subsystemMapper.insert(subsystem);
|
|
|
- //传感器
|
|
|
- final List<EditAlarmHostDeviceDto.InputSensorDto> sensorList = req.getInputSensorList();
|
|
|
- final List<EditAlarmHostDeviceDto.InputSensorDto> sensorDtoList = sensorList
|
|
|
- .stream()
|
|
|
- .filter(r -> ObjectUtil.equal(r.getSubSystemIndex(), systemDto.getSubSystemIndex()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (CollUtil.isEmpty(sensorDtoList)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- for (EditAlarmHostDeviceDto.InputSensorDto sensorDto : sensorDtoList) {
|
|
|
- final IotAlarmDefenceArea defenceArea = new IotAlarmDefenceArea();
|
|
|
+ createDefenceAreas(sensorList, subsystem, deviceInfo.getDeviceCode(), sysOrg, sysUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createDefenceAreas(List<EditAlarmHostDeviceDto.InputSensorDto> sensorList, IotAlarmSubsystem subsystem, String deviceCode, SysOrg sysOrg, SysUser sysUser) {
|
|
|
+ for (EditAlarmHostDeviceDto.InputSensorDto sensorDto : sensorList) {
|
|
|
+ if (ObjectUtil.equal(sensorDto.getSubSystemIndex(), subsystem.getCode())) {
|
|
|
+ IotAlarmDefenceArea defenceArea = new IotAlarmDefenceArea();
|
|
|
defenceArea.setId(IdWorker.getId());
|
|
|
defenceArea.setOrgId(sysOrg.getId());
|
|
|
defenceArea.setOrgName(sysOrg.getName());
|
|
|
defenceArea.setOrgPath(sysOrg.getPath());
|
|
|
defenceArea.setOrganizationGuid(sysOrg.getCode());
|
|
|
- defenceArea.setAlarmHostCode(deviceInfo.getDeviceCode());
|
|
|
+ defenceArea.setAlarmHostCode(deviceCode);
|
|
|
defenceArea.setSubSystemCode(subsystem.getCode());
|
|
|
defenceArea.setDefenceAreaName(sensorDto.getInputSensorName());
|
|
|
defenceArea.setSensorType(sensorDto.getSensorType());
|
|
|
@@ -377,12 +390,11 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
|
|
|
defenceArea.setUpdateTime(LocalDateTime.now());
|
|
|
defenceArea.setCreateBy(sysUser.getName());
|
|
|
defenceArea.setUpdateBy(sysUser.getName());
|
|
|
- defenceArea.setIotToken(req.getIotCode());
|
|
|
+ defenceArea.setIotToken(subsystem.getIotToken());
|
|
|
defenceArea.setModuleAddress(sensorDto.getModuleAddress());
|
|
|
- defenceAreaMapper.insert(defenceArea);
|
|
|
|
|
|
+ defenceAreaMapper.insert(defenceArea);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|