Compare commits
2 Commits
d554dcea9c
...
79bcee2aa5
| Author | SHA1 | Date |
|---|---|---|
|
|
79bcee2aa5 | |
|
|
7d40840231 |
|
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
global-config:
|
||||
banner: false
|
||||
|
|
|
|||
|
|
@ -30,7 +30,12 @@ public class ManagerExe {
|
|||
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) {
|
||||
throw new BizException("负责人配置失败");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,13 +7,23 @@ import com.alibaba.cola.dto.SingleResponse;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zcloud.dto.AlarmDisposePageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
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.SensorDeviceRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* AlarmDisposeQueryExe - 报警处置执行器
|
||||
|
|
@ -25,40 +35,13 @@ import java.util.List;
|
|||
public class AlarmDisposeQueryExe {
|
||||
|
||||
private final AlarmRecordRepository alarmRecordRepository;
|
||||
private final SensorDeviceRepository sensorDeviceRepository;
|
||||
private final UserRepository userRepository;
|
||||
|
||||
public PageResponse<AlarmDisposeCO> execute(AlarmDisposePageQry qry) {
|
||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.disposeListPage(PageQueryHelper.toHashMap(qry));
|
||||
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
|
||||
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<AlarmDisposeCO> getById(Long id) {
|
||||
|
|
@ -69,6 +52,44 @@ public class AlarmDisposeQueryExe {
|
|||
|
||||
AlarmDisposeCO co = new AlarmDisposeCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillDisplayFields(Collections.singletonList(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.zcloud.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
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.SensorDeviceRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* AlarmRecordQueryExe - 报警记录执行器
|
||||
|
|
@ -25,35 +35,13 @@ import java.util.List;
|
|||
public class AlarmRecordQueryExe {
|
||||
|
||||
private final AlarmRecordRepository alarmRecordRepository;
|
||||
private final SensorDeviceRepository sensorDeviceRepository;
|
||||
private final UserRepository userRepository;
|
||||
|
||||
public PageResponse<AlarmRecordCO> execute(AlarmRecordPageQry qry) {
|
||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
|
||||
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
||||
|
|
@ -64,6 +52,44 @@ public class AlarmRecordQueryExe {
|
|||
|
||||
AlarmRecordCO co = new AlarmRecordCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillDisplayFields(Collections.singletonList(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.zcloud.dto.AppAlarmDisposePageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmDisposeCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
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.SensorDeviceRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* AppAlarmDisposeQueryExe - APP报警处置执行器
|
||||
|
|
@ -25,43 +35,16 @@ import java.util.List;
|
|||
public class AppAlarmDisposeQueryExe {
|
||||
|
||||
private final AlarmRecordRepository alarmRecordRepository;
|
||||
private final SensorDeviceRepository sensorDeviceRepository;
|
||||
private final UserRepository userRepository;
|
||||
|
||||
/**
|
||||
* 手机端待处置列表(按当前用户过滤)
|
||||
*/
|
||||
public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) {
|
||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), AlarmRecordDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(PageQueryHelper.toHashMap(qry));
|
||||
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
|
||||
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -75,6 +58,44 @@ public class AppAlarmDisposeQueryExe {
|
|||
|
||||
AlarmDisposeCO co = new AlarmDisposeCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillDisplayFields(Collections.singletonList(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.zcloud.dto.AppAlarmRecordPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
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.SensorDeviceRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* AppAlarmRecordQueryExe - APP报警记录执行器
|
||||
|
|
@ -26,33 +36,15 @@ import java.util.List;
|
|||
public class AppAlarmRecordQueryExe {
|
||||
|
||||
private final AlarmRecordRepository alarmRecordRepository;
|
||||
private final SensorDeviceRepository sensorDeviceRepository;
|
||||
private final UserRepository userRepository;
|
||||
|
||||
public PageResponse<AlarmRecordCO> execute(AppAlarmRecordPageQry qry) {
|
||||
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
// 按当前用户过滤(处置人ID)
|
||||
Long userId = AuthContext.getUserId();
|
||||
wrapper.eq(userId != null, AlarmRecordDO::getDisposeUserId, userId);
|
||||
// 支持按状态筛选(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());
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
params.put("currentUserId", AuthContext.getUserId());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appListPage(params);
|
||||
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
|
||||
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
||||
|
|
@ -69,6 +61,44 @@ public class AppAlarmRecordQueryExe {
|
|||
|
||||
AlarmRecordCO co = new AlarmRecordCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillDisplayFields(Collections.singletonList(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.clientobject.DeviceRegionCO;
|
||||
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.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.RegionSensorRelRepository;
|
||||
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* DeviceRegionQueryExe - 设备区域执行器
|
||||
|
|
@ -26,26 +40,15 @@ import java.util.List;
|
|||
public class DeviceRegionQueryExe {
|
||||
|
||||
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) {
|
||||
LambdaQueryWrapper<DeviceRegionDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), DeviceRegionDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<DeviceRegionDO> pageResponse = deviceRegionRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||
List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class);
|
||||
return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<DeviceRegionCO> getById(Long id) {
|
||||
|
|
@ -56,6 +59,8 @@ public class DeviceRegionQueryExe {
|
|||
|
||||
DeviceRegionCO co = new DeviceRegionCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillBindSensorInfo(Collections.singletonList(co), true);
|
||||
fillDisplayFields(Collections.singletonList(co));
|
||||
return SingleResponse.of(co);
|
||||
}
|
||||
|
||||
|
|
@ -67,10 +72,99 @@ public class DeviceRegionQueryExe {
|
|||
.orderByDesc(DeviceRegionDO::getCreateTime);
|
||||
|
||||
List<DeviceRegionDO> results = deviceRegionRepository.list(wrapper);
|
||||
|
||||
// Convert to FireRegionCO
|
||||
List<FireRegionCO> fireRegionCOs = BeanUtil.copyToList(results, FireRegionCO.class);
|
||||
|
||||
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;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zcloud.dto.SensorDevicePageQry;
|
||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -27,28 +26,9 @@ public class SensorDeviceQueryExe {
|
|||
private final SensorDeviceRepository sensorDeviceRepository;
|
||||
|
||||
public PageResponse<SensorDeviceCO> execute(SensorDevicePageQry qry) {
|
||||
LambdaQueryWrapper<SensorDeviceDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), SensorDeviceDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<SensorDeviceDO> pageResponse = sensorDeviceRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||
List<SensorDeviceCO> sensorDeviceCOs = BeanUtil.copyToList(pageResponse.getData(), SensorDeviceCO.class);
|
||||
return PageResponse.of(sensorDeviceCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<SensorDeviceCO> getById(Long id) {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
package com.zcloud.command.query;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zcloud.dto.SensorTypePageQry;
|
||||
import com.zcloud.dto.clientobject.SensorTypeCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||
import com.zcloud.persistence.repository.SensorTypeRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -27,24 +26,9 @@ public class SensorTypeQueryExe {
|
|||
private final SensorTypeRepository sensorTypeRepository;
|
||||
|
||||
public PageResponse<SensorTypeCO> execute(SensorTypePageQry qry) {
|
||||
LambdaQueryWrapper<SensorTypeDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
wrapper.eq(ObjectUtil.isNotEmpty(qry.getTenantId()), SensorTypeDO::getTenantId, qry.getTenantId())
|
||||
.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());
|
||||
PageResponse<SensorTypeDO> pageResponse = sensorTypeRepository.listPage(PageQueryHelper.toHashMap(qry));
|
||||
List<SensorTypeCO> sensorTypeCOs = BeanUtil.copyToList(pageResponse.getData(), SensorTypeCO.class);
|
||||
return PageResponse.of(sensorTypeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<SensorTypeCO> getById(Long id) {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ public class DeviceRegionAddCmd extends Command {
|
|||
@ApiModelProperty(value = "外部消防区域主键", name = "fireRegionId", required = true)
|
||||
private Long fireRegionId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域名称", name = "fireRegionName")
|
||||
private String fireRegionName;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域编码", name = "fireRegionCode")
|
||||
private String fireRegionCode;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ public class ManagerCmd extends Command {
|
|||
@ApiModelProperty(value = "负责人ID", name = "managerId", required = true)
|
||||
private Long managerId;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名", name = "managerName")
|
||||
private String managerName;
|
||||
|
||||
@ApiModelProperty(value = "负责部门ID", name = "departmentId")
|
||||
private Long departmentId;
|
||||
}
|
||||
|
|
@ -37,6 +37,9 @@ public class AlarmDisposeCO extends ClientObject {
|
|||
@ApiModelProperty(value = "传感器编码")
|
||||
private String sensorCode;
|
||||
|
||||
@ApiModelProperty(value = "传感器名称")
|
||||
private String sensorName;
|
||||
|
||||
@ApiModelProperty(value = "消防区域ID")
|
||||
private Long fireRegionId;
|
||||
|
||||
|
|
@ -82,6 +85,9 @@ public class AlarmDisposeCO extends ClientObject {
|
|||
@ApiModelProperty(value = "处置人ID")
|
||||
private Long disposeUserId;
|
||||
|
||||
@ApiModelProperty(value = "处置人姓名")
|
||||
private String disposeUserName;
|
||||
|
||||
@ApiModelProperty(value = "当前处置结果快照")
|
||||
private String disposeResult;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ public class AlarmRecordCO extends ClientObject {
|
|||
@ApiModelProperty(value = "传感器编码")
|
||||
private String sensorCode;
|
||||
|
||||
@ApiModelProperty(value = "传感器名称")
|
||||
private String sensorName;
|
||||
|
||||
@ApiModelProperty(value = "消防区域ID")
|
||||
private Long fireRegionId;
|
||||
|
||||
|
|
@ -82,6 +85,9 @@ public class AlarmRecordCO extends ClientObject {
|
|||
@ApiModelProperty(value = "处置人ID")
|
||||
private Long disposeUserId;
|
||||
|
||||
@ApiModelProperty(value = "处置人姓名")
|
||||
private String disposeUserName;
|
||||
|
||||
@ApiModelProperty(value = "当前处置结果快照")
|
||||
private String disposeResult;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* DeviceRegionCO - 设备区域客户端对象
|
||||
|
|
@ -24,15 +25,30 @@ public class DeviceRegionCO extends ClientObject {
|
|||
@ApiModelProperty(value = "外部消防区域主键")
|
||||
private Long fireRegionId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域名称")
|
||||
private String fireRegionName;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域编码")
|
||||
private String fireRegionCode;
|
||||
|
||||
@ApiModelProperty(value = "负责部门ID")
|
||||
private Long departmentId;
|
||||
|
||||
@ApiModelProperty(value = "负责部门名称")
|
||||
private String departmentName;
|
||||
|
||||
@ApiModelProperty(value = "负责人ID")
|
||||
private Long managerId;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名")
|
||||
private String managerName;
|
||||
|
||||
@ApiModelProperty(value = "已绑定传感器数量")
|
||||
private Integer bindSensorCount;
|
||||
|
||||
@ApiModelProperty(value = "已绑定传感器列表")
|
||||
private List<SensorDeviceCO> boundSensors;
|
||||
|
||||
@ApiModelProperty(value = "状态 1启用0停用")
|
||||
private Integer status;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ public class SensorDeviceCO extends ClientObject {
|
|||
@ApiModelProperty(value = "传感器类型主键ID")
|
||||
private Long sensorTypeId;
|
||||
|
||||
@ApiModelProperty(value = "传感器类型名称")
|
||||
private String sensorTypeName;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
||||
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 String fireRegionName;
|
||||
|
||||
/**
|
||||
* 外部消防区域编码
|
||||
*/
|
||||
|
|
@ -38,6 +43,11 @@ public class DeviceRegionE extends BaseE {
|
|||
*/
|
||||
private Long managerId;
|
||||
|
||||
/**
|
||||
* 负责人姓名
|
||||
*/
|
||||
private String managerName;
|
||||
|
||||
/**
|
||||
* 状态 1启用0停用
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -85,10 +85,11 @@ public class DeviceRegionGatewayImpl implements DeviceRegionGateway {
|
|||
}
|
||||
|
||||
@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();
|
||||
d.setId(id);
|
||||
d.setManagerId(managerId);
|
||||
d.setManagerName(managerName);
|
||||
d.setDepartmentId(departmentId);
|
||||
deviceRegionRepository.updateById(d);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
|
|
@ -37,6 +38,10 @@ public class AlarmRecordDO extends BaseDO {
|
|||
@ApiModelProperty(value = "传感器编码")
|
||||
private String sensorCode;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "传感器名称")
|
||||
private String sensorName;
|
||||
|
||||
@ApiModelProperty(value = "消防区域ID")
|
||||
private Long fireRegionId;
|
||||
|
||||
|
|
@ -82,6 +87,10 @@ public class AlarmRecordDO extends BaseDO {
|
|||
@ApiModelProperty(value = "处置人ID")
|
||||
private Long disposeUserId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "处置人姓名")
|
||||
private String disposeUserName;
|
||||
|
||||
@ApiModelProperty(value = "当前处置结果快照")
|
||||
private String disposeResult;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* DepartmentDO - 部门数据对象
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Data
|
||||
@TableName("department")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DepartmentDO extends BaseDO {
|
||||
|
||||
@ApiModelProperty(value = "业务主键ID")
|
||||
private String departmentId;
|
||||
|
||||
@ApiModelProperty(value = "部门名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "所属企业ID")
|
||||
private Long corpinfoId;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
|
|
@ -23,18 +24,32 @@ public class DeviceRegionDO extends BaseDO {
|
|||
@ApiModelProperty(value = "外部消防区域主键")
|
||||
private Long fireRegionId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域名称")
|
||||
private String fireRegionName;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域编码")
|
||||
private String fireRegionCode;
|
||||
|
||||
@ApiModelProperty(value = "负责部门ID")
|
||||
private Long departmentId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "负责部门名称")
|
||||
private String departmentName;
|
||||
|
||||
@ApiModelProperty(value = "负责人ID")
|
||||
private Long managerId;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名")
|
||||
private String managerName;
|
||||
|
||||
@ApiModelProperty(value = "状态 1启用0停用")
|
||||
private Integer status;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "已绑定传感器数量")
|
||||
private Integer bindSensorCount;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
|
|
@ -29,6 +30,10 @@ public class SensorDeviceDO extends BaseDO {
|
|||
@ApiModelProperty(value = "传感器类型主键ID")
|
||||
private Long sensorTypeId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "传感器类型名称")
|
||||
private String sensorTypeName;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
|
||||
private String sensorAttr;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* UserDO - 用户数据对象
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Data
|
||||
@TableName("user")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserDO extends BaseDO {
|
||||
|
||||
@ApiModelProperty(value = "业务主键ID")
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "登录账号")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "姓名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "企业ID")
|
||||
private Long corpinfoId;
|
||||
|
||||
@ApiModelProperty(value = "部门ID")
|
||||
private Long departmentId;
|
||||
}
|
||||
|
|
@ -1,8 +1,12 @@
|
|||
package com.zcloud.persistence.mapper;
|
||||
|
||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||
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.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* AlarmRecordMapper - 报警记录Mapper
|
||||
|
|
@ -10,4 +14,13 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||
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.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DeviceRegionMapper - 设备区域Mapper
|
||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||
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.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorDeviceMapper - 传感器设备Mapper
|
||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||
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.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorTypeMapper - 传感器类型Mapper
|
||||
|
|
@ -10,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* AlarmRecordRepository - 报警记录仓储接口
|
||||
* @Author wangyan
|
||||
* @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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package com.zcloud.persistence.repository;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.persistence.dataobject.DepartmentDO;
|
||||
|
||||
/**
|
||||
* DepartmentRepository - 部门仓储接口
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
public interface DepartmentRepository extends BaseRepository<DepartmentDO> {}
|
||||
|
|
@ -1,11 +1,17 @@
|
|||
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.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DeviceRegionRepository - 设备区域仓储接口
|
||||
* @Author wangyan
|
||||
* @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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorDeviceRepository - 传感器设备仓储接口
|
||||
* @Author wangyan
|
||||
* @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;
|
||||
|
||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.persistence.dataobject.SensorTypeDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorTypeRepository - 传感器类型仓储接口
|
||||
* @Author wangyan
|
||||
* @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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package com.zcloud.persistence.repository;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.persistence.dataobject.UserDO;
|
||||
|
||||
/**
|
||||
* UserRepository - 用户仓储接口
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
public interface UserRepository extends BaseRepository<UserDO> {}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
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.AlarmRecordDO;
|
||||
import com.zcloud.persistence.mapper.AlarmRecordMapper;
|
||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||
import com.zcloud.utils.Query;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* AlarmRecordRepositoryImpl - 报警记录仓储实现类
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl<AlarmRecordMapper, AlarmRecordDO> implements AlarmRecordRepository {
|
||||
|
||||
private final AlarmRecordMapper alarmRecordMapper;
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordDO> listPage(Map<String, Object> params) {
|
||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||
IPage<AlarmRecordDO> result = alarmRecordMapper.listPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params) {
|
||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||
IPage<AlarmRecordDO> result = alarmRecordMapper.disposeListPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params) {
|
||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||
IPage<AlarmRecordDO> result = alarmRecordMapper.appListPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordDO> appDisposeListPage(Map<String, Object> params) {
|
||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||
IPage<AlarmRecordDO> result = alarmRecordMapper.appDisposeListPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
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.DeviceRegionDO;
|
||||
import com.zcloud.persistence.mapper.DeviceRegionMapper;
|
||||
import com.zcloud.persistence.repository.DeviceRegionRepository;
|
||||
import com.zcloud.utils.Query;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DeviceRegionRepositoryImpl - 设备区域仓储实现类
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class DeviceRegionRepositoryImpl extends BaseRepositoryImpl<DeviceRegionMapper, DeviceRegionDO> implements DeviceRegionRepository {
|
||||
|
||||
private final DeviceRegionMapper deviceRegionMapper;
|
||||
|
||||
@Override
|
||||
public PageResponse<DeviceRegionDO> listPage(Map<String, Object> params) {
|
||||
IPage<DeviceRegionDO> page = new Query<DeviceRegionDO>().getPage(params);
|
||||
IPage<DeviceRegionDO> result = deviceRegionMapper.listPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,18 @@
|
|||
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.mapper.SensorDeviceMapper;
|
||||
import com.zcloud.persistence.repository.SensorDeviceRepository;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.utils.Query;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorDeviceRepositoryImpl - 传感器设备仓储实现类
|
||||
* @Author wangyan
|
||||
|
|
@ -15,4 +21,13 @@ import org.springframework.stereotype.Repository;
|
|||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
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;
|
||||
|
||||
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.mapper.SensorTypeMapper;
|
||||
import com.zcloud.persistence.repository.SensorTypeRepository;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.utils.Query;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* SensorTypeRepositoryImpl - 传感器类型仓储实现类
|
||||
* @Author wangyan
|
||||
|
|
@ -15,4 +21,13 @@ import org.springframework.stereotype.Repository;
|
|||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.zcloud.persistence.mapper.AlarmRecordMapper">
|
||||
|
||||
<sql id="alarmRecordBaseColumns">
|
||||
ar.*,
|
||||
sd.sensor_name AS sensorName,
|
||||
u.name AS disposeUserName
|
||||
</sql>
|
||||
|
||||
<sql id="alarmRecordBaseJoins">
|
||||
FROM iot_alarm_record ar
|
||||
LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_id = sd.id AND sd.delete_enum = 'FALSE'
|
||||
LEFT JOIN user u ON ar.dispose_user_id = u.id
|
||||
</sql>
|
||||
|
||||
<select id="listPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||
SELECT
|
||||
<include refid="alarmRecordBaseColumns"/>
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
<where>
|
||||
ar.delete_enum = 'FALSE'
|
||||
<if test="params.tenantId != null">
|
||||
AND ar.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND ar.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.alarmNo != null and params.alarmNo != ''">
|
||||
AND ar.alarm_no LIKE CONCAT('%', #{params.alarmNo}, '%')
|
||||
</if>
|
||||
<if test="params.alarmSource != null and params.alarmSource != ''">
|
||||
AND ar.alarm_source = #{params.alarmSource}
|
||||
</if>
|
||||
<if test="params.sensorCode != null and params.sensorCode != ''">
|
||||
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
|
||||
</if>
|
||||
<if test="params.status != null">
|
||||
AND ar.status = #{params.status}
|
||||
</if>
|
||||
<if test="params.alarmTimeStart != null and params.alarmTimeStart != ''">
|
||||
AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart}
|
||||
</if>
|
||||
<if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''">
|
||||
AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ar.alarm_time DESC
|
||||
</select>
|
||||
|
||||
<select id="disposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||
SELECT
|
||||
<include refid="alarmRecordBaseColumns"/>
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
<where>
|
||||
ar.delete_enum = 'FALSE'
|
||||
AND ar.status IN (10, 20)
|
||||
AND ar.active_flag = 1
|
||||
<if test="params.tenantId != null">
|
||||
AND ar.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND ar.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.alarmNo != null and params.alarmNo != ''">
|
||||
AND ar.alarm_no LIKE CONCAT('%', #{params.alarmNo}, '%')
|
||||
</if>
|
||||
<if test="params.alarmSource != null and params.alarmSource != ''">
|
||||
AND ar.alarm_source = #{params.alarmSource}
|
||||
</if>
|
||||
<if test="params.sensorCode != null and params.sensorCode != ''">
|
||||
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
|
||||
</if>
|
||||
<if test="params.fireRegionId != null">
|
||||
AND ar.fire_region_id = #{params.fireRegionId}
|
||||
</if>
|
||||
<if test="params.departmentId != null">
|
||||
AND ar.department_id = #{params.departmentId}
|
||||
</if>
|
||||
<if test="params.disposeUserId != null">
|
||||
AND ar.dispose_user_id = #{params.disposeUserId}
|
||||
</if>
|
||||
<if test="params.alarmLevel != null and params.alarmLevel != ''">
|
||||
AND ar.alarm_level = #{params.alarmLevel}
|
||||
</if>
|
||||
<if test="params.alarmType != null and params.alarmType != ''">
|
||||
AND ar.alarm_type = #{params.alarmType}
|
||||
</if>
|
||||
<if test="params.alarmTimeStart != null and params.alarmTimeStart != ''">
|
||||
AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart}
|
||||
</if>
|
||||
<if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''">
|
||||
AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ar.alarm_time DESC
|
||||
</select>
|
||||
|
||||
<select id="appListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||
SELECT
|
||||
<include refid="alarmRecordBaseColumns"/>
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
<where>
|
||||
ar.delete_enum = 'FALSE'
|
||||
<if test="params.currentUserId != null">
|
||||
AND ar.dispose_user_id = #{params.currentUserId}
|
||||
</if>
|
||||
<if test="params.status != null">
|
||||
AND ar.status = #{params.status}
|
||||
</if>
|
||||
<if test="params.alarmTimeStart != null and params.alarmTimeStart != ''">
|
||||
AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart}
|
||||
</if>
|
||||
<if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''">
|
||||
AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ar.alarm_time DESC
|
||||
</select>
|
||||
|
||||
<select id="appDisposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||
SELECT
|
||||
<include refid="alarmRecordBaseColumns"/>
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
<where>
|
||||
ar.delete_enum = 'FALSE'
|
||||
AND ar.status = 20
|
||||
AND ar.active_flag = 1
|
||||
<if test="params.tenantId != null">
|
||||
AND ar.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND ar.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.alarmNo != null and params.alarmNo != ''">
|
||||
AND ar.alarm_no LIKE CONCAT('%', #{params.alarmNo}, '%')
|
||||
</if>
|
||||
<if test="params.alarmSource != null and params.alarmSource != ''">
|
||||
AND ar.alarm_source = #{params.alarmSource}
|
||||
</if>
|
||||
<if test="params.sensorCode != null and params.sensorCode != ''">
|
||||
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
|
||||
</if>
|
||||
<if test="params.fireRegionId != null">
|
||||
AND ar.fire_region_id = #{params.fireRegionId}
|
||||
</if>
|
||||
<if test="params.alarmLevel != null and params.alarmLevel != ''">
|
||||
AND ar.alarm_level = #{params.alarmLevel}
|
||||
</if>
|
||||
<if test="params.alarmType != null and params.alarmType != ''">
|
||||
AND ar.alarm_type = #{params.alarmType}
|
||||
</if>
|
||||
<if test="params.currentUserId != null">
|
||||
AND ar.dispose_user_id = #{params.currentUserId}
|
||||
</if>
|
||||
<if test="params.alarmTimeStart != null and params.alarmTimeStart != ''">
|
||||
AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart}
|
||||
</if>
|
||||
<if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''">
|
||||
AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ar.alarm_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.zcloud.persistence.mapper.DeviceRegionMapper">
|
||||
|
||||
<select id="listPage" resultType="com.zcloud.persistence.dataobject.DeviceRegionDO">
|
||||
SELECT
|
||||
rc.*,
|
||||
d.name AS departmentName,
|
||||
COALESCE(u.name, rc.manager_name) AS managerName,
|
||||
(
|
||||
SELECT COUNT(1)
|
||||
FROM iot_alarm_region_sensor_rel rel
|
||||
WHERE rel.region_config_id = rc.id
|
||||
AND rel.delete_enum = 'FALSE'
|
||||
) AS bindSensorCount
|
||||
FROM iot_alarm_region_config rc
|
||||
LEFT JOIN department d ON rc.department_id = d.id
|
||||
LEFT JOIN user u ON rc.manager_id = u.id
|
||||
<where>
|
||||
rc.delete_enum = 'FALSE'
|
||||
<if test="params.tenantId != null">
|
||||
AND rc.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND rc.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.fireRegionCode != null and params.fireRegionCode != ''">
|
||||
AND rc.fire_region_code LIKE CONCAT('%', #{params.fireRegionCode}, '%')
|
||||
</if>
|
||||
<if test="params.departmentId != null">
|
||||
AND rc.department_id = #{params.departmentId}
|
||||
</if>
|
||||
<if test="params.managerId != null">
|
||||
AND rc.manager_id = #{params.managerId}
|
||||
</if>
|
||||
<if test="params.status != null">
|
||||
AND rc.status = #{params.status}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY rc.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.zcloud.persistence.mapper.SensorDeviceMapper">
|
||||
|
||||
<select id="listPage" resultType="com.zcloud.persistence.dataobject.SensorDeviceDO">
|
||||
SELECT
|
||||
sd.*,
|
||||
st.type_name AS sensorTypeName
|
||||
FROM iot_alarm_sensor_device sd
|
||||
LEFT JOIN iot_alarm_sensor_type st ON sd.sensor_type_id = st.id AND st.delete_enum = 'FALSE'
|
||||
<where>
|
||||
sd.delete_enum = 'FALSE'
|
||||
<if test="params.tenantId != null">
|
||||
AND sd.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND sd.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.sensorCode != null and params.sensorCode != ''">
|
||||
AND sd.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
|
||||
</if>
|
||||
<if test="params.sensorName != null and params.sensorName != ''">
|
||||
AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%')
|
||||
</if>
|
||||
<if test="params.sensorTypeId != null">
|
||||
AND sd.sensor_type_id = #{params.sensorTypeId}
|
||||
</if>
|
||||
<if test="params.sensorAttr != null and params.sensorAttr != ''">
|
||||
AND sd.sensor_attr = #{params.sensorAttr}
|
||||
</if>
|
||||
<if test="params.sensorStatus != null and params.sensorStatus != ''">
|
||||
AND sd.sensor_status = #{params.sensorStatus}
|
||||
</if>
|
||||
<if test="params.alarmSwitch != null">
|
||||
AND sd.alarm_switch = #{params.alarmSwitch}
|
||||
</if>
|
||||
<if test="params.thresholdFlag != null">
|
||||
AND sd.threshold_flag = #{params.thresholdFlag}
|
||||
</if>
|
||||
<if test="params.installPosition != null and params.installPosition != ''">
|
||||
AND sd.install_position LIKE CONCAT('%', #{params.installPosition}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY sd.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.zcloud.persistence.mapper.SensorTypeMapper">
|
||||
|
||||
<select id="listPage" resultType="com.zcloud.persistence.dataobject.SensorTypeDO">
|
||||
SELECT
|
||||
st.*
|
||||
FROM iot_alarm_sensor_type st
|
||||
<where>
|
||||
st.delete_enum = 'FALSE'
|
||||
<if test="params.tenantId != null">
|
||||
AND st.tenant_id = #{params.tenantId}
|
||||
</if>
|
||||
<if test="params.orgId != null">
|
||||
AND st.org_id = #{params.orgId}
|
||||
</if>
|
||||
<if test="params.typeCode != null and params.typeCode != ''">
|
||||
AND st.type_code LIKE CONCAT('%', #{params.typeCode}, '%')
|
||||
</if>
|
||||
<if test="params.typeName != null and params.typeName != ''">
|
||||
AND st.type_name LIKE CONCAT('%', #{params.typeName}, '%')
|
||||
</if>
|
||||
<if test="params.sensorAttr != null and params.sensorAttr != ''">
|
||||
AND st.sensor_attr = #{params.sensorAttr}
|
||||
</if>
|
||||
<if test="params.status != null">
|
||||
AND st.status = #{params.status}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY st.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue