Browse Source

feat: 部分指标接口

master_tdsql
hxh 2 months ago
parent
commit
5acca7c41c
  1. 8
      shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java
  2. 4
      shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java
  3. 2
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java
  4. 28
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorGroupEnum.java
  5. 56
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorIndexEnum.java
  6. 33
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorIndexInfo.java
  7. 34
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java

8
shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java

@ -5,6 +5,8 @@ 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.MonitorGroupEnum;
import com.kms.yg.cz.enmu.MonitorIndexEnum;
import com.kms.yg.cz.service.MonitorService;
import com.kms.yxgh.base.Response;
import io.swagger.annotations.Api;
@ -61,4 +63,10 @@ public class MonitorController {
public Response<List<MonitorConfigDto>> configList(@PathVariable("stcd") String stcd) {
return Response.ok(monitorService.configList(stcd));
}
@PostMapping("/index")
@ApiOperation("查询监测指标信息")
public Response<List<MonitorIndexEnum.IndexInfo>> handleRbe(@RequestBody MonitorQueDto sp) {
return Response.ok(MonitorGroupEnum.SK.info());
}
}

4
shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java

@ -2,6 +2,7 @@ package com.kms.yg.cz.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yg.cz.enmu.MonitorGroupEnum;
import com.kms.yg.cz.enmu.MonitorSourceEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -14,6 +15,9 @@ import java.util.Date;
@ApiModel("监测信息请求参数")
public class MonitorQueDto {
@ApiModelProperty(value = "查询类型")
private MonitorGroupEnum group;
@ApiModelProperty(value = "监测要素")
private String elementType;

2
shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java

@ -13,7 +13,7 @@ import java.util.List;
import java.util.Map;
@Getter
public enum MarkTypeEnum {
public enum MarkTypeEnum implements MonitorIndexInfo {
FSLTDZ_LIMIT("汛限水位", "m", Constants.DEFAULT_KEY_FIELD, "rsltdz", AttResRfkwlvMapper.class),
CHFLLV("校准洪核水位", "m", Constants.DEFAULT_KEY_FIELD, "chfllv", AttResRsppMapper.class),

28
shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorGroupEnum.java

@ -0,0 +1,28 @@
package com.kms.yg.cz.enmu;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Getter
public enum MonitorGroupEnum {
SK("水库", Arrays.asList(MonitorIndexEnum.WATER, MonitorIndexEnum.RAINFALL, MonitorIndexEnum.WATER_STORE)),
;
private final String group;
private final List<MonitorIndexEnum> indexElements;
MonitorGroupEnum(String group, List<MonitorIndexEnum> indexElements) {
this.group = group;
this.indexElements = indexElements;
}
public List<MonitorIndexEnum.IndexInfo> info() {
return this.indexElements.stream()
.map(MonitorIndexEnum::getIndexInfos)
.collect(Collectors.toList());
}
}

56
shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorIndexEnum.java

@ -0,0 +1,56 @@
package com.kms.yg.cz.enmu;
import lombok.Data;
import lombok.Getter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.kms.yg.cz.enmu.MarkTypeEnum.CHFLLV;
import static com.kms.yg.cz.enmu.MarkTypeEnum.FSLTDZ_LIMIT;
import static com.kms.yg.cz.enmu.MonitorTypeEnum.*;
@Getter
public enum MonitorIndexEnum {
WATER("水位信息", Arrays.asList(WATER_LEVEL, MAX_WATER_LEVEL, MIN_WATER_LEVEL, AVG_WATER_LEVEL),
Arrays.asList(FSLTDZ_LIMIT, CHFLLV)),
RAINFALL("降雨量", Arrays.asList(MonitorTypeEnum.RAINFALL, MAX_RAINFALL, MIN_RAINFALL, AVG_RAINFALL)),
WATER_STORE("蓄水量", Collections.singletonList(STORE_WATER)),
;
private final String group;
private final List<MonitorTypeEnum> indexElements;
private final List<MarkTypeEnum> markTypes;
MonitorIndexEnum(String group, List<MonitorTypeEnum> indexElements) {
this(group, indexElements, Collections.emptyList());
}
MonitorIndexEnum(String group, List<MonitorTypeEnum> indexElements, List<MarkTypeEnum> markTypes) {
this.group = group;
this.indexElements = indexElements;
this.markTypes = markTypes;
}
public IndexInfo getIndexInfos() {
IndexInfo indexInfo = new IndexInfo();
indexInfo.setGroup(group);
indexInfo.setItems(
Stream.concat(indexElements.stream(),
markTypes.stream())
.filter(item -> item instanceof MonitorIndexInfo)
.map(item -> (MonitorIndexInfo) item)
.map(MonitorIndexInfo::toInfo)
.collect(Collectors.toList()));
return indexInfo;
}
@Data
public static class IndexInfo {
private String group;
private List<Info> items;
}
}

33
shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorIndexInfo.java

@ -0,0 +1,33 @@
package com.kms.yg.cz.enmu;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
public interface MonitorIndexInfo {
String getZhName();
String getUnit();
String name();
default Info toInfo() {
Info info = new Info();
info.setZhName(getZhName());
info.setUnit(getUnit());
info.setKey(name());
return info;
}
@AllArgsConstructor
@NoArgsConstructor
@Data
class Info {
private String zhName;
private String unit;
private String key;
private String value;
}
}

34
shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java

@ -3,9 +3,17 @@ package com.kms.yg.cz.enmu;
import lombok.Getter;
@Getter
public enum MonitorTypeEnum {
public enum MonitorTypeEnum implements MonitorIndexInfo {
WATER_LEVEL("水位", MonitorSourceEnum.MS_HDM_RSVR, "rz", "collTime", "m", MarkTypeEnum.FSLTDZ_LIMIT),
MAX_WATER_LEVEL("最大水位", MonitorSourceEnum.MS_HDM_RSVREVS, "htrz", "collTime", "m"),
MIN_WATER_LEVEL("最小水位", MonitorSourceEnum.MS_HDM_RSVREVS, "ltrz", "collTime", "m"),
AVG_WATER_LEVEL("平均水位", MonitorSourceEnum.MS_HDM_RSVRAV, "avrz", "collTime", "m"),
STORE_WATER("蓄水量", MonitorSourceEnum.MS_HDM_RSVR, "w", "collTime", "m³"),
RAINFALL("降雨量", MonitorSourceEnum.MS_HDM_OBP, "drp", "collTime", "mm", MarkTypeEnum.CHFLLV),
MAX_RAINFALL("最大降雨量", MonitorSourceEnum.MS_HDM_OBP, "drp", "collTime", "mm", OperatorEnum.MAX),
MIN_RAINFALL("最小降雨量", MonitorSourceEnum.MS_HDM_OBP, "drp", "collTime", "mm", OperatorEnum.MIN),
AVG_RAINFALL("平均降雨量", MonitorSourceEnum.MS_HDM_OBP, "drp", "collTime", "mm", OperatorEnum.AVG),
AIR_TEMPE("气温", MonitorSourceEnum.MS_DSM_ENV, "aitp", "tm", "℃"),
WATER_TEMPE("水温", MonitorSourceEnum.MS_DSM_ENV, "ctp", "tm", "℃"),
UPLIFTED_PRESSURE("扬压力", MonitorSourceEnum.MS_DSM_PTMP, "upliftedPressure", "mstm", "MPa"),
@ -19,19 +27,39 @@ public enum MonitorTypeEnum {
private final String timeField;
private final String unit;
private final MarkTypeEnum markType;
private final OperatorEnum operator;
MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit) {
this(zhName, source, valueField, timeField, unit, null);
this(zhName, source, valueField, timeField, unit, null, OperatorEnum.TOP);
}
MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit, MarkTypeEnum markType) {
this(zhName, source, valueField, timeField, unit, markType, OperatorEnum.TOP);
}
MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit, OperatorEnum operator) {
this(zhName, source, valueField, timeField, unit, null, operator);
}
MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit, MarkTypeEnum markType, OperatorEnum operator) {
this.zhName = zhName;
this.source = source;
this.valueField = valueField;
this.unit = unit;
this.markType = markType;
this.timeField = timeField;
this.operator = operator;
}
@Getter
public enum OperatorEnum {
TOP,
MAX,
MIN,
AVG,
TOTAL,
;
}
}

Loading…
Cancel
Save