修改app接口

main
zhangyue 2026-04-22 13:56:59 +08:00
parent a99f9dbcab
commit 730657c0ef
56 changed files with 721 additions and 650 deletions

View File

@ -2,7 +2,7 @@ spring:
config: config:
import: import:
- classpath:nacos.yml - classpath:nacos.yml
# - classpath:prodnacos.yml
- classpath:sdk.yml - classpath:sdk.yml
# - classpath:prodnacos.yml
# - classpath:prodsdk.yml # - classpath:prodsdk.yml
- classpath:swagger.yml - classpath:swagger.yml

View File

@ -7,6 +7,8 @@ import com.zcloud.api.AlarmDisposeServiceI;
import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmDisposeSubmitCmd; import com.zcloud.dto.AppAlarmDisposeSubmitCmd;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.dto.clientobject.AlarmRecordCO;
import com.zcloud.persistence.dataobject.AlarmRecordDO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -23,33 +25,25 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
public class AppAlarmDisposeController { public class AppAlarmDisposeController {
private final AlarmDisposeServiceI alarmDisposeService; private final AlarmDisposeServiceI alarmDisposeService;
@ApiOperation("手机端待处置列表") @ApiOperation("手机端待处置列表")
@PostMapping("/todoList") @PostMapping("/todoList")
public PageResponse<AlarmDisposeCO> todoList(@RequestBody AppAlarmDisposePageQry qry) { public PageResponse<AlarmRecordCO> todoList(@RequestBody AppAlarmDisposePageQry qry) {
// 自动填充当前用户ID qry.setStatus(20);
qry.setCurrentUserId(AuthContext.getUserId());
return alarmDisposeService.appTodoList(qry); return alarmDisposeService.appTodoList(qry);
} }
@ApiOperation("手机端报警详情") @ApiOperation("手机端报警详情")
@GetMapping("/{id}") @GetMapping("/{id}")
public SingleResponse<AlarmDisposeCO> info(@PathVariable("id") Long id) { public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) {
return alarmDisposeService.appInfo(id); return alarmDisposeService.appInfo(id);
} }
@ApiOperation("手机端提交处置结果") @ApiOperation("手机端提交处置结果")
@PostMapping("/submit") @PostMapping("/submit")
public SingleResponse submit(@Validated @RequestBody AppAlarmDisposeSubmitCmd cmd) { public SingleResponse submit(@Validated @RequestBody AppAlarmDisposeSubmitCmd cmd) {
// 自动填充租户ID和组织ID
if (cmd.getTenantId() == null) {
cmd.setTenantId(AuthContext.getTenantId());
}
if (cmd.getOrgId() == null) {
cmd.setOrgId(AuthContext.getOrgId());
}
return alarmDisposeService.appSubmit(cmd); return alarmDisposeService.appSubmit(cmd);
} }
} }

View File

@ -3,6 +3,7 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.api.AlarmRecordServiceI; import com.zcloud.api.AlarmRecordServiceI;
import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmRecordPageQry; import com.zcloud.dto.AppAlarmRecordPageQry;
import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.dto.clientobject.AlarmRecordCO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -20,12 +21,13 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
public class AppAlarmRecordController { public class AppAlarmRecordController {
private final AlarmRecordServiceI alarmRecordService; private final AlarmRecordServiceI alarmRecordService;
@ApiOperation("处置记录列表(按当前用户过滤)") @ApiOperation("处置记录列表(按当前用户过滤)")
@PostMapping("/list") @PostMapping("/list")
public PageResponse<AlarmRecordCO> list(@RequestBody AppAlarmRecordPageQry qry) { public PageResponse<AlarmRecordCO> list(@RequestBody AppAlarmDisposePageQry qry) {
qry.setStatus(30);
return alarmRecordService.appList(qry); return alarmRecordService.appList(qry);
} }
@ -34,4 +36,4 @@ public class AppAlarmRecordController {
public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) { public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) {
return alarmRecordService.appInfo(id); return alarmRecordService.appInfo(id);
} }
} }

View File

@ -28,21 +28,21 @@ public class SensorTypeController {
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("/save") @PostMapping("/save")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-add')") // @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-add')")
public SingleResponse<String> save(@Validated @RequestBody SensorTypeAddCmd cmd) { public SingleResponse<String> save(@Validated @RequestBody SensorTypeAddCmd cmd) {
return sensorTypeService.add(cmd); return sensorTypeService.add(cmd);
} }
@ApiOperation("分页列表") @ApiOperation("分页列表")
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-list')") // @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-list')")
public PageResponse<SensorTypeCO> list(@RequestBody SensorTypePageQry qry) { public PageResponse<SensorTypeCO> list(@RequestBody SensorTypePageQry qry) {
return sensorTypeService.listPage(qry); return sensorTypeService.listPage(qry);
} }
@ApiOperation("修改") @ApiOperation("修改")
@PutMapping("/edit") @PutMapping("/edit")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-edit')") // @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-edit')")
public SingleResponse edit(@Validated @RequestBody SensorTypeUpdateCmd cmd) { public SingleResponse edit(@Validated @RequestBody SensorTypeUpdateCmd cmd) {
sensorTypeService.edit(cmd); sensorTypeService.edit(cmd);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
@ -50,7 +50,7 @@ public class SensorTypeController {
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-delete')") // @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-delete')")
public SingleResponse remove(@PathVariable("id") Long id) { public SingleResponse remove(@PathVariable("id") Long id) {
sensorTypeService.remove(id); sensorTypeService.remove(id);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();

View File

@ -7,6 +7,7 @@ import com.zcloud.domain.gateway.AlarmDisposeLogGateway;
import com.zcloud.domain.model.AlarmRecordE; import com.zcloud.domain.model.AlarmRecordE;
import com.zcloud.domain.model.AlarmDisposeLogE; import com.zcloud.domain.model.AlarmDisposeLogE;
import com.zcloud.dto.AlarmDisposeAssignCmd; import com.zcloud.dto.AlarmDisposeAssignCmd;
import com.zcloud.gbscommon.utils.DateUtil;
import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.gbscommon.utils.UuidUtil; import com.zcloud.gbscommon.utils.UuidUtil;
import com.zcloud.service.AlarmMessageService; import com.zcloud.service.AlarmMessageService;
@ -42,12 +43,12 @@ public class AlarmDisposeAssignExe {
if (Tools.isEmpty(alarmRecord)) { if (Tools.isEmpty(alarmRecord)) {
throw new BizException("报警记录不存在"); throw new BizException("报警记录不存在");
} }
// 检查状态:只有待研判(10)状态可以分配 // 检查状态:只有待研判(10)状态可以分配
if (alarmRecord.getStatus() != 10) { if (alarmRecord.getStatus() != 10) {
throw new BizException("该报警已分配或已处置,无法再次分配"); throw new BizException("该报警已分配或已处置,无法再次分配");
} }
// 更新报警记录状态和处置人 // 更新报警记录状态和处置人
AlarmRecordE updateEntity = new AlarmRecordE(); AlarmRecordE updateEntity = new AlarmRecordE();
BeanUtils.copyProperties(cmd, updateEntity); BeanUtils.copyProperties(cmd, updateEntity);
@ -55,19 +56,19 @@ public class AlarmDisposeAssignExe {
updateEntity.setStatus(20); // 待处置 updateEntity.setStatus(20); // 待处置
updateEntity.setManagerId(cmd.getDisposeUserId()); updateEntity.setManagerId(cmd.getDisposeUserId());
updateEntity.setDisposeUserId(cmd.getDisposeUserId()); updateEntity.setDisposeUserId(cmd.getDisposeUserId());
updateEntity.setAssignTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); updateEntity.setAssignTime(LocalDateTime.now());
if (StrUtil.isNotBlank(cmd.getAlarmLevel())) { if (StrUtil.isNotBlank(cmd.getAlarmLevel())) {
updateEntity.setAlarmLevel(cmd.getAlarmLevel()); updateEntity.setAlarmLevel(cmd.getAlarmLevel());
} }
if (StrUtil.isNotBlank(cmd.getAlarmType())) { if (StrUtil.isNotBlank(cmd.getAlarmType())) {
updateEntity.setAlarmType(cmd.getAlarmType()); updateEntity.setAlarmType(cmd.getAlarmType());
} }
Boolean res = alarmRecordGateway.update(updateEntity); Boolean res = alarmRecordGateway.update(updateEntity);
if (!res) { if (!res) {
throw new BizException("分配失败"); throw new BizException("分配失败");
} }
// 记录处置日志 // 记录处置日志
AlarmDisposeLogE log = new AlarmDisposeLogE(); AlarmDisposeLogE log = new AlarmDisposeLogE();
log.setAlarmDisposalLogId(UuidUtil.get32UUID()); log.setAlarmDisposalLogId(UuidUtil.get32UUID());
@ -78,20 +79,20 @@ public class AlarmDisposeAssignExe {
log.setAfterStatus(20); log.setAfterStatus(20);
log.setOperatorId(cmd.getDisposeUserId()); log.setOperatorId(cmd.getDisposeUserId());
log.setActionDesc("手动分配处置"); log.setActionDesc("手动分配处置");
log.setActionTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); log.setActionTime(LocalDateTime.now());
log.setTenantId(cmd.getTenantId()); log.setTenantId(cmd.getTenantId());
log.setOrgId(cmd.getOrgId()); log.setOrgId(cmd.getOrgId());
log.setDeleteEnum("FALSE"); log.setDeleteEnum("FALSE");
alarmDisposeLogGateway.add(log); alarmDisposeLogGateway.add(log);
// 发送报警处置推送消息给处置人 // 发送报警处置推送消息给处置人
// 更新后的报警记录包含分配时间和处置说明 // 更新后的报警记录包含分配时间和处置说明
alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId()); alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId());
// 新增处置人待办 // 新增处置人待办
alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId()); alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
// 完成负责人待办(原来负责人是 alarmRecord.getManagerId() // 完成负责人待办(原来负责人是 alarmRecord.getManagerId()
alarmTodoService.completeTodo(cmd.getId()); alarmTodoService.completeTodo(cmd.getId());
} }

View File

@ -40,33 +40,33 @@ public class AlarmDisposeBatchAssignExe {
if (Tools.isEmpty(ids)) { if (Tools.isEmpty(ids)) {
throw new BizException("请选择要分配的报警记录"); throw new BizException("请选择要分配的报警记录");
} }
String assignTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String assignTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
for (Long id : ids) { for (Long id : ids) {
// 查询报警记录 // 查询报警记录
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id); AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
if (Tools.isEmpty(alarmRecord)) { if (Tools.isEmpty(alarmRecord)) {
continue; // 跳过不存在的记录 continue; // 跳过不存在的记录
} }
// 检查状态:只有待研判(10)状态可以分配 // 检查状态:只有待研判(10)状态可以分配
if (alarmRecord.getStatus() != 10) { if (alarmRecord.getStatus() != 10) {
continue; // 跳过非待研判状态的记录 continue; // 跳过非待研判状态的记录
} }
// 更新报警记录状态和处置人 // 更新报警记录状态和处置人
AlarmRecordE updateEntity = new AlarmRecordE(); AlarmRecordE updateEntity = new AlarmRecordE();
updateEntity.setId(id); updateEntity.setId(id);
updateEntity.setStatus(20); // 待处置 updateEntity.setStatus(20); // 待处置
updateEntity.setManagerId(cmd.getDisposeUserId()); updateEntity.setManagerId(cmd.getDisposeUserId());
updateEntity.setDisposeUserId(cmd.getDisposeUserId()); updateEntity.setDisposeUserId(cmd.getDisposeUserId());
updateEntity.setAssignTime(assignTime); // updateEntity.setAssignTime(assignTime);
updateEntity.setTenantId(cmd.getTenantId()); updateEntity.setTenantId(cmd.getTenantId());
updateEntity.setOrgId(cmd.getOrgId()); updateEntity.setOrgId(cmd.getOrgId());
alarmRecordGateway.update(updateEntity); alarmRecordGateway.update(updateEntity);
// 记录处置日志 // 记录处置日志
AlarmDisposeLogE log = new AlarmDisposeLogE(); AlarmDisposeLogE log = new AlarmDisposeLogE();
log.setAlarmDisposalLogId(UuidUtil.get32UUID()); log.setAlarmDisposalLogId(UuidUtil.get32UUID());
@ -77,16 +77,16 @@ public class AlarmDisposeBatchAssignExe {
log.setAfterStatus(20); log.setAfterStatus(20);
log.setOperatorId(cmd.getDisposeUserId()); log.setOperatorId(cmd.getDisposeUserId());
log.setActionDesc("批量分配处置"); log.setActionDesc("批量分配处置");
log.setActionTime(assignTime); // log.setActionTime(assignTime);
log.setTenantId(cmd.getTenantId()); log.setTenantId(cmd.getTenantId());
log.setOrgId(cmd.getOrgId()); log.setOrgId(cmd.getOrgId());
log.setDeleteEnum("FALSE"); log.setDeleteEnum("FALSE");
alarmDisposeLogGateway.add(log); alarmDisposeLogGateway.add(log);
// 发送报警处置推送消息给处置人 // 发送报警处置推送消息给处置人
alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId()); alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId());
// 新增处置人待办 // 新增处置人待办
alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId()); alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
} }

View File

@ -39,31 +39,31 @@ public class AlarmDisposeInvalidExe {
if (Tools.isEmpty(alarmRecord)) { if (Tools.isEmpty(alarmRecord)) {
throw new BizException("报警记录不存在"); throw new BizException("报警记录不存在");
} }
// 检查状态:只有待研判(10)或待处置(20)状态可以标记为无效 // 检查状态:只有待研判(10)或待处置(20)状态可以标记为无效
if (alarmRecord.getStatus() != 10 && alarmRecord.getStatus() != 20) { if (alarmRecord.getStatus() != 10 && alarmRecord.getStatus() != 20) {
throw new BizException("该报警已处置或已消警,无法标记为无效"); throw new BizException("该报警已处置或已消警,无法标记为无效");
} }
Integer beforeStatus = alarmRecord.getStatus(); Integer beforeStatus = alarmRecord.getStatus();
// 更新报警记录状态 // 更新报警记录状态
AlarmRecordE updateEntity = new AlarmRecordE(); AlarmRecordE updateEntity = new AlarmRecordE();
updateEntity.setId(cmd.getId()); updateEntity.setId(cmd.getId());
updateEntity.setStatus(40); // 误报 updateEntity.setStatus(40); // 误报
updateEntity.setDisposeTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); updateEntity.setDisposeTime(LocalDateTime.now());
updateEntity.setDisposeResult("误报"); updateEntity.setDisposeResult("误报");
if (StrUtil.isNotBlank(cmd.getInvalidReason())) { if (StrUtil.isNotBlank(cmd.getInvalidReason())) {
updateEntity.setDisposeRemark(cmd.getInvalidReason()); updateEntity.setDisposeRemark(cmd.getInvalidReason());
} }
updateEntity.setTenantId(cmd.getTenantId()); updateEntity.setTenantId(cmd.getTenantId());
updateEntity.setOrgId(cmd.getOrgId()); updateEntity.setOrgId(cmd.getOrgId());
Boolean res = alarmRecordGateway.update(updateEntity); Boolean res = alarmRecordGateway.update(updateEntity);
if (!res) { if (!res) {
throw new BizException("标记无效失败"); throw new BizException("标记无效失败");
} }
// 记录处置日志 // 记录处置日志
AlarmDisposeLogE log = new AlarmDisposeLogE(); AlarmDisposeLogE log = new AlarmDisposeLogE();
log.setAlarmDisposalLogId(UuidUtil.get32UUID()); log.setAlarmDisposalLogId(UuidUtil.get32UUID());
@ -76,14 +76,14 @@ public class AlarmDisposeInvalidExe {
if (StrUtil.isNotBlank(cmd.getInvalidReason())) { if (StrUtil.isNotBlank(cmd.getInvalidReason())) {
log.setResultText(cmd.getInvalidReason()); log.setResultText(cmd.getInvalidReason());
} }
log.setActionTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); log.setActionTime(LocalDateTime.now());
log.setTenantId(cmd.getTenantId()); log.setTenantId(cmd.getTenantId());
log.setOrgId(cmd.getOrgId()); log.setOrgId(cmd.getOrgId());
log.setDeleteEnum("FALSE"); log.setDeleteEnum("FALSE");
alarmDisposeLogGateway.add(log); alarmDisposeLogGateway.add(log);
// 删除待办(误报时删除所有相关待办) // 删除待办(误报时删除所有相关待办)
alarmTodoService.deleteTodo(cmd.getId()); alarmTodoService.deleteTodo(cmd.getId());
} }
} }

View File

@ -1,5 +1,6 @@
package com.zcloud.command; package com.zcloud.command;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.domain.gateway.AlarmRecordGateway; import com.zcloud.domain.gateway.AlarmRecordGateway;
@ -29,83 +30,29 @@ import java.time.format.DateTimeFormatter;
public class AppAlarmDisposeSubmitExe { public class AppAlarmDisposeSubmitExe {
private final AlarmRecordGateway alarmRecordGateway; private final AlarmRecordGateway alarmRecordGateway;
private final AlarmDisposeLogGateway alarmDisposeLogGateway;
private final AlarmTodoService alarmTodoService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void execute(AppAlarmDisposeSubmitCmd cmd) { public void execute(AppAlarmDisposeSubmitCmd cmd) {
// 查询报警记录 // 查询报警记录
AlarmRecordE alarmRecord = alarmRecordGateway.getById(cmd.getAlarmId()); AlarmRecordE alarmRecord = alarmRecordGateway.getById(cmd.getId());
if (Tools.isEmpty(alarmRecord)) { if (Tools.isEmpty(alarmRecord)) {
throw new BizException("报警记录不存在"); throw new BizException("报警记录不存在");
} }
// 检查状态:只有待处置(20)状态可以提交处置 // 检查状态:只有待处置(20)状态可以提交处置
if (alarmRecord.getStatus() != 20) { if (alarmRecord.getStatus() != 20) {
throw new BizException("该报警已处置或状态异常,无法提交处置结果"); throw new BizException("该报警已处置或状态异常,无法提交处置结果");
} }
// 确定目标状态
Integer afterStatus;
String actionDesc;
if ("误报".equals(cmd.getDisposeResult())) {
afterStatus = 40; // 误报
actionDesc = "手机端处置:误报判定";
} else {
afterStatus = 30; // 已消警
actionDesc = "手机端处置:已消警";
}
// 更新报警记录 // 更新报警记录
AlarmRecordE updateEntity = new AlarmRecordE(); AlarmRecordE updateEntity = new AlarmRecordE();
updateEntity.setId(cmd.getAlarmId()); BeanUtil.copyProperties(cmd, updateEntity);
updateEntity.setStatus(afterStatus); updateEntity.init();
updateEntity.setDisposeTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
updateEntity.setDisposeResult(cmd.getDisposeResult());
if (StrUtil.isNotBlank(cmd.getDisposeRemark())) {
updateEntity.setDisposeRemark(cmd.getDisposeRemark());
}
if (StrUtil.isNotBlank(cmd.getPictureUrls())) {
updateEntity.setPictureUrls(cmd.getPictureUrls());
}
updateEntity.setTenantId(cmd.getTenantId());
updateEntity.setOrgId(cmd.getOrgId());
Boolean res = alarmRecordGateway.update(updateEntity); Boolean res = alarmRecordGateway.update(updateEntity);
if (!res) { if (!res) {
throw new BizException("处置提交失败"); throw new BizException("处置提交失败");
} }
// 记录处置日志
AlarmDisposeLogE log = new AlarmDisposeLogE();
log.setAlarmDisposalLogId(UuidUtil.get32UUID());
log.setAlarmId(cmd.getAlarmId());
log.setAlarmNo(alarmRecord.getAlarmNo());
log.setActionType("DISPOSE");
log.setBeforeStatus(20);
log.setAfterStatus(afterStatus);
log.setActionDesc(actionDesc);
log.setResultText(cmd.getDisposeResult());
if (StrUtil.isNotBlank(cmd.getDisposeRemark())) {
log.setResultText(cmd.getDisposeRemark());
}
if (StrUtil.isNotBlank(cmd.getPictureUrls())) {
log.setPictureUrls(cmd.getPictureUrls());
}
log.setActionTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
log.setTenantId(cmd.getTenantId());
log.setOrgId(cmd.getOrgId());
log.setDeleteEnum("FALSE");
alarmDisposeLogGateway.add(log);
// 根据处置结果处理待办
if ("误报".equals(cmd.getDisposeResult())) {
// 误报时删除待办
alarmTodoService.deleteTodo(cmd.getAlarmId());
} else {
// 已消警时完成待办
alarmTodoService.completeTodo(cmd.getAlarmId());
}
} }
} }

View File

@ -30,24 +30,26 @@ public class BindSensorExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void execute(BindSensorCmd cmd) { public void execute(BindSensorCmd cmd) {
// 检查传感器是否已绑定到其他区域 // 检查传感器是否已绑定到其他区域
Boolean isBound = regionSensorRelGateway.isSensorBound(cmd.getSensorId()); Boolean isBound = regionSensorRelGateway.isSensorBound(cmd.getSensorDeviceId());
if (isBound) { if (isBound) {
throw new BizException("该传感器已绑定到其他区域,请先解绑"); throw new BizException("该传感器已绑定到其他区域,请先解绑");
} }
// 检查区域配置是否存在 // 检查区域配置是否存在
DeviceRegionE region = deviceRegionGateway.getById(cmd.getRegionConfigId()); DeviceRegionE region = deviceRegionGateway.getById(cmd.getRegionConfigId());
if (Tools.isEmpty(region)) { if (Tools.isEmpty(region)) {
throw new BizException("区域配置不存在"); throw new BizException("区域配置不存在");
} }
RegionSensorRelE entity = new RegionSensorRelE(); RegionSensorRelE entity = new RegionSensorRelE();
BeanUtils.copyProperties(cmd, entity); entity.setRegionConfigId(String.valueOf(cmd.getRegionConfigId()));
entity.setSensorDeviceId(cmd.getSensorDeviceId());
entity.setSensorCode(cmd.getSensorCode());
entity.setRegionSensorRelId(UuidUtil.get32UUID()); entity.setRegionSensorRelId(UuidUtil.get32UUID());
entity.setFireRegionId(region.getFireRegionId()); entity.setFireRegionId(cmd.getFireRegionId());
// 设置默认值 // 设置默认值
entity.setDeleteEnum("FALSE"); entity.setDeleteEnum("FALSE");
Long res = regionSensorRelGateway.add(entity); Long res = regionSensorRelGateway.add(entity);
if (Tools.isEmpty(res)) { if (Tools.isEmpty(res)) {
throw new BizException("绑定失败"); throw new BizException("绑定失败");

View File

@ -28,21 +28,22 @@ public class DeviceRegionAddExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public SingleResponse<String> execute(DeviceRegionAddCmd cmd) { public SingleResponse<String> execute(DeviceRegionAddCmd cmd) {
// 检查消防区域是否已存在配置 // 检查消防区域是否已存在配置
DeviceRegionE existingRegion = deviceRegionGateway.getByFireRegionId(cmd.getFireRegionId()); DeviceRegionE existingRegion = deviceRegionGateway.getByFireRegionId(String.valueOf(cmd.getFireRegionId()));
if (existingRegion != null) { if (existingRegion != null) {
throw new BizException("该消防区域已存在配置,请直接修改"); throw new BizException("该消防区域已存在配置,请直接修改");
} }
DeviceRegionE entity = new DeviceRegionE(); DeviceRegionE entity = new DeviceRegionE();
BeanUtils.copyProperties(cmd, entity); BeanUtils.copyProperties(cmd, entity);
entity.setRegionConfigId(UuidUtil.get32UUID()); entity.setRegionConfigId(UuidUtil.get32UUID());
entity.setFireRegionId(String.valueOf(cmd.getFireRegionId()));
// 设置默认值 // 设置默认值
entity.setDeleteEnum("FALSE"); entity.setDeleteEnum("FALSE");
// 设置状态默认值 // 设置状态默认值
if (entity.getStatus() == null) { if (entity.getStatus() == null) {
entity.setStatus(1); entity.setStatus(1);
} }
Long res = deviceRegionGateway.add(entity); Long res = deviceRegionGateway.add(entity);
if (Tools.isEmpty(res)) { if (Tools.isEmpty(res)) {
throw new BizException("保存失败"); throw new BizException("保存失败");

View File

@ -22,26 +22,26 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor @RequiredArgsConstructor
@RefreshScope @RefreshScope
public class SensorDeviceRemoveExe { public class SensorDeviceRemoveExe {
private final SensorDeviceGateway sensorDeviceGateway; private final SensorDeviceGateway sensorDeviceGateway;
private final RegionSensorRelRepository regionSensorRelRepository; private final RegionSensorRelRepository regionSensorRelRepository;
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) { public boolean execute(Long id) {
LambdaQueryWrapper<RegionSensorRelDO> relWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<RegionSensorRelDO> relWrapper = new LambdaQueryWrapper<>();
relWrapper.eq(RegionSensorRelDO::getSensorId, id) // relWrapper.eq(RegionSensorRelDO::getSensorId, id)
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); // .eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
if (regionSensorRelRepository.count(relWrapper) > 0) { // if (regionSensorRelRepository.count(relWrapper) > 0) {
throw new BizException("该传感器已被使用,不可删除"); // throw new BizException("该传感器已被使用,不可删除");
} // }
//
LambdaQueryWrapper<AlarmRecordDO> alarmWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<AlarmRecordDO> alarmWrapper = new LambdaQueryWrapper<>();
alarmWrapper.eq(AlarmRecordDO::getSensorId, id) // alarmWrapper.eq(AlarmRecordDO::getSensorId, id)
.eq(AlarmRecordDO::getDeleteEnum, "FALSE"); // .eq(AlarmRecordDO::getDeleteEnum, "FALSE");
if (alarmRecordRepository.count(alarmWrapper) > 0) { // if (alarmRecordRepository.count(alarmWrapper) > 0) {
throw new BizException("该传感器已被使用,不可删除"); // throw new BizException("该传感器已被使用,不可删除");
} // }
boolean res = sensorDeviceGateway.deleteById(id); boolean res = sensorDeviceGateway.deleteById(id);
if (!res) { if (!res) {

View File

@ -25,12 +25,12 @@ public class UnbindSensorExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void execute(UnbindSensorCmd cmd) { public void execute(UnbindSensorCmd cmd) {
// 检查传感器是否已绑定 // 检查传感器是否已绑定
RegionSensorRelE rel = regionSensorRelGateway.getBySensorId(cmd.getSensorId()); RegionSensorRelE rel = regionSensorRelGateway.getBySensorId(cmd.getSensorDeviceId());
if (Tools.isEmpty(rel)) { if (Tools.isEmpty(rel)) {
throw new BizException("该传感器未绑定到任何区域"); throw new BizException("该传感器未绑定到任何区域");
} }
Boolean res = regionSensorRelGateway.deleteBySensorId(cmd.getSensorId()); Boolean res = regionSensorRelGateway.deleteBySensorId(cmd.getSensorDeviceId());
if (!res) { if (!res) {
throw new BizException("解绑失败"); throw new BizException("解绑失败");
} }

View File

@ -0,0 +1,25 @@
package com.zcloud.command.convertor.alarmRecord;
import com.zcloud.dto.clientobject.AlarmRecordCO;
import com.zcloud.persistence.dataobject.AlarmRecordDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author zhangyue
* @Date 2026-03-20 16:16:04
*/
@Mapper(componentModel = "spring")
public interface AlarmRecordCoConvertor {
/**
* @param alarmRecordDOs
* @return
*/
List<AlarmRecordCO> converDOsToCOs(List<AlarmRecordDO> alarmRecordDOs);
}

View File

@ -34,7 +34,7 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AlarmDisposeQueryExe { public class AlarmDisposeQueryExe {
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
@ -46,7 +46,7 @@ public class AlarmDisposeQueryExe {
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class); List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<AlarmDisposeCO> getById(Long id) { public SingleResponse<AlarmDisposeCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.detailView(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null) { if (d == null) {
@ -63,8 +63,8 @@ public class AlarmDisposeQueryExe {
return; return;
} }
Set<Long> sensorIds = alarmDisposeCOs.stream() Set<String> sensorIds = alarmDisposeCOs.stream()
.map(AlarmDisposeCO::getSensorId) .map(AlarmDisposeCO::getSensorDeviceId)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(HashSet::new));
Set<Long> disposeUserIds = alarmDisposeCOs.stream() Set<Long> disposeUserIds = alarmDisposeCOs.stream()
@ -90,7 +90,7 @@ public class AlarmDisposeQueryExe {
} }
for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) { for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) {
alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorId())); alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorDeviceId()));
alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId())); alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId()));
} }
} }

View File

@ -34,7 +34,7 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AlarmRecordQueryExe { public class AlarmRecordQueryExe {
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
@ -46,7 +46,7 @@ public class AlarmRecordQueryExe {
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class); List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<AlarmRecordCO> getById(Long id) { public SingleResponse<AlarmRecordCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.detailView(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null || "TRUE".equals(d.getDeleteEnum())) { if (d == null || "TRUE".equals(d.getDeleteEnum())) {
@ -63,8 +63,8 @@ public class AlarmRecordQueryExe {
return; return;
} }
Set<Long> sensorIds = alarmRecordCOs.stream() Set<String> sensorIds = alarmRecordCOs.stream()
.map(AlarmRecordCO::getSensorId) .map(AlarmRecordCO::getSensorDeviceId)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(HashSet::new));
Set<Long> disposeUserIds = alarmRecordCOs.stream() Set<Long> disposeUserIds = alarmRecordCOs.stream()
@ -90,7 +90,7 @@ public class AlarmRecordQueryExe {
} }
for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) { for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) {
alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorId())); alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorDeviceId()));
alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId())); alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId()));
} }
} }

View File

@ -6,8 +6,10 @@ import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.command.convertor.alarmRecord.AlarmRecordCoConvertor;
import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.dto.clientobject.AlarmRecordCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.persistence.dataobject.AlarmRecordDO; import com.zcloud.persistence.dataobject.AlarmRecordDO;
import com.zcloud.persistence.dataobject.SensorDeviceDO; import com.zcloud.persistence.dataobject.SensorDeviceDO;
@ -34,32 +36,34 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AppAlarmDisposeQueryExe { public class AppAlarmDisposeQueryExe {
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
private final AlarmRecordCoConvertor alarmRecordCoConvertor;
/** /**
* *
*/ */
public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) { public PageResponse<AlarmRecordCO> execute(AppAlarmDisposePageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId()); params.put("tenantId", AuthContext.getTenantId());
params.put("disposeUserId", AuthContext.getUserId());
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(params); PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(params);
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class); List<AlarmRecordCO> alarmRecordCOS = alarmRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmRecordCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
/** /**
* *
*/ */
public SingleResponse<AlarmDisposeCO> getById(Long id) { public SingleResponse<AlarmRecordCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.detailView(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null) { if (d == null) {
return SingleResponse.buildFailure("报警记录不存在"); return SingleResponse.buildFailure("报警记录不存在");
} }
AlarmDisposeCO co = new AlarmDisposeCO(); AlarmRecordCO co = new AlarmRecordCO();
BeanUtils.copyProperties(d, co); BeanUtils.copyProperties(d, co);
return SingleResponse.of(co); return SingleResponse.of(co);
} }
@ -69,8 +73,8 @@ public class AppAlarmDisposeQueryExe {
return; return;
} }
Set<Long> sensorIds = alarmDisposeCOs.stream() Set<String> sensorIds = alarmDisposeCOs.stream()
.map(AlarmDisposeCO::getSensorId) .map(AlarmDisposeCO::getSensorDeviceId)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(HashSet::new));
Set<Long> disposeUserIds = alarmDisposeCOs.stream() Set<Long> disposeUserIds = alarmDisposeCOs.stream()
@ -96,7 +100,7 @@ public class AppAlarmDisposeQueryExe {
} }
for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) { for (AlarmDisposeCO alarmDisposeCO : alarmDisposeCOs) {
alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorId())); alarmDisposeCO.setSensorName(sensorNameMap.get(alarmDisposeCO.getSensorDeviceId()));
alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId())); alarmDisposeCO.setDisposeUserName(userNameMap.get(alarmDisposeCO.getDisposeUserId()));
} }
} }

View File

@ -34,7 +34,7 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AppAlarmRecordQueryExe { public class AppAlarmRecordQueryExe {
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
@ -46,7 +46,7 @@ public class AppAlarmRecordQueryExe {
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class); List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<AlarmRecordCO> getById(Long id) { public SingleResponse<AlarmRecordCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.detailView(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null || "TRUE".equals(d.getDeleteEnum())) { if (d == null || "TRUE".equals(d.getDeleteEnum())) {
@ -69,8 +69,8 @@ public class AppAlarmRecordQueryExe {
return; return;
} }
Set<Long> sensorIds = alarmRecordCOs.stream() Set<String> sensorIds = alarmRecordCOs.stream()
.map(AlarmRecordCO::getSensorId) .map(AlarmRecordCO::getSensorDeviceId)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(HashSet::new));
Set<Long> disposeUserIds = alarmRecordCOs.stream() Set<Long> disposeUserIds = alarmRecordCOs.stream()
@ -96,7 +96,7 @@ public class AppAlarmRecordQueryExe {
} }
for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) { for (AlarmRecordCO alarmRecordCO : alarmRecordCOs) {
alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorId())); alarmRecordCO.setSensorName(sensorNameMap.get(alarmRecordCO.getSensorDeviceId()));
alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId())); alarmRecordCO.setDisposeUserName(userNameMap.get(alarmRecordCO.getDisposeUserId()));
} }
} }

View File

@ -38,7 +38,7 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class DeviceRegionQueryExe { public class DeviceRegionQueryExe {
private final DeviceRegionRepository deviceRegionRepository; private final DeviceRegionRepository deviceRegionRepository;
private final RegionSensorRelRepository regionSensorRelRepository; private final RegionSensorRelRepository regionSensorRelRepository;
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
@ -52,7 +52,7 @@ public class DeviceRegionQueryExe {
List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class); List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class);
return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<DeviceRegionCO> getById(Long id) { public SingleResponse<DeviceRegionCO> getById(Long id) {
DeviceRegionDO d = deviceRegionRepository.getById(id); DeviceRegionDO d = deviceRegionRepository.getById(id);
if (d == null || "TRUE".equals(d.getDeleteEnum())) { if (d == null || "TRUE".equals(d.getDeleteEnum())) {
@ -84,13 +84,13 @@ public class DeviceRegionQueryExe {
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); .eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
List<RegionSensorRelDO> relList = regionSensorRelRepository.list(relWrapper); List<RegionSensorRelDO> relList = regionSensorRelRepository.list(relWrapper);
Map<Long, List<RegionSensorRelDO>> relMap = relList.stream() Map<String, List<RegionSensorRelDO>> relMap = relList.stream()
.collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId)); .collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId));
Map<Long, SensorDeviceCO> sensorMap = Collections.emptyMap(); Map<Long, SensorDeviceCO> sensorMap = Collections.emptyMap();
if (includeBoundSensors && !relList.isEmpty()) { if (includeBoundSensors && !relList.isEmpty()) {
Set<Long> sensorIds = relList.stream() Set<String> sensorIds = relList.stream()
.map(RegionSensorRelDO::getSensorId) .map(RegionSensorRelDO::getSensorDeviceId)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
if (!sensorIds.isEmpty()) { if (!sensorIds.isEmpty()) {
@ -111,7 +111,7 @@ public class DeviceRegionQueryExe {
} }
List<SensorDeviceCO> boundSensors = currentRelList.stream() List<SensorDeviceCO> boundSensors = currentRelList.stream()
.map(RegionSensorRelDO::getSensorId) .map(RegionSensorRelDO::getSensorDeviceId)
.map(sensorMap::get) .map(sensorMap::get)
.filter(ObjectUtil::isNotEmpty) .filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -55,15 +55,15 @@ public class DcsAlarmEventConsumer {
} }
// 2. 查找传感器绑定的区域 // 2. 查找传感器绑定的区域
RegionSensorRelE regionSensorRel = regionSensorRelGateway.getBySensorId(sensorDevice.getId()); RegionSensorRelE regionSensorRel = regionSensorRelGateway.getBySensorId(sensorDevice.getSensorDeviceId());
DeviceRegionE deviceRegion = null; DeviceRegionE deviceRegion = null;
if (regionSensorRel != null && regionSensorRel.getFireRegionId() != null) { if (regionSensorRel != null && regionSensorRel.getFireRegionId() != null) {
deviceRegion = deviceRegionGateway.getByFireRegionId(regionSensorRel.getFireRegionId()); deviceRegion = deviceRegionGateway.getByFireRegionId(regionSensorRel.getFireRegionId());
} }
if (deviceRegion == null) { if (deviceRegion == null) {
log.warn("未找到传感器绑定的区域配置: sensorCode={}, sensorId={}", log.warn("未找到传感器绑定的区域配置: sensorCode={}, sensorDeviceId={}",
event.getSensorCode(), sensorDevice.getId()); event.getSensorCode(), sensorDevice.getSensorDeviceId());
} }
// 3. 生成报警记录 // 3. 生成报警记录
@ -110,13 +110,13 @@ public class DcsAlarmEventConsumer {
alarmRecord.setDeviceSourceDesc(event.getDeviceSourceDesc()); alarmRecord.setDeviceSourceDesc(event.getDeviceSourceDesc());
// 传感器信息 // 传感器信息
alarmRecord.setSensorId(sensorDevice.getId()); alarmRecord.setSensorDeviceId(sensorDevice.getSensorDeviceId());
alarmRecord.setSensorCode(event.getSensorCode()); alarmRecord.setSensorCode(event.getSensorCode());
alarmRecord.setUnitName(sensorDevice.getUnitName()); alarmRecord.setUnitName(sensorDevice.getUnitName());
// 区域信息(从传感器绑定关系获取) // 区域信息(从传感器绑定关系获取)
if (regionSensorRel != null && regionSensorRel.getFireRegionId() != null) { if (regionSensorRel != null && regionSensorRel.getFireRegionId() != null) {
alarmRecord.setFireRegionId(regionSensorRel.getFireRegionId()); alarmRecord.setFireRegionId(String.valueOf(regionSensorRel.getFireRegionId()));
} }
// 负责人信息(自动分配) // 负责人信息(自动分配)
@ -133,8 +133,10 @@ public class DcsAlarmEventConsumer {
alarmRecord.setAlarmDesc(event.getAlarmDesc()); alarmRecord.setAlarmDesc(event.getAlarmDesc());
// 报警时间 // 报警时间
alarmRecord.setAlarmTime(event.getAlarmTime()); if (event.getAlarmTime() != null) {
alarmRecord.setAssignTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); alarmRecord.setAlarmTime(LocalDateTime.parse(event.getAlarmTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
alarmRecord.setAssignTime(LocalDateTime.now());
// 状态10报警中-待研判) // 状态10报警中-待研判)
alarmRecord.setStatus(10); alarmRecord.setStatus(10);
@ -179,7 +181,7 @@ public class DcsAlarmEventConsumer {
disposeLog.setActionDesc("系统自动分配区域负责人"); disposeLog.setActionDesc("系统自动分配区域负责人");
// 操作时间 // 操作时间
disposeLog.setActionTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); disposeLog.setActionTime(LocalDateTime.now());
// 租户和组织 // 租户和组织
disposeLog.setTenantId(tenantId); disposeLog.setTenantId(tenantId);

View File

@ -56,9 +56,9 @@ public class ThresholdAlarmEventConsumer {
// 2. 查找区域配置 // 2. 查找区域配置
DeviceRegionE deviceRegion = null; DeviceRegionE deviceRegion = null;
if (event.getFireRegionId() != null) { if (event.getFireRegionId() != null) {
deviceRegion = deviceRegionGateway.getByFireRegionId(event.getFireRegionId()); deviceRegion = deviceRegionGateway.getByFireRegionId(String.valueOf(event.getFireRegionId()));
} }
if (deviceRegion == null) { if (deviceRegion == null) {
log.warn("未找到区域配置: fireRegionId={}", event.getFireRegionId()); log.warn("未找到区域配置: fireRegionId={}", event.getFireRegionId());
} }
@ -111,13 +111,13 @@ public class ThresholdAlarmEventConsumer {
alarmRecord.setDeviceSourceDesc(event.getDeviceSourceDesc()); alarmRecord.setDeviceSourceDesc(event.getDeviceSourceDesc());
// 传感器信息 // 传感器信息
alarmRecord.setSensorId(sensorDevice.getId()); alarmRecord.setSensorDeviceId(sensorDevice.getSensorDeviceId());
alarmRecord.setSensorCode(event.getSensorCode()); alarmRecord.setSensorCode(event.getSensorCode());
alarmRecord.setUnitName(sensorDevice.getUnitName()); alarmRecord.setUnitName(sensorDevice.getUnitName());
// 区域信息 // 区域信息
if (event.getFireRegionId() != null) { if (event.getFireRegionId() != null) {
alarmRecord.setFireRegionId(event.getFireRegionId()); alarmRecord.setFireRegionId(String.valueOf(event.getFireRegionId()));
} }
// 负责人信息(自动分配) // 负责人信息(自动分配)
@ -136,8 +136,10 @@ public class ThresholdAlarmEventConsumer {
alarmRecord.setCompareFlag(mapThresholdTypeToCompareFlag(event.getThresholdType())); alarmRecord.setCompareFlag(mapThresholdTypeToCompareFlag(event.getThresholdType()));
// 报警时间 // 报警时间
alarmRecord.setAlarmTime(event.getAlarmTime()); if (event.getAlarmTime() != null) {
alarmRecord.setAssignTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); alarmRecord.setAlarmTime(LocalDateTime.parse(event.getAlarmTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
alarmRecord.setAssignTime(LocalDateTime.now());
// 状态10报警中-待研判) // 状态10报警中-待研判)
alarmRecord.setStatus(10); alarmRecord.setStatus(10);
@ -179,7 +181,7 @@ public class ThresholdAlarmEventConsumer {
disposeLog.setActionDesc("系统自动分配区域负责人"); disposeLog.setActionDesc("系统自动分配区域负责人");
// 操作时间 // 操作时间
disposeLog.setActionTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); disposeLog.setActionTime(LocalDateTime.now());
// 租户和组织 // 租户和组织
disposeLog.setTenantId(tenantId); disposeLog.setTenantId(tenantId);

View File

@ -16,13 +16,15 @@ import com.zcloud.dto.AlarmDisposePageQry;
import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmDisposeSubmitCmd; import com.zcloud.dto.AppAlarmDisposeSubmitCmd;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.dto.clientobject.AlarmRecordCO;
import com.zcloud.persistence.dataobject.AlarmRecordDO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@AllArgsConstructor @AllArgsConstructor
public class AlarmDisposeServiceImpl implements AlarmDisposeServiceI { public class AlarmDisposeServiceImpl implements AlarmDisposeServiceI {
private final AlarmDisposeAssignExe alarmDisposeAssignExe; private final AlarmDisposeAssignExe alarmDisposeAssignExe;
private final AlarmDisposeBatchAssignExe alarmDisposeBatchAssignExe; private final AlarmDisposeBatchAssignExe alarmDisposeBatchAssignExe;
private final AlarmDisposeInvalidExe alarmDisposeInvalidExe; private final AlarmDisposeInvalidExe alarmDisposeInvalidExe;
@ -59,20 +61,20 @@ public class AlarmDisposeServiceImpl implements AlarmDisposeServiceI {
} }
// ==================== 手机端接口实现 ==================== // ==================== 手机端接口实现 ====================
@Override @Override
public PageResponse<AlarmDisposeCO> appTodoList(AppAlarmDisposePageQry qry) { public PageResponse<AlarmRecordCO> appTodoList(AppAlarmDisposePageQry qry) {
return appAlarmDisposeQueryExe.execute(qry); return appAlarmDisposeQueryExe.execute(qry);
} }
@Override @Override
public SingleResponse<AlarmDisposeCO> appInfo(Long id) { public SingleResponse<AlarmRecordCO> appInfo(Long id) {
return appAlarmDisposeQueryExe.getById(id); return appAlarmDisposeQueryExe.getById(id);
} }
@Override @Override
public SingleResponse appSubmit(AppAlarmDisposeSubmitCmd cmd) { public SingleResponse appSubmit(AppAlarmDisposeSubmitCmd cmd) {
appAlarmDisposeSubmitExe.execute(cmd); appAlarmDisposeSubmitExe.execute(cmd);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
} }

View File

@ -2,10 +2,13 @@ package com.zcloud.service;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.druid.sql.visitor.functions.If;
import com.zcloud.api.AlarmRecordServiceI; import com.zcloud.api.AlarmRecordServiceI;
import com.zcloud.command.query.AlarmRecordQueryExe; import com.zcloud.command.query.AlarmRecordQueryExe;
import com.zcloud.command.query.AppAlarmDisposeQueryExe;
import com.zcloud.command.query.AppAlarmRecordQueryExe; import com.zcloud.command.query.AppAlarmRecordQueryExe;
import com.zcloud.dto.AlarmRecordPageQry; import com.zcloud.dto.AlarmRecordPageQry;
import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmRecordPageQry; import com.zcloud.dto.AppAlarmRecordPageQry;
import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.dto.clientobject.AlarmRecordCO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -14,8 +17,9 @@ import org.springframework.stereotype.Service;
@Service @Service
@AllArgsConstructor @AllArgsConstructor
public class AlarmRecordServiceImpl implements AlarmRecordServiceI { public class AlarmRecordServiceImpl implements AlarmRecordServiceI {
private final AlarmRecordQueryExe alarmRecordQueryExe; private final AlarmRecordQueryExe alarmRecordQueryExe;
private final AppAlarmDisposeQueryExe appAlarmDisposeQueryExe;
private final AppAlarmRecordQueryExe appAlarmRecordQueryExe; private final AppAlarmRecordQueryExe appAlarmRecordQueryExe;
@Override @Override
@ -29,12 +33,12 @@ public class AlarmRecordServiceImpl implements AlarmRecordServiceI {
} }
@Override @Override
public PageResponse<AlarmRecordCO> appList(AppAlarmRecordPageQry qry) { public PageResponse<AlarmRecordCO> appList(AppAlarmDisposePageQry qry) {
return appAlarmRecordQueryExe.execute(qry); return appAlarmDisposeQueryExe.execute(qry);
} }
@Override @Override
public SingleResponse<AlarmRecordCO> appInfo(Long id) { public SingleResponse<AlarmRecordCO> appInfo(Long id) {
return appAlarmRecordQueryExe.getById(id); return appAlarmRecordQueryExe.getById(id);
} }
} }

View File

@ -9,6 +9,7 @@ import com.zcloud.dto.AlarmDisposePageQry;
import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmDisposeSubmitCmd; import com.zcloud.dto.AppAlarmDisposeSubmitCmd;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.dto.clientobject.AlarmRecordCO;
/** /**
* AlarmDisposeServiceI - * AlarmDisposeServiceI -
@ -53,25 +54,25 @@ public interface AlarmDisposeServiceI {
SingleResponse<AlarmDisposeCO> info(Long id); SingleResponse<AlarmDisposeCO> info(Long id);
// ==================== 手机端接口 ==================== // ==================== 手机端接口 ====================
/** /**
* *
* @param qry * @param qry
* @return * @return
*/ */
PageResponse<AlarmDisposeCO> appTodoList(AppAlarmDisposePageQry qry); PageResponse<AlarmRecordCO> appTodoList(AppAlarmDisposePageQry qry);
/** /**
* *
* @param id * @param id
* @return * @return
*/ */
SingleResponse<AlarmDisposeCO> appInfo(Long id); SingleResponse<AlarmRecordCO> appInfo(Long id);
/** /**
* *
* @param cmd * @param cmd
* @return * @return
*/ */
SingleResponse appSubmit(AppAlarmDisposeSubmitCmd cmd); SingleResponse appSubmit(AppAlarmDisposeSubmitCmd cmd);
} }

View File

@ -3,6 +3,7 @@ package com.zcloud.api;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.dto.AlarmRecordPageQry; import com.zcloud.dto.AlarmRecordPageQry;
import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.AppAlarmRecordPageQry; import com.zcloud.dto.AppAlarmRecordPageQry;
import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.dto.clientobject.AlarmRecordCO;
@ -32,7 +33,7 @@ public interface AlarmRecordServiceI {
* @param qry * @param qry
* @return * @return
*/ */
PageResponse<AlarmRecordCO> appList(AppAlarmRecordPageQry qry); PageResponse<AlarmRecordCO> appList(AppAlarmDisposePageQry qry);
/** /**
* *
@ -40,4 +41,4 @@ public interface AlarmRecordServiceI {
* @return * @return
*/ */
SingleResponse<AlarmRecordCO> appInfo(Long id); SingleResponse<AlarmRecordCO> appInfo(Long id);
} }

View File

@ -11,31 +11,36 @@ import lombok.Data;
*/ */
@Data @Data
public class AppAlarmDisposePageQry extends PageQuery { public class AppAlarmDisposePageQry extends PageQuery {
@ApiModelProperty(value = "报警编号") @ApiModelProperty(value = "报警编号")
private String alarmNo; private String alarmNo;
@ApiModelProperty(value = "报警来源") @ApiModelProperty(value = "报警来源")
private String alarmSource; private String alarmSource;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器编码")
private String sensorCode; private String sensorCode;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "传感器名称")
private String sensorName;
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private Long fireRegionId;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;
@ApiModelProperty(value = "报警类型") @ApiModelProperty(value = "报警类型")
private String alarmType; private String alarmType;
@ApiModelProperty(value = "报警时间开始") @ApiModelProperty(value = "报警时间开始")
private String alarmTimeStart; private String alarmTimeStart;
@ApiModelProperty(value = "报警时间结束") @ApiModelProperty(value = "报警时间结束")
private String alarmTimeEnd; private String alarmTimeEnd;
@ApiModelProperty(value = "当前用户ID手机端自动填充") @ApiModelProperty(value = "当前用户ID手机端自动填充")
private Long currentUserId; private Long currentUserId;
} }

View File

@ -7,6 +7,8 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import javax.validation.constraints.NotEmpty;
/** /**
* AppAlarmDisposeSubmitCmd - APP * AppAlarmDisposeSubmitCmd - APP
* @Author wangyan * @Author wangyan
@ -17,22 +19,14 @@ import lombok.AllArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AppAlarmDisposeSubmitCmd extends Command { public class AppAlarmDisposeSubmitCmd extends Command {
@ApiModelProperty(value = "报警ID", name = "alarmId", required = true) @ApiModelProperty(value = "报警ID", name = "id", required = true)
private Long alarmId; private Long id;
@ApiModelProperty(value = "处置结果(已消警/误报)", name = "disposeResult", required = true) @ApiModelProperty(value = "处置结果(已消警/误报)", name = "disposeResult", required = true)
@NotEmpty(message = "处置结果不能为空")
private String disposeResult; private String disposeResult;
@ApiModelProperty(value = "处置说明", name = "disposeRemark") @ApiModelProperty(value = "处置视频地址", name = "videoUrl")
private String disposeRemark; private String videoUrl;
}
@ApiModelProperty(value = "图片地址多个URL用逗号分隔", name = "pictureUrls")
private String pictureUrls;
@ApiModelProperty(value = "租户ID", name = "tenantId")
private Long tenantId;
@ApiModelProperty(value = "组织ID", name = "orgId")
private Long orgId;
}

View File

@ -17,15 +17,15 @@ import lombok.AllArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class BindSensorCmd extends Command { public class BindSensorCmd extends Command {
@ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true) @ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true)
private Long regionConfigId; private Long regionConfigId;
@ApiModelProperty(value = "外部消防区域ID", name = "fireRegionId") @ApiModelProperty(value = "外部消防区域ID", name = "fireRegionId")
private Long fireRegionId; private String fireRegionId;
@ApiModelProperty(value = "传感器ID", name = "sensorId", required = true) @ApiModelProperty(value = "传感器设备ID", name = "sensorDeviceId", required = true)
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码快照", name = "sensorCode") @ApiModelProperty(value = "传感器编码快照", name = "sensorCode")
private String sensorCode; private String sensorCode;

View File

@ -25,7 +25,7 @@ public class SensorDeviceAddCmd extends Command {
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true) @ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true)
private Long sensorTypeId; private String sensorTypeId;
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true) @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true)
private String sensorAttr; private String sensorAttr;

View File

@ -16,7 +16,7 @@ public class SensorDevicePageQry extends PageQuery {
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型ID") @ApiModelProperty(value = "传感器类型ID")
private Long sensorTypeId; private String sensorTypeId;
@ApiModelProperty(value = "传感器状态") @ApiModelProperty(value = "传感器状态")
private String sensorStatus; private String sensorStatus;

View File

@ -28,7 +28,7 @@ public class SensorDeviceUpdateCmd extends Command {
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId") @ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId")
private Long sensorTypeId; private String sensorTypeId;
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr") @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr")
private String sensorAttr; private String sensorAttr;

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import java.math.BigDecimal;
/** /**
* SensorTypeAddCmd - * SensorTypeAddCmd -
@ -24,15 +25,24 @@ public class SensorTypeAddCmd extends Command {
@ApiModelProperty(value = "类型名称", name = "typeName", required = true) @ApiModelProperty(value = "类型名称", name = "typeName", required = true)
private String typeName; private String typeName;
@ApiModelProperty(value = "传感器属性(STRING/NUMBER/SWITCH)", name = "sensorAttr", required = true) @ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)", name = "sensorAttr", required = true)
private String sensorAttr; private String sensorAttr;
@ApiModelProperty(value = "排序", name = "sortNo")
private Integer sortNo;
@ApiModelProperty(value = "状态(1:启用 0:停用)", name = "status", required = true)
private Integer status;
@ApiModelProperty(value = "备注", name = "remarks") @ApiModelProperty(value = "备注", name = "remarks")
private String remarks; private String remarks;
@ApiModelProperty(value = "环境", name = "env")
private String env;
@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;
} }

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import java.math.BigDecimal;
/** /**
* SensorTypeUpdateCmd - * SensorTypeUpdateCmd -
@ -27,15 +28,24 @@ public class SensorTypeUpdateCmd extends Command {
@ApiModelProperty(value = "类型名称", name = "typeName", required = false) @ApiModelProperty(value = "类型名称", name = "typeName", required = false)
private String typeName; private String typeName;
@ApiModelProperty(value = "传感器属性(STRING/NUMBER/SWITCH)", name = "sensorAttr", required = false) @ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)", name = "sensorAttr", required = false)
private String sensorAttr; private String sensorAttr;
@ApiModelProperty(value = "排序", name = "sortNo")
private Integer sortNo;
@ApiModelProperty(value = "状态(1:启用 0:停用)", name = "status")
private Integer status;
@ApiModelProperty(value = "备注", name = "remarks") @ApiModelProperty(value = "备注", name = "remarks")
private String remarks; private String remarks;
@ApiModelProperty(value = "环境", name = "env")
private String env;
@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;
} }

View File

@ -17,9 +17,9 @@ import lombok.AllArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UnbindSensorCmd extends Command { public class UnbindSensorCmd extends Command {
@ApiModelProperty(value = "传感器ID", name = "sensorId", required = true) @ApiModelProperty(value = "传感器设备ID", name = "sensorDeviceId", required = true)
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "租户ID", name = "tenantId") @ApiModelProperty(value = "租户ID", name = "tenantId")
private Long tenantId; private Long tenantId;

View File

@ -15,126 +15,126 @@ import java.util.Date;
*/ */
@Data @Data
public class AlarmDisposeCO extends ClientObject { public class AlarmDisposeCO extends ClientObject {
@ApiModelProperty(value = "主键ID") @ApiModelProperty(value = "主键ID")
private Long id; private Long id;
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String alarmRecordId; private String alarmRecordId;
@ApiModelProperty(value = "报警编号(32位)") @ApiModelProperty(value = "报警编号(32位)")
private String alarmNo; private String alarmNo;
@ApiModelProperty(value = "报警来源 THRESHOLD/DCS") @ApiModelProperty(value = "报警来源 THRESHOLD/DCS")
private String alarmSource; private String alarmSource;
@ApiModelProperty(value = "设备来源描述快照") @ApiModelProperty(value = "设备来源描述快照")
private String deviceSourceDesc; private String deviceSourceDesc;
@ApiModelProperty(value = "传感器ID") @ApiModelProperty(value = "传感器设备ID")
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器编码")
private String sensorCode; private String sensorCode;
@ApiModelProperty(value = "传感器名称") @ApiModelProperty(value = "传感器名称")
private String sensorName; private String sensorName;
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private String fireRegionId;
@ApiModelProperty(value = "消防区域名称") @ApiModelProperty(value = "消防区域名称")
private String fireRegionName; private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@ApiModelProperty(value = "负责部门名称") @ApiModelProperty(value = "负责部门名称")
private String departmentName; private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@ApiModelProperty(value = "当前负责人姓名") @ApiModelProperty(value = "当前负责人姓名")
private String managerName; private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;
@ApiModelProperty(value = "报警类型") @ApiModelProperty(value = "报警类型")
private String alarmType; private String alarmType;
@ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW") @ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW")
private String thresholdType; private String thresholdType;
@ApiModelProperty(value = "告警值") @ApiModelProperty(value = "告警值")
private BigDecimal currentValue; private BigDecimal currentValue;
@ApiModelProperty(value = "比较方向 UP/DOWN") @ApiModelProperty(value = "比较方向 UP/DOWN")
private String compareFlag; private String compareFlag;
@ApiModelProperty(value = "单位") @ApiModelProperty(value = "单位")
private String unitName; private String unitName;
@ApiModelProperty(value = "报警描述") @ApiModelProperty(value = "报警描述")
private String alarmDesc; private String alarmDesc;
@ApiModelProperty(value = "报警时间") @ApiModelProperty(value = "报警时间")
private String alarmTime; private String alarmTime;
@ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报") @ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报")
private Integer status; private Integer status;
@ApiModelProperty(value = "分配时间") @ApiModelProperty(value = "分配时间")
private String assignTime; private String assignTime;
@ApiModelProperty(value = "处置时间") @ApiModelProperty(value = "处置时间")
private String disposeTime; private String disposeTime;
@ApiModelProperty(value = "处置人ID") @ApiModelProperty(value = "处置人ID")
private Long disposeUserId; private Long disposeUserId;
@ApiModelProperty(value = "处置人姓名") @ApiModelProperty(value = "处置人姓名")
private String disposeUserName; private String disposeUserName;
@ApiModelProperty(value = "当前处置结果快照") @ApiModelProperty(value = "当前处置结果快照")
private String disposeResult; private String disposeResult;
@ApiModelProperty(value = "当前处置说明快照") @ApiModelProperty(value = "当前处置说明快照")
private String disposeRemark; private String disposeRemark;
@ApiModelProperty(value = "图片地址") @ApiModelProperty(value = "图片地址")
private String pictureUrls; private String pictureUrls;
@ApiModelProperty(value = "是否活跃告警") @ApiModelProperty(value = "是否活跃告警")
private Integer activeFlag; private Integer activeFlag;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
@ApiModelProperty(value = "创建人ID") @ApiModelProperty(value = "创建人ID")
private Long createId; private Long createId;
@ApiModelProperty(value = "创建人姓名") @ApiModelProperty(value = "创建人姓名")
private String createName; private String createName;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
@ApiModelProperty(value = "更新人ID") @ApiModelProperty(value = "更新人ID")
private Long updateId; private Long updateId;
@ApiModelProperty(value = "更新人姓名") @ApiModelProperty(value = "更新人姓名")
private String updateName; private String updateName;
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "租户ID") @ApiModelProperty(value = "租户ID")
private Long tenantId; private Long tenantId;
@ApiModelProperty(value = "组织ID") @ApiModelProperty(value = "组织ID")
private Long orgId; private Long orgId;
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.dto.clientobject; package com.zcloud.dto.clientobject;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -15,129 +16,151 @@ import java.util.Date;
*/ */
@Data @Data
public class AlarmRecordCO extends ClientObject { public class AlarmRecordCO extends ClientObject {
@ApiModelProperty(value = "主键ID") @ApiModelProperty(value = "主键ID")
private Long id; private Long id;
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String alarmRecordId; private String alarmRecordId;
@ApiModelProperty(value = "报警编号(32位)") @ApiModelProperty(value = "报警编号(32位)")
private String alarmNo; private String alarmNo;
@ApiModelProperty(value = "报警来源 THRESHOLD/DCS") @ApiModelProperty(value = "报警来源 THRESHOLD/DCS")
private String alarmSource; private String alarmSource;
@ApiModelProperty(value = "设备来源描述快照") @ApiModelProperty(value = "设备来源描述快照")
private String deviceSourceDesc; private String deviceSourceDesc;
@ApiModelProperty(value = "传感器ID") @ApiModelProperty(value = "传感器设备ID")
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器编码")
private String sensorCode; private String sensorCode;
@ApiModelProperty(value = "传感器名称") @ApiModelProperty(value = "传感器名称")
private String sensorName; private String sensorName;
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private String fireRegionId;
@ApiModelProperty(value = "消防区域名称") @ApiModelProperty(value = "消防区域名称")
private String fireRegionName; private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@ApiModelProperty(value = "负责部门名称") @ApiModelProperty(value = "负责部门名称")
private String departmentName; private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@ApiModelProperty(value = "当前负责人姓名") @ApiModelProperty(value = "当前负责人姓名")
private String managerName; private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;
@ApiModelProperty(value = "报警类型") @ApiModelProperty(value = "报警类型")
private String alarmType; private String alarmType;
@ApiModelProperty(value = "报警级别名称")
private String alarmLevelName;
@ApiModelProperty(value = "报警类型名称")
private String alarmTypeName;
@ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW") @ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW")
private String thresholdType; private String thresholdType;
@ApiModelProperty(value = "告警值") @ApiModelProperty(value = "告警值")
private BigDecimal currentValue; private BigDecimal currentValue;
@ApiModelProperty(value = "比较方向 UP/DOWN") @ApiModelProperty(value = "比较方向 UP/DOWN")
private String compareFlag; private String compareFlag;
@ApiModelProperty(value = "单位") @ApiModelProperty(value = "单位")
private String unitName; private String unitName;
@ApiModelProperty(value = "报警描述") @ApiModelProperty(value = "报警描述")
private String alarmDesc; private String alarmDesc;
@ApiModelProperty(value = "报警时间") @ApiModelProperty(value = "报警时间")
private String alarmTime; private String alarmTime;
@ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报") @ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报")
private Integer status; private Integer status;
@ApiModelProperty(value = "分配时间") @ApiModelProperty(value = "分配时间")
private String assignTime; private String assignTime;
@ApiModelProperty(value = "处置时间") @ApiModelProperty(value = "处置时间")
private String disposeTime; private String disposeTime;
@ApiModelProperty(value = "处置人ID") @ApiModelProperty(value = "处置人ID")
private Long disposeUserId; private Long disposeUserId;
@ApiModelProperty(value = "处置人姓名") @ApiModelProperty(value = "处置人姓名")
private String disposeUserName; private String disposeUserName;
@ApiModelProperty(value = "当前处置结果快照") @ApiModelProperty(value = "当前处置结果快照")
private String disposeResult; private String disposeResult;
@ApiModelProperty(value = "当前处置说明快照") @ApiModelProperty(value = "当前处置说明快照")
private String disposeRemark; private String disposeRemark;
@ApiModelProperty(value = "图片地址") @ApiModelProperty(value = "处置视频地址")
private String pictureUrls; private String videoUrl;
@ApiModelProperty(value = "外部记录唯一键") @ApiModelProperty(value = "外部记录唯一键")
private String sourceRecordKey; private String sourceRecordKey;
@ApiModelProperty(value = "是否活跃告警") @ApiModelProperty(value = "是否活跃告警")
private Integer activeFlag; private Integer activeFlag;
@ApiModelProperty(value = "量程下限")
private BigDecimal rangeMin;
@ApiModelProperty(value = "量程上限")
private BigDecimal rangeMax;
@ApiModelProperty(value = "低低报阈值")
private BigDecimal thresholdLowLow;
@ApiModelProperty(value = "低报阈值")
private BigDecimal thresholdLow;
@ApiModelProperty(value = "高报阈值")
private BigDecimal thresholdHigh;
@ApiModelProperty(value = "高高报阈值")
private BigDecimal thresholdHighHigh;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
@ApiModelProperty(value = "创建人ID") @ApiModelProperty(value = "创建人ID")
private Long createId; private Long createId;
@ApiModelProperty(value = "创建人姓名") @ApiModelProperty(value = "创建人姓名")
private String createName; private String createName;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
@ApiModelProperty(value = "更新人ID") @ApiModelProperty(value = "更新人ID")
private Long updateId; private Long updateId;
@ApiModelProperty(value = "更新人姓名") @ApiModelProperty(value = "更新人姓名")
private String updateName; private String updateName;
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "租户ID") @ApiModelProperty(value = "租户ID")
private Long tenantId; private Long tenantId;
@ApiModelProperty(value = "组织ID") @ApiModelProperty(value = "组织ID")
private Long orgId; private Long orgId;
} }

View File

@ -28,7 +28,7 @@ public class SensorDeviceCO extends ClientObject {
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型主键ID") @ApiModelProperty(value = "传感器类型主键ID")
private Long sensorTypeId; private String sensorTypeId;
@ApiModelProperty(value = "传感器类型名称") @ApiModelProperty(value = "传感器类型名称")
private String sensorTypeName; private String sensorTypeName;

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -27,15 +28,9 @@ public class SensorTypeCO extends ClientObject {
@ApiModelProperty(value = "类型名称") @ApiModelProperty(value = "类型名称")
private String typeName; private String typeName;
@ApiModelProperty(value = "传感器属性(STRING/NUMBER/SWITCH)") @ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)")
private String sensorAttr; private String sensorAttr;
@ApiModelProperty(value = "排序")
private Integer sortNo;
@ApiModelProperty(value = "状态(1:启用 0:停用)")
private Integer status;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
@ -64,4 +59,19 @@ public class SensorTypeCO extends ClientObject {
@ApiModelProperty(value = "组织ID") @ApiModelProperty(value = "组织ID")
private Long orgId; private Long orgId;
@ApiModelProperty(value = "环境")
private String env;
@ApiModelProperty(value = "低低报阈值")
private BigDecimal thresholdLowLow;
@ApiModelProperty(value = "低报阈值")
private BigDecimal thresholdLow;
@ApiModelProperty(value = "高报阈值")
private BigDecimal thresholdHigh;
@ApiModelProperty(value = "高高报阈值")
private BigDecimal thresholdHighHigh;
} }

View File

@ -30,10 +30,10 @@ public interface DeviceRegionGateway {
*/ */
DeviceRegionE getById(Long id); DeviceRegionE getById(Long id);
/** /**
* ID * ID
*/ */
DeviceRegionE getByFireRegionId(Long fireRegionId); DeviceRegionE getByFireRegionId(String fireRegionId);
/** /**
* ID * ID

View File

@ -14,18 +14,18 @@ public interface RegionSensorRelGateway {
*/ */
Long add(RegionSensorRelE regionSensorRelE); Long add(RegionSensorRelE regionSensorRelE);
/** /**
* ID * ID
*/ */
Boolean deleteBySensorId(Long sensorId); Boolean deleteBySensorId(String sensorDeviceId);
/** /**
* ID * ID
*/ */
RegionSensorRelE getBySensorId(Long sensorId); RegionSensorRelE getBySensorId(String sensorDeviceId);
/** /**
* *
*/ */
Boolean isSensorBound(Long sensorId); Boolean isSensorBound(String sensorDeviceId);
} }

View File

@ -4,6 +4,8 @@ import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/** /**
* AlarmDisposeLogE - * AlarmDisposeLogE -
* @Author wangyan * @Author wangyan
@ -12,61 +14,61 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AlarmDisposeLogE extends BaseE { public class AlarmDisposeLogE extends BaseE {
/** /**
* ID(32) * ID(32)
*/ */
private String alarmDisposalLogId; private String alarmDisposalLogId;
/** /**
* ID * ID
*/ */
private Long alarmId; private Long alarmId;
/** /**
* (32) * (32)
*/ */
private String alarmNo; private String alarmNo;
/** /**
* AUTO_ASSIGN/MANUAL_ASSIGN/DISPOSE/INVALID * AUTO_ASSIGN/MANUAL_ASSIGN/DISPOSE/INVALID
*/ */
private String actionType; private String actionType;
/** /**
* *
*/ */
private Integer beforeStatus; private Integer beforeStatus;
/** /**
* *
*/ */
private Integer afterStatus; private Integer afterStatus;
/** /**
* ID * ID
*/ */
private Long operatorId; private Long operatorId;
/** /**
* *
*/ */
private String actionDesc; private String actionDesc;
/** /**
* *
*/ */
private String resultText; private String resultText;
/** /**
* *
*/ */
private String pictureUrls; private String pictureUrls;
/** /**
* *
*/ */
private String actionTime; private LocalDateTime actionTime;
/** /**
* *

View File

@ -5,6 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* AlarmRecordE - * AlarmRecordE -
@ -14,154 +15,159 @@ import java.math.BigDecimal;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AlarmRecordE extends BaseE { public class AlarmRecordE extends BaseE {
/** /**
* ID(32) * ID(32)
*/ */
private String alarmRecordId; private String alarmRecordId;
/** /**
* (32) * (32)
*/ */
private String alarmNo; private String alarmNo;
/** /**
* THRESHOLD/DCS * THRESHOLD/DCS
*/ */
private String alarmSource; private String alarmSource;
/** /**
* *
*/ */
private String deviceSourceDesc; private String deviceSourceDesc;
/** /**
* ID * ID
*/ */
private Long sensorId; private String sensorDeviceId;
/** /**
* *
*/ */
private String sensorCode; private String sensorCode;
/** /**
* ID * ID
*/ */
private Long fireRegionId; private String fireRegionId;
/** /**
* ID * ID
*/ */
private Long departmentId; private Long departmentId;
/** /**
* ID * ID
*/ */
private Long managerId; private Long managerId;
/** /**
* *
*/ */
private String alarmLevel; private String alarmLevel;
/** /**
* *
*/ */
private String alarmType; private String alarmType;
/** /**
* HIGH/HIGH_HIGH/LOW/LOW_LOW * HIGH/HIGH_HIGH/LOW/LOW_LOW
*/ */
private String thresholdType; private String thresholdType;
/** /**
* *
*/ */
private BigDecimal currentValue; private BigDecimal currentValue;
/** /**
* UP/DOWN * UP/DOWN
*/ */
private String compareFlag; private String compareFlag;
/** /**
* *
*/ */
private String unitName; private String unitName;
/** /**
* *
*/ */
private String alarmDesc; private String alarmDesc;
/** /**
* *
*/ */
private String alarmTime; private LocalDateTime alarmTime;
/** /**
* 10/20/30/40 * 10/20/30/40
*/ */
private Integer status; private Integer status;
/** /**
* *
*/ */
private String assignTime; private LocalDateTime assignTime;
/** /**
* *
*/ */
private String disposeTime; private LocalDateTime disposeTime;
/** /**
* ID * ID
*/ */
private Long disposeUserId; private Long disposeUserId;
/** /**
* *
*/ */
private String disposeResult; private String disposeResult;
/** /**
* *
*/ */
private String disposeRemark; private String disposeRemark;
/** /**
* *
*/ */
private String pictureUrls; private String videoUrl;
/** /**
* *
*/ */
private String sourceRecordKey; private String sourceRecordKey;
/** /**
* *
*/ */
private Integer activeFlag; private Integer activeFlag;
/** /**
* *
*/ */
private String remarks; private String remarks;
/** /**
* *
*/ */
private String deleteEnum; private String deleteEnum;
/** /**
* ID * ID
*/ */
private Long tenantId; private Long tenantId;
/** /**
* ID * ID
*/ */
private Long orgId; private Long orgId;
}
public void init(){
this.setStatus(30);
this.setDisposeTime(LocalDateTime.now());
}
}

View File

@ -18,10 +18,10 @@ public class DeviceRegionE extends BaseE {
*/ */
private String regionConfigId; private String regionConfigId;
/** /**
* *
*/ */
private Long fireRegionId; private String fireRegionId;
/** /**
* *

View File

@ -18,20 +18,20 @@ public class RegionSensorRelE extends BaseE {
*/ */
private String regionSensorRelId; private String regionSensorRelId;
/** /**
* ID * ID
*/ */
private Long regionConfigId; private String regionConfigId;
/** /**
* ID * ID
*/ */
private Long fireRegionId; private String fireRegionId;
/** /**
* ID * ID
*/ */
private Long sensorId; private String sensorDeviceId;
/** /**
* *

View File

@ -28,10 +28,10 @@ public class SensorDeviceE extends BaseE {
*/ */
private String sensorName; private String sensorName;
/** /**
* ID * ID
*/ */
private Long sensorTypeId; private String sensorTypeId;
/** /**
* (NUMBER/SWITCH) * (NUMBER/SWITCH)

View File

@ -4,6 +4,8 @@ import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* SensorTypeE - * SensorTypeE -
* @Author wangyan * @Author wangyan
@ -29,20 +31,10 @@ public class SensorTypeE extends BaseE {
private String typeName; private String typeName;
/** /**
* (STRING/NUMBER/SWITCH) * (NUMBER/SWITCH)
*/ */
private String sensorAttr; private String sensorAttr;
/**
*
*/
private Integer sortNo;
/**
* (1: 0:)
*/
private Integer status;
/** /**
* *
*/ */
@ -57,4 +49,29 @@ public class SensorTypeE extends BaseE {
* ID * ID
*/ */
private Long orgId; private Long orgId;
/**
*
*/
private String env;
/**
*
*/
private BigDecimal thresholdLowLow;
/**
*
*/
private BigDecimal thresholdLow;
/**
*
*/
private BigDecimal thresholdHigh;
/**
*
*/
private BigDecimal thresholdHighHigh;
} }

View File

@ -20,7 +20,7 @@ import java.util.stream.Collectors;
@Service @Service
@AllArgsConstructor @AllArgsConstructor
public class AlarmRecordGatewayImpl implements AlarmRecordGateway { public class AlarmRecordGatewayImpl implements AlarmRecordGateway {
private final AlarmRecordRepository alarmRecordRepository; private final AlarmRecordRepository alarmRecordRepository;
@Override @Override
@ -55,7 +55,7 @@ public class AlarmRecordGatewayImpl implements AlarmRecordGateway {
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(AlarmRecordDO::getAlarmNo, alarmNo) wrapper.eq(AlarmRecordDO::getAlarmNo, alarmNo)
.eq(AlarmRecordDO::getDeleteEnum, "FALSE"); .eq(AlarmRecordDO::getDeleteEnum, "FALSE");
AlarmRecordDO d = alarmRecordRepository.getOne(wrapper); AlarmRecordDO d = alarmRecordRepository.getOne(wrapper);
if (d == null) { if (d == null) {
return null; return null;
@ -70,7 +70,7 @@ public class AlarmRecordGatewayImpl implements AlarmRecordGateway {
LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<AlarmRecordDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(AlarmRecordDO::getTenantId, tenantId) wrapper.eq(AlarmRecordDO::getTenantId, tenantId)
.eq(AlarmRecordDO::getDeleteEnum, "FALSE"); .eq(AlarmRecordDO::getDeleteEnum, "FALSE");
List<AlarmRecordDO> list = alarmRecordRepository.list(wrapper); List<AlarmRecordDO> list = alarmRecordRepository.list(wrapper);
return list.stream().map(d -> { return list.stream().map(d -> {
AlarmRecordE alarmRecordE = new AlarmRecordE(); AlarmRecordE alarmRecordE = new AlarmRecordE();
@ -84,8 +84,9 @@ public class AlarmRecordGatewayImpl implements AlarmRecordGateway {
AlarmRecordDO d = new AlarmRecordDO(); AlarmRecordDO d = new AlarmRecordDO();
d.setId(id); d.setId(id);
d.setStatus(status); d.setStatus(status);
d.setAssignTime(assignTime); // TODO 待完善
// d.setAssignTime(assignTime);
alarmRecordRepository.updateById(d); alarmRecordRepository.updateById(d);
return true; return true;
} }
} }

View File

@ -56,11 +56,13 @@ public class DeviceRegionGatewayImpl implements DeviceRegionGateway {
} }
@Override @Override
public DeviceRegionE getByFireRegionId(Long fireRegionId) { public DeviceRegionE getByFireRegionId(String fireRegionId) {
LambdaQueryWrapper<DeviceRegionDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DeviceRegionDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DeviceRegionDO::getFireRegionId, fireRegionId) if (fireRegionId != null) {
.eq(DeviceRegionDO::getDeleteEnum, "FALSE"); wrapper.eq(DeviceRegionDO::getFireRegionId, Long.parseLong(fireRegionId))
.eq(DeviceRegionDO::getDeleteEnum, "FALSE");
}
DeviceRegionDO d = deviceRegionRepository.getOne(wrapper); DeviceRegionDO d = deviceRegionRepository.getOne(wrapper);
if (d == null) { if (d == null) {
return null; return null;

View File

@ -29,18 +29,18 @@ public class RegionSensorRelGatewayImpl implements RegionSensorRelGateway {
} }
@Override @Override
public Boolean deleteBySensorId(Long sensorId) { public Boolean deleteBySensorId(String sensorDeviceId) {
LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RegionSensorRelDO::getSensorId, sensorId); wrapper.eq(RegionSensorRelDO::getSensorDeviceId, sensorDeviceId);
return regionSensorRelRepository.remove(wrapper); return regionSensorRelRepository.remove(wrapper);
} }
@Override @Override
public RegionSensorRelE getBySensorId(Long sensorId) { public RegionSensorRelE getBySensorId(String sensorDeviceId) {
LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RegionSensorRelDO::getSensorId, sensorId) wrapper.eq(RegionSensorRelDO::getSensorDeviceId, sensorDeviceId)
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); .eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
RegionSensorRelDO d = regionSensorRelRepository.getOne(wrapper); RegionSensorRelDO d = regionSensorRelRepository.getOne(wrapper);
if (d == null) { if (d == null) {
return null; return null;
@ -51,11 +51,11 @@ public class RegionSensorRelGatewayImpl implements RegionSensorRelGateway {
} }
@Override @Override
public Boolean isSensorBound(Long sensorId) { public Boolean isSensorBound(String sensorDeviceId) {
LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RegionSensorRelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RegionSensorRelDO::getSensorId, sensorId) wrapper.eq(RegionSensorRelDO::getSensorDeviceId, sensorDeviceId)
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); .eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
long count = regionSensorRelRepository.count(wrapper); long count = regionSensorRelRepository.count(wrapper);
return count > 0; return count > 0;
} }

View File

@ -1,12 +1,13 @@
package com.zcloud.persistence.dataobject; package com.zcloud.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/** /**
* AlarmDisposeLogDO - * AlarmDisposeLogDO -
* @Author wangyan * @Author wangyan
@ -16,47 +17,38 @@ import lombok.EqualsAndHashCode;
@TableName("iot_alarm_disposal_log") @TableName("iot_alarm_disposal_log")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AlarmDisposeLogDO extends BaseDO { public class AlarmDisposeLogDO extends BaseDO {
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String alarmDisposalLogId; private String alarmDisposalLogId;
@ApiModelProperty(value = "报警主键ID") @ApiModelProperty(value = "报警主键ID")
private Long alarmId; private Long alarmId;
@ApiModelProperty(value = "报警编号(32位)") @ApiModelProperty(value = "报警编号(32位)")
private String alarmNo; private String alarmNo;
@ApiModelProperty(value = "操作类型 AUTO_ASSIGN/MANUAL_ASSIGN/DISPOSE/INVALID") @ApiModelProperty(value = "操作类型 AUTO_ASSIGN/MANUAL_ASSIGN/DISPOSE/INVALID")
private String actionType; private String actionType;
@ApiModelProperty(value = "变更前状态") @ApiModelProperty(value = "变更前状态")
private Integer beforeStatus; private Integer beforeStatus;
@ApiModelProperty(value = "变更后状态") @ApiModelProperty(value = "变更后状态")
private Integer afterStatus; private Integer afterStatus;
@ApiModelProperty(value = "操作人ID") @ApiModelProperty(value = "操作人ID")
private Long operatorId; private Long operatorId;
@ApiModelProperty(value = "操作说明") @ApiModelProperty(value = "操作说明")
private String actionDesc; private String actionDesc;
@ApiModelProperty(value = "处置结果") @ApiModelProperty(value = "处置结果")
private String resultText; private String resultText;
@ApiModelProperty(value = "附件图片") @ApiModelProperty(value = "附件图片")
private String pictureUrls; private String pictureUrls;
@ApiModelProperty(value = "操作时间") @ApiModelProperty(value = "操作时间")
private String actionTime; private LocalDateTime actionTime;
@ApiModelProperty(value = "删除标识") }
@TableLogic
private String deleteEnum = "FALSE";
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* AlarmRecordDO - * AlarmRecordDO -
@ -19,115 +20,132 @@ import java.math.BigDecimal;
@TableName("iot_alarm_record") @TableName("iot_alarm_record")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AlarmRecordDO extends BaseDO { public class AlarmRecordDO extends BaseDO {
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String alarmRecordId; private String alarmRecordId;
@ApiModelProperty(value = "报警编号(32位)") @ApiModelProperty(value = "报警编号(32位)")
private String alarmNo; private String alarmNo;
@ApiModelProperty(value = "报警来源 THRESHOLD/DCS") @ApiModelProperty(value = "报警来源 THRESHOLD/DCS")
private String alarmSource; private String alarmSource;
@ApiModelProperty(value = "设备来源描述快照") @ApiModelProperty(value = "设备来源描述快照")
private String deviceSourceDesc; private String deviceSourceDesc;
@ApiModelProperty(value = "传感器ID") @ApiModelProperty(value = "传感器设备ID")
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器编码")
private String sensorCode; private String sensorCode;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "传感器名称") @ApiModelProperty(value = "传感器名称")
private String sensorName; private String sensorName;
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private String fireRegionId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "消防区域名称") @ApiModelProperty(value = "消防区域名称")
private String fireRegionName; private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "负责部门名称") @ApiModelProperty(value = "负责部门名称")
private String departmentName; private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "当前负责人姓名") @ApiModelProperty(value = "当前负责人姓名")
private String managerName; private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;
@ApiModelProperty(value = "报警级别名称")
private String alarmLevelName;
@ApiModelProperty(value = "报警类型") @ApiModelProperty(value = "报警类型")
private String alarmType; private String alarmType;
@ApiModelProperty(value = "报警类型名称")
private String alarmTypeName;
@ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW") @ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW")
private String thresholdType; private String thresholdType;
@ApiModelProperty(value = "告警值") @ApiModelProperty(value = "告警值")
private BigDecimal currentValue; private BigDecimal currentValue;
@ApiModelProperty(value = "比较方向 UP/DOWN") @ApiModelProperty(value = "比较方向 UP/DOWN")
private String compareFlag; private String compareFlag;
@ApiModelProperty(value = "单位") @ApiModelProperty(value = "单位")
private String unitName; private String unitName;
@ApiModelProperty(value = "报警描述") @ApiModelProperty(value = "报警描述")
private String alarmDesc; private String alarmDesc;
@ApiModelProperty(value = "报警时间") @ApiModelProperty(value = "报警时间")
private String alarmTime; private LocalDateTime alarmTime;
@ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报") @ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报")
private Integer status; private Integer status;
@ApiModelProperty(value = "分配时间") @ApiModelProperty(value = "分配时间")
private String assignTime; private LocalDateTime assignTime;
@ApiModelProperty(value = "处置时间") @ApiModelProperty(value = "处置时间")
private String disposeTime; private LocalDateTime disposeTime;
@ApiModelProperty(value = "处置人ID") @ApiModelProperty(value = "处置人ID")
private Long disposeUserId; private Long disposeUserId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "处置人姓名") @ApiModelProperty(value = "处置人姓名")
private String disposeUserName; private String disposeUserName;
@ApiModelProperty(value = "当前处置结果快照") @ApiModelProperty(value = "当前处置结果快照")
private String disposeResult; private String disposeResult;
@ApiModelProperty(value = "当前处置说明快照") @ApiModelProperty(value = "当前处置说明快照")
private String disposeRemark; private String disposeRemark;
@ApiModelProperty(value = "图片地址") @ApiModelProperty(value = "处置视频地址")
private String pictureUrls; private String videoUrl;
@ApiModelProperty(value = "外部记录唯一键") @ApiModelProperty(value = "外部记录唯一键")
private String sourceRecordKey; private String sourceRecordKey;
@ApiModelProperty(value = "是否活跃告警") @ApiModelProperty(value = "是否活跃告警")
private Integer activeFlag; private Integer activeFlag;
@ApiModelProperty(value = "备注")
private String remarks; @ApiModelProperty(value = "量程下限")
@TableField(exist = false)
@ApiModelProperty(value = "删除标识") private BigDecimal rangeMin;
@TableLogic @ApiModelProperty(value = "量程上限")
private String deleteEnum = "FALSE"; @TableField(exist = false)
private BigDecimal rangeMax;
@ApiModelProperty(value = "租户ID") @ApiModelProperty(value = "低低报阈值")
private Long tenantId; @TableField(exist = false)
private BigDecimal thresholdLowLow;
@ApiModelProperty(value = "组织ID") @ApiModelProperty(value = "低报阈值")
private Long orgId; @TableField(exist = false)
private BigDecimal thresholdLow;
@ApiModelProperty(value = "高报阈值")
@TableField(exist = false)
private BigDecimal thresholdHigh;
@ApiModelProperty(value = "高高报阈值")
@TableField(exist = false)
private BigDecimal thresholdHighHigh;
} }

View File

@ -1,7 +1,6 @@
package com.zcloud.persistence.dataobject; package com.zcloud.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -17,51 +16,41 @@ import lombok.EqualsAndHashCode;
@TableName("iot_alarm_region_config") @TableName("iot_alarm_region_config")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class DeviceRegionDO extends BaseDO { public class DeviceRegionDO extends BaseDO {
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String regionConfigId; private String regionConfigId;
@ApiModelProperty(value = "外部消防区域主键") @ApiModelProperty(value = "外部消防区域主键")
private Long fireRegionId; private Long fireRegionId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "外部消防区域名称") @ApiModelProperty(value = "外部消防区域名称")
private String fireRegionName; private String fireRegionName;
@ApiModelProperty(value = "外部消防区域编码") @ApiModelProperty(value = "外部消防区域编码")
private String fireRegionCode; private String fireRegionCode;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "负责部门名称") @ApiModelProperty(value = "负责部门名称")
private String departmentName; private String departmentName;
@ApiModelProperty(value = "负责人ID") @ApiModelProperty(value = "负责人ID")
private Long managerId; private Long managerId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "负责人姓名") @ApiModelProperty(value = "负责人姓名")
private String managerName; private String managerName;
@ApiModelProperty(value = "状态 1启用0停用") @ApiModelProperty(value = "状态 1启用0停用")
private Integer status; private Integer status;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "已绑定传感器数量") @ApiModelProperty(value = "已绑定传感器数量")
private Integer bindSensorCount; private Integer bindSensorCount;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
@ApiModelProperty(value = "删除标识")
@TableLogic
private String deleteEnum = "FALSE";
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
} }

View File

@ -1,6 +1,5 @@
package com.zcloud.persistence.dataobject; package com.zcloud.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -16,29 +15,20 @@ import lombok.EqualsAndHashCode;
@TableName("iot_alarm_region_sensor_rel") @TableName("iot_alarm_region_sensor_rel")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RegionSensorRelDO extends BaseDO { public class RegionSensorRelDO extends BaseDO {
@ApiModelProperty(value = "业务ID(32位)") @ApiModelProperty(value = "业务ID(32位)")
private String regionSensorRelId; private String regionSensorRelId;
@ApiModelProperty(value = "区域配置主键ID") @ApiModelProperty(value = "区域配置主键ID")
private Long regionConfigId; private String regionConfigId;
@ApiModelProperty(value = "外部消防区域ID") @ApiModelProperty(value = "外部消防区域ID")
private Long fireRegionId; private String fireRegionId;
@ApiModelProperty(value = "传感器ID") @ApiModelProperty(value = "传感器设备ID")
private Long sensorId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码快照") @ApiModelProperty(value = "传感器编码快照")
private String sensorCode; private String sensorCode;
@ApiModelProperty(value = "删除标识") }
@TableLogic
private String deleteEnum = "FALSE";
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -1,13 +1,14 @@
package com.zcloud.persistence.dataobject; package com.zcloud.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* SensorDeviceDO - * SensorDeviceDO -
* @Author wangyan * @Author wangyan
@ -17,26 +18,26 @@ import lombok.EqualsAndHashCode;
@TableName("iot_alarm_sensor_device") @TableName("iot_alarm_sensor_device")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class SensorDeviceDO extends BaseDO { public class SensorDeviceDO extends BaseDO {
@ApiModelProperty(value = "传感器设备业务ID") @ApiModelProperty(value = "传感器设备业务ID")
private String sensorDeviceId; private String sensorDeviceId;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器编码")
private String sensorCode; private String sensorCode;
@ApiModelProperty(value = "传感器名称") @ApiModelProperty(value = "传感器名称")
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型主键ID") @ApiModelProperty(value = "传感器类型主键ID")
private Long sensorTypeId; private String sensorTypeId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "传感器类型名称") @ApiModelProperty(value = "传感器类型名称")
private String sensorTypeName; private String sensorTypeName;
@ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)") @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)")
private String sensorAttr; private String sensorAttr;
@ApiModelProperty(value = "安装位置") @ApiModelProperty(value = "安装位置")
private String installPosition; private String installPosition;
@ -45,59 +46,47 @@ public class SensorDeviceDO extends BaseDO {
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private String latitude; private String latitude;
@ApiModelProperty(value = "传感器状态") @ApiModelProperty(value = "传感器状态")
private String sensorStatus; private String sensorStatus;
@ApiModelProperty(value = "是否定位(0否1是)") @ApiModelProperty(value = "是否定位(0否1是)")
private Integer positioningFlag; private Integer positioningFlag;
@ApiModelProperty(value = "报警开关(1开0关)") @ApiModelProperty(value = "报警开关(1开0关)")
private Integer alarmSwitch; private Integer alarmSwitch;
@ApiModelProperty(value = "是否阈值设定(0否1是)") @ApiModelProperty(value = "是否阈值设定(0否1是)")
private Integer thresholdFlag; private Integer thresholdFlag;
@ApiModelProperty(value = "单位") @ApiModelProperty(value = "单位")
private String unitName; private String unitName;
@ApiModelProperty(value = "量程下限") @ApiModelProperty(value = "量程下限")
private String rangeMin; private BigDecimal rangeMin;
@ApiModelProperty(value = "量程上限") @ApiModelProperty(value = "量程上限")
private String rangeMax; private BigDecimal rangeMax;
@ApiModelProperty(value = "低低报阈值") @ApiModelProperty(value = "低低报阈值")
private String thresholdLowLow; private BigDecimal thresholdLowLow;
@ApiModelProperty(value = "低报阈值") @ApiModelProperty(value = "低报阈值")
private String thresholdLow; private BigDecimal thresholdLow;
@ApiModelProperty(value = "高报阈值") @ApiModelProperty(value = "高报阈值")
private String thresholdHigh; private BigDecimal thresholdHigh;
@ApiModelProperty(value = "高高报阈值") @ApiModelProperty(value = "高高报阈值")
private String thresholdHighHigh; private BigDecimal thresholdHighHigh;
@ApiModelProperty(value = "连续报警确认次数") @ApiModelProperty(value = "连续报警确认次数")
private Integer continuousAlarmCount; private Integer continuousAlarmCount;
@ApiModelProperty(value = "出厂日期") @ApiModelProperty(value = "出厂日期")
private String factoryDate; private String factoryDate;
@ApiModelProperty(value = "企业侧源编码") @ApiModelProperty(value = "企业侧源编码")
private String enterpriseSourceCode; private String enterpriseSourceCode;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty(value = "删除标识")
@TableLogic
private String deleteEnum = "FALSE";
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
} }

View File

@ -1,12 +1,13 @@
package com.zcloud.persistence.dataobject; package com.zcloud.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* SensorTypeDO - * SensorTypeDO -
* @Author wangyan * @Author wangyan
@ -16,35 +17,42 @@ import lombok.EqualsAndHashCode;
@TableName("iot_alarm_sensor_type") @TableName("iot_alarm_sensor_type")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class SensorTypeDO extends BaseDO { public class SensorTypeDO extends BaseDO {
@ApiModelProperty(value = "传感器类型业务ID") @ApiModelProperty(value = "传感器类型业务ID")
private String sensorTypeId; private String sensorTypeId;
@ApiModelProperty(value = "类型编码") @ApiModelProperty(value = "类型编码")
private String typeCode; private String typeCode;
@ApiModelProperty(value = "类型名称") @ApiModelProperty(value = "类型名称")
private String typeName; private String typeName;
@ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)") @ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)")
private String sensorAttr; private String sensorAttr;
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "单位")
private Integer sortNo; private String unitName;
@ApiModelProperty(value = "状态(1:启用 0:停用)") @ApiModelProperty(value = "量程上限")
private Integer status; private BigDecimal rangeMax;
@ApiModelProperty(value = "量程下限")
private BigDecimal rangeMin;
@ApiModelProperty(value = "高高报阈值")
private BigDecimal thresholdHighHigh;
@ApiModelProperty(value = "高报阈值")
private BigDecimal thresholdHigh;
@ApiModelProperty(value = "低低报阈值")
private BigDecimal thresholdLowLow;
@ApiModelProperty(value = "低报阈值")
private BigDecimal thresholdLow;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
@ApiModelProperty(value = "删除标识")
@TableLogic
private String deleteEnum = "FALSE";
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
} }

View File

@ -15,10 +15,10 @@
<sql id="alarmRecordBaseJoins"> <sql id="alarmRecordBaseJoins">
FROM iot_alarm_record ar FROM iot_alarm_record ar
LEFT JOIN `jjb-saas-zcloud-fire-check`.fire_region fr ON ar.fire_region_id = fr.id AND fr.delete_enum = 'FALSE' LEFT JOIN fire_region fr ON ar.fire_region_id = fr.id AND fr.delete_enum = 'FALSE'
LEFT JOIN department dep ON ar.department_id = dep.id AND dep.delete_enum = 'FALSE' 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 user mgr ON ar.manager_id = mgr.id AND mgr.delete_enum = 'FALSE'
LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_id = sd.id AND sd.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 LEFT JOIN user u ON ar.dispose_user_id = u.id
</sql> </sql>
@ -152,8 +152,10 @@
<include refid="alarmRecordBaseJoins"/> <include refid="alarmRecordBaseJoins"/>
<where> <where>
ar.delete_enum = 'FALSE' ar.delete_enum = 'FALSE'
AND ar.status = 20 <if test="params.status != null">
AND ar.active_flag = 1 AND ar.status = #{params.status}
</if>
-- AND ar.active_flag = 1
<if test="params.tenantId != null"> <if test="params.tenantId != null">
AND ar.tenant_id = #{params.tenantId} AND ar.tenant_id = #{params.tenantId}
</if> </if>
@ -169,9 +171,15 @@
<if test="params.sensorCode != null and params.sensorCode != ''"> <if test="params.sensorCode != null and params.sensorCode != ''">
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%') AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
</if> </if>
<if test="params.sensorName != null and params.sensorName != ''">
AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%')
</if>
<if test="params.fireRegionId != null"> <if test="params.fireRegionId != null">
AND ar.fire_region_id = #{params.fireRegionId} AND ar.fire_region_id = #{params.fireRegionId}
</if> </if>
<if test="params.disposeUserId != null">
AND ar.dispose_user_id = #{params.disposeUserId}
</if>
<if test="params.alarmLevel != null and params.alarmLevel != ''"> <if test="params.alarmLevel != null and params.alarmLevel != ''">
AND ar.alarm_level = #{params.alarmLevel} AND ar.alarm_level = #{params.alarmLevel}
</if> </if>
@ -193,7 +201,14 @@
<select id="detailView" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO"> <select id="detailView" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
SELECT SELECT
<include refid="alarmRecordBaseColumns"/> <include refid="alarmRecordBaseColumns"/>,
sd.unit_name,
sd.range_min,
sd.range_max,
sd.threshold_low_low,
sd.threshold_low,
sd.threshold_high,
sd.threshold_high_high
<include refid="alarmRecordBaseJoins"/> <include refid="alarmRecordBaseJoins"/>
<where> <where>
ar.id = #{id} ar.id = #{id}

View File

@ -25,8 +25,10 @@
rc.update_time AS updateTime, rc.update_time AS updateTime,
rc.tenant_id AS tenantId, rc.tenant_id AS tenantId,
rc.org_id AS orgId, rc.org_id AS orgId,
rc.version AS version,
rc.env AS env,
IFNULL(bindRel.bindSensorCount, 0) AS bindSensorCount IFNULL(bindRel.bindSensorCount, 0) AS bindSensorCount
FROM `jjb-saas-zcloud-fire-check`.fire_region fr FROM fire_region fr
LEFT JOIN iot_alarm_region_config rc ON rc.fire_region_id = fr.id AND rc.delete_enum = 'FALSE' LEFT JOIN iot_alarm_region_config rc ON rc.fire_region_id = fr.id AND rc.delete_enum = 'FALSE'
LEFT JOIN department d ON fr.department_id = d.id AND d.delete_enum = 'FALSE' LEFT JOIN department d ON fr.department_id = d.id AND d.delete_enum = 'FALSE'
LEFT JOIN user u ON rc.manager_id = u.id AND u.delete_enum = 'FALSE' LEFT JOIN user u ON rc.manager_id = u.id AND u.delete_enum = 'FALSE'