Browse Source

feat: 补充告警和规则接口等

master_tdsql
hxh 4 months ago
parent
commit
9a69a4d965
  1. 3
      shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java
  2. 52
      shuili-system/src/main/java/com/kms/yg/cz/domain/AlarmInfo.java
  3. 2
      shuili-system/src/main/java/com/kms/yg/cz/domain/BsSgcStMon.java
  4. 55
      shuili-system/src/main/java/com/kms/yg/cz/domain/MonitorConfig.java
  5. 15
      shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java
  6. 5
      shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java
  7. 18
      shuili-system/src/main/java/com/kms/yg/cz/mapper/AlarmInfoMapper.java
  8. 18
      shuili-system/src/main/java/com/kms/yg/cz/mapper/MonitorConfigMapper.java
  9. 20
      shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java
  10. 34
      shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java
  11. 76
      sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql

3
shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java

@ -2,6 +2,7 @@ package com.kms.yg.cz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kms.yg.cz.dto.AlarmInfoDto;
import com.kms.yg.cz.dto.AlarmQueDto;
import com.kms.yg.cz.dto.MonitorQueDto;
import com.kms.yg.cz.service.AlarmService;
import io.swagger.annotations.Api;
@ -30,7 +31,7 @@ public class AlarmController {
@PostMapping("/page")
@ApiOperation("分页查询监测信息")
public IPage<AlarmInfoDto> page(@RequestBody MonitorQueDto sp) {
public IPage<AlarmInfoDto> page(@RequestBody AlarmQueDto sp) {
return alarmService.pageQuery(sp);
}

52
shuili-system/src/main/java/com/kms/yg/cz/domain/AlarmInfo.java

@ -0,0 +1,52 @@
package com.kms.yg.cz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@TableName("bs_sgc_st_alarm")
@ApiModel("告警信息")
public class AlarmInfo extends BaseEntity {
@ApiModelProperty(value = "水库名称")
private String resName;
@ApiModelProperty(value = "水库编码")
private String resCode;
@ApiModelProperty(value = "测站名称")
private String stnm;
@ApiModelProperty(value = "测站编码")
private String stcd;
@ApiModelProperty(value = "测站类型")
private String sttp;
@ApiModelProperty(value = "预警类型")
private String alarmType;
@ApiModelProperty(value = "监测数据")
private String monitorData;
@ApiModelProperty(value = "预警值")
private String alarmValue;
@ApiModelProperty(value = "预警时间")
private Date alarmTime;
@ApiModelProperty(value = "预警状态")
private String alarmStatus;
@ApiModelProperty(value = "告警处置")
private String alarmDisposal;
@TableField(exist = false)
private String remark;
}

2
shuili-system/src/main/java/com/kms/yg/cz/domain/BsSgcStMon.java

@ -13,7 +13,7 @@ import java.util.Date;
@TableName("bs_sgc_st_mon")
@Data
@ApiModel("水文水工程监测站基础信息")
@ApiModel("水文水工程测站监测要素")
public class BsSgcStMon {
@TableId()

55
shuili-system/src/main/java/com/kms/yg/cz/domain/MonitorConfig.java

@ -0,0 +1,55 @@
package com.kms.yg.cz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yg.cz.enmu.MsgTypeEnum;
import com.kms.yxgh.common.dto.OperatorDto;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@TableName("bs_sgc_st_micfg")
@ApiModel("监测配置信息")
public class MonitorConfig extends BaseEntity {
@ApiModelProperty("水库编码")
private String resCode;
@ApiModelProperty("水库名称")
private String resName;
@ApiModelProperty("监测类型")
private String mpType;
@ApiModelProperty("测站编码")
private String stcd;
@ApiModelProperty("预警类型")
private String warnType;
@ApiModelProperty("预警值")
private String warnValue;
@ApiModelProperty("预警通知人")
private String warnOperators;
@ApiModelProperty("预警通知方式")
private String msgType;
@ApiModelProperty("信息模板")
private String msgTemplate;
@ApiModelProperty("预警通知间隔")
private String warnInterval;
@ApiModelProperty("预警时间单位")
private String warnTimeUnit;
@TableField(exist = false)
private String remark;
}

15
shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java

@ -1,13 +1,25 @@
package com.kms.yg.cz.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("告警信息")
public class AlarmInfoDto {
@ApiModelProperty(value = "告警信息ID")
private String id;
@ApiModelProperty(value = "水库名称")
private String resName;
@ApiModelProperty(value = "水库编码")
private String resCode;
@ApiModelProperty(value = "测站名称")
private String stnm;
@ -26,8 +38,9 @@ public class AlarmInfoDto {
@ApiModelProperty(value = "预警值")
private String alarmValue;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "预警时间")
private String alarmTime;
private Date alarmTime;
@ApiModelProperty(value = "预警状态")
private String alarmStatus;

5
shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java

@ -2,8 +2,6 @@ package com.kms.yg.cz.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yg.cz.enmu.MonitorComposeEnum;
import com.kms.yg.cz.enmu.MonitorSourceEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -15,6 +13,9 @@ import java.util.Date;
@ApiModel("监测告警请求参数")
public class AlarmQueDto {
@ApiModelProperty(value = "水库编码")
private String resCode;
@JSONField(name = "START_TIME", format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@NotNull(message = "开始时间不能为空")

18
shuili-system/src/main/java/com/kms/yg/cz/mapper/AlarmInfoMapper.java

@ -0,0 +1,18 @@
package com.kms.yg.cz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yg.cz.domain.AlarmInfo;
import com.kms.yg.cz.domain.AttStBase;
import org.springframework.stereotype.Repository;
/**
* 请填写功能名称Mapper接口
*
* @author kms
* @date 2024-04-24
*/
@Repository
public interface AlarmInfoMapper extends BaseMapper<AlarmInfo> {
}

18
shuili-system/src/main/java/com/kms/yg/cz/mapper/MonitorConfigMapper.java

@ -0,0 +1,18 @@
package com.kms.yg.cz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yg.cz.domain.AlarmInfo;
import com.kms.yg.cz.domain.MonitorConfig;
import org.springframework.stereotype.Repository;
/**
* 请填写功能名称Mapper接口
*
* @author kms
* @date 2024-04-24
*/
@Repository
public interface MonitorConfigMapper extends BaseMapper<MonitorConfig> {
}

20
shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java

@ -1,10 +1,16 @@
package com.kms.yg.cz.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yg.cz.domain.AlarmInfo;
import com.kms.yg.cz.dto.AlarmInfoDto;
import com.kms.yg.cz.dto.MonitorQueDto;
import com.kms.yg.cz.dto.AlarmQueDto;
import com.kms.yg.cz.mapper.AlarmInfoMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -12,8 +18,16 @@ import org.springframework.stereotype.Service;
@Slf4j
public class AlarmService {
@Autowired
private AlarmInfoMapper alarmInfoMapper;
public IPage<AlarmInfoDto> pageQuery(MonitorQueDto sp) {
return new Page<>();
public IPage<AlarmInfoDto> pageQuery(AlarmQueDto sp) {
Page<AlarmInfo> page = new Page<>(sp.getPageNum(), sp.getPageSize());
Wrapper<AlarmInfo> wrapper = Wrappers.<AlarmInfo>lambdaQuery()
.between(AlarmInfo::getAlarmTime, sp.getStartTime(), sp.getEndTime())
.eq(AlarmInfo::getResCode, sp.getResCode());
IPage<AlarmInfo> result = alarmInfoMapper.selectPage(page, wrapper);
return new Page<AlarmInfoDto>(result.getCurrent(), result.getSize(), result.getTotal())
.setRecords(BeanCopyUtils.copyList(result.getRecords(), AlarmInfoDto.class));
}
}

34
shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java

@ -1,11 +1,18 @@
package com.kms.yg.cz.service;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yg.cz.domain.MonitorConfig;
import com.kms.yg.cz.dto.CharInfoDto;
import com.kms.yg.cz.dto.CurrentWaterMonitorDto;
import com.kms.yg.cz.dto.MonitorConfigDto;
import com.kms.yg.cz.dto.MonitorQueDto;
import com.kms.yg.cz.enmu.MonitorSourceEnum;
import com.kms.yg.cz.mapper.MonitorConfigMapper;
import com.kms.yxgh.common.dto.OperatorDto;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.DataCenterRestTemplateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,6 +24,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -25,6 +33,9 @@ public class MonitorService {
@Autowired
private DataCenterRestTemplateUtils dataCenterRestTemplateUtils;
@Autowired
private MonitorConfigMapper monitorConfigMapper;
@Value("${dataSync.url:}")
private String dataSyncUrl;
@Value("#{${dataSync.paths:{}}}")
@ -57,10 +68,31 @@ public class MonitorService {
}
public MonitorConfigDto config(MonitorConfigDto sp) {
MonitorConfig monitorConfig = BeanCopyUtils.copy(sp, MonitorConfig.class);
assert monitorConfig != null;
monitorConfig.setWarnOperators(JSON.toJSONString(sp.getWarnOperators()));
if (monitorConfig.getId() == null) {
monitorConfigMapper.insert(monitorConfig);
} else {
monitorConfigMapper.updateById(monitorConfig);
}
return null;
}
public List<MonitorConfigDto> configList(String stcd) {
return Collections.emptyList();
Wrapper<MonitorConfig> wrapper = Wrappers.lambdaQuery(MonitorConfig.class)
.eq(MonitorConfig::getStcd, stcd);
List<MonitorConfig> monitorConfigs = monitorConfigMapper.selectList(wrapper);
if (monitorConfigs == null || monitorConfigs.isEmpty()) {
return Collections.emptyList();
} else {
return monitorConfigs.stream()
.map(item -> {
MonitorConfigDto monitorConfigDto = BeanCopyUtils.copy(item, MonitorConfigDto.class);
assert monitorConfigDto != null;
monitorConfigDto.setWarnOperators(JSON.parseArray(item.getWarnOperators(), OperatorDto.class));
return monitorConfigDto;
}).collect(Collectors.toList());
}
}
}

76
sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql

@ -7,6 +7,78 @@ CREATE TABLE `bs_sgc_st_mon` (
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水文水工程监测站基础信息';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水文水工程测站监测要素';
CREATE INDEX bs_sgc_st_mon_STCD_IDX USING BTREE ON bs_sgc_st_mon (STCD);
CREATE TABLE `att_res_code` (
`ID` VARCHAR(30) COLLATE utf8mb4_general_ci COMMENT '主键',
`RES_CODE` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '水库编码',
`STCD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '测站编码',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水库编码信息';
CREATE TABLE `att_res_rfkwlv` (
`ID` VARCHAR(30) COLLATE utf8mb4_general_ci COMMENT '主键',
`RES_CODE` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '水库编码',
`ACTYR` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '开启年份',
`BGMD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '开启日期',
`RSLTDZ` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '汛限水位',
`EDMD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '结束日期',
`FLSTDW` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '汛限制库容',
`ENABLE_FLAG` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '启用标识',
`NOTE` TEXT COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水库汛期运用主要特征值表';
CREATE TABLE `bs_sgc_st_alarm` (
`ID` VARCHAR(30) COLLATE utf8mb4_general_ci COMMENT '主键',
`RES_NAME` VARCHAR(100) COLLATE utf8mb4_general_ci COMMENT '水库名称',
`RES_CODE` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '水库编码',
`STNM` VARCHAR(100) COLLATE utf8mb4_general_ci COMMENT '测站名称',
`STCD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '测站编码',
`STTP` VARCHAR(20) COLLATE utf8mb4_general_ci COMMENT '测站类型',
`ALARM_TYPE` VARCHAR(50) COLLATE utf8mb4_general_ci COMMENT '预警类型',
`MONITOR_DATA` VARCHAR(255) COLLATE utf8mb4_general_ci COMMENT '监测数据',
`ALARM_VALUE` VARCHAR(50) COLLATE utf8mb4_general_ci COMMENT '预警值',
`ALARM_TIME` DATETIME COMMENT '预警时间',
`ALARM_STATUS` VARCHAR(10) COLLATE utf8mb4_general_ci COMMENT '预警状态',
`ALARM_DISPOSAL` VARCHAR(255) COLLATE utf8mb4_general_ci COMMENT '告警处置',
`CREATE_BY` VARCHAR(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建者',
`CREATE_TIME` DATETIME DEFAULT NULL COMMENT '创建时间',
`UPDATE_BY` VARCHAR(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新者',
`UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警信息';
CREATE TABLE `bs_sgc_st_micfg` (
`ID` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`RES_CODE` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '水库编码',
`RES_NAME` VARCHAR(255) COLLATE utf8mb4_general_ci COMMENT '水库名称',
`MP_TYPE` VARCHAR(40) COLLATE utf8mb4_general_ci COMMENT '监测类型',
`STCD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '测站编码',
`WARN_TYPE` VARCHAR(40) COLLATE utf8mb4_general_ci COMMENT '预警类型',
`WARN_VALUE` VARCHAR(40) COLLATE utf8mb4_general_ci COMMENT '预警值',
`WARN_OPERATORS` TEXT COLLATE utf8mb4_general_ci COMMENT '预警通知人',
`MSG_TYPE` VARCHAR(10) COLLATE utf8mb4_general_ci COMMENT '预警通知方式',
`MSG_TEMPLATE` TEXT COLLATE utf8mb4_general_ci COMMENT '信息模板',
`WARN_INTERVAL` VARCHAR(100) COLLATE utf8mb4_general_ci COMMENT '预警通知间隔',
`WARN_TIME_UNIT` VARCHAR(10) COLLATE utf8mb4_general_ci COMMENT '预警时间单位',
`CREATE_BY` VARCHAR(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建者',
`CREATE_TIME` DATETIME DEFAULT NULL COMMENT '创建时间',
`UPDATE_BY` VARCHAR(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新者',
`UPDATE_TIME` DATETIME DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='监测配置信息';
CREATE INDEX bs_sgc_st_mon_STCD_IDX USING BTREE ON bs_sgc_st_mon (STCD);
Loading…
Cancel
Save