优化报警处置和设备管理功能
parent
a0b140ae8f
commit
800da5d77d
|
|
@ -34,19 +34,15 @@ public class AlarmDisposeController {
|
|||
return alarmDisposeService.assignList(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("单条处置分配")
|
||||
@ApiOperation("处置分配")
|
||||
@PostMapping("/assign")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')")
|
||||
public SingleResponse assign(@Validated @RequestBody AlarmDisposeAssignCmd cmd) {
|
||||
if (cmd.getTenantId() == null) {
|
||||
cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId());
|
||||
}
|
||||
return alarmDisposeService.assign(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("批量处置分配")
|
||||
@PostMapping("/batchAssign")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-batchassign')")
|
||||
public SingleResponse batchAssign(@Validated @RequestBody AlarmDisposeBatchAssignCmd cmd) {
|
||||
if (cmd.getTenantId() == null) {
|
||||
cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId());
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse;
|
|||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.api.AlarmRecordServiceI;
|
||||
import com.zcloud.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -25,14 +26,21 @@ public class AlarmRecordController {
|
|||
|
||||
@ApiOperation("报警记录列表")
|
||||
@PostMapping("/list")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')")
|
||||
public PageResponse<AlarmRecordCO> list(@RequestBody AlarmRecordPageQry qry) {
|
||||
return alarmRecordService.list(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("按设备查询报警记录")
|
||||
@PostMapping("/listBySensorDevice")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')")
|
||||
public PageResponse<AlarmRecordCO> listBySensorDevice(@RequestBody AlarmRecordSensorPageQry qry) {
|
||||
return alarmRecordService.listBySensorDevice(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("报警详情")
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-info')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-info')")
|
||||
public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) {
|
||||
return alarmRecordService.info(id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,42 +30,42 @@ public class DeviceRegionController {
|
|||
|
||||
@ApiOperation("分页列表")
|
||||
@PostMapping("/list")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
|
||||
public PageResponse<DeviceRegionCO> list(@RequestBody DeviceRegionPageQry qry) {
|
||||
return deviceRegionService.listPage(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("新增或修改")
|
||||
@PostMapping("/saveOrUpdate")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-add')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-add')")
|
||||
public SingleResponse<String> saveOrUpdate(@Validated @RequestBody DeviceRegionAddCmd cmd) {
|
||||
return deviceRegionService.saveOrUpdate(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("绑定传感器")
|
||||
@PostMapping("/bindSensor")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
public SingleResponse bindSensor(@Validated @RequestBody BindSensorCmd cmd) {
|
||||
return deviceRegionService.bindSensor(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("解绑传感器")
|
||||
@PostMapping("/unbindSensor")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
public SingleResponse unbindSensor(@Validated @RequestBody UnbindSensorCmd cmd) {
|
||||
return deviceRegionService.unbindSensor(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("负责人配置")
|
||||
@PutMapping("/manager")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')")
|
||||
public SingleResponse manager(@Validated @RequestBody ManagerCmd cmd) {
|
||||
return deviceRegionService.manager(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("删除")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')")
|
||||
public SingleResponse remove(@PathVariable("id") Long id) {
|
||||
deviceRegionService.remove(id);
|
||||
return SingleResponse.buildSuccess();
|
||||
|
|
@ -73,8 +73,8 @@ public class DeviceRegionController {
|
|||
|
||||
@ApiOperation("详情")
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
|
||||
public SingleResponse<DeviceRegionCO> info(@PathVariable("id") Long id) {
|
||||
return deviceRegionService.info(id);
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
|
||||
public SingleResponse<DeviceRegionCO> info(@PathVariable("id") String fireRegionId) {
|
||||
return deviceRegionService.info(fireRegionId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,7 @@ package com.zcloud.web;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.api.SensorDeviceServiceI;
|
||||
import com.zcloud.dto.SensorDeviceAddCmd;
|
||||
import com.zcloud.dto.SensorDevicePageQry;
|
||||
import com.zcloud.dto.SensorDeviceThresholdCmd;
|
||||
import com.zcloud.dto.SensorDeviceUpdateCmd;
|
||||
import com.zcloud.dto.*;
|
||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -29,29 +26,41 @@ public class SensorDeviceController {
|
|||
|
||||
@ApiOperation("新增")
|
||||
@PostMapping("/save")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-add')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-add')")
|
||||
public SingleResponse<String> save(@Validated @RequestBody SensorDeviceAddCmd cmd) {
|
||||
return sensorDeviceService.add(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("分页列表")
|
||||
@PostMapping("/list")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')")
|
||||
public PageResponse<SensorDeviceCO> list(@RequestBody SensorDevicePageQry qry) {
|
||||
return sensorDeviceService.listPage(qry);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiOperation("修改")
|
||||
@PutMapping("/edit")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
@PostMapping("/edit")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
public SingleResponse edit(@Validated @RequestBody SensorDeviceUpdateCmd cmd) {
|
||||
sensorDeviceService.edit(cmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
}
|
||||
|
||||
@ApiOperation("定位")
|
||||
@PostMapping("/location")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
public SingleResponse location(@Validated @RequestBody SensorDeviceLocationCmd cmd) {
|
||||
sensorDeviceService.location(cmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
}
|
||||
|
||||
@ApiOperation("状态切换")
|
||||
@PutMapping("/status")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
public SingleResponse updateStatus(@RequestParam Long id, @RequestParam String status) {
|
||||
sensorDeviceService.updateStatus(id, status);
|
||||
return SingleResponse.buildSuccess();
|
||||
|
|
@ -59,15 +68,15 @@ public class SensorDeviceController {
|
|||
|
||||
@ApiOperation("阈值配置")
|
||||
@PutMapping("/threshold")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
||||
public SingleResponse updateThreshold(@Validated @RequestBody SensorDeviceThresholdCmd cmd) {
|
||||
sensorDeviceService.updateThreshold(cmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
}
|
||||
|
||||
@ApiOperation("删除")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-delete')")
|
||||
@PostMapping("/{id}")
|
||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-delete')")
|
||||
public SingleResponse remove(@PathVariable("id") Long id) {
|
||||
sensorDeviceService.remove(id);
|
||||
return SingleResponse.buildSuccess();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.zcloud.command;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.domain.gateway.AlarmRecordGateway;
|
||||
import com.zcloud.domain.gateway.AlarmDisposeLogGateway;
|
||||
|
|
@ -20,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* AlarmDisposeAssignExe - 报警处置执行器
|
||||
|
|
@ -37,63 +40,44 @@ public class AlarmDisposeAssignExe {
|
|||
private final AlarmTodoService alarmTodoService;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(AlarmDisposeAssignCmd cmd) {
|
||||
public SingleResponse execute(AlarmDisposeAssignCmd cmd) {
|
||||
List<Long> ids = cmd.getIds();
|
||||
if (Tools.isEmpty(ids)) {
|
||||
throw new BizException("请选择要处置的报警记录");
|
||||
}
|
||||
|
||||
// 获取当前时间的LocalDateTime "yyyy-MM-dd HH:mm:ss"
|
||||
LocalDateTime assignTime = LocalDateTime.now();
|
||||
for (Long id : ids) {
|
||||
StringBuffer msg = new StringBuffer();
|
||||
// 查询报警记录
|
||||
AlarmRecordE alarmRecord = alarmRecordGateway.getById(cmd.getId());
|
||||
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
|
||||
if (Tools.isEmpty(alarmRecord)) {
|
||||
throw new BizException("报警记录不存在");
|
||||
return SingleResponse.buildFailure("id:"+id+"报警记录不存在;");
|
||||
}
|
||||
|
||||
// 检查状态:只有待研判(10)状态可以分配
|
||||
if (alarmRecord.getStatus() != 10) {
|
||||
throw new BizException("该报警已分配或已处置,无法再次分配");
|
||||
return SingleResponse.buildFailure("报警编码为"+alarmRecord.getAlarmNo()+"报警记录状态不是待处置;");
|
||||
}
|
||||
|
||||
// 更新报警记录状态和处置人
|
||||
AlarmRecordE updateEntity = new AlarmRecordE();
|
||||
BeanUtils.copyProperties(cmd, updateEntity);
|
||||
updateEntity.setId(cmd.getId());
|
||||
updateEntity.setStatus(20); // 待处置
|
||||
updateEntity.setManagerId(cmd.getDisposeUserId());
|
||||
updateEntity.setDisposeUserId(cmd.getDisposeUserId());
|
||||
updateEntity.setAssignTime(LocalDateTime.now());
|
||||
if (StrUtil.isNotBlank(cmd.getAlarmLevel())) {
|
||||
updateEntity.setAlarmLevel(cmd.getAlarmLevel());
|
||||
BeanUtil.copyProperties(cmd, updateEntity);
|
||||
updateEntity.setId( id);
|
||||
updateEntity.setAssignTime(assignTime);
|
||||
alarmRecordGateway.update(updateEntity);
|
||||
}
|
||||
if (StrUtil.isNotBlank(cmd.getAlarmType())) {
|
||||
updateEntity.setAlarmType(cmd.getAlarmType());
|
||||
}
|
||||
|
||||
Boolean res = alarmRecordGateway.update(updateEntity);
|
||||
if (!res) {
|
||||
throw new BizException("分配失败");
|
||||
}
|
||||
|
||||
// 记录处置日志
|
||||
AlarmDisposeLogE log = new AlarmDisposeLogE();
|
||||
log.setAlarmDisposalLogId(UuidUtil.get32UUID());
|
||||
log.setAlarmId(cmd.getId());
|
||||
log.setAlarmNo(alarmRecord.getAlarmNo());
|
||||
log.setActionType("MANUAL_ASSIGN");
|
||||
log.setBeforeStatus(10);
|
||||
log.setAfterStatus(20);
|
||||
log.setOperatorId(cmd.getDisposeUserId());
|
||||
log.setActionDesc("手动分配处置");
|
||||
log.setActionTime(LocalDateTime.now());
|
||||
log.setTenantId(cmd.getTenantId());
|
||||
log.setOrgId(cmd.getOrgId());
|
||||
log.setDeleteEnum("FALSE");
|
||||
|
||||
alarmDisposeLogGateway.add(log);
|
||||
|
||||
// 发送报警处置推送消息给处置人
|
||||
// 更新后的报警记录包含分配时间和处置说明
|
||||
alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId());
|
||||
|
||||
// 新增处置人待办
|
||||
alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
|
||||
|
||||
// 完成负责人待办(原来负责人是 alarmRecord.getManagerId())
|
||||
alarmTodoService.completeTodo(cmd.getId());
|
||||
return SingleResponse.buildSuccess();
|
||||
//
|
||||
// // 发送报警处置推送消息给处置人
|
||||
// // 更新后的报警记录包含分配时间和处置说明
|
||||
// alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId());
|
||||
//
|
||||
// // 新增处置人待办
|
||||
// alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
|
||||
//
|
||||
// // 完成负责人待办(原来负责人是 alarmRecord.getManagerId())
|
||||
// alarmTodoService.completeTodo(cmd.getId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.command;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.domain.gateway.DeviceRegionGateway;
|
||||
import com.zcloud.domain.gateway.RegionSensorRelGateway;
|
||||
|
|
@ -8,12 +9,16 @@ import com.zcloud.domain.model.RegionSensorRelE;
|
|||
import com.zcloud.dto.BindSensorCmd;
|
||||
import com.zcloud.gbscommon.utils.Tools;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
|
||||
import com.zcloud.persistence.repository.RegionSensorRelRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BindSensorExe - 绑定传感器执行器
|
||||
* @Author wangyan
|
||||
|
|
@ -26,33 +31,15 @@ public class BindSensorExe {
|
|||
|
||||
private final RegionSensorRelGateway regionSensorRelGateway;
|
||||
private final DeviceRegionGateway deviceRegionGateway;
|
||||
private final RegionSensorRelRepository regionSensorRelRepository;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(BindSensorCmd cmd) {
|
||||
// 检查传感器是否已绑定到其他区域
|
||||
Boolean isBound = regionSensorRelGateway.isSensorBound(cmd.getSensorDeviceId());
|
||||
if (isBound) {
|
||||
throw new BizException("该传感器已绑定到其他区域,请先解绑");
|
||||
}
|
||||
|
||||
// 检查区域配置是否存在
|
||||
DeviceRegionE region = deviceRegionGateway.getById(cmd.getRegionConfigId());
|
||||
if (Tools.isEmpty(region)) {
|
||||
throw new BizException("区域配置不存在");
|
||||
}
|
||||
// 删除旧数据
|
||||
regionSensorRelGateway.removeByRegionId(cmd.getFireRegionId());
|
||||
|
||||
RegionSensorRelE entity = new RegionSensorRelE();
|
||||
entity.setRegionConfigId(String.valueOf(cmd.getRegionConfigId()));
|
||||
entity.setSensorDeviceId(cmd.getSensorDeviceId());
|
||||
entity.setSensorCode(cmd.getSensorCode());
|
||||
entity.setRegionSensorRelId(UuidUtil.get32UUID());
|
||||
entity.setFireRegionId(cmd.getFireRegionId());
|
||||
// 设置默认值
|
||||
entity.setDeleteEnum("FALSE");
|
||||
|
||||
Long res = regionSensorRelGateway.add(entity);
|
||||
if (Tools.isEmpty(res)) {
|
||||
throw new BizException("绑定失败");
|
||||
}
|
||||
List<RegionSensorRelE> relList = entity.initList(cmd.getFireRegionId(), cmd.getDeviceIdList());
|
||||
regionSensorRelRepository.saveBatch(BeanUtil.copyToList(relList, RegionSensorRelDO.class));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,18 @@
|
|||
package com.zcloud.command;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.domain.gateway.DeviceRegionGateway;
|
||||
import com.zcloud.domain.gateway.RegionSensorRelGateway;
|
||||
import com.zcloud.domain.model.DeviceRegionE;
|
||||
import com.zcloud.dto.ManagerCmd;
|
||||
import com.zcloud.gbscommon.utils.Tools;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import com.zcloud.persistence.dataobject.DeviceRegionDO;
|
||||
import com.zcloud.persistence.dataobject.UserDO;
|
||||
import com.zcloud.persistence.repository.DeviceRegionRepository;
|
||||
import com.zcloud.persistence.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -22,21 +29,25 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
public class ManagerExe {
|
||||
|
||||
private final DeviceRegionGateway deviceRegionGateway;
|
||||
private final UserRepository userRepository;
|
||||
|
||||
private final DeviceRegionRepository deviceRegionRepository;
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(ManagerCmd cmd) {
|
||||
DeviceRegionE existingRegion = deviceRegionGateway.getById(cmd.getId());
|
||||
if (Tools.isEmpty(existingRegion)) {
|
||||
throw new BizException("区域配置不存在");
|
||||
}
|
||||
DeviceRegionE existingRegion = new DeviceRegionE();
|
||||
BeanUtil.copyProperties(cmd, existingRegion);
|
||||
UserDO userDO = userRepository.findById(cmd.getManagerId());
|
||||
existingRegion.setManagerName(userDO.getName());
|
||||
existingRegion.setManagerId(userDO.getId());
|
||||
existingRegion.setDepartmentId(userDO.getDepartmentId());
|
||||
|
||||
Boolean res = deviceRegionGateway.updateManager(
|
||||
cmd.getId(),
|
||||
cmd.getManagerId(),
|
||||
cmd.getDepartmentId()
|
||||
);
|
||||
if (!res) {
|
||||
throw new BizException("负责人配置失败");
|
||||
DeviceRegionDO regionInfo = deviceRegionRepository.findRegionById(cmd.getFireRegionId());
|
||||
existingRegion.setFireRegionCode(regionInfo.getFireRegionCode());
|
||||
if (ObjectUtil.isEmpty(cmd.getRegionConfigId())){
|
||||
existingRegion.setRegionConfigId(UuidUtil.get32UUID());
|
||||
deviceRegionGateway.add(existingRegion);
|
||||
} else {
|
||||
deviceRegionRepository.updateByRegionConfigId(BeanUtil.copyProperties(existingRegion, DeviceRegionDO.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.zcloud.command;
|
|||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.domain.gateway.SensorDeviceGateway;
|
||||
import com.zcloud.domain.model.SensorDeviceE;
|
||||
import com.zcloud.dto.SensorDeviceLocationCmd;
|
||||
import com.zcloud.dto.SensorDeviceUpdateCmd;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -27,6 +28,17 @@ public class SensorDeviceUpdateExe {
|
|||
SensorDeviceE entity = new SensorDeviceE();
|
||||
BeanUtils.copyProperties(cmd, entity);
|
||||
|
||||
boolean res = sensorDeviceGateway.update(entity);
|
||||
if (!res) {
|
||||
throw new BizException("修改失败");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean locationExecute(SensorDeviceLocationCmd cmd) {
|
||||
SensorDeviceE entity = new SensorDeviceE();
|
||||
BeanUtils.copyProperties(cmd, entity);
|
||||
|
||||
boolean res = sensorDeviceGateway.update(entity);
|
||||
if (!res) {
|
||||
throw new BizException("修改失败");
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.alibaba.cola.dto.SingleResponse;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.zcloud.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||
|
|
@ -47,6 +48,14 @@ public class AlarmRecordQueryExe {
|
|||
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public PageResponse<AlarmRecordCO> listBySensorDevice(AlarmRecordSensorPageQry qry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
params.put("tenantId", AuthContext.getTenantId());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.listBySensorDevice(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) {
|
||||
AlarmRecordDO d = alarmRecordRepository.detailView(id);
|
||||
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public class AppAlarmDisposeQueryExe {
|
|||
*/
|
||||
public PageResponse<AlarmRecordCO> execute(AppAlarmDisposePageQry qry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
params.put("tenantId", AuthContext.getTenantId());
|
||||
params.put("disposeUserId", AuthContext.getUserId());
|
||||
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(params);
|
||||
List<AlarmRecordCO> alarmRecordCOS = alarmRecordCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||
|
|
|
|||
|
|
@ -53,16 +53,17 @@ public class DeviceRegionQueryExe {
|
|||
return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public SingleResponse<DeviceRegionCO> getById(Long id) {
|
||||
DeviceRegionDO d = deviceRegionRepository.getById(id);
|
||||
public SingleResponse<DeviceRegionCO> getById(String fireRegionId) {
|
||||
DeviceRegionDO d = deviceRegionRepository.findRegionById(fireRegionId);
|
||||
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
||||
return SingleResponse.buildFailure("记录不存在或已被删除");
|
||||
}
|
||||
|
||||
List<RegionSensorRelDO> regionSensorRelList = regionSensorRelRepository.listByFireRegionId(fireRegionId);
|
||||
DeviceRegionCO co = new DeviceRegionCO();
|
||||
BeanUtils.copyProperties(d, co);
|
||||
fillBindSensorInfo(Collections.singletonList(co), true);
|
||||
fillDisplayFields(Collections.singletonList(co));
|
||||
BeanUtil.copyProperties(d, co);
|
||||
|
||||
|
||||
co.setBoundSensors(BeanUtil.copyToList(regionSensorRelList, SensorDeviceCO.class));
|
||||
return SingleResponse.of(co);
|
||||
}
|
||||
|
||||
|
|
@ -80,43 +81,43 @@ public class DeviceRegionQueryExe {
|
|||
}
|
||||
|
||||
LambdaQueryWrapper<RegionSensorRelDO> relWrapper = new LambdaQueryWrapper<>();
|
||||
relWrapper.in(RegionSensorRelDO::getRegionConfigId, regionIds)
|
||||
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
|
||||
List<RegionSensorRelDO> relList = regionSensorRelRepository.list(relWrapper);
|
||||
|
||||
Map<String, List<RegionSensorRelDO>> relMap = relList.stream()
|
||||
.collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId));
|
||||
// relWrapper.in(RegionSensorRelDO::getRegionConfigId, regionIds)
|
||||
// .eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
|
||||
// List<RegionSensorRelDO> relList = regionSensorRelRepository.list(relWrapper);
|
||||
//
|
||||
// Map<String, List<RegionSensorRelDO>> relMap = relList.stream()
|
||||
// .collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId));
|
||||
|
||||
Map<Long, SensorDeviceCO> sensorMap = Collections.emptyMap();
|
||||
if (includeBoundSensors && !relList.isEmpty()) {
|
||||
Set<String> sensorIds = relList.stream()
|
||||
.map(RegionSensorRelDO::getSensorDeviceId)
|
||||
.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::getSensorDeviceId)
|
||||
.map(sensorMap::get)
|
||||
.filter(ObjectUtil::isNotEmpty)
|
||||
.collect(Collectors.toList());
|
||||
deviceRegionCO.setBoundSensors(boundSensors);
|
||||
}
|
||||
// if (includeBoundSensors && !relList.isEmpty()) {
|
||||
// Set<String> sensorIds = relList.stream()
|
||||
// .map(RegionSensorRelDO::getSensorDeviceId)
|
||||
// .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::getSensorDeviceId)
|
||||
// .map(sensorMap::get)
|
||||
// .filter(ObjectUtil::isNotEmpty)
|
||||
// .collect(Collectors.toList());
|
||||
// deviceRegionCO.setBoundSensors(boundSensors);
|
||||
// }
|
||||
}
|
||||
|
||||
private void fillDisplayFields(List<DeviceRegionCO> deviceRegionCOs) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.service;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.api.AlarmDisposeServiceI;
|
||||
import com.zcloud.command.AlarmDisposeAssignExe;
|
||||
|
|
@ -39,8 +40,7 @@ public class AlarmDisposeServiceImpl implements AlarmDisposeServiceI {
|
|||
|
||||
@Override
|
||||
public SingleResponse assign(AlarmDisposeAssignCmd cmd) {
|
||||
alarmDisposeAssignExe.execute(cmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
return alarmDisposeAssignExe.execute(cmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.zcloud.command.query.AlarmRecordQueryExe;
|
|||
import com.zcloud.command.query.AppAlarmDisposeQueryExe;
|
||||
import com.zcloud.command.query.AppAlarmRecordQueryExe;
|
||||
import com.zcloud.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||
import com.zcloud.dto.AppAlarmRecordPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
|
|
@ -27,6 +28,11 @@ public class AlarmRecordServiceImpl implements AlarmRecordServiceI {
|
|||
return alarmRecordQueryExe.execute(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordCO> listBySensorDevice(AlarmRecordSensorPageQry qry) {
|
||||
return alarmRecordQueryExe.listBySensorDevice(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<AlarmRecordCO> info(Long id) {
|
||||
return alarmRecordQueryExe.getById(id);
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class DeviceRegionServiceImpl implements DeviceRegionServiceI {
|
|||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<DeviceRegionCO> info(Long id) {
|
||||
return deviceRegionQueryExe.getById(id);
|
||||
public SingleResponse<DeviceRegionCO> info(String fireRegionId) {
|
||||
return deviceRegionQueryExe.getById(fireRegionId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,7 @@ import com.zcloud.command.SensorDeviceThresholdExe;
|
|||
import com.zcloud.command.SensorDeviceUpdateExe;
|
||||
import com.zcloud.command.query.SensorDeviceQueryExe;
|
||||
import com.zcloud.command.SensorDeviceAddExe;
|
||||
import com.zcloud.dto.SensorDeviceAddCmd;
|
||||
import com.zcloud.dto.SensorDevicePageQry;
|
||||
import com.zcloud.dto.SensorDeviceThresholdCmd;
|
||||
import com.zcloud.dto.SensorDeviceUpdateCmd;
|
||||
import com.zcloud.dto.*;
|
||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -44,6 +41,11 @@ public class SensorDeviceServiceImpl implements SensorDeviceServiceI {
|
|||
sensorDeviceUpdateExe.execute(cmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void location(SensorDeviceLocationCmd cmd) {
|
||||
sensorDeviceUpdateExe.locationExecute(cmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStatus(Long id, String status) {
|
||||
sensorDeviceStatusExe.execute(id, status);
|
||||
|
|
@ -63,4 +65,5 @@ public class SensorDeviceServiceImpl implements SensorDeviceServiceI {
|
|||
public SingleResponse<SensorDeviceCO> info(Long id) {
|
||||
return sensorDeviceQueryExe.getById(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.zcloud.api;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||
import com.zcloud.dto.AppAlarmRecordPageQry;
|
||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||
|
|
@ -21,6 +22,8 @@ public interface AlarmRecordServiceI {
|
|||
*/
|
||||
PageResponse<AlarmRecordCO> list(AlarmRecordPageQry qry);
|
||||
|
||||
PageResponse<AlarmRecordCO> listBySensorDevice(AlarmRecordSensorPageQry qry);
|
||||
|
||||
/**
|
||||
* 报警详情
|
||||
* @param id
|
||||
|
|
|
|||
|
|
@ -63,5 +63,5 @@ public interface DeviceRegionServiceI {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
SingleResponse<DeviceRegionCO> info(Long id);
|
||||
SingleResponse<DeviceRegionCO> info(String fireRegionId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ package com.zcloud.api;
|
|||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.dto.SensorDeviceAddCmd;
|
||||
import com.zcloud.dto.SensorDevicePageQry;
|
||||
import com.zcloud.dto.SensorDeviceUpdateCmd;
|
||||
import com.zcloud.dto.SensorDeviceThresholdCmd;
|
||||
import com.zcloud.dto.*;
|
||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||
|
||||
/**
|
||||
|
|
@ -35,6 +32,12 @@ public interface SensorDeviceServiceI {
|
|||
*/
|
||||
void edit(SensorDeviceUpdateCmd cmd);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
* @param cmd
|
||||
*/
|
||||
void location(SensorDeviceLocationCmd cmd);
|
||||
|
||||
/**
|
||||
* 状态切换
|
||||
* @param id
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* AlarmDisposeAssignCmd - 报警处置命令
|
||||
* @Author wangyan
|
||||
|
|
@ -18,21 +20,23 @@ import lombok.AllArgsConstructor;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AlarmDisposeAssignCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "报警主键ID", name = "id", required = true)
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "报警主键IDs", name = "ids", required = true)
|
||||
private List<Long> ids;
|
||||
|
||||
@ApiModelProperty(value = "处置人ID", name = "disposeUserId", required = true)
|
||||
private Long disposeUserId;
|
||||
|
||||
@ApiModelProperty(value = "报警级别", name = "alarmLevel")
|
||||
private String alarmLevel;
|
||||
@ApiModelProperty(value = "报警确认", name = "status 确认报警-20 误报-40")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "报警级别", name = "alarmLevel")
|
||||
private String alarmLevelName;
|
||||
|
||||
@ApiModelProperty(value = "报警类型", name = "alarmType")
|
||||
private String alarmType;
|
||||
@ApiModelProperty(value = "报警类型", name = "alarmType")
|
||||
private String alarmTypeName;
|
||||
|
||||
@ApiModelProperty(value = "租户ID", name = "tenantId")
|
||||
private Long tenantId;
|
||||
|
||||
@ApiModelProperty(value = "组织ID", name = "orgId")
|
||||
private Long orgId;
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.zcloud.dto;
|
||||
|
||||
import com.alibaba.cola.dto.PageQuery;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* AlarmRecordSensorPageQry - 按设备查询报警记录
|
||||
*/
|
||||
@Data
|
||||
public class AlarmRecordSensorPageQry extends PageQuery {
|
||||
|
||||
@ApiModelProperty(value = "设备业务ID")
|
||||
private String sensorDeviceId;
|
||||
|
||||
@ApiModelProperty(value = "报警时间开始")
|
||||
private String alarmTimeStart;
|
||||
|
||||
@ApiModelProperty(value = "报警时间结束")
|
||||
private String alarmTimeEnd;
|
||||
}
|
||||
|
|
@ -7,6 +7,10 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BindSensorCmd - 绑定传感器命令
|
||||
* @Author wangyan
|
||||
|
|
@ -18,21 +22,13 @@ import lombok.AllArgsConstructor;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
public class BindSensorCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true)
|
||||
private Long regionConfigId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域ID", name = "fireRegionId")
|
||||
@NotEmpty(message = "外部消防区域ID不能为空")
|
||||
private String fireRegionId;
|
||||
|
||||
@ApiModelProperty(value = "传感器设备ID", name = "sensorDeviceId", required = true)
|
||||
private String sensorDeviceId;
|
||||
@NotNull(message = "传感器设备ID不能为空")
|
||||
private List<String> deviceIdList;
|
||||
|
||||
@ApiModelProperty(value = "传感器编码快照", name = "sensorCode")
|
||||
private String sensorCode;
|
||||
|
||||
@ApiModelProperty(value = "租户ID", name = "tenantId")
|
||||
private Long tenantId;
|
||||
|
||||
@ApiModelProperty(value = "组织ID", name = "orgId")
|
||||
private Long orgId;
|
||||
}
|
||||
|
|
@ -7,6 +7,9 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* ManagerCmd - 管理员命令
|
||||
* @Author wangyan
|
||||
|
|
@ -17,16 +20,12 @@ import lombok.AllArgsConstructor;
|
|||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ManagerCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "区域配置主键ID", name = "id", required = true)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true)
|
||||
private String regionConfigId;
|
||||
@ApiModelProperty(value = "消防区域ID", name = "fireRegionId", required = true)
|
||||
@NotEmpty(message = "消防区域ID不能为空")
|
||||
private String fireRegionId;
|
||||
@ApiModelProperty(value = "负责人ID", name = "managerId", required = true)
|
||||
@NotNull(message = "负责人ID不能为空")
|
||||
private Long managerId;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名", name = "managerName")
|
||||
private String managerName;
|
||||
|
||||
@ApiModelProperty(value = "负责部门ID", name = "departmentId")
|
||||
private Long departmentId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,17 @@
|
|||
package com.zcloud.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* SensorDeviceAddCmd - 传感器设备命令
|
||||
* @Author wangyan
|
||||
|
|
@ -19,68 +24,40 @@ import lombok.AllArgsConstructor;
|
|||
public class SensorDeviceAddCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "传感器编码", name = "sensorCode", required = true)
|
||||
@NotEmpty(message = "传感器编码不能为空")
|
||||
private String sensorCode;
|
||||
|
||||
@ApiModelProperty(value = "传感器名称", name = "sensorName", required = true)
|
||||
@NotEmpty(message = "传感器名称不能为空")
|
||||
private String sensorName;
|
||||
|
||||
@ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true)
|
||||
@NotEmpty(message = "传感器类型主键ID不能为空")
|
||||
private String sensorTypeId;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true)
|
||||
@NotEmpty(message = "传感器属性快照不能为空")
|
||||
private String sensorAttr;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "传感器状态", name = "sensorStatus")
|
||||
@NotEmpty(message = "传感器状态不能为空")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName")
|
||||
@NotEmpty(message = "传感器状态名称不能为空")
|
||||
private String sensorStatusName;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName")
|
||||
@NotEmpty(message = "传感器状态名称不能为空")
|
||||
private String thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "安装位置", name = "installPosition")
|
||||
private String installPosition;
|
||||
|
||||
@ApiModelProperty(value = "经度", name = "longitude")
|
||||
private String longitude;
|
||||
|
||||
@ApiModelProperty(value = "纬度", name = "latitude")
|
||||
private String latitude;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态", name = "sensorStatus")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "是否定位(0否1是)", name = "positioningFlag")
|
||||
private Integer positioningFlag;
|
||||
|
||||
@ApiModelProperty(value = "报警开关(1开0关)", name = "alarmSwitch")
|
||||
private Integer alarmSwitch;
|
||||
|
||||
@ApiModelProperty(value = "是否阈值设定(0否1是)", name = "thresholdFlag")
|
||||
private Integer thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "单位", name = "unitName")
|
||||
private String unitName;
|
||||
|
||||
@ApiModelProperty(value = "量程下限", name = "rangeMin")
|
||||
private String rangeMin;
|
||||
|
||||
@ApiModelProperty(value = "量程上限", name = "rangeMax")
|
||||
private String rangeMax;
|
||||
|
||||
@ApiModelProperty(value = "低低报阈值", name = "thresholdLowLow")
|
||||
private String thresholdLowLow;
|
||||
|
||||
@ApiModelProperty(value = "低报阈值", name = "thresholdLow")
|
||||
private String thresholdLow;
|
||||
|
||||
@ApiModelProperty(value = "高报阈值", name = "thresholdHigh")
|
||||
private String thresholdHigh;
|
||||
|
||||
@ApiModelProperty(value = "高高报阈值", name = "thresholdHighHigh")
|
||||
private String thresholdHighHigh;
|
||||
|
||||
@ApiModelProperty(value = "连续报警确认次数(默认3次)", name = "continuousAlarmCount")
|
||||
private Integer continuousAlarmCount;
|
||||
|
||||
@ApiModelProperty(value = "出厂日期", name = "factoryDate")
|
||||
private String factoryDate;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private LocalDate factoryDate;
|
||||
|
||||
@ApiModelProperty(value = "企业侧源编码", name = "enterpriseSourceCode")
|
||||
private String enterpriseSourceCode;
|
||||
|
||||
@ApiModelProperty(value = "备注", name = "remarks")
|
||||
private String remarks;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package com.zcloud.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* SensorDeviceUpdateCmd - 传感器设备命令
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SensorDeviceLocationCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "主键ID", name = "id", required = true)
|
||||
@NotNull(message = "主键ID不能为空")
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "经度", name = "longitude", required = true)
|
||||
@NotEmpty(message = "经度不能为空")
|
||||
private String longitude;
|
||||
@ApiModelProperty(value = "纬度", name = "latitude", required = true)
|
||||
@NotEmpty(message = "纬度不能为空")
|
||||
private String latitude;
|
||||
}
|
||||
|
|
@ -21,6 +21,6 @@ public class SensorDevicePageQry extends PageQuery {
|
|||
@ApiModelProperty(value = "传感器状态")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "是否阈值设定(0否1是)")
|
||||
@ApiModelProperty(value = "是通过系统设定报警 1-是 0-否")
|
||||
private Integer thresholdFlag;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,19 @@
|
|||
package com.zcloud.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* SensorDeviceUpdateCmd - 传感器设备命令
|
||||
* @Author wangyan
|
||||
|
|
@ -19,59 +26,57 @@ import lombok.AllArgsConstructor;
|
|||
public class SensorDeviceUpdateCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "主键ID", name = "id", required = true)
|
||||
@NotNull(message = "主键ID不能为空")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "传感器编码", name = "sensorCode")
|
||||
@ApiModelProperty(value = "传感器编码", name = "sensorCode", required = true)
|
||||
private String sensorCode;
|
||||
|
||||
@ApiModelProperty(value = "传感器名称", name = "sensorName")
|
||||
@ApiModelProperty(value = "传感器名称", name = "sensorName", required = true)
|
||||
private String sensorName;
|
||||
|
||||
@ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId")
|
||||
@ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true)
|
||||
private String sensorTypeId;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr")
|
||||
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true)
|
||||
private String sensorAttr;
|
||||
|
||||
@ApiModelProperty(value = "安装位置", name = "installPosition")
|
||||
private String installPosition;
|
||||
|
||||
@ApiModelProperty(value = "经度", name = "longitude")
|
||||
private String longitude;
|
||||
|
||||
@ApiModelProperty(value = "纬度", name = "latitude")
|
||||
private String latitude;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态", name = "sensorStatus")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "是否定位(0否1是)", name = "positioningFlag")
|
||||
private Integer positioningFlag;
|
||||
@ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName")
|
||||
private String sensorStatusName;
|
||||
|
||||
@ApiModelProperty(value = "报警开关(1开0关)", name = "alarmSwitch")
|
||||
private Integer alarmSwitch;
|
||||
@ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName")
|
||||
private String thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否阈值设定(0否1是)", name = "thresholdFlag")
|
||||
private Integer thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "单位", name = "unitName")
|
||||
private String unitName;
|
||||
|
||||
@ApiModelProperty(value = "量程下限", name = "rangeMin")
|
||||
private String rangeMin;
|
||||
|
||||
@ApiModelProperty(value = "量程上限", name = "rangeMax")
|
||||
private String rangeMax;
|
||||
|
||||
@ApiModelProperty(value = "连续报警确认次数(默认3次)", name = "continuousAlarmCount")
|
||||
private Integer continuousAlarmCount;
|
||||
@ApiModelProperty(value = "安装位置", name = "installPosition")
|
||||
private String installPosition;
|
||||
|
||||
@ApiModelProperty(value = "出厂日期", name = "factoryDate")
|
||||
private String factoryDate;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private LocalDate factoryDate;
|
||||
|
||||
@ApiModelProperty(value = "企业侧源编码", name = "enterpriseSourceCode")
|
||||
private String enterpriseSourceCode;
|
||||
@ApiModelProperty(value = "经度", name = "longitude", required = true)
|
||||
private String longitude;
|
||||
@ApiModelProperty(value = "纬度", name = "latitude", required = true)
|
||||
private String latitude;
|
||||
@ApiModelProperty(value = "报警开关", name = "alarmSwitch")
|
||||
private Integer alarmSwitch;
|
||||
|
||||
@ApiModelProperty(value = "备注", name = "remarks")
|
||||
private String remarks;
|
||||
@ApiModelProperty(value = "计量单位", name = "unitName")
|
||||
private String unitName;
|
||||
@ApiModelProperty(value = "量程下限", name = "rangeMin")
|
||||
private BigDecimal rangeMin;
|
||||
@ApiModelProperty(value = "量程上限", name = "rangeMax")
|
||||
private BigDecimal rangeMax;
|
||||
@ApiModelProperty(value = "低低报阈值", name = "thresholdLowLow")
|
||||
private BigDecimal thresholdLowLow;
|
||||
@ApiModelProperty(value = "低报阈值", name = "thresholdLow")
|
||||
private BigDecimal thresholdLow;
|
||||
@ApiModelProperty(value = "高报阈值", name = "thresholdHigh")
|
||||
private BigDecimal thresholdHigh;
|
||||
@ApiModelProperty(value = "高高报阈值", name = "thresholdHighHigh")
|
||||
private BigDecimal thresholdHighHigh;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,13 @@ public class AlarmRecordCO extends ClientObject {
|
|||
@ApiModelProperty(value = "当前负责人姓名")
|
||||
private String managerName;
|
||||
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private String latitude;
|
||||
|
||||
@ApiModelProperty(value = "经度")
|
||||
private String longitude;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "报警级别")
|
||||
private String alarmLevel;
|
||||
|
||||
|
|
@ -133,7 +140,12 @@ public class AlarmRecordCO extends ClientObject {
|
|||
private BigDecimal thresholdHigh;
|
||||
@ApiModelProperty(value = "高高报阈值")
|
||||
private BigDecimal thresholdHighHigh;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性")
|
||||
private String sensorAttr;
|
||||
@ApiModelProperty(value = "传感器类型ID")
|
||||
private String sensorTypeId;
|
||||
@ApiModelProperty(value = "传感器类型名称")
|
||||
private String sensorTypeName;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.dto.clientobject;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
|
@ -23,7 +24,7 @@ public class DeviceRegionCO extends ClientObject {
|
|||
private String regionConfigId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域主键")
|
||||
private Long fireRegionId;
|
||||
private String fireRegionId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域名称")
|
||||
private String fireRegionName;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
|
|
@ -48,13 +50,16 @@ public class SensorDeviceCO extends ClientObject {
|
|||
@ApiModelProperty(value = "传感器状态")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态名称")
|
||||
private String sensorStatusName;
|
||||
|
||||
@ApiModelProperty(value = "是否定位(0否1是)")
|
||||
private Integer positioningFlag;
|
||||
|
||||
@ApiModelProperty(value = "报警开关(1开0关)")
|
||||
private Integer alarmSwitch;
|
||||
|
||||
@ApiModelProperty(value = "是否阈值设定(0否1是)")
|
||||
@ApiModelProperty(value = "是通过系统设定报警 1-是 0-否")
|
||||
private Integer thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
|
|
@ -82,7 +87,7 @@ public class SensorDeviceCO extends ClientObject {
|
|||
private Integer continuousAlarmCount;
|
||||
|
||||
@ApiModelProperty(value = "出厂日期")
|
||||
private String factoryDate;
|
||||
private LocalDate factoryDate;
|
||||
|
||||
@ApiModelProperty(value = "企业侧源编码")
|
||||
private String enterpriseSourceCode;
|
||||
|
|
|
|||
|
|
@ -28,4 +28,9 @@ public interface RegionSensorRelGateway {
|
|||
* 检查传感器是否已绑定
|
||||
*/
|
||||
Boolean isSensorBound(String sensorDeviceId);
|
||||
|
||||
/**
|
||||
* 根据区域ID删除(软删除)
|
||||
*/
|
||||
void removeByRegionId(String regionId);
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.domain.model;
|
||||
|
||||
import com.jjb.saas.framework.domain.model.BaseE;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -71,6 +72,16 @@ public class AlarmRecordE extends BaseE {
|
|||
*/
|
||||
private String alarmType;
|
||||
|
||||
/**
|
||||
* 报警级别
|
||||
*/
|
||||
private String alarmLevelName;
|
||||
|
||||
/**
|
||||
* 报警类型
|
||||
*/
|
||||
private String alarmTypeName;
|
||||
|
||||
/**
|
||||
* 阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW
|
||||
*/
|
||||
|
|
@ -105,7 +116,9 @@ public class AlarmRecordE extends BaseE {
|
|||
* 当前状态 10待研判/20待处置/30已消警/40误报
|
||||
*/
|
||||
private Integer status;
|
||||
private String latitude;
|
||||
|
||||
private String longitude;
|
||||
/**
|
||||
* 分配时间
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -53,23 +53,4 @@ public class DeviceRegionE extends BaseE {
|
|||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 删除标识
|
||||
*/
|
||||
private String deleteEnum;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 组织ID
|
||||
*/
|
||||
private Long orgId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
package com.zcloud.domain.model;
|
||||
|
||||
import com.jjb.saas.framework.domain.model.BaseE;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RegionSensorRelE - 区域传感器关系实体
|
||||
* @Author wangyan
|
||||
|
|
@ -18,10 +22,6 @@ public class RegionSensorRelE extends BaseE {
|
|||
*/
|
||||
private String regionSensorRelId;
|
||||
|
||||
/**
|
||||
* 区域配置主键ID
|
||||
*/
|
||||
private String regionConfigId;
|
||||
|
||||
/**
|
||||
* 外部消防区域ID
|
||||
|
|
@ -33,10 +33,6 @@ public class RegionSensorRelE extends BaseE {
|
|||
*/
|
||||
private String sensorDeviceId;
|
||||
|
||||
/**
|
||||
* 传感器编码快照
|
||||
*/
|
||||
private String sensorCode;
|
||||
|
||||
/**
|
||||
* 删除标识
|
||||
|
|
@ -52,4 +48,16 @@ public class RegionSensorRelE extends BaseE {
|
|||
* 组织ID
|
||||
*/
|
||||
private Long orgId;
|
||||
|
||||
public List<RegionSensorRelE> initList(String fireRegionId, List<String> deviceIdList){
|
||||
List<RegionSensorRelE> list = new ArrayList<>();
|
||||
for (String deviceId : deviceIdList) {
|
||||
RegionSensorRelE regionSensorRelE = new RegionSensorRelE();
|
||||
regionSensorRelE.setSensorDeviceId(deviceId);
|
||||
regionSensorRelE.setFireRegionId(fireRegionId);
|
||||
regionSensorRelE.setRegionSensorRelId(UuidUtil.get32UUID());
|
||||
list.add(regionSensorRelE);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,9 @@ import com.jjb.saas.framework.domain.model.BaseE;
|
|||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* SensorDeviceE - 传感器设备实体
|
||||
* @Author wangyan
|
||||
|
|
@ -57,6 +60,10 @@ public class SensorDeviceE extends BaseE {
|
|||
* 传感器状态
|
||||
*/
|
||||
private String sensorStatus;
|
||||
/**
|
||||
* 传感器状态名称
|
||||
*/
|
||||
private String sensorStatusName;
|
||||
|
||||
/**
|
||||
* 是否定位(0否1是)
|
||||
|
|
@ -69,7 +76,7 @@ public class SensorDeviceE extends BaseE {
|
|||
private Integer alarmSwitch;
|
||||
|
||||
/**
|
||||
* 是否阈值设定(0否1是)
|
||||
* 是通过系统设定报警 1-是 0-否
|
||||
*/
|
||||
private Integer thresholdFlag;
|
||||
|
||||
|
|
@ -116,7 +123,7 @@ public class SensorDeviceE extends BaseE {
|
|||
/**
|
||||
* 出厂日期
|
||||
*/
|
||||
private String factoryDate;
|
||||
private LocalDate factoryDate;
|
||||
|
||||
/**
|
||||
* 企业侧源编码(同步映射键)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.gatewayimpl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.zcloud.domain.gateway.RegionSensorRelGateway;
|
||||
import com.zcloud.domain.model.RegionSensorRelE;
|
||||
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
|
||||
|
|
@ -59,4 +60,13 @@ public class RegionSensorRelGatewayImpl implements RegionSensorRelGateway {
|
|||
long count = regionSensorRelRepository.count(wrapper);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeByRegionId(String regionId) {
|
||||
UpdateWrapper<RegionSensorRelDO> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("fire_region_id", regionId);
|
||||
updateWrapper.eq("delete_enum", "FALSE");
|
||||
updateWrapper.set("delete_enum", "TRUE");
|
||||
regionSensorRelRepository.update(updateWrapper);
|
||||
}
|
||||
}
|
||||
|
|
@ -78,7 +78,11 @@ public class AlarmRecordDO extends BaseDO {
|
|||
|
||||
@ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW")
|
||||
private String thresholdType;
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private String latitude;
|
||||
|
||||
@ApiModelProperty(value = "经度")
|
||||
private String longitude;
|
||||
@ApiModelProperty(value = "告警值")
|
||||
private BigDecimal currentValue;
|
||||
|
||||
|
|
@ -144,7 +148,15 @@ public class AlarmRecordDO extends BaseDO {
|
|||
@ApiModelProperty(value = "高高报阈值")
|
||||
@TableField(exist = false)
|
||||
private BigDecimal thresholdHighHigh;
|
||||
|
||||
@ApiModelProperty(value = "传感器属性")
|
||||
@TableField(exist = false)
|
||||
private String sensorAttr;
|
||||
@ApiModelProperty(value = "传感器类型ID")
|
||||
@TableField(exist = false)
|
||||
private String sensorTypeId;
|
||||
@ApiModelProperty(value = "传感器类型名称")
|
||||
@TableField(exist = false)
|
||||
private String sensorTypeName;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class DeviceRegionDO extends BaseDO {
|
|||
private String regionConfigId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域主键")
|
||||
private Long fireRegionId;
|
||||
private String fireRegionId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "外部消防区域名称")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -19,8 +20,6 @@ public class RegionSensorRelDO extends BaseDO {
|
|||
@ApiModelProperty(value = "业务ID(32位)")
|
||||
private String regionSensorRelId;
|
||||
|
||||
@ApiModelProperty(value = "区域配置主键ID")
|
||||
private String regionConfigId;
|
||||
|
||||
@ApiModelProperty(value = "外部消防区域ID")
|
||||
private String fireRegionId;
|
||||
|
|
@ -28,7 +27,34 @@ public class RegionSensorRelDO extends BaseDO {
|
|||
@ApiModelProperty(value = "传感器设备ID")
|
||||
private String sensorDeviceId;
|
||||
|
||||
@ApiModelProperty(value = "传感器编码快照")
|
||||
// asd.sensor_device_name AS sensor_name,
|
||||
// asd.sensor_device_code AS sensor_code,
|
||||
// asd.sensor_attr AS sensor_attr,
|
||||
// ast.type_name AS sensor_type_name,
|
||||
// asd.sensor_status_name as sensor_status_name,
|
||||
// case when asd.longitude is not null then '是' else '否' end as location_flag
|
||||
|
||||
@ApiModelProperty(value = "传感器名称")
|
||||
@TableField(exist = false)
|
||||
private String sensorName;
|
||||
@ApiModelProperty(value = "传感器编号")
|
||||
@TableField(exist = false)
|
||||
private String sensorCode;
|
||||
@ApiModelProperty(value = "传感器属性")
|
||||
@TableField(exist = false)
|
||||
private String sensorAttr;
|
||||
@ApiModelProperty(value = "传感器属性名称")
|
||||
@TableField(exist = false)
|
||||
private String sensorAttrName;
|
||||
@ApiModelProperty(value = "传感器类型名称")
|
||||
@TableField(exist = false)
|
||||
private String sensorTypeName;
|
||||
@ApiModelProperty(value = "传感器状态名称")
|
||||
@TableField(exist = false)
|
||||
private String sensorStatusName;
|
||||
@ApiModelProperty(value = "是否定位")
|
||||
@TableField(exist = false)
|
||||
private String locationFlag;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import lombok.Data;
|
|||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* SensorDeviceDO - 传感器设备数据对象
|
||||
|
|
@ -50,13 +52,16 @@ public class SensorDeviceDO extends BaseDO {
|
|||
@ApiModelProperty(value = "传感器状态")
|
||||
private String sensorStatus;
|
||||
|
||||
@ApiModelProperty(value = "传感器状态名称")
|
||||
private String sensorStatusName;
|
||||
|
||||
@ApiModelProperty(value = "是否定位(0否1是)")
|
||||
private Integer positioningFlag;
|
||||
|
||||
@ApiModelProperty(value = "报警开关(1开0关)")
|
||||
private Integer alarmSwitch;
|
||||
|
||||
@ApiModelProperty(value = "是否阈值设定(0否1是)")
|
||||
@ApiModelProperty(value = "是通过系统设定报警 1-是 0-否")
|
||||
private Integer thresholdFlag;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
|
|
@ -84,7 +89,7 @@ public class SensorDeviceDO extends BaseDO {
|
|||
private Integer continuousAlarmCount;
|
||||
|
||||
@ApiModelProperty(value = "出厂日期")
|
||||
private String factoryDate;
|
||||
private LocalDate factoryDate;
|
||||
|
||||
@ApiModelProperty(value = "企业侧源编码")
|
||||
private String enterpriseSourceCode;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -30,4 +31,7 @@ public class UserDO extends BaseDO {
|
|||
|
||||
@ApiModelProperty(value = "部门ID")
|
||||
private Long departmentId;
|
||||
@ApiModelProperty(value = "部门名称")
|
||||
@TableField(exist = false)
|
||||
private String departmentName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ public interface AlarmRecordMapper extends BaseMapper<AlarmRecordDO> {
|
|||
|
||||
IPage<AlarmRecordDO> listPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||
|
||||
IPage<AlarmRecordDO> listBySensorDevice(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);
|
||||
|
|
|
|||
|
|
@ -17,4 +17,6 @@ import java.util.Map;
|
|||
public interface DeviceRegionMapper extends BaseMapper<DeviceRegionDO> {
|
||||
|
||||
IPage<DeviceRegionDO> listPage(IPage<DeviceRegionDO> page, @Param("params") Map<String, Object> params);
|
||||
|
||||
DeviceRegionDO findRegionById(String fireRegionId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,14 @@ import com.zcloud.persistence.dataobject.RegionSensorRelDO;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RegionSensorRelMapper - 区域传感器关系Mapper
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Mapper
|
||||
public interface RegionSensorRelMapper extends BaseMapper<RegionSensorRelDO> {}
|
||||
public interface RegionSensorRelMapper extends BaseMapper<RegionSensorRelDO> {
|
||||
List<RegionSensorRelDO> listByFireRegionId(String regionId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
@Mapper
|
||||
public interface UserMapper extends BaseMapper<UserDO> {}
|
||||
public interface UserMapper extends BaseMapper<UserDO> {
|
||||
UserDO findById(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ public interface AlarmRecordRepository extends BaseRepository<AlarmRecordDO> {
|
|||
|
||||
PageResponse<AlarmRecordDO> listPage(Map<String, Object> params);
|
||||
|
||||
PageResponse<AlarmRecordDO> listBySensorDevice(Map<String, Object> params);
|
||||
|
||||
PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params);
|
||||
|
||||
PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params);
|
||||
|
|
|
|||
|
|
@ -14,4 +14,8 @@ import java.util.Map;
|
|||
public interface DeviceRegionRepository extends BaseRepository<DeviceRegionDO> {
|
||||
|
||||
PageResponse<DeviceRegionDO> listPage(Map<String, Object> params);
|
||||
|
||||
DeviceRegionDO findRegionById(String fireRegionId);
|
||||
|
||||
void updateByRegionConfigId(DeviceRegionDO deviceRegionDO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,14 @@ package com.zcloud.persistence.repository;
|
|||
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RegionSensorRelRepository - 区域传感器关系仓储接口
|
||||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
public interface RegionSensorRelRepository extends BaseRepository<RegionSensorRelDO> {}
|
||||
public interface RegionSensorRelRepository extends BaseRepository<RegionSensorRelDO> {
|
||||
|
||||
List<RegionSensorRelDO> listByFireRegionId(String regionId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,4 +8,6 @@ import com.zcloud.persistence.dataobject.UserDO;
|
|||
* @Author wangyan
|
||||
* @Date 2026-04-03 00:00:00
|
||||
*/
|
||||
public interface UserRepository extends BaseRepository<UserDO> {}
|
||||
public interface UserRepository extends BaseRepository<UserDO> {
|
||||
UserDO findById(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,13 @@ public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl<AlarmRecordMap
|
|||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordDO> listBySensorDevice(Map<String, Object> params) {
|
||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||
IPage<AlarmRecordDO> result = alarmRecordMapper.listBySensorDevice(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);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.persistence.repository.impl;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
|
|
@ -30,4 +31,17 @@ public class DeviceRegionRepositoryImpl extends BaseRepositoryImpl<DeviceRegionM
|
|||
IPage<DeviceRegionDO> result = deviceRegionMapper.listPage(page, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceRegionDO findRegionById(String fireRegionId) {
|
||||
return deviceRegionMapper.findRegionById(fireRegionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateByRegionConfigId(DeviceRegionDO deviceRegionDO) {
|
||||
UpdateWrapper<DeviceRegionDO> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("region_config_id", deviceRegionDO.getRegionConfigId());
|
||||
updateWrapper.eq("delete_enum", "FALSE");
|
||||
deviceRegionMapper.update(deviceRegionDO, updateWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import com.zcloud.persistence.repository.RegionSensorRelRepository;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RegionSensorRelRepositoryImpl - 区域传感器关系仓储实现类
|
||||
* @Author wangyan
|
||||
|
|
@ -14,4 +16,11 @@ import org.springframework.stereotype.Repository;
|
|||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class RegionSensorRelRepositoryImpl extends BaseRepositoryImpl<RegionSensorRelMapper, RegionSensorRelDO> implements RegionSensorRelRepository {}
|
||||
public class RegionSensorRelRepositoryImpl extends BaseRepositoryImpl<RegionSensorRelMapper, RegionSensorRelDO> implements RegionSensorRelRepository {
|
||||
private final RegionSensorRelMapper regionSensorRelMapper;
|
||||
@Override
|
||||
public List<RegionSensorRelDO> listByFireRegionId(String regionId) {
|
||||
|
||||
return regionSensorRelMapper.listByFireRegionId(regionId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,4 +14,10 @@ import org.springframework.stereotype.Repository;
|
|||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> implements UserRepository {}
|
||||
public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> implements UserRepository {
|
||||
private final UserMapper userMapper;
|
||||
@Override
|
||||
public UserDO findById(Long id) {
|
||||
return userMapper.findById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,12 +19,18 @@
|
|||
LEFT JOIN department dep ON ar.department_id = dep.id AND dep.delete_enum = 'FALSE'
|
||||
LEFT JOIN user mgr ON ar.manager_id = mgr.id AND mgr.delete_enum = 'FALSE'
|
||||
LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_device_id = sd.sensor_device_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="alarmRecordBaseColumns"/>,
|
||||
sd.unit_name,
|
||||
sd.threshold_high_high,
|
||||
sd.threshold_high,
|
||||
sd.threshold_low_low,
|
||||
sd.threshold_low
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
<where>
|
||||
ar.delete_enum = 'FALSE'
|
||||
|
|
@ -68,6 +74,36 @@
|
|||
ORDER BY CASE WHEN ar.status IN (10, 20) THEN 0 ELSE 1 END, ar.alarm_time DESC
|
||||
</select>
|
||||
|
||||
<select id="listBySensorDevice" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||
SELECT
|
||||
<include refid="alarmRecordBaseColumns"/>,
|
||||
sd.unit_name,
|
||||
sd.threshold_high_high,
|
||||
sd.threshold_high,
|
||||
sd.threshold_low_low,
|
||||
sd.threshold_low
|
||||
<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.sensorDeviceId != null and params.sensorDeviceId != ''">
|
||||
AND ar.sensor_device_id = #{params.sensorDeviceId}
|
||||
</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"/>
|
||||
|
|
@ -208,8 +244,12 @@
|
|||
sd.threshold_low_low,
|
||||
sd.threshold_low,
|
||||
sd.threshold_high,
|
||||
sd.threshold_high_high
|
||||
sd.threshold_high_high,
|
||||
sd.sensor_attr,
|
||||
ast.sensor_type_id,
|
||||
ast.type_name AS sensor_type_name
|
||||
<include refid="alarmRecordBaseJoins"/>
|
||||
LEFT JOIN iot_alarm_sensor_type ast ON ast.sensor_type_id = sd.sensor_type_id
|
||||
<where>
|
||||
ar.id = #{id}
|
||||
AND ar.delete_enum = 'FALSE'
|
||||
|
|
|
|||
|
|
@ -62,4 +62,21 @@
|
|||
</where>
|
||||
ORDER BY fr.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="findRegionById" resultType="com.zcloud.persistence.dataobject.DeviceRegionDO">
|
||||
select
|
||||
arc.*,
|
||||
fr.fire_region_code AS fireRegionCode,
|
||||
fr.fire_region_name AS fireRegionName,
|
||||
u.name AS managerName,
|
||||
d.name AS departmentName
|
||||
from
|
||||
fire_region fr
|
||||
left join iot_alarm_region_config arc on arc.fire_region_id = fr.fire_region_id and arc.delete_enum = 'FALSE'
|
||||
left join user u on arc.manager_id = u.id
|
||||
left join department d on u.department_id = d.id
|
||||
|
||||
where fr.fire_region_id = #{fire_region_id}
|
||||
and fr.delete_enum = 'FALSE'
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
<?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.RegionSensorRelMapper">
|
||||
|
||||
|
||||
<select id="listByFireRegionId" resultType="com.zcloud.persistence.dataobject.RegionSensorRelDO">
|
||||
select
|
||||
arsr.*,
|
||||
asd.sensor_name AS sensor_name,
|
||||
asd.sensor_name AS sensor_code,
|
||||
asd.sensor_attr AS sensor_attr,
|
||||
case asd.sensor_attr when 'NUMBER' then '数值类' when 'SWITCH' then '开关类' else '未知' end as sensor_attr_name,
|
||||
ast.type_name AS sensor_type_name,
|
||||
asd.sensor_status_name as sensor_status_name,
|
||||
case when asd.longitude is not null then '是' else '否' end as location_flag
|
||||
from iot_alarm_region_sensor_rel arsr
|
||||
left join iot_alarm_sensor_device asd on asd.sensor_device_id = arsr.sensor_device_id
|
||||
left join iot_alarm_sensor_type ast on ast.sensor_type_id = asd.sensor_type_id
|
||||
where arsr.delete_enum = 'FALSE'
|
||||
and arsr.fire_region_id = #{regionId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?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.UserMapper">
|
||||
|
||||
|
||||
<select id="findById" resultType="com.zcloud.persistence.dataobject.UserDO">
|
||||
select
|
||||
u.*,
|
||||
d.name as departmentName
|
||||
from user u
|
||||
left join department d on u.department_id = d.id
|
||||
where u.id = #{id}
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue