From a96e80c7c8b9f8836e849afd8b17892838d0877f Mon Sep 17 00:00:00 2001 From: hxh Date: Sun, 29 Dec 2024 15:20:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E6=8E=A5=E5=8F=A3=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kms/yg/cz/controller/AlarmController.java | 38 +++++++++ .../yg/cz/controller/AttStMpController.java | 85 +++++++++++++++---- .../yg/cz/controller/MonitorController.java | 17 ++++ .../java/com/kms/yg/cz/dto/AlarmInfoDto.java | 37 ++++++++ .../java/com/kms/yg/cz/dto/AlarmQueDto.java | 34 ++++++++ .../java/com/kms/yg/cz/dto/AttMpQueDto.java | 18 ++++ .../java/com/kms/yg/cz/dto/CharInfoDto.java | 54 ++++++++++++ .../kms/yg/cz/dto/CurrentWaterMonitorDto.java | 49 +++++++++++ .../java/com/kms/yg/cz/dto/MonitorQueDto.java | 11 ++- .../java/com/kms/yg/cz/enmu/MarkTypeEnum.java | 59 +++++++++++++ .../kms/yg/cz/enmu/MonitorComposeEnum.java | 41 +++++++++ ...onitorEnum.java => MonitorSourceEnum.java} | 11 +-- .../com/kms/yg/cz/enmu/MonitorTypeEnum.java | 37 ++++++++ .../com/kms/yg/cz/service/AlarmService.java | 19 +++++ .../com/kms/yg/cz/service/AttStMpService.java | 7 ++ .../com/kms/yg/cz/service/MonitorService.java | 18 +++- .../sk/controller/AttResBaseController.java | 11 ++- .../java/com/kms/yg/sk/domain/AttResCode.java | 23 +++++ .../com/kms/yg/sk/domain/AttResRfkwlv.java | 41 +++++++++ .../kms/yg/sk/mapper/AttResCodeMapper.java | 17 ++++ .../kms/yg/sk/mapper/AttResRfkwlvMapper.java | 17 ++++ .../kms/yg/sk/service/AttResCodeService.java | 19 +++++ .../{MsHdmSppr.java => MsDsmSppr.java} | 79 ++++------------- .../yxgh/common/enums/DataSyncBasicEnum.java | 3 + sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql | 12 +++ 25 files changed, 663 insertions(+), 94 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/dto/AttMpQueDto.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/dto/CharInfoDto.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/dto/CurrentWaterMonitorDto.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorComposeEnum.java rename shuili-system/src/main/java/com/kms/yg/cz/enmu/{MonitorEnum.java => MonitorSourceEnum.java} (98%) create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java create mode 100644 shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java create mode 100644 shuili-system/src/main/java/com/kms/yg/sk/domain/AttResCode.java create mode 100644 shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java create mode 100644 shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResCodeMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResRfkwlvMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yg/sk/service/AttResCodeService.java rename shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/{MsHdmSppr.java => MsDsmSppr.java} (55%) create mode 100644 sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql diff --git a/shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java b/shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java new file mode 100644 index 00000000..99b43362 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/controller/AlarmController.java @@ -0,0 +1,38 @@ +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.MonitorQueDto; +import com.kms.yg.cz.service.AlarmService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 监测信息Controller + * + * @author kms + * @date 2024-04-24 + */ +@RestController +@RequestMapping("/cz/alarm") +@AllArgsConstructor +@Api(tags = "监测告警信息") +public class AlarmController { + + private final AlarmService alarmService; + + + @PostMapping("/page") + @ApiOperation("分页查询监测信息") + public IPage page(@RequestBody MonitorQueDto sp) { + return alarmService.pageQuery(sp); + } + + +} \ No newline at end of file diff --git a/shuili-system/src/main/java/com/kms/yg/cz/controller/AttStMpController.java b/shuili-system/src/main/java/com/kms/yg/cz/controller/AttStMpController.java index cf2237b7..5cbefa0f 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/controller/AttStMpController.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/controller/AttStMpController.java @@ -1,19 +1,21 @@ package com.kms.yg.cz.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.yg.cz.domain.AttStMp; +import com.kms.yg.cz.dto.AttMpQueDto; import com.kms.yg.cz.service.AttStMpService; -import com.shuili.common.annotation.Log; +import com.kms.yxgh.base.Response; import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.domain.AjaxResult; -import com.shuili.common.core.domain.SearchParam; -import com.shuili.common.enums.BusinessType; -import com.shuili.common.utils.poi.ExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @@ -31,19 +33,9 @@ public class AttStMpController extends BaseController { private AttStMpService attStMpService; @PostMapping("/list") - @ApiOperation("测点基础信息列表") - public IPage list(@RequestBody SearchParam sp) { - return attStMpService.selectPage(sp); - } - - - @Log(title = "测点基础信息导出", businessType = BusinessType.EXPORT) - @PostMapping("/export") - @ApiOperation("测点基础信息导出") - public AjaxResult export(@RequestBody AttStMp attStMp) { - List list = attStMpService.listByIds(attStMp.getIds()); - ExcelUtil util = new ExcelUtil<>(AttStMp.class); - return util.exportExcel(list, "base"); + @ApiOperation("测点基础信息列表(不分页)") + public Response> list(@RequestBody AttMpQueDto sp) { + return Response.ok(attStMpService.selectList(sp)); } @ApiOperation("测点基础信息详情") @@ -52,4 +44,61 @@ public class AttStMpController extends BaseController { return AjaxResult.success(attStMpService.getById(id)); } + @ApiOperation("测点要素树") + @GetMapping(value = "/tree") + public AjaxResult getTree() { + List tree = new ArrayList<>(); + tree.add(Item.builder().key("1").value("环境量监测").children(env()).build()); + tree.add(Item.builder().key("2").value("渗流监测").children(sl()).build()); + tree.add(Item.builder().key("3").value("变形监测").children(bx()).build()); + return AjaxResult.success(tree); + } + + private List bx() { + List bx = new ArrayList<>(); + bx.add(Item.builder().key("DSM01").value("GNSS").build()); + bx.add(Item.builder().key("MEMS").value("惯导").build()); + bx.add(Item.builder().key("DSM03").value("测斜").build()); + bx.add(Item.builder().key("DSM04").value("测缝").build()); + bx.add(Item.builder().key("DSM05").value("应力").build()); + bx.add(Item.builder().key("DSM06").value("应变").build()); + bx.add(Item.builder().key("DSM07").value("土压力").build()); + bx.add(Item.builder().key("DSM08").value("锚杆").build()); + bx.add(Item.builder().key("DSM09").value("引张线").build()); + bx.add(Item.builder().key("DSM10").value("倒垂").build()); + bx.add(Item.builder().key("DSM11").value("双金属标").build()); + bx.add(Item.builder().key("DSM12").value("静力水准").build()); + bx.add(Item.builder().key("DSM13").value("几何水准").build()); + bx.add(Item.builder().key("DSM14").value("视准线").build()); + bx.add(Item.builder().key("DSM15").value("全站仪").build()); + return bx; + } + + private List env() { + List env = new ArrayList<>(); + env.add(Item.builder().key("DSM22").value("气温").build()); + env.add(Item.builder().key("DSM24").value("水温").build()); + return env; + } + + private List sl() { + List sl = new ArrayList<>(); + sl.add(Item.builder().key("DSM16").value("扬压力").build()); + sl.add(Item.builder().key("DSM17").value("渗透压力").build()); + sl.add(Item.builder().key("DSM18").value("绕坝渗流").build()); + sl.add(Item.builder().key("DSM19").value("渗流量").build()); + return sl; + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class Item { + private String key; + private String value; + private List children = new ArrayList<>(); + } + + } diff --git a/shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java b/shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java index 2e009a50..7a1f5889 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/controller/MonitorController.java @@ -1,8 +1,11 @@ package com.kms.yg.cz.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kms.yg.cz.dto.CharInfoDto; +import com.kms.yg.cz.dto.CurrentWaterMonitorDto; import com.kms.yg.cz.dto.MonitorQueDto; import com.kms.yg.cz.service.MonitorService; +import com.kms.yxgh.base.Response; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -32,4 +35,18 @@ public class MonitorController { public IPage page(@RequestBody MonitorQueDto sp) { return monitorService.pageQuery(sp); } + + @PostMapping("/watter") + @ApiOperation("查询当前水情监测信息") + public Response watter(@RequestBody MonitorQueDto sp) { + CurrentWaterMonitorDto infoDto = monitorService.watter(sp); + return Response.ok(infoDto); + } + + @PostMapping("/chart") + @ApiOperation("查询图表信息") + public Response chart(@RequestBody MonitorQueDto sp) { + CharInfoDto infoDto = monitorService.chart(sp); + return Response.ok(infoDto); + } } \ No newline at end of file diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java new file mode 100644 index 00000000..114eb7b8 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmInfoDto.java @@ -0,0 +1,37 @@ +package com.kms.yg.cz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("告警信息") +public class AlarmInfoDto { + + @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 String alarmTime; + + @ApiModelProperty(value = "预警状态") + private String alarmStatus; + + @ApiModelProperty(value = "告警处置") + private String alarmDisposal; +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java new file mode 100644 index 00000000..c30129a4 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/AlarmQueDto.java @@ -0,0 +1,34 @@ +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; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +@Data +@ApiModel("监测告警请求参数") +public class AlarmQueDto { + + @JSONField(name = "START_TIME", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "开始时间不能为空") + @ApiModelProperty(value = "开始时间", required = true) + private Date startTime; + + @JSONField(name = "END_TIME", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "结束时间不能为空") + @ApiModelProperty(value = "结束时间", required = true) + private Date endTime; + + @ApiModelProperty(value = "页码") + private Integer pageSize = 10; + @ApiModelProperty(value = "每页条数") + private Integer pageNum = 1; +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/AttMpQueDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/AttMpQueDto.java new file mode 100644 index 00000000..6fab366e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/AttMpQueDto.java @@ -0,0 +1,18 @@ +package com.kms.yg.cz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@ApiModel("测点查询Dto") +@Data +public class AttMpQueDto { + + @ApiModelProperty("水库编码") + private String resCode; + + @ApiModelProperty("测点类型") + private String mpType; + +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/CharInfoDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/CharInfoDto.java new file mode 100644 index 00000000..ef16de92 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/CharInfoDto.java @@ -0,0 +1,54 @@ +package com.kms.yg.cz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("图表信息") +@Data +public class CharInfoDto { + @ApiModelProperty(value = "x轴") + private List xAxis; + + @ApiModelProperty(value = "y轴") + private List yAxis; + + @ApiModelProperty(value = "标线") + private List markLine; + + @Data + @ApiModel("y轴") + public static class YAxis { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "数据") + private List series; + } + + @ApiModel("y轴数据") + @Data + public static class Series { + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "数据") + private List data; + } + + @ApiModel("标线") + @Data + public static class MarkLine { + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "值") + private String value; + } +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/CurrentWaterMonitorDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/CurrentWaterMonitorDto.java new file mode 100644 index 00000000..4ad84356 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/CurrentWaterMonitorDto.java @@ -0,0 +1,49 @@ +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; + +@Data +@ApiModel("当前水情监测信息") +public class CurrentWaterMonitorDto { + + @ApiModelProperty(value = "当前库水位") + private String currentRz; + + @ApiModelProperty(value = "当前蓄水量") + private String currentW; + + @ApiModelProperty(value = "最大库水位") + private String maxRz; + + @ApiModelProperty(value = "最小库水位") + private String minRz; + + @ApiModelProperty(value = "平均库水位") + private String avgRz; + + @ApiModelProperty(value = "最大库水位时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private String maxRzTime; + + @ApiModelProperty(value = "最小库水位时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private String minRzTime; + + @ApiModelProperty(value = "日降雨量") + private String dyp; + + @ApiModelProperty(value = "平均降雨量") + private String avgDyp; + + @ApiModelProperty(value = "最大降雨量") + private String maxDyp; + + @ApiModelProperty(value = "最大降雨量时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private String maxDypTime; + + +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java b/shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java index 2a5d4407..72c7b829 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/dto/MonitorQueDto.java @@ -2,7 +2,8 @@ package com.kms.yg.cz.dto; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonFormat; -import com.kms.yg.cz.enmu.MonitorEnum; +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; @@ -14,9 +15,11 @@ import java.util.Date; @ApiModel("监测信息请求参数") public class MonitorQueDto { - @NotNull(message = "监测类型不能为空") - @ApiModelProperty(value = "监测类型", required = true, allowableValues = "MS_HDM_RSVR,MS_HDM_OBP,MS_HDM_RIVER,MS_DSM_SRVRDS,MS_DSM_SRHRDS") - private MonitorEnum monitorType; + @ApiModelProperty(value = "监测要素") + private MonitorComposeEnum elementType; + + @ApiModelProperty(value = "监测数据来源类型") + private MonitorSourceEnum monitorType; @JSONField(name = "STCD") @ApiModelProperty(value = "测站编码") diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java new file mode 100644 index 00000000..056863f3 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MarkTypeEnum.java @@ -0,0 +1,59 @@ +package com.kms.yg.cz.enmu; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yg.cz.dto.CharInfoDto; +import com.kms.yg.sk.mapper.AttResRfkwlvMapper; +import com.kms.yg.sk.mapper.AttResRsppMapper; +import com.shuili.common.utils.SpringUtils; +import com.shuili.common.utils.StringUtils; +import lombok.Getter; + +import java.util.List; +import java.util.Map; + +@Getter +public enum MarkTypeEnum { + + FSLTDZ_LIMIT("汛限水位", "m", Constants.DEFAULT_KEY_FIELD, "fsltdz", AttResRfkwlvMapper.class), + CHFLLV("校准洪核水位", "m", Constants.DEFAULT_KEY_FIELD, "chfllv", AttResRsppMapper.class), + ; + + private final String zhName; + private final String unit; + private final String keyField; + private final String valueField; + private final Class clazz; + + MarkTypeEnum(String zhName, String unit, String keyField, String valueField, Class clazz) { + this.zhName = zhName; + this.unit = unit; + this.keyField = keyField; + this.valueField = valueField; + this.clazz = clazz; + } + + + public CharInfoDto.MarkLine toMarkLine(String code) { + CharInfoDto.MarkLine markLine = new CharInfoDto.MarkLine(); + markLine.setName(zhName + "(" + unit + ")"); + markLine.setValue("0"); + if (StringUtils.isEmpty(code)) { + return markLine; + } + BaseMapper mapper = SpringUtils.getBean(clazz); + List> results = mapper.selectMaps(new QueryWrapper<>().select(valueField).eq(keyField, code)); + if (!results.isEmpty()) { + Map result = results.get(0); + String value = result.get(valueField).toString(); + if (StringUtils.isNotBlank(value)) { + markLine.setValue(value); + } + } + return markLine; + } + + public final static class Constants { + public static final String DEFAULT_KEY_FIELD = "ID"; + } +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorComposeEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorComposeEnum.java new file mode 100644 index 00000000..07b91632 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorComposeEnum.java @@ -0,0 +1,41 @@ +package com.kms.yg.cz.enmu; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; +import java.util.function.Supplier; +import java.util.stream.Collectors; + + +@Getter +public enum MonitorComposeEnum { + +// WATER_LEVEL(Arrays.asList(MonitorTypeEnum.WATER_LEVEL, MonitorTypeEnum.RAINFALL)), +// ENV(Arrays.asList(MonitorTypeEnum.AIR_TEMPE, MonitorTypeEnum.WATER_TEMPE)), + ; + + + private final List leftElements; + private final List rightElements; + private final Supplier leftName; + private final Supplier leftUnit; + private final Supplier rightName; + private final Supplier rightUnit; + + + MonitorComposeEnum(List leftElements, List rightElements) { + this.leftElements = leftElements; + this.rightElements = rightElements; + this.leftName = () -> leftElements.stream().map(MonitorTypeEnum::getZhName).collect(Collectors.joining("/")); + this.leftUnit = () -> leftElements.stream().map(MonitorTypeEnum::getUnit).distinct().collect(Collectors.joining("/")); + this.rightName = () -> rightElements.stream().map(MonitorTypeEnum::getZhName).collect(Collectors.joining("/")); + this.rightUnit = () -> rightElements.stream().map(MonitorTypeEnum::getUnit).distinct().collect(Collectors.joining("/")); + } + +// public List getSource() { +// return elements.stream().map(MonitorTypeEnum::getSource).distinct().collect(Collectors.toList()); +// } + + +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java similarity index 98% rename from shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorEnum.java rename to shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java index 8ce2b221..cab9f086 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorEnum.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java @@ -20,7 +20,7 @@ import java.util.function.Function; * @date 2024/3/4 18:57 */ @Getter -public enum MonitorEnum { +public enum MonitorSourceEnum { MS_HDM_RSVR("水库水情监测表", Mock.MS_HDM_RSVR, MsHdmRsvr.class), MS_HDM_RSVRAV("水库水情多日均值表", MsHdmRsvrav.class), @@ -38,6 +38,7 @@ public enum MonitorEnum { MS_DSM_INSMONREC("惯导监测表", MsDsmInsmonrec.class), MS_DSM_INHRDS("内部水平位移监测表", MsDsmInhrds.class), MS_DSM_CKOPDG("裂缝开合度位移监测表", MsHdmCkopdg.class), + MS_DSM_SPPR("渗透压力监测表", MsDsmSppr.class), ; private final String zhName; @@ -46,20 +47,20 @@ public enum MonitorEnum { private final Class clazz; - MonitorEnum(String zhName, Class clazz) { + MonitorSourceEnum(String zhName, Class clazz) { this(zhName, Mock.DEFAULT, MonitorTypeEnum.MONITOR, clazz); } - MonitorEnum(String zhName, String mockData, Class clazz) { + MonitorSourceEnum(String zhName, String mockData, Class clazz) { this(zhName, mockData, MonitorTypeEnum.MONITOR, clazz); } - MonitorEnum(String zhName, MonitorTypeEnum type, Class clazz) { + MonitorSourceEnum(String zhName, MonitorTypeEnum type, Class clazz) { this(zhName, Mock.DEFAULT, type, clazz); } - MonitorEnum(String zhName, String mockData, MonitorTypeEnum type, Class clazz) { + MonitorSourceEnum(String zhName, String mockData, MonitorTypeEnum type, Class clazz) { this.zhName = zhName; this.type = type; this.mockData = mockData; diff --git a/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java new file mode 100644 index 00000000..85903d6e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorTypeEnum.java @@ -0,0 +1,37 @@ +package com.kms.yg.cz.enmu; + +import lombok.Getter; + +@Getter +public enum MonitorTypeEnum { + WATER_LEVEL("水位", MonitorSourceEnum.MS_HDM_RSVR, "rz", "collTime", "m", MarkTypeEnum.FSLTDZ_LIMIT), + RAINFALL("降雨量", MonitorSourceEnum.MS_HDM_OBP, "drp", "collTime", "mm", MarkTypeEnum.CHFLLV), + 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"), + PERMEABILITY_PRESSURE("渗透压力", MonitorSourceEnum.MS_DSM_SPPR, "spprwl", "mstm", "MPa"), + + ; + + private final String zhName; + private final MonitorSourceEnum source; + private final String valueField; + private final String timeField; + private final String unit; + private final MarkTypeEnum markType; + + MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit) { + this(zhName, source, valueField, timeField, unit, null); + } + + MonitorTypeEnum(String zhName, MonitorSourceEnum source, String valueField, String timeField, String unit, MarkTypeEnum markType) { + this.zhName = zhName; + this.source = source; + this.valueField = valueField; + this.unit = unit; + this.markType = markType; + this.timeField = timeField; + } + + +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java b/shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java new file mode 100644 index 00000000..332004e7 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/cz/service/AlarmService.java @@ -0,0 +1,19 @@ +package com.kms.yg.cz.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yg.cz.dto.AlarmInfoDto; +import com.kms.yg.cz.dto.MonitorQueDto; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + + +@Service +@Slf4j +public class AlarmService { + + + public IPage pageQuery(MonitorQueDto sp) { + return new Page<>(); + } +} diff --git a/shuili-system/src/main/java/com/kms/yg/cz/service/AttStMpService.java b/shuili-system/src/main/java/com/kms/yg/cz/service/AttStMpService.java index 11d57cba..3d28f850 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/service/AttStMpService.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/service/AttStMpService.java @@ -1,10 +1,14 @@ package com.kms.yg.cz.service; import com.kms.yg.cz.domain.AttStMp; +import com.kms.yg.cz.dto.AttMpQueDto; import com.kms.yg.cz.mapper.AttStMpMapper; import com.shuili.common.core.service.BaseService; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + /** * 【请填写功能名称】Service接口 * @@ -14,4 +18,7 @@ import org.springframework.stereotype.Service; @Service public class AttStMpService extends BaseService { + public List selectList(AttMpQueDto sp) { + return Collections.emptyList(); + } } diff --git a/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java b/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java index 08d06211..8b8584a6 100644 --- a/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java +++ b/shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java @@ -1,8 +1,10 @@ package com.kms.yg.cz.service; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kms.yg.cz.dto.CharInfoDto; +import com.kms.yg.cz.dto.CurrentWaterMonitorDto; import com.kms.yg.cz.dto.MonitorQueDto; -import com.kms.yg.cz.enmu.MonitorEnum; +import com.kms.yg.cz.enmu.MonitorSourceEnum; import com.kms.yxgh.util.DataCenterRestTemplateUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -27,19 +29,27 @@ public class MonitorService { public IPage pageQuery(MonitorQueDto queDto) { - MonitorEnum table = queDto.getMonitorType(); + MonitorSourceEnum table = queDto.getMonitorType(); String path = paths.get(table.getTableName()); if (path == null) { log.error("未找到对应的路径配置, table:{}", table); return table.getMockData(queDto); } String json = dataCenterRestTemplateUtils.doPostRequest(dataSyncUrl + path, queDto); - MonitorEnum.ResultWrapper resultWrapper = new MonitorEnum.ResultWrapper(); + MonitorSourceEnum.ResultWrapper resultWrapper = new MonitorSourceEnum.ResultWrapper(); resultWrapper.setResultJson(json); resultWrapper.setQueDto(queDto); - Function> function = table.getRecords(); + Function> function = table.getRecords(); return function.apply(resultWrapper); } + public CharInfoDto chart(MonitorQueDto sp) { + return null; + } + + public CurrentWaterMonitorDto watter(MonitorQueDto sp) { + + return null; + } } diff --git a/shuili-system/src/main/java/com/kms/yg/sk/controller/AttResBaseController.java b/shuili-system/src/main/java/com/kms/yg/sk/controller/AttResBaseController.java index 811e6155..a30c91f5 100644 --- a/shuili-system/src/main/java/com/kms/yg/sk/controller/AttResBaseController.java +++ b/shuili-system/src/main/java/com/kms/yg/sk/controller/AttResBaseController.java @@ -1,9 +1,8 @@ package com.kms.yg.sk.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yg.sk.domain.AttResBase; import com.kms.yg.sk.service.AttResBaseService; +import com.kms.yg.sk.service.AttResCodeService; import com.shuili.common.annotation.Log; import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.domain.AjaxResult; @@ -30,6 +29,8 @@ import java.util.List; public class AttResBaseController extends BaseController { @Autowired private AttResBaseService attResBaseService; + @Autowired + private AttResCodeService attResCodeService; @PostMapping("/list") @ApiOperation("水库基础信息列表") @@ -59,4 +60,10 @@ public class AttResBaseController extends BaseController { return AjaxResult.success(attResBaseService.getById(id)); } + @ApiOperation("水库主测站编码") + @GetMapping(value = "/{id}") + public AjaxResult getStcd(@PathVariable("id") String id) { + return AjaxResult.success(attResCodeService.getById(id)); + } + } diff --git a/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResCode.java b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResCode.java new file mode 100644 index 00000000..f8d97365 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResCode.java @@ -0,0 +1,23 @@ +package com.kms.yg.sk.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; + +@TableName("att_res_code") +@Data +@ApiModel("水库编码信息") +public class AttResCode extends BaseEntity { + + @ApiModelProperty("水库编码") + private String resCode; + + @ApiModelProperty("主测站编码") + private String stcd; + + @TableField(exist = false) + private String remark; +} diff --git a/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java new file mode 100644 index 00000000..6b267dc9 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/sk/domain/AttResRfkwlv.java @@ -0,0 +1,41 @@ +package com.kms.yg.sk.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.shuili.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@TableName("att_res_rfkwlv") +@Data +public class AttResRfkwlv extends BaseEntity { + + @ApiModelProperty("水库代码") + private String resCode; + + @ApiModelProperty("开启年份") + private String actyr; + + @ApiModelProperty("开启日期") + private String bgmd; + + @ApiModelProperty("汛限水位") + private String rsltdz; + + @ApiModelProperty("结束日期") + private String edmd; + + @ApiModelProperty("汛限库容") + private String flstdw; + + @ApiModelProperty("启用标识") + private String enableFlag; + + @ApiModelProperty("备注") + private String note; + + @TableField(exist = false) + private String remark; + + +} diff --git a/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResCodeMapper.java b/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResCodeMapper.java new file mode 100644 index 00000000..462302e4 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResCodeMapper.java @@ -0,0 +1,17 @@ +package com.kms.yg.sk.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yg.sk.domain.AttResCode; +import org.springframework.stereotype.Repository; + + +/** + * 【请填写功能名称】Mapper接口 + * + * @author kms + * @date 2024-04-24 + */ +@Repository +public interface AttResCodeMapper extends BaseMapper { + +} diff --git a/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResRfkwlvMapper.java b/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResRfkwlvMapper.java new file mode 100644 index 00000000..a7596c0a --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/sk/mapper/AttResRfkwlvMapper.java @@ -0,0 +1,17 @@ +package com.kms.yg.sk.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yg.sk.domain.AttResRfkwlv; +import org.springframework.stereotype.Repository; + + +/** + * 【请填写功能名称】Mapper接口 + * + * @author kms + * @date 2024-04-24 + */ +@Repository +public interface AttResRfkwlvMapper extends BaseMapper { + +} diff --git a/shuili-system/src/main/java/com/kms/yg/sk/service/AttResCodeService.java b/shuili-system/src/main/java/com/kms/yg/sk/service/AttResCodeService.java new file mode 100644 index 00000000..52d8801d --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/sk/service/AttResCodeService.java @@ -0,0 +1,19 @@ +package com.kms.yg.sk.service; + +import com.kms.yg.sk.domain.AttResBase; +import com.kms.yg.sk.domain.AttResCode; +import com.kms.yg.sk.mapper.AttResBaseMapper; +import com.kms.yg.sk.mapper.AttResCodeMapper; +import com.shuili.common.core.service.BaseService; +import org.springframework.stereotype.Service; + +/** + * 【请填写功能名称】Service接口 + * + * @author kms + * @date 2024-04-24 + */ +@Service +public class AttResCodeService extends BaseService{ + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsHdmSppr.java b/shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsDsmSppr.java similarity index 55% rename from shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsHdmSppr.java rename to shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsDsmSppr.java index fd9a605a..baf0a3a2 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsHdmSppr.java +++ b/shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/MsDsmSppr.java @@ -1,115 +1,72 @@ package com.kms.yxgh.base.domain.monitor; -import com.baomidou.mybatisplus.annotation.TableField; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import com.kms.yxgh.base.SyBaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; import java.util.Date; @TableName("ms_dsm_sppr") @Data @ApiModel("渗流压力水位监测表") -public class MsHdmSppr extends SyBaseEntity { +public class MsDsmSppr { - - private static final long serialVersionUID = 1L; - - /** - * 水利工程测站代码 - */ @ApiModelProperty("水利工程测站代码") - @TableField("PRJ_STCD") + @JSONField(name = "PRJ_STCD") private String prjStcd; - /** - * 测点编号 - */ @ApiModelProperty("测点编号") - @TableField("MPCD") + @JSONField(name = "MPCD") private String mpcd; - /** - * 测量时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("测量时间") - @TableField("MSTM") + @JSONField(name = "MSTM", format = "yyyy-MM-dd HH:mm:ss") private Date mstm; - /** - * 温度(℃) - */ @ApiModelProperty("温度(℃)") - @TableField("TMP") - private BigDecimal tmp; - /** - * 渗流压力水位(m) - */ + @JSONField(name = "TMP") + private String tmp; + @ApiModelProperty("渗流压力水位(m)") - @TableField("SPPRWL") - private BigDecimal spprwl; + @JSONField(name = "SPPRWL") + private String spprwl; - /** - * 采集方式 - */ @ApiModelProperty("采集方式") - @TableField("COLMT") + @JSONField(name = "COLMT") private String colmt; - /** - * 机构代码 - */ @ApiModelProperty("机构代码") - @TableField("GDWR_OGID") + @JSONField(name = "GDWR_OGID") private String gdwrOgid; - /** - * 级联时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("级联时间") - @TableField("CONN_TIME") + @JSONField(name = "CONN_TIME", format = "yyyy-MM-dd HH:mm:ss") private Date connTime; - /** - * 采集时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("采集时间") - @TableField("COLL_TIME") + @JSONField(name = "COLL_TIME", format = "yyyy-MM-dd HH:mm:ss") private Date collTime; - /** - * 数据来源 - */ @ApiModelProperty("数据来源") - @TableField("GDWR_DASC") + @JSONField(name = "GDWR_DASC") private String gdwrDasc; - /** - * 置信度 - */ @ApiModelProperty("置信度") - @TableField("RELIABILITY") + @JSONField(name = "RELIABILITY") private String reliability; - /** - * 指令ID - */ @ApiModelProperty("指令ID") - @TableField("COMMAND_ID") + @JSONField(name = "COMMAND_ID") private String commandId; - /** - * 入库时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("入库时间") - @TableField("CREATE_TIME") + @JSONField(name = "CREATE_TIME", format = "yyyy-MM-dd HH:mm:ss") private Date createTime; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java index b68d369d..3f65492c 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/enums/DataSyncBasicEnum.java @@ -29,7 +29,9 @@ public enum DataSyncBasicEnum { ATT_RES_BASE("水库基础信息", Constants.SK_MAP), ATT_RES_RSPP("水库主要特征", Constants.SK_MAP), + ATT_RES_CODE("水库编码查找表", Constants.SK_MAP), ATT_RES_RWACDR("水库水位、面积和库容关系表", Constants.SK_MAP), + ATT_RES_RFKWLV("水库汛期运用主要特征值表", Constants.SK_MAP), ATT_DIKE_BASE("堤防基础信息", Constants.DF_MAP), ATT_DIKE_BSFST("堤防水文特征", Constants.DF_SWTZ_MAP), ATT_DISC_BASE("堤段基本信息", Constants.DF_DISC_MAP), @@ -44,6 +46,7 @@ public enum DataSyncBasicEnum { ATT_DPDS_BASE("险工险峻信息", Constants.DPDS_MAP), ATT_BAS_BASE("流域基础信息", Constants.BAS_MAP), ATT_ST_BASE("水文水工程监测站基础信息", Constants.ST_MAP, AfterHandler.ST_BASE), + ATT_ST_MP("水工程监测测点信息", Constants.ST_MP_MAP), SYS_XZQH("行政区划基础信息", Constants.XZQH_MAP), ; diff --git a/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql b/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql new file mode 100644 index 00000000..dd39126e --- /dev/null +++ b/sql/sy/v1.6.0/增量脚本/v1.6.0-update.sql @@ -0,0 +1,12 @@ +SET NAMES utf8mb4; + +CREATE TABLE `bs_sgc_st_mon` ( + `STCD` VARCHAR(18) COLLATE utf8mb4_general_ci COMMENT '测站编码', + `MON_PROJ` VARCHAR(50) 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 '最近修改时间' +) 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); \ No newline at end of file