feat(alarm): 优化报警查询接口并完善显示字段关联填充
- 增加SensorName和DisposeUserName字段到AlarmDisposeCO、AlarmRecordCO及其DO对象 - 重构AlarmDisposeQueryExe、AlarmRecordQueryExe及APP端对应查询执行器逻辑,改用分页查询方法 - 在查询结果中填充传感器名称和处置人姓名,提升数据展示完整性 - 扩展AlarmRecordRepository和Mapper,支持多种分页查询接口 - 传感器与用户数据通过批量ID查询并映射,减少单条查询压力 - 新增DeviceRegion相关字段(外部消防区域名称、负责人姓名、绑定传感器等)及分页查询能力 - 更新DeviceRegionGateway及实现类,支持负责人姓名更新 - 规范Mybatis配置文件,增加更多Mapper文件扫描路径main
parent
7d40840231
commit
79bcee2aa5
|
|
@ -1,5 +1,5 @@
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
mapper-locations: classpath*:mapper/*.xml,classpath*:mapper/**/*Mapper.xml
|
mapper-locations: classpath*:mapper/*.xml,classpath*:mapper/**/*Mapper.xml,classpath*:mybatis/*.xml,classpath*:mybatis/**/*Mapper.xml
|
||||||
type-handlers-package: com.jjb.saas.framework.datascope.handler
|
type-handlers-package: com.jjb.saas.framework.datascope.handler
|
||||||
global-config:
|
global-config:
|
||||||
banner: false
|
banner: false
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,12 @@ public class ManagerExe {
|
||||||
throw new BizException("区域配置不存在");
|
throw new BizException("区域配置不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean res = deviceRegionGateway.updateManager(cmd.getId(), cmd.getManagerId(), cmd.getDepartmentId());
|
Boolean res = deviceRegionGateway.updateManager(
|
||||||
|
cmd.getId(),
|
||||||
|
cmd.getManagerId(),
|
||||||
|
cmd.getManagerName(),
|
||||||
|
cmd.getDepartmentId()
|
||||||
|
);
|
||||||
if (!res) {
|
if (!res) {
|
||||||
throw new BizException("负责人配置失败");
|
throw new BizException("负责人配置失败");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,23 @@ import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zcloud.dto.AlarmDisposePageQry;
|
import com.zcloud.dto.AlarmDisposePageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
import com.zcloud.persistence.dataobject.UserDO;
|
||||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||||
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
|
import com.zcloud.persistence.repository.UserRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmDisposeQueryExe - 报警处置执行器
|
* AlarmDisposeQueryExe - 报警处置执行器
|
||||||
|
|
@ -25,40 +35,13 @@ import java.util.List;
|
||||||
public class AlarmDisposeQueryExe {
|
public class AlarmDisposeQueryExe {
|
||||||
|
|
||||||
private final AlarmRecordRepository alarmRecordRepository;
|
private final AlarmRecordRepository alarmRecordRepository;
|
||||||
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
public PageResponse<AlarmDisposeCO> execute(AlarmDisposePageQry qry) {
|
public PageResponse<AlarmDisposeCO> execute(AlarmDisposePageQry qry) {
|
||||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.disposeListPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), AlarmRecordDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getAlarmNo()), AlarmRecordDO::getAlarmNo, qry.getAlarmNo())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmSource()), AlarmRecordDO::getAlarmSource, qry.getAlarmSource())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getSensorCode()), AlarmRecordDO::getSensorCode, qry.getSensorCode())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getFireRegionId()), AlarmRecordDO::getFireRegionId, qry.getFireRegionId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getDepartmentId()), AlarmRecordDO::getDepartmentId, qry.getDepartmentId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getDisposeUserId()), AlarmRecordDO::getManagerId, qry.getDisposeUserId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmLevel()), AlarmRecordDO::getAlarmLevel, qry.getAlarmLevel())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmType()), AlarmRecordDO::getAlarmType, qry.getAlarmType())
|
|
||||||
// 查询待研判(10)或待处置(20)的报警
|
|
||||||
.in(AlarmRecordDO::getStatus, 10, 20)
|
|
||||||
.eq(AlarmRecordDO::getActiveFlag, 1)
|
|
||||||
.orderByDesc(AlarmRecordDO::getAlarmTime);
|
|
||||||
|
|
||||||
// 处理报警时间范围
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeStart())) {
|
|
||||||
wrapper.ge(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeStart());
|
|
||||||
}
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeEnd())) {
|
|
||||||
wrapper.le(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeEnd());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<AlarmRecordDO> results = alarmRecordRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(results, AlarmDisposeCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(alarmDisposeCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<AlarmDisposeCO> getById(Long id) {
|
public SingleResponse<AlarmDisposeCO> getById(Long id) {
|
||||||
|
|
@ -69,6 +52,44 @@ public class AlarmDisposeQueryExe {
|
||||||
|
|
||||||
AlarmDisposeCO co = new AlarmDisposeCO();
|
AlarmDisposeCO co = new AlarmDisposeCO();
|
||||||
BeanUtils.copyProperties(d, co);
|
BeanUtils.copyProperties(d, co);
|
||||||
|
fillDisplayFields(Collections.singletonList(co));
|
||||||
return SingleResponse.of(co);
|
return SingleResponse.of(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(List<AlarmDisposeCO> alarmDisposeCOs) {
|
||||||
|
if (alarmDisposeCOs == null || alarmDisposeCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> sensorIds = alarmDisposeCOs.stream()
|
||||||
|
.map(AlarmDisposeCO::getSensorId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
Set<Long> disposeUserIds = alarmDisposeCOs.stream()
|
||||||
|
.map(AlarmDisposeCO::getDisposeUserId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
|
||||||
|
Map<Long, String> sensorNameMap = Collections.emptyMap();
|
||||||
|
if (!sensorIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SensorDeviceDO> sensorWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sensorWrapper.in(SensorDeviceDO::getId, sensorIds)
|
||||||
|
.eq(SensorDeviceDO::getDeleteEnum, "FALSE");
|
||||||
|
sensorNameMap = sensorDeviceRepository.list(sensorWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(SensorDeviceDO::getId, SensorDeviceDO::getSensorName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, String> userNameMap = Collections.emptyMap();
|
||||||
|
if (!disposeUserIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<UserDO> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(UserDO::getId, disposeUserIds);
|
||||||
|
userNameMap = userRepository.list(userWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(UserDO::getId, UserDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) {
|
||||||
|
alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorId()));
|
||||||
|
alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,13 +7,23 @@ import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zcloud.dto.AlarmRecordPageQry;
|
import com.zcloud.dto.AlarmRecordPageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
import com.zcloud.persistence.dataobject.UserDO;
|
||||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||||
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
|
import com.zcloud.persistence.repository.UserRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmRecordQueryExe - 报警记录执行器
|
* AlarmRecordQueryExe - 报警记录执行器
|
||||||
|
|
@ -25,35 +35,13 @@ import java.util.List;
|
||||||
public class AlarmRecordQueryExe {
|
public class AlarmRecordQueryExe {
|
||||||
|
|
||||||
private final AlarmRecordRepository alarmRecordRepository;
|
private final AlarmRecordRepository alarmRecordRepository;
|
||||||
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
public PageResponse<AlarmRecordCO> execute(AlarmRecordPageQry qry) {
|
public PageResponse<AlarmRecordCO> execute(AlarmRecordPageQry qry) {
|
||||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), AlarmRecordDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getAlarmNo()), AlarmRecordDO::getAlarmNo, qry.getAlarmNo())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmSource()), AlarmRecordDO::getAlarmSource, qry.getAlarmSource())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getSensorCode()), AlarmRecordDO::getSensorCode, qry.getSensorCode())
|
|
||||||
// 支持按状态筛选(不指定则查询所有状态)
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getStatus()), AlarmRecordDO::getStatus, qry.getStatus())
|
|
||||||
.eq(AlarmRecordDO::getDeleteEnum, "FALSE")
|
|
||||||
.orderByDesc(AlarmRecordDO::getAlarmTime);
|
|
||||||
|
|
||||||
// 处理报警时间范围
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeStart())) {
|
|
||||||
wrapper.ge(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeStart());
|
|
||||||
}
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeEnd())) {
|
|
||||||
wrapper.le(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeEnd());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<AlarmRecordDO> results = alarmRecordRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(results, AlarmRecordCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(alarmRecordCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
||||||
|
|
@ -64,6 +52,44 @@ public class AlarmRecordQueryExe {
|
||||||
|
|
||||||
AlarmRecordCO co = new AlarmRecordCO();
|
AlarmRecordCO co = new AlarmRecordCO();
|
||||||
BeanUtils.copyProperties(d, co);
|
BeanUtils.copyProperties(d, co);
|
||||||
|
fillDisplayFields(Collections.singletonList(co));
|
||||||
return SingleResponse.of(co);
|
return SingleResponse.of(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(List<AlarmRecordCO> alarmRecordCOs) {
|
||||||
|
if (alarmRecordCOs == null || alarmRecordCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> sensorIds = alarmRecordCOs.stream()
|
||||||
|
.map(AlarmRecordCO::getSensorId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
Set<Long> disposeUserIds = alarmRecordCOs.stream()
|
||||||
|
.map(AlarmRecordCO::getDisposeUserId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
|
||||||
|
Map<Long, String> sensorNameMap = Collections.emptyMap();
|
||||||
|
if (!sensorIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SensorDeviceDO> sensorWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sensorWrapper.in(SensorDeviceDO::getId, sensorIds)
|
||||||
|
.eq(SensorDeviceDO::getDeleteEnum, "FALSE");
|
||||||
|
sensorNameMap = sensorDeviceRepository.list(sensorWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(SensorDeviceDO::getId, SensorDeviceDO::getSensorName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, String> userNameMap = Collections.emptyMap();
|
||||||
|
if (!disposeUserIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<UserDO> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(UserDO::getId, disposeUserIds);
|
||||||
|
userNameMap = userRepository.list(userWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(UserDO::getId, UserDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) {
|
||||||
|
alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorId()));
|
||||||
|
alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,13 +7,23 @@ import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
import com.zcloud.persistence.dataobject.UserDO;
|
||||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||||
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
|
import com.zcloud.persistence.repository.UserRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AppAlarmDisposeQueryExe - APP报警处置执行器
|
* AppAlarmDisposeQueryExe - APP报警处置执行器
|
||||||
|
|
@ -25,43 +35,16 @@ import java.util.List;
|
||||||
public class AppAlarmDisposeQueryExe {
|
public class AppAlarmDisposeQueryExe {
|
||||||
|
|
||||||
private final AlarmRecordRepository alarmRecordRepository;
|
private final AlarmRecordRepository alarmRecordRepository;
|
||||||
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手机端待处置列表(按当前用户过滤)
|
* 手机端待处置列表(按当前用户过滤)
|
||||||
*/
|
*/
|
||||||
public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) {
|
public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) {
|
||||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), AlarmRecordDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getAlarmNo()), AlarmRecordDO::getAlarmNo, qry.getAlarmNo())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmSource()), AlarmRecordDO::getAlarmSource, qry.getAlarmSource())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getSensorCode()), AlarmRecordDO::getSensorCode, qry.getSensorCode())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getFireRegionId()), AlarmRecordDO::getFireRegionId, qry.getFireRegionId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmLevel()), AlarmRecordDO::getAlarmLevel, qry.getAlarmLevel())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmType()), AlarmRecordDO::getAlarmType, qry.getAlarmType())
|
|
||||||
// 关键:按当前用户过滤(managerId = 当前用户ID)
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getCurrentUserId()), AlarmRecordDO::getManagerId, qry.getCurrentUserId())
|
|
||||||
// 只查询待处置(20)状态的报警
|
|
||||||
.eq(AlarmRecordDO::getStatus, 20)
|
|
||||||
.eq(AlarmRecordDO::getActiveFlag, 1)
|
|
||||||
.orderByDesc(AlarmRecordDO::getAlarmTime);
|
|
||||||
|
|
||||||
// 处理报警时间范围
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeStart())) {
|
|
||||||
wrapper.ge(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeStart());
|
|
||||||
}
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeEnd())) {
|
|
||||||
wrapper.le(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeEnd());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<AlarmRecordDO> results = alarmRecordRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(results, AlarmDisposeCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(alarmDisposeCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -75,6 +58,44 @@ public class AppAlarmDisposeQueryExe {
|
||||||
|
|
||||||
AlarmDisposeCO co = new AlarmDisposeCO();
|
AlarmDisposeCO co = new AlarmDisposeCO();
|
||||||
BeanUtils.copyProperties(d, co);
|
BeanUtils.copyProperties(d, co);
|
||||||
|
fillDisplayFields(Collections.singletonList(co));
|
||||||
return SingleResponse.of(co);
|
return SingleResponse.of(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(List<AlarmDisposeCO> alarmDisposeCOs) {
|
||||||
|
if (alarmDisposeCOs == null || alarmDisposeCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> sensorIds = alarmDisposeCOs.stream()
|
||||||
|
.map(AlarmDisposeCO::getSensorId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
Set<Long> disposeUserIds = alarmDisposeCOs.stream()
|
||||||
|
.map(AlarmDisposeCO::getDisposeUserId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
|
||||||
|
Map<Long, String> sensorNameMap = Collections.emptyMap();
|
||||||
|
if (!sensorIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SensorDeviceDO> sensorWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sensorWrapper.in(SensorDeviceDO::getId, sensorIds)
|
||||||
|
.eq(SensorDeviceDO::getDeleteEnum, "FALSE");
|
||||||
|
sensorNameMap = sensorDeviceRepository.list(sensorWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(SensorDeviceDO::getId, SensorDeviceDO::getSensorName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, String> userNameMap = Collections.emptyMap();
|
||||||
|
if (!disposeUserIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<UserDO> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(UserDO::getId, disposeUserIds);
|
||||||
|
userNameMap = userRepository.list(userWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(UserDO::getId, UserDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) {
|
||||||
|
alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorId()));
|
||||||
|
alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,13 +8,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.dto.AppAlarmRecordPageQry;
|
import com.zcloud.dto.AppAlarmRecordPageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
import com.zcloud.persistence.dataobject.UserDO;
|
||||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||||
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
|
import com.zcloud.persistence.repository.UserRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AppAlarmRecordQueryExe - APP报警记录执行器
|
* AppAlarmRecordQueryExe - APP报警记录执行器
|
||||||
|
|
@ -26,33 +36,15 @@ import java.util.List;
|
||||||
public class AppAlarmRecordQueryExe {
|
public class AppAlarmRecordQueryExe {
|
||||||
|
|
||||||
private final AlarmRecordRepository alarmRecordRepository;
|
private final AlarmRecordRepository alarmRecordRepository;
|
||||||
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
public PageResponse<AlarmRecordCO> execute(AppAlarmRecordPageQry qry) {
|
public PageResponse<AlarmRecordCO> execute(AppAlarmRecordPageQry qry) {
|
||||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
params.put("currentUserId", AuthContext.getUserId());
|
||||||
// 按当前用户过滤(处置人ID)
|
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appListPage(params);
|
||||||
Long userId = AuthContext.getUserId();
|
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
|
||||||
wrapper.eq(userId != null, AlarmRecordDO::getDisposeUserId, userId);
|
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
// 支持按状态筛选(30已消警/40误报)
|
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getStatus()), AlarmRecordDO::getStatus, qry.getStatus())
|
|
||||||
.eq(AlarmRecordDO::getDeleteEnum, "FALSE")
|
|
||||||
.orderByDesc(AlarmRecordDO::getAlarmTime);
|
|
||||||
|
|
||||||
// 处理报警时间范围
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeStart())) {
|
|
||||||
wrapper.ge(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeStart());
|
|
||||||
}
|
|
||||||
if (ObjectUtil.isNotEmpty(qry.getAlarmTimeEnd())) {
|
|
||||||
wrapper.le(AlarmRecordDO::getAlarmTime, qry.getAlarmTimeEnd());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<AlarmRecordDO> results = alarmRecordRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(results, AlarmRecordCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(alarmRecordCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
||||||
|
|
@ -69,6 +61,44 @@ public class AppAlarmRecordQueryExe {
|
||||||
|
|
||||||
AlarmRecordCO co = new AlarmRecordCO();
|
AlarmRecordCO co = new AlarmRecordCO();
|
||||||
BeanUtils.copyProperties(d, co);
|
BeanUtils.copyProperties(d, co);
|
||||||
|
fillDisplayFields(Collections.singletonList(co));
|
||||||
return SingleResponse.of(co);
|
return SingleResponse.of(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(List<AlarmRecordCO> alarmRecordCOs) {
|
||||||
|
if (alarmRecordCOs == null || alarmRecordCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> sensorIds = alarmRecordCOs.stream()
|
||||||
|
.map(AlarmRecordCO::getSensorId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
Set<Long> disposeUserIds = alarmRecordCOs.stream()
|
||||||
|
.map(AlarmRecordCO::getDisposeUserId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toCollection(HashSet::new));
|
||||||
|
|
||||||
|
Map<Long, String> sensorNameMap = Collections.emptyMap();
|
||||||
|
if (!sensorIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SensorDeviceDO> sensorWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sensorWrapper.in(SensorDeviceDO::getId, sensorIds)
|
||||||
|
.eq(SensorDeviceDO::getDeleteEnum, "FALSE");
|
||||||
|
sensorNameMap = sensorDeviceRepository.list(sensorWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(SensorDeviceDO::getId, SensorDeviceDO::getSensorName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, String> userNameMap = Collections.emptyMap();
|
||||||
|
if (!disposeUserIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<UserDO> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(UserDO::getId, disposeUserIds);
|
||||||
|
userNameMap = userRepository.list(userWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(UserDO::getId, UserDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) {
|
||||||
|
alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorId()));
|
||||||
|
alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,13 +8,27 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zcloud.dto.DeviceRegionPageQry;
|
import com.zcloud.dto.DeviceRegionPageQry;
|
||||||
import com.zcloud.dto.clientobject.DeviceRegionCO;
|
import com.zcloud.dto.clientobject.DeviceRegionCO;
|
||||||
import com.zcloud.dto.clientobject.FireRegionCO;
|
import com.zcloud.dto.clientobject.FireRegionCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
|
import com.zcloud.persistence.dataobject.DepartmentDO;
|
||||||
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||||
|
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
import com.zcloud.persistence.dataobject.UserDO;
|
||||||
|
import com.zcloud.persistence.repository.DepartmentRepository;
|
||||||
import com.zcloud.persistence.repository.DeviceRegionRepository;
|
import com.zcloud.persistence.repository.DeviceRegionRepository;
|
||||||
|
import com.zcloud.persistence.repository.RegionSensorRelRepository;
|
||||||
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
|
import com.zcloud.persistence.repository.UserRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeviceRegionQueryExe - 设备区域执行器
|
* DeviceRegionQueryExe - 设备区域执行器
|
||||||
|
|
@ -26,26 +40,15 @@ import java.util.List;
|
||||||
public class DeviceRegionQueryExe {
|
public class DeviceRegionQueryExe {
|
||||||
|
|
||||||
private final DeviceRegionRepository deviceRegionRepository;
|
private final DeviceRegionRepository deviceRegionRepository;
|
||||||
|
private final RegionSensorRelRepository regionSensorRelRepository;
|
||||||
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
private final DepartmentRepository departmentRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
public PageResponse<DeviceRegionCO> execute(DeviceRegionPageQry qry) {
|
public PageResponse<DeviceRegionCO> execute(DeviceRegionPageQry qry) {
|
||||||
LambdaQueryWrapper<DeviceRegionDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<DeviceRegionDO> pageResponse = deviceRegionRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), DeviceRegionDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), DeviceRegionDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getFireRegionCode()), DeviceRegionDO::getFireRegionCode, qry.getFireRegionCode())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getDepartmentId()), DeviceRegionDO::getDepartmentId, qry.getDepartmentId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getManagerId()), DeviceRegionDO::getManagerId, qry.getManagerId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getStatus()), DeviceRegionDO::getStatus, qry.getStatus())
|
|
||||||
.eq(DeviceRegionDO::getDeleteEnum, "FALSE")
|
|
||||||
.orderByDesc(DeviceRegionDO::getCreateTime);
|
|
||||||
|
|
||||||
List<DeviceRegionDO> results = deviceRegionRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(results, DeviceRegionCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(deviceRegionCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<DeviceRegionCO> getById(Long id) {
|
public SingleResponse<DeviceRegionCO> getById(Long id) {
|
||||||
|
|
@ -56,6 +59,8 @@ public class DeviceRegionQueryExe {
|
||||||
|
|
||||||
DeviceRegionCO co = new DeviceRegionCO();
|
DeviceRegionCO co = new DeviceRegionCO();
|
||||||
BeanUtils.copyProperties(d, co);
|
BeanUtils.copyProperties(d, co);
|
||||||
|
fillBindSensorInfo(Collections.singletonList(co), true);
|
||||||
|
fillDisplayFields(Collections.singletonList(co));
|
||||||
return SingleResponse.of(co);
|
return SingleResponse.of(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,10 +72,99 @@ public class DeviceRegionQueryExe {
|
||||||
.orderByDesc(DeviceRegionDO::getCreateTime);
|
.orderByDesc(DeviceRegionDO::getCreateTime);
|
||||||
|
|
||||||
List<DeviceRegionDO> results = deviceRegionRepository.list(wrapper);
|
List<DeviceRegionDO> results = deviceRegionRepository.list(wrapper);
|
||||||
|
|
||||||
// Convert to FireRegionCO
|
|
||||||
List<FireRegionCO> fireRegionCOs = BeanUtil.copyToList(results, FireRegionCO.class);
|
List<FireRegionCO> fireRegionCOs = BeanUtil.copyToList(results, FireRegionCO.class);
|
||||||
|
|
||||||
return SingleResponse.of(fireRegionCOs.isEmpty() ? null : fireRegionCOs.get(0));
|
return SingleResponse.of(fireRegionCOs.isEmpty() ? null : fireRegionCOs.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillBindSensorInfo(List<DeviceRegionCO> deviceRegionCOs, boolean includeBoundSensors) {
|
||||||
|
if (deviceRegionCOs == null || deviceRegionCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> regionIds = deviceRegionCOs.stream()
|
||||||
|
.map(DeviceRegionCO::getId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
if (regionIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<RegionSensorRelDO> relWrapper = new LambdaQueryWrapper<>();
|
||||||
|
relWrapper.in(RegionSensorRelDO::getRegionConfigId, regionIds)
|
||||||
|
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
|
||||||
|
List<RegionSensorRelDO> relList = regionSensorRelRepository.list(relWrapper);
|
||||||
|
|
||||||
|
Map<Long, List<RegionSensorRelDO>> relMap = relList.stream()
|
||||||
|
.collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId));
|
||||||
|
|
||||||
|
Map<Long, SensorDeviceCO> sensorMap = Collections.emptyMap();
|
||||||
|
if (includeBoundSensors && !relList.isEmpty()) {
|
||||||
|
Set<Long> sensorIds = relList.stream()
|
||||||
|
.map(RegionSensorRelDO::getSensorId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
if (!sensorIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SensorDeviceDO> sensorWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sensorWrapper.in(SensorDeviceDO::getId, sensorIds)
|
||||||
|
.eq(SensorDeviceDO::getDeleteEnum, "FALSE");
|
||||||
|
sensorMap = sensorDeviceRepository.list(sensorWrapper).stream()
|
||||||
|
.map(sensor -> BeanUtil.copyProperties(sensor, SensorDeviceCO.class))
|
||||||
|
.collect(Collectors.toMap(SensorDeviceCO::getId, sensor -> sensor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (DeviceRegionCO deviceRegionCO : deviceRegionCOs) {
|
||||||
|
List<RegionSensorRelDO> currentRelList = relMap.getOrDefault(deviceRegionCO.getId(), Collections.emptyList());
|
||||||
|
deviceRegionCO.setBindSensorCount(currentRelList.size());
|
||||||
|
if (!includeBoundSensors) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SensorDeviceCO> boundSensors = currentRelList.stream()
|
||||||
|
.map(RegionSensorRelDO::getSensorId)
|
||||||
|
.map(sensorMap::get)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
deviceRegionCO.setBoundSensors(boundSensors);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(List<DeviceRegionCO> deviceRegionCOs) {
|
||||||
|
if (deviceRegionCOs == null || deviceRegionCOs.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Long> departmentIds = deviceRegionCOs.stream()
|
||||||
|
.map(DeviceRegionCO::getDepartmentId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
Set<Long> managerIds = deviceRegionCOs.stream()
|
||||||
|
.map(DeviceRegionCO::getManagerId)
|
||||||
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
Map<Long, String> departmentNameMap = Collections.emptyMap();
|
||||||
|
if (!departmentIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<DepartmentDO> departmentWrapper = new LambdaQueryWrapper<>();
|
||||||
|
departmentWrapper.in(DepartmentDO::getId, departmentIds);
|
||||||
|
departmentNameMap = departmentRepository.list(departmentWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(DepartmentDO::getId, DepartmentDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, String> managerNameMap = Collections.emptyMap();
|
||||||
|
if (!managerIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<UserDO> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(UserDO::getId, managerIds);
|
||||||
|
managerNameMap = userRepository.list(userWrapper).stream()
|
||||||
|
.collect(Collectors.toMap(UserDO::getId, UserDO::getName, (left, right) -> left));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (DeviceRegionCO deviceRegionCO : deviceRegionCOs) {
|
||||||
|
deviceRegionCO.setDepartmentName(departmentNameMap.get(deviceRegionCO.getDepartmentId()));
|
||||||
|
if (ObjectUtil.isEmpty(deviceRegionCO.getManagerName())) {
|
||||||
|
deviceRegionCO.setManagerName(managerNameMap.get(deviceRegionCO.getManagerId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
package com.zcloud.command.query;
|
package com.zcloud.command.query;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.zcloud.dto.SensorDevicePageQry;
|
import com.zcloud.dto.SensorDevicePageQry;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
@ -27,28 +26,9 @@ public class SensorDeviceQueryExe {
|
||||||
private final SensorDeviceRepository sensorDeviceRepository;
|
private final SensorDeviceRepository sensorDeviceRepository;
|
||||||
|
|
||||||
public PageResponse<SensorDeviceCO> execute(SensorDevicePageQry qry) {
|
public PageResponse<SensorDeviceCO> execute(SensorDevicePageQry qry) {
|
||||||
LambdaQueryWrapper<SensorDeviceDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<SensorDeviceDO> pageResponse = sensorDeviceRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<SensorDeviceCO> sensorDeviceCOs = BeanUtil.copyToList(pageResponse.getData(), SensorDeviceCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), SensorDeviceDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(sensorDeviceCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), SensorDeviceDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getSensorCode()), SensorDeviceDO::getSensorCode, qry.getSensorCode())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getSensorName()), SensorDeviceDO::getSensorName, qry.getSensorName())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getSensorTypeId()), SensorDeviceDO::getSensorTypeId, qry.getSensorTypeId())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getSensorAttr()), SensorDeviceDO::getSensorAttr, qry.getSensorAttr())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getSensorStatus()), SensorDeviceDO::getSensorStatus, qry.getSensorStatus())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getAlarmSwitch()), SensorDeviceDO::getAlarmSwitch, qry.getAlarmSwitch())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getThresholdFlag()), SensorDeviceDO::getThresholdFlag, qry.getThresholdFlag())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getInstallPosition()), SensorDeviceDO::getInstallPosition, qry.getInstallPosition())
|
|
||||||
.eq(SensorDeviceDO::getDeleteEnum, "FALSE")
|
|
||||||
.orderByDesc(SensorDeviceDO::getCreateTime);
|
|
||||||
|
|
||||||
List<SensorDeviceDO> results = sensorDeviceRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<SensorDeviceCO> sensorDeviceCOs = BeanUtil.copyToList(results, SensorDeviceCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(sensorDeviceCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<SensorDeviceCO> getById(Long id) {
|
public SingleResponse<SensorDeviceCO> getById(Long id) {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
package com.zcloud.command.query;
|
package com.zcloud.command.query;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.zcloud.dto.SensorTypePageQry;
|
import com.zcloud.dto.SensorTypePageQry;
|
||||||
import com.zcloud.dto.clientobject.SensorTypeCO;
|
import com.zcloud.dto.clientobject.SensorTypeCO;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||||
import com.zcloud.persistence.repository.SensorTypeRepository;
|
import com.zcloud.persistence.repository.SensorTypeRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
@ -27,24 +26,9 @@ public class SensorTypeQueryExe {
|
||||||
private final SensorTypeRepository sensorTypeRepository;
|
private final SensorTypeRepository sensorTypeRepository;
|
||||||
|
|
||||||
public PageResponse<SensorTypeCO> execute(SensorTypePageQry qry) {
|
public PageResponse<SensorTypeCO> execute(SensorTypePageQry qry) {
|
||||||
LambdaQueryWrapper<SensorTypeDO> wrapper = new LambdaQueryWrapper<>();
|
PageResponse<SensorTypeDO> pageResponse = sensorTypeRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||||
|
List<SensorTypeCO> sensorTypeCOs = BeanUtil.copyToList(pageResponse.getData(), SensorTypeCO.class);
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), SensorTypeDO::getTenantId, qry.getTenantId())
|
return PageResponse.of(sensorTypeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getOrgId()), SensorTypeDO::getOrgId, qry.getOrgId())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getTypeCode()), SensorTypeDO::getTypeCode, qry.getTypeCode())
|
|
||||||
.like(ObjectUtil.isNotEmpty(qry.getTypeName()), SensorTypeDO::getTypeName, qry.getTypeName())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getSensorAttr()), SensorTypeDO::getSensorAttr, qry.getSensorAttr())
|
|
||||||
.eq(ObjectUtil.isNotEmpty(qry.getStatus()), SensorTypeDO::getStatus, qry.getStatus())
|
|
||||||
.eq(SensorTypeDO::getDeleteEnum, "FALSE")
|
|
||||||
.orderByDesc(SensorTypeDO::getCreateTime);
|
|
||||||
|
|
||||||
List<SensorTypeDO> results = sensorTypeRepository.list(wrapper);
|
|
||||||
int total = results.size();
|
|
||||||
|
|
||||||
// Convert to CO
|
|
||||||
List<SensorTypeCO> sensorTypeCOs = BeanUtil.copyToList(results, SensorTypeCO.class);
|
|
||||||
|
|
||||||
return PageResponse.of(sensorTypeCOs, total, qry.getPageSize(), qry.getPageIndex());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SingleResponse<SensorTypeCO> getById(Long id) {
|
public SingleResponse<SensorTypeCO> getById(Long id) {
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ public class DeviceRegionAddCmd extends Command {
|
||||||
@ApiModelProperty(value = "外部消防区域主键", name = "fireRegionId", required = true)
|
@ApiModelProperty(value = "外部消防区域主键", name = "fireRegionId", required = true)
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "外部消防区域名称", name = "fireRegionName")
|
||||||
|
private String fireRegionName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "外部消防区域编码", name = "fireRegionCode")
|
@ApiModelProperty(value = "外部消防区域编码", name = "fireRegionCode")
|
||||||
private String fireRegionCode;
|
private String fireRegionCode;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ public class ManagerCmd extends Command {
|
||||||
@ApiModelProperty(value = "负责人ID", name = "managerId", required = true)
|
@ApiModelProperty(value = "负责人ID", name = "managerId", required = true)
|
||||||
private Long managerId;
|
private Long managerId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "负责人姓名", name = "managerName")
|
||||||
|
private String managerName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "负责部门ID", name = "departmentId")
|
@ApiModelProperty(value = "负责部门ID", name = "departmentId")
|
||||||
private Long departmentId;
|
private Long departmentId;
|
||||||
}
|
}
|
||||||
|
|
@ -37,6 +37,9 @@ public class AlarmDisposeCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "传感器编码")
|
@ApiModelProperty(value = "传感器编码")
|
||||||
private String sensorCode;
|
private String sensorCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "传感器名称")
|
||||||
|
private String sensorName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "消防区域ID")
|
@ApiModelProperty(value = "消防区域ID")
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
|
@ -82,6 +85,9 @@ public class AlarmDisposeCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "处置人ID")
|
@ApiModelProperty(value = "处置人ID")
|
||||||
private Long disposeUserId;
|
private Long disposeUserId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "处置人姓名")
|
||||||
|
private String disposeUserName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "当前处置结果快照")
|
@ApiModelProperty(value = "当前处置结果快照")
|
||||||
private String disposeResult;
|
private String disposeResult;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ public class AlarmRecordCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "传感器编码")
|
@ApiModelProperty(value = "传感器编码")
|
||||||
private String sensorCode;
|
private String sensorCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "传感器名称")
|
||||||
|
private String sensorName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "消防区域ID")
|
@ApiModelProperty(value = "消防区域ID")
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
|
@ -82,6 +85,9 @@ public class AlarmRecordCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "处置人ID")
|
@ApiModelProperty(value = "处置人ID")
|
||||||
private Long disposeUserId;
|
private Long disposeUserId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "处置人姓名")
|
||||||
|
private String disposeUserName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "当前处置结果快照")
|
@ApiModelProperty(value = "当前处置结果快照")
|
||||||
private String disposeResult;
|
private String disposeResult;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeviceRegionCO - 设备区域客户端对象
|
* DeviceRegionCO - 设备区域客户端对象
|
||||||
|
|
@ -24,15 +25,30 @@ public class DeviceRegionCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "外部消防区域主键")
|
@ApiModelProperty(value = "外部消防区域主键")
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "外部消防区域名称")
|
||||||
|
private String fireRegionName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "外部消防区域编码")
|
@ApiModelProperty(value = "外部消防区域编码")
|
||||||
private String fireRegionCode;
|
private String fireRegionCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "负责部门ID")
|
@ApiModelProperty(value = "负责部门ID")
|
||||||
private Long departmentId;
|
private Long departmentId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "负责部门名称")
|
||||||
|
private String departmentName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "负责人ID")
|
@ApiModelProperty(value = "负责人ID")
|
||||||
private Long managerId;
|
private Long managerId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "负责人姓名")
|
||||||
|
private String managerName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "已绑定传感器数量")
|
||||||
|
private Integer bindSensorCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "已绑定传感器列表")
|
||||||
|
private List<SensorDeviceCO> boundSensors;
|
||||||
|
|
||||||
@ApiModelProperty(value = "状态 1启用0停用")
|
@ApiModelProperty(value = "状态 1启用0停用")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ public class SensorDeviceCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "传感器类型主键ID")
|
@ApiModelProperty(value = "传感器类型主键ID")
|
||||||
private Long sensorTypeId;
|
private Long sensorTypeId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "传感器类型名称")
|
||||||
|
private String sensorTypeName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
||||||
private String sensorAttr;
|
private String sensorAttr;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,5 @@ public interface DeviceRegionGateway {
|
||||||
/**
|
/**
|
||||||
* 更新负责人
|
* 更新负责人
|
||||||
*/
|
*/
|
||||||
Boolean updateManager(Long id, Long managerId, Long departmentId);
|
Boolean updateManager(Long id, Long managerId, String managerName, Long departmentId);
|
||||||
}
|
}
|
||||||
|
|
@ -23,6 +23,11 @@ public class DeviceRegionE extends BaseE {
|
||||||
*/
|
*/
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外部消防区域名称
|
||||||
|
*/
|
||||||
|
private String fireRegionName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 外部消防区域编码
|
* 外部消防区域编码
|
||||||
*/
|
*/
|
||||||
|
|
@ -38,6 +43,11 @@ public class DeviceRegionE extends BaseE {
|
||||||
*/
|
*/
|
||||||
private Long managerId;
|
private Long managerId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 负责人姓名
|
||||||
|
*/
|
||||||
|
private String managerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态 1启用0停用
|
* 状态 1启用0停用
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -85,10 +85,11 @@ public class DeviceRegionGatewayImpl implements DeviceRegionGateway {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateManager(Long id, Long managerId, Long departmentId) {
|
public Boolean updateManager(Long id, Long managerId, String managerName, Long departmentId) {
|
||||||
DeviceRegionDO d = new DeviceRegionDO();
|
DeviceRegionDO d = new DeviceRegionDO();
|
||||||
d.setId(id);
|
d.setId(id);
|
||||||
d.setManagerId(managerId);
|
d.setManagerId(managerId);
|
||||||
|
d.setManagerName(managerName);
|
||||||
d.setDepartmentId(departmentId);
|
d.setDepartmentId(departmentId);
|
||||||
deviceRegionRepository.updateById(d);
|
deviceRegionRepository.updateById(d);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.persistence.dataobject;
|
package com.zcloud.persistence.dataobject;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
|
@ -37,6 +38,10 @@ public class AlarmRecordDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "传感器编码")
|
@ApiModelProperty(value = "传感器编码")
|
||||||
private String sensorCode;
|
private String sensorCode;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "传感器名称")
|
||||||
|
private String sensorName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "消防区域ID")
|
@ApiModelProperty(value = "消防区域ID")
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
|
@ -82,6 +87,10 @@ public class AlarmRecordDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "处置人ID")
|
@ApiModelProperty(value = "处置人ID")
|
||||||
private Long disposeUserId;
|
private Long disposeUserId;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "处置人姓名")
|
||||||
|
private String disposeUserName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "当前处置结果快照")
|
@ApiModelProperty(value = "当前处置结果快照")
|
||||||
private String disposeResult;
|
private String disposeResult;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.persistence.dataobject;
|
package com.zcloud.persistence.dataobject;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
|
@ -23,18 +24,32 @@ public class DeviceRegionDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "外部消防区域主键")
|
@ApiModelProperty(value = "外部消防区域主键")
|
||||||
private Long fireRegionId;
|
private Long fireRegionId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "外部消防区域名称")
|
||||||
|
private String fireRegionName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "外部消防区域编码")
|
@ApiModelProperty(value = "外部消防区域编码")
|
||||||
private String fireRegionCode;
|
private String fireRegionCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "负责部门ID")
|
@ApiModelProperty(value = "负责部门ID")
|
||||||
private Long departmentId;
|
private Long departmentId;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "负责部门名称")
|
||||||
|
private String departmentName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "负责人ID")
|
@ApiModelProperty(value = "负责人ID")
|
||||||
private Long managerId;
|
private Long managerId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "负责人姓名")
|
||||||
|
private String managerName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "状态 1启用0停用")
|
@ApiModelProperty(value = "状态 1启用0停用")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "已绑定传感器数量")
|
||||||
|
private Integer bindSensorCount;
|
||||||
|
|
||||||
@ApiModelProperty(value = "备注")
|
@ApiModelProperty(value = "备注")
|
||||||
private String remarks;
|
private String remarks;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.persistence.dataobject;
|
package com.zcloud.persistence.dataobject;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
|
@ -29,6 +30,10 @@ public class SensorDeviceDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "传感器类型主键ID")
|
@ApiModelProperty(value = "传感器类型主键ID")
|
||||||
private Long sensorTypeId;
|
private Long sensorTypeId;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "传感器类型名称")
|
||||||
|
private String sensorTypeName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
||||||
private String sensorAttr;
|
private String sensorAttr;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.zcloud.persistence.mapper;
|
package com.zcloud.persistence.mapper;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmRecordMapper - 报警记录Mapper
|
* AlarmRecordMapper - 报警记录Mapper
|
||||||
|
|
@ -10,4 +14,13 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface AlarmRecordMapper extends BaseMapper<AlarmRecordDO> {}
|
public interface AlarmRecordMapper extends BaseMapper<AlarmRecordDO> {
|
||||||
|
|
||||||
|
IPage<AlarmRecordDO> listPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<AlarmRecordDO> disposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<AlarmRecordDO> appListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<AlarmRecordDO> appDisposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.zcloud.persistence.mapper;
|
package com.zcloud.persistence.mapper;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeviceRegionMapper - 设备区域Mapper
|
* DeviceRegionMapper - 设备区域Mapper
|
||||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRegionMapper extends BaseMapper<DeviceRegionDO> {}
|
public interface DeviceRegionMapper extends BaseMapper<DeviceRegionDO> {
|
||||||
|
|
||||||
|
IPage<DeviceRegionDO> listPage(IPage<DeviceRegionDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.zcloud.persistence.mapper;
|
package com.zcloud.persistence.mapper;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorDeviceMapper - 传感器设备Mapper
|
* SensorDeviceMapper - 传感器设备Mapper
|
||||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SensorDeviceMapper extends BaseMapper<SensorDeviceDO> {}
|
public interface SensorDeviceMapper extends BaseMapper<SensorDeviceDO> {
|
||||||
|
|
||||||
|
IPage<SensorDeviceDO> listPage(IPage<SensorDeviceDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.zcloud.persistence.mapper;
|
package com.zcloud.persistence.mapper;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorTypeMapper - 传感器类型Mapper
|
* SensorTypeMapper - 传感器类型Mapper
|
||||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SensorTypeMapper extends BaseMapper<SensorTypeDO> {}
|
public interface SensorTypeMapper extends BaseMapper<SensorTypeDO> {
|
||||||
|
|
||||||
|
IPage<SensorTypeDO> listPage(IPage<SensorTypeDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,23 @@
|
||||||
package com.zcloud.persistence.repository;
|
package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmRecordRepository - 报警记录仓储接口
|
* AlarmRecordRepository - 报警记录仓储接口
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
public interface AlarmRecordRepository extends BaseRepository<AlarmRecordDO> {}
|
public interface AlarmRecordRepository extends BaseRepository<AlarmRecordDO> {
|
||||||
|
|
||||||
|
PageResponse<AlarmRecordDO> listPage(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<AlarmRecordDO> appDisposeListPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
package com.zcloud.persistence.repository;
|
package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeviceRegionRepository - 设备区域仓储接口
|
* DeviceRegionRepository - 设备区域仓储接口
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
public interface DeviceRegionRepository extends BaseRepository<DeviceRegionDO> {}
|
public interface DeviceRegionRepository extends BaseRepository<DeviceRegionDO> {
|
||||||
|
|
||||||
|
PageResponse<DeviceRegionDO> listPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
package com.zcloud.persistence.repository;
|
package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorDeviceRepository - 传感器设备仓储接口
|
* SensorDeviceRepository - 传感器设备仓储接口
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
public interface SensorDeviceRepository extends BaseRepository<SensorDeviceDO> {}
|
public interface SensorDeviceRepository extends BaseRepository<SensorDeviceDO> {
|
||||||
|
|
||||||
|
PageResponse<SensorDeviceDO> listPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
package com.zcloud.persistence.repository;
|
package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorTypeRepository - 传感器类型仓储接口
|
* SensorTypeRepository - 传感器类型仓储接口
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
public interface SensorTypeRepository extends BaseRepository<SensorTypeDO> {}
|
public interface SensorTypeRepository extends BaseRepository<SensorTypeDO> {
|
||||||
|
|
||||||
|
PageResponse<SensorTypeDO> listPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
package com.zcloud.persistence.repository.impl;
|
package com.zcloud.persistence.repository.impl;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
import com.zcloud.persistence.mapper.SensorDeviceMapper;
|
import com.zcloud.persistence.mapper.SensorDeviceMapper;
|
||||||
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
import com.zcloud.utils.Query;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorDeviceRepositoryImpl - 传感器设备仓储实现类
|
* SensorDeviceRepositoryImpl - 传感器设备仓储实现类
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
|
|
@ -15,4 +21,13 @@ import org.springframework.stereotype.Repository;
|
||||||
@Repository
|
@Repository
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SensorDeviceRepositoryImpl extends BaseRepositoryImpl<SensorDeviceMapper, SensorDeviceDO> implements SensorDeviceRepository {
|
public class SensorDeviceRepositoryImpl extends BaseRepositoryImpl<SensorDeviceMapper, SensorDeviceDO> implements SensorDeviceRepository {
|
||||||
|
|
||||||
|
private final SensorDeviceMapper sensorDeviceMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<SensorDeviceDO> listPage(Map<String, Object> params) {
|
||||||
|
IPage<SensorDeviceDO> page = new Query<SensorDeviceDO>().getPage(params);
|
||||||
|
IPage<SensorDeviceDO> result = sensorDeviceMapper.listPage(page, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
package com.zcloud.persistence.repository.impl;
|
package com.zcloud.persistence.repository.impl;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||||
import com.zcloud.persistence.mapper.SensorTypeMapper;
|
import com.zcloud.persistence.mapper.SensorTypeMapper;
|
||||||
import com.zcloud.persistence.repository.SensorTypeRepository;
|
import com.zcloud.persistence.repository.SensorTypeRepository;
|
||||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
import com.zcloud.utils.Query;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorTypeRepositoryImpl - 传感器类型仓储实现类
|
* SensorTypeRepositoryImpl - 传感器类型仓储实现类
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
|
|
@ -15,4 +21,13 @@ import org.springframework.stereotype.Repository;
|
||||||
@Repository
|
@Repository
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SensorTypeRepositoryImpl extends BaseRepositoryImpl<SensorTypeMapper, SensorTypeDO> implements SensorTypeRepository {
|
public class SensorTypeRepositoryImpl extends BaseRepositoryImpl<SensorTypeMapper, SensorTypeDO> implements SensorTypeRepository {
|
||||||
|
|
||||||
|
private final SensorTypeMapper sensorTypeMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<SensorTypeDO> listPage(Map<String, Object> params) {
|
||||||
|
IPage<SensorTypeDO> page = new Query<SensorTypeDO>().getPage(params);
|
||||||
|
IPage<SensorTypeDO> result = sensorTypeMapper.listPage(page, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue