feat(alarm): 更新报警记录查询功能并增加消防设备状态统计
parent
07f618d91f
commit
153e42423f
|
|
@ -3,18 +3,32 @@ 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.SensorDeviceServiceI;
|
import com.zcloud.api.SensorDeviceServiceI;
|
||||||
import com.zcloud.dto.*;
|
import com.zcloud.dto.SensorDeviceAddCmd;
|
||||||
|
import com.zcloud.dto.SensorDeviceFireSituationQry;
|
||||||
|
import com.zcloud.dto.SensorDeviceLocationCmd;
|
||||||
|
import com.zcloud.dto.SensorDevicePageQry;
|
||||||
|
import com.zcloud.dto.SensorDeviceScreenQry;
|
||||||
|
import com.zcloud.dto.SensorDeviceThresholdCmd;
|
||||||
|
import com.zcloud.dto.SensorDeviceUpdateCmd;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireSituationCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
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;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorDeviceController - 传感器设备控制器
|
* 传感器设备控制器
|
||||||
|
*
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
* @Date 2026-04-03 00:00:00
|
* @Date 2026-04-03 00:00:00
|
||||||
*/
|
*/
|
||||||
|
|
@ -23,75 +37,70 @@ import org.springframework.web.bind.annotation.*;
|
||||||
@RestController
|
@RestController
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class SensorDeviceController {
|
public class SensorDeviceController {
|
||||||
private final SensorDeviceServiceI sensorDeviceService;
|
private final SensorDeviceServiceI sensorDeviceService;
|
||||||
|
|
||||||
@ApiOperation("新增")
|
@ApiOperation("新增")
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-add')")
|
public SingleResponse<String> save(@Validated @RequestBody SensorDeviceAddCmd cmd) {
|
||||||
public SingleResponse<String> save(@Validated @RequestBody SensorDeviceAddCmd cmd) {
|
return sensorDeviceService.add(cmd);
|
||||||
return sensorDeviceService.add(cmd);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("分页列表")
|
@ApiOperation("分页列表")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')")
|
public PageResponse<SensorDeviceCO> list(@RequestBody SensorDevicePageQry qry) {
|
||||||
public PageResponse<SensorDeviceCO> list(@RequestBody SensorDevicePageQry qry) {
|
return sensorDeviceService.listPage(qry);
|
||||||
return sensorDeviceService.listPage(qry);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
@ApiOperation("修改")
|
||||||
|
@PostMapping("/edit")
|
||||||
|
public SingleResponse edit(@Validated @RequestBody SensorDeviceUpdateCmd cmd) {
|
||||||
|
sensorDeviceService.edit(cmd);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("定位")
|
||||||
|
@PostMapping("/location")
|
||||||
|
public SingleResponse location(@Validated @RequestBody SensorDeviceLocationCmd cmd) {
|
||||||
|
sensorDeviceService.location(cmd);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("状态切换")
|
||||||
|
@PutMapping("/status")
|
||||||
|
public SingleResponse updateStatus(@RequestParam Long id, @RequestParam String status) {
|
||||||
|
sensorDeviceService.updateStatus(id, status);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("阈值配置")
|
||||||
|
@PutMapping("/threshold")
|
||||||
|
public SingleResponse updateThreshold(@Validated @RequestBody SensorDeviceThresholdCmd cmd) {
|
||||||
|
sensorDeviceService.updateThreshold(cmd);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("修改")
|
@ApiOperation("删除")
|
||||||
@PostMapping("/edit")
|
@PostMapping("/{id}")
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
public SingleResponse remove(@PathVariable("id") Long id) {
|
||||||
public SingleResponse edit(@Validated @RequestBody SensorDeviceUpdateCmd cmd) {
|
sensorDeviceService.remove(id);
|
||||||
sensorDeviceService.edit(cmd);
|
return SingleResponse.buildSuccess();
|
||||||
return SingleResponse.buildSuccess();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("定位")
|
@ApiOperation("详情")
|
||||||
@PostMapping("/location")
|
@GetMapping("/{id}")
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
public SingleResponse<SensorDeviceCO> info(@PathVariable("id") Long id) {
|
||||||
public SingleResponse location(@Validated @RequestBody SensorDeviceLocationCmd cmd) {
|
return sensorDeviceService.info(id);
|
||||||
sensorDeviceService.location(cmd);
|
}
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("状态切换")
|
|
||||||
@PutMapping("/status")
|
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
|
||||||
public SingleResponse updateStatus(@RequestParam Long id, @RequestParam String status) {
|
|
||||||
sensorDeviceService.updateStatus(id, status);
|
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("阈值配置")
|
|
||||||
@PutMapping("/threshold")
|
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')")
|
|
||||||
public SingleResponse updateThreshold(@Validated @RequestBody SensorDeviceThresholdCmd cmd) {
|
|
||||||
sensorDeviceService.updateThreshold(cmd);
|
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("删除")
|
|
||||||
@PostMapping("/{id}")
|
|
||||||
// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-delete')")
|
|
||||||
public SingleResponse remove(@PathVariable("id") Long id) {
|
|
||||||
sensorDeviceService.remove(id);
|
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("详情")
|
|
||||||
@GetMapping("/{id}")
|
|
||||||
public SingleResponse<SensorDeviceCO> info(@PathVariable("id") Long id) {
|
|
||||||
return sensorDeviceService.info(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation("可视化大屏-传感器设备查询")
|
@ApiOperation("可视化大屏-传感器设备查询")
|
||||||
@PostMapping("/screenList")
|
@PostMapping("/screenList")
|
||||||
public PageResponse<SensorDeviceScreenCO> screenList(@RequestBody SensorDeviceScreenQry qry) {
|
public PageResponse<SensorDeviceScreenCO> screenList(@RequestBody SensorDeviceScreenQry qry) {
|
||||||
return sensorDeviceService.screenList(qry);
|
return sensorDeviceService.screenList(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-消防设备情况")
|
||||||
|
@PostMapping("/fireSituation")
|
||||||
|
public SingleResponse<SensorDeviceFireSituationCO> fireSituation(@RequestBody SensorDeviceFireSituationQry qry) {
|
||||||
|
return sensorDeviceService.fireSituation(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
|
||||||
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.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
|
import com.zcloud.domain.enums.SensorDeviceStatusEnum;
|
||||||
|
import com.zcloud.dto.SensorDeviceFireSituationQry;
|
||||||
import com.zcloud.dto.SensorDevicePageQry;
|
import com.zcloud.dto.SensorDevicePageQry;
|
||||||
import com.zcloud.dto.SensorDeviceScreenQry;
|
import com.zcloud.dto.SensorDeviceScreenQry;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireSituationCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireStatusCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
|
@ -17,6 +21,8 @@ import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SensorDeviceQueryExe - 传感器设备执行器
|
* SensorDeviceQueryExe - 传感器设备执行器
|
||||||
|
|
@ -43,6 +49,35 @@ public class SensorDeviceQueryExe {
|
||||||
return PageResponse.of(pageResponse.getData(), pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
return PageResponse.of(pageResponse.getData(), pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SingleResponse<SensorDeviceFireSituationCO> fireSituation(SensorDeviceFireSituationQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
List<SensorDeviceFireStatusCO> countList = sensorDeviceRepository.fireSituation(params);
|
||||||
|
Map<String, SensorDeviceFireStatusCO> countMap = countList.stream()
|
||||||
|
.collect(Collectors.toMap(SensorDeviceFireStatusCO::getBianma, Function.identity(), (left, right) -> left));
|
||||||
|
|
||||||
|
List<SensorDeviceFireStatusCO> statusList = java.util.Arrays.stream(SensorDeviceStatusEnum.values())
|
||||||
|
.map(item -> {
|
||||||
|
SensorDeviceFireStatusCO statusItem = new SensorDeviceFireStatusCO();
|
||||||
|
statusItem.setBianma(item.getCode());
|
||||||
|
statusItem.setName(item.getName());
|
||||||
|
SensorDeviceFireStatusCO countItem = countMap.get(item.getCode());
|
||||||
|
statusItem.setCount(countItem == null ? 0L : countItem.getCount());
|
||||||
|
return statusItem;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
long totalCount = countList.stream()
|
||||||
|
.map(SensorDeviceFireStatusCO::getCount)
|
||||||
|
.filter(java.util.Objects::nonNull)
|
||||||
|
.mapToLong(Long::longValue)
|
||||||
|
.sum();
|
||||||
|
|
||||||
|
SensorDeviceFireSituationCO co = new SensorDeviceFireSituationCO();
|
||||||
|
co.setTotalCount(totalCount);
|
||||||
|
co.setStatusList(statusList);
|
||||||
|
return SingleResponse.of(co);
|
||||||
|
}
|
||||||
|
|
||||||
public SingleResponse<SensorDeviceCO> getById(Long id) {
|
public SingleResponse<SensorDeviceCO> getById(Long id) {
|
||||||
SensorDeviceDO d = sensorDeviceRepository.getById(id);
|
SensorDeviceDO d = sensorDeviceRepository.getById(id);
|
||||||
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import com.zcloud.command.query.SensorDeviceQueryExe;
|
||||||
import com.zcloud.command.SensorDeviceAddExe;
|
import com.zcloud.command.SensorDeviceAddExe;
|
||||||
import com.zcloud.dto.*;
|
import com.zcloud.dto.*;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireSituationCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -36,6 +37,11 @@ public class SensorDeviceServiceImpl implements SensorDeviceServiceI {
|
||||||
return sensorDeviceQueryExe.screenList(qry);
|
return sensorDeviceQueryExe.screenList(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<SensorDeviceFireSituationCO> fireSituation(SensorDeviceFireSituationQry qry) {
|
||||||
|
return sensorDeviceQueryExe.fireSituation(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse add(SensorDeviceAddCmd cmd) {
|
public SingleResponse add(SensorDeviceAddCmd cmd) {
|
||||||
sensorDeviceAddExe.execute(cmd);
|
sensorDeviceAddExe.execute(cmd);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.dto.*;
|
import com.zcloud.dto.*;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
import com.zcloud.dto.clientobject.SensorDeviceCO;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireSituationCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -22,6 +23,8 @@ public interface SensorDeviceServiceI {
|
||||||
|
|
||||||
PageResponse<SensorDeviceScreenCO> screenList(SensorDeviceScreenQry qry);
|
PageResponse<SensorDeviceScreenCO> screenList(SensorDeviceScreenQry qry);
|
||||||
|
|
||||||
|
SingleResponse<SensorDeviceFireSituationCO> fireSituation(SensorDeviceFireSituationQry qry);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
* @param cmd
|
* @param cmd
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.zcloud.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏消防设备情况查询请求
|
||||||
|
*
|
||||||
|
* @Author wangyan
|
||||||
|
* @Date 2026-07-23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SensorDeviceFireSituationQry {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "企业id", name = "corpinfoId")
|
||||||
|
private Long corpinfoId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea")
|
||||||
|
private Integer portArea;
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package com.zcloud.dto.clientobject;
|
package com.zcloud.dto.clientobject;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.ClientObject;
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可视化大屏物联网设备情况报警返回对象
|
* 可视化大屏物联网设备情况报警返回对象
|
||||||
*
|
*
|
||||||
|
|
@ -22,6 +25,9 @@ public class AlarmRecordScreenCO extends ClientObject {
|
||||||
@ApiModelProperty(value = "所属单位名称")
|
@ApiModelProperty(value = "所属单位名称")
|
||||||
private String corpName;
|
private String corpName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "报警区域")
|
||||||
|
private String fireRegionName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "报警类型")
|
@ApiModelProperty(value = "报警类型")
|
||||||
private String alarmType;
|
private String alarmType;
|
||||||
|
|
||||||
|
|
@ -30,4 +36,14 @@ public class AlarmRecordScreenCO extends ClientObject {
|
||||||
|
|
||||||
@ApiModelProperty(value = "处置状态,10报警中,20未处置,30已消警")
|
@ApiModelProperty(value = "处置状态,10报警中,20未处置,30已消警")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "报警时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime alarmTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备状态")
|
||||||
|
private String sensorStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备状态名称")
|
||||||
|
private String sensorStatusName;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.zcloud.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏消防设备情况返回对象
|
||||||
|
*
|
||||||
|
* @Author wangyan
|
||||||
|
* @Date 2026-07-23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SensorDeviceFireSituationCO extends ClientObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备总数")
|
||||||
|
private Long totalCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "状态统计列表")
|
||||||
|
private List<SensorDeviceFireStatusCO> statusList;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.zcloud.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏消防设备状态统计项
|
||||||
|
*
|
||||||
|
* @Author wangyan
|
||||||
|
* @Date 2026-07-23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SensorDeviceFireStatusCO extends ClientObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "编码")
|
||||||
|
private String bianma;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "数量")
|
||||||
|
private Long count;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.zcloud.domain.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 传感器设备状态枚举
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public enum SensorDeviceStatusEnum {
|
||||||
|
NORMAL("NORMAL", "正常"),
|
||||||
|
FAULT("FAULT", "故障"),
|
||||||
|
OFFLINE("OFFLINE", "离线"),
|
||||||
|
DEACTIVATE("deactivate", "停用");
|
||||||
|
|
||||||
|
private final String code;
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
SensorDeviceStatusEnum(String code, String name) {
|
||||||
|
this.code = code;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SensorDeviceStatusEnum getByCode(String code) {
|
||||||
|
return Arrays.stream(values())
|
||||||
|
.filter(item -> item.code.equals(code))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireStatusCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -26,4 +28,6 @@ public interface SensorDeviceMapper extends BaseMapper<SensorDeviceDO> {
|
||||||
IPage<SensorDeviceDO> listPage(IPage<SensorDeviceDO> page, @Param("params") Map<String, Object> params, @Param("menuPerms") String menuPerms);
|
IPage<SensorDeviceDO> listPage(IPage<SensorDeviceDO> page, @Param("params") Map<String, Object> params, @Param("menuPerms") String menuPerms);
|
||||||
|
|
||||||
IPage<SensorDeviceScreenCO> screenList(IPage<SensorDeviceScreenCO> page, @Param("params") Map<String, Object> params);
|
IPage<SensorDeviceScreenCO> screenList(IPage<SensorDeviceScreenCO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
List<SensorDeviceFireStatusCO> fireSituation(@Param("params") Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,11 @@ package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireStatusCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -17,4 +19,6 @@ public interface SensorDeviceRepository extends BaseRepository<SensorDeviceDO> {
|
||||||
PageResponse<SensorDeviceDO> listPage(Map<String, Object> params);
|
PageResponse<SensorDeviceDO> listPage(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<SensorDeviceScreenCO> screenList(Map<String, Object> params);
|
PageResponse<SensorDeviceScreenCO> screenList(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<SensorDeviceFireStatusCO> fireSituation(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
import com.zcloud.domain.enums.MenuEnum;
|
import com.zcloud.domain.enums.MenuEnum;
|
||||||
|
import com.zcloud.dto.clientobject.SensorDeviceFireStatusCO;
|
||||||
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
import com.zcloud.dto.clientobject.SensorDeviceScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
import com.zcloud.persistence.mapper.SensorDeviceMapper;
|
import com.zcloud.persistence.mapper.SensorDeviceMapper;
|
||||||
|
|
@ -13,6 +14,7 @@ import com.zcloud.utils.Query;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,4 +45,9 @@ public class SensorDeviceRepositoryImpl extends BaseRepositoryImpl<SensorDeviceM
|
||||||
IPage<SensorDeviceScreenCO> result = sensorDeviceMapper.screenList(page, params);
|
IPage<SensorDeviceScreenCO> result = sensorDeviceMapper.screenList(page, params);
|
||||||
return PageHelper.pageToResponse(result, result.getRecords());
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SensorDeviceFireStatusCO> fireSituation(Map<String, Object> params) {
|
||||||
|
return sensorDeviceMapper.fireSituation(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,16 +122,22 @@
|
||||||
ELSE ar.alarm_source
|
ELSE ar.alarm_source
|
||||||
END AS alarmSourceName,
|
END AS alarmSourceName,
|
||||||
ci.corp_name AS corpName,
|
ci.corp_name AS corpName,
|
||||||
|
fr.fire_region_name AS fireRegionName,
|
||||||
ar.alarm_type AS alarmType,
|
ar.alarm_type AS alarmType,
|
||||||
ar.alarm_type_name AS alarmTypeName,
|
ar.alarm_type_name AS alarmTypeName,
|
||||||
ar.status AS status
|
ar.status AS status,
|
||||||
|
ar.alarm_time AS alarmTime,
|
||||||
|
iasd.sensor_status AS sensorStatus,
|
||||||
|
iasd.sensor_status_name AS sensorStatusName
|
||||||
FROM iot_alarm_record ar
|
FROM iot_alarm_record ar
|
||||||
LEFT JOIN corp_info ci ON ar.tenant_id = ci.id
|
left join iot_alarm_sensor_device iasd on iasd.sensor_device_id = ar.sensor_device_id and iasd.delete_enum='FALSE'
|
||||||
|
LEFT JOIN corp_info ci ON iasd.tenant_id = ci.id
|
||||||
|
LEFT JOIN fire_region fr ON ar.fire_region_id = fr.fire_region_id AND fr.delete_enum = 'FALSE'
|
||||||
<where>
|
<where>
|
||||||
ar.delete_enum = 'FALSE'
|
ar.delete_enum = 'FALSE'
|
||||||
AND ar.status != 40
|
AND ar.status != 40
|
||||||
<if test="params.corpinfoId != null">
|
<if test="params.corpinfoId != null">
|
||||||
AND ar.corpinfo_id = #{params.corpinfoId}
|
AND iasd.tenant_id = #{params.corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
ORDER BY ar.alarm_time DESC
|
ORDER BY ar.alarm_time DESC
|
||||||
|
|
|
||||||
|
|
@ -57,4 +57,22 @@
|
||||||
</where>
|
</where>
|
||||||
ORDER BY CASE WHEN sd.sensor_status = 'NORMAL' AND sd.alarm_switch = 1 THEN 0 ELSE 1 END, sd.create_time DESC
|
ORDER BY CASE WHEN sd.sensor_status = 'NORMAL' AND sd.alarm_switch = 1 THEN 0 ELSE 1 END, sd.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="fireSituation" resultType="com.zcloud.dto.clientobject.SensorDeviceFireStatusCO">
|
||||||
|
SELECT
|
||||||
|
sd.sensor_status AS bianma,
|
||||||
|
COUNT(1) AS count
|
||||||
|
FROM iot_alarm_sensor_device sd
|
||||||
|
LEFT JOIN corp_info ci ON sd.tenant_id = ci.id AND ci.delete_enum = 'FALSE'
|
||||||
|
<where>
|
||||||
|
sd.delete_enum = 'FALSE'
|
||||||
|
<if test="params.corpinfoId != null">
|
||||||
|
AND sd.tenant_id = #{params.corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="params.portArea != null">
|
||||||
|
AND ci.port_area = #{params.portArea}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY sd.sensor_status
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue