From b1e040290aacd3c2703b847ceff510ca27aaaf35 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Tue, 9 Jul 2024 14:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E8=A7=84=E5=88=99=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E9=9A=90=E6=82=A3=E9=A2=84=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OsmoticWarnRController.java | 19 ++++--- .../controller/OsmoticWarnRuleController.java | 6 +- .../xyt/controller/StQxWarnRController.java | 6 +- .../project/xyt/entity/so/WarnPageSo.java | 23 ++++++++ .../project/xyt/entity/so/WarnRulePageSo.java | 29 ++++++++++ .../gunshi/project/xyt/entity/so/WarnSo.java | 30 ++++++++++ .../project/xyt/entity/vo/OsmoticWarnVo.java | 57 +++++++++++++++++++ .../xyt/mapper/OsmoticWarnRMapper.java | 32 +++++++++++ .../project/xyt/model/AttSpillwayBase.java | 4 +- .../project/xyt/model/OsmoticWarnR.java | 15 +++-- .../project/xyt/model/OsmoticWarnRule.java | 24 ++++---- .../xyt/service/OsmoticWarnRService.java | 38 ++++++++++++- .../xyt/service/OsmoticWarnRuleService.java | 18 +++++- 13 files changed, 266 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/gunshi/project/xyt/entity/so/WarnPageSo.java create mode 100644 src/main/java/com/gunshi/project/xyt/entity/so/WarnRulePageSo.java create mode 100644 src/main/java/com/gunshi/project/xyt/entity/so/WarnSo.java create mode 100644 src/main/java/com/gunshi/project/xyt/entity/vo/OsmoticWarnVo.java diff --git a/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRController.java b/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRController.java index 7d5f5c0..3eb83c4 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRController.java @@ -1,6 +1,10 @@ package com.gunshi.project.xyt.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; +import com.gunshi.project.xyt.entity.so.WarnPageSo; +import com.gunshi.project.xyt.entity.so.WarnSo; +import com.gunshi.project.xyt.entity.vo.OsmoticWarnVo; import com.gunshi.project.xyt.model.OsmoticWarnR; import com.gunshi.project.xyt.service.OsmoticWarnRService; import com.gunshi.project.xyt.validate.markers.Insert; @@ -13,7 +17,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.Serializable; -import java.util.List; +import java.util.Map; + /** * 描述: 隐患预警记录表 * author: xusan @@ -48,16 +53,16 @@ public class OsmoticWarnRController { return R.ok(service.removeById(id)); } - @Operation(summary = "列表") - @PostMapping("/list") - public R> list() { - return R.ok(service.lambdaQuery().list()); + @Operation(summary = "统计") + @PostMapping("/stat") + public R> stat(@RequestBody WarnSo warnSo) { + return R.ok(service.stat(warnSo)); } @Operation(summary = "分页") @PostMapping("/page") - public R> page() { - return R.ok(service.page(null,null)); + public R> page(@RequestBody WarnPageSo warnPageSo) { + return R.ok(service.queryPage(warnPageSo)); } } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRuleController.java b/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRuleController.java index fe4dd3a..42ffccb 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRuleController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/OsmoticWarnRuleController.java @@ -1,6 +1,8 @@ package com.gunshi.project.xyt.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; +import com.gunshi.project.xyt.entity.so.WarnRulePageSo; import com.gunshi.project.xyt.model.OsmoticWarnRule; import com.gunshi.project.xyt.service.OsmoticWarnRuleService; import com.gunshi.project.xyt.validate.markers.Insert; @@ -56,8 +58,8 @@ public class OsmoticWarnRuleController { @Operation(summary = "分页") @PostMapping("/page") - public R> page() { - return R.ok(service.page(null,null)); + public R> page(@RequestBody WarnRulePageSo warnRulePageSo) { + return R.ok(service.queryPage(warnRulePageSo)); } } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/controller/StQxWarnRController.java b/src/main/java/com/gunshi/project/xyt/controller/StQxWarnRController.java index f37234f..a031395 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/StQxWarnRController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/StQxWarnRController.java @@ -1,6 +1,7 @@ package com.gunshi.project.xyt.controller; import com.gunshi.core.result.R; +import com.gunshi.db.dto.DateTimeRangeSo; import com.gunshi.project.xyt.model.StQxWarnR; import com.gunshi.project.xyt.service.StQxWarnRService; import com.gunshi.project.xyt.validate.markers.Insert; @@ -50,8 +51,9 @@ public class StQxWarnRController { @Operation(summary = "列表") @PostMapping("/list") - public R> list() { - return R.ok(service.lambdaQuery().list()); + public R> list(@RequestBody DateTimeRangeSo dateTimeRangeSo) { + return R.ok(service.lambdaQuery() + .ge(StQxWarnR::getTm,dateTimeRangeSo.getStart()).lt(StQxWarnR::getTm,dateTimeRangeSo.getEnd()).list()); } @Operation(summary = "分页") diff --git a/src/main/java/com/gunshi/project/xyt/entity/so/WarnPageSo.java b/src/main/java/com/gunshi/project/xyt/entity/so/WarnPageSo.java new file mode 100644 index 0000000..be89a82 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/so/WarnPageSo.java @@ -0,0 +1,23 @@ +package com.gunshi.project.xyt.entity.so; + +import com.gunshi.db.dto.PageSo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Description: + * Created by wanyan on 2024/3/19 + * + * @author wanyan + * @version 1.0 + */ +@Data +@Schema(description = "隐患预警分页查询对象") +public class WarnPageSo extends WarnSo{ + + @NotNull(message = "分页参数不能为空") + @Schema(description = "分页参数") + private PageSo pageSo; + +} diff --git a/src/main/java/com/gunshi/project/xyt/entity/so/WarnRulePageSo.java b/src/main/java/com/gunshi/project/xyt/entity/so/WarnRulePageSo.java new file mode 100644 index 0000000..5826873 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/so/WarnRulePageSo.java @@ -0,0 +1,29 @@ +package com.gunshi.project.xyt.entity.so; + +import com.gunshi.db.dto.PageSo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Description: + * Created by wanyan on 2024/3/19 + * + * @author wanyan + * @version 1.0 + */ +@Data +@Schema(description = "预警规则配置分页查询对象") +public class WarnRulePageSo { + + @NotNull(message = "分页参数不能为空") + @Schema(description = "分页参数") + private PageSo pageSo; + + @Schema(description="告警类型(1渗压监测 2渗流监测 3位移监测)") + private Integer type; + + @Schema(description="测点编号") + private String stationCode; + +} diff --git a/src/main/java/com/gunshi/project/xyt/entity/so/WarnSo.java b/src/main/java/com/gunshi/project/xyt/entity/so/WarnSo.java new file mode 100644 index 0000000..7fc0677 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/so/WarnSo.java @@ -0,0 +1,30 @@ +package com.gunshi.project.xyt.entity.so; + +import com.gunshi.db.dto.DateTimeRangeSo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * Description: + * Created by wanyan on 2024/3/19 + * + * @author wanyan + * @version 1.0 + */ +@Data +@Schema(description = "隐患预警查询对象") +public class WarnSo { + + @Schema(description = "时间段") + private DateTimeRangeSo dateTimeRangeSo; + + @Schema(description="告警类型(1渗压监测 2渗流监测 3位移监测)") + private Integer type; + + @Schema(description="测点编号") + private String stationCode; + + @Schema(description="告警级别(1黄色 2红色)") + private Integer level; + +} diff --git a/src/main/java/com/gunshi/project/xyt/entity/vo/OsmoticWarnVo.java b/src/main/java/com/gunshi/project/xyt/entity/vo/OsmoticWarnVo.java new file mode 100644 index 0000000..f6ca127 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/vo/OsmoticWarnVo.java @@ -0,0 +1,57 @@ +package com.gunshi.project.xyt.entity.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gunshi.core.dateformat.DateFormatString; +import com.gunshi.project.xyt.model.OsmoticWarnRule; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * Description: + * Created by wanyan on 2024/7/9 + * + * @author wanyan + * @version 1.0 + */ +@Data +public class OsmoticWarnVo extends OsmoticWarnRule { + /** + * 主键 + */ + @Schema(description="主键") + private Long id; + + /** + * 测点编号 + */ + @Schema(description="测点编号") + private String stationCode; + + /** + * 预警规则id + */ + @Schema(description="预警规则id") + private Long ruleId; + + /** + * 监测值 + */ + @Schema(description="监测值") + private BigDecimal value; + + /** + * 预警时间 + */ + @Schema(description="预警时间") + @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") + private Date tm; + + /** + * 监测类型(1渗压 2渗流 3位移) + */ + @Schema(description="监测类型(1渗压 2渗流 3位移)") + private Integer type; +} diff --git a/src/main/java/com/gunshi/project/xyt/mapper/OsmoticWarnRMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/OsmoticWarnRMapper.java index c66ab1c..df583ca 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/OsmoticWarnRMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/OsmoticWarnRMapper.java @@ -1,8 +1,13 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.project.xyt.entity.so.WarnPageSo; +import com.gunshi.project.xyt.entity.vo.OsmoticWarnVo; import com.gunshi.project.xyt.model.OsmoticWarnR; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 描述: 隐患预警记录表 @@ -12,4 +17,31 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface OsmoticWarnRMapper extends BaseMapper { + @Select(""" + + """) + Page queryPage(Page page,@Param("obj") WarnPageSo warnPageSo); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/AttSpillwayBase.java b/src/main/java/com/gunshi/project/xyt/model/AttSpillwayBase.java index dfec2c2..4931915 100644 --- a/src/main/java/com/gunshi/project/xyt/model/AttSpillwayBase.java +++ b/src/main/java/com/gunshi/project/xyt/model/AttSpillwayBase.java @@ -107,10 +107,10 @@ public class AttSpillwayBase implements Serializable { /** * 备注 */ - @TableField(value="reamrk") + @TableField(value="remark") @Schema(description="备注") @Size(max = 500,message = "备注最大长度要小于 500") - private String reamrk; + private String remark; /** * 创建时间 diff --git a/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnR.java b/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnR.java index f6ac3f0..a14b6de 100644 --- a/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnR.java +++ b/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnR.java @@ -13,6 +13,7 @@ import jakarta.validation.constraints.Size; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; /** @@ -33,7 +34,6 @@ public class OsmoticWarnR implements Serializable { */ @TableId(value="id", type= IdType.AUTO) @Schema(description="主键") - // @Size(max = 0,message = "主键最大长度要小于 0") @NotBlank(message = "主键不能为空") private Long id; @@ -50,7 +50,6 @@ public class OsmoticWarnR implements Serializable { */ @TableField(value="rule_id") @Schema(description="预警规则id") - // @Size(max = 0,message = "预警规则id最大长度要小于 0") private Long ruleId; /** @@ -58,15 +57,13 @@ public class OsmoticWarnR implements Serializable { */ @TableField(value="value") @Schema(description="监测值") - // @Size(max = 0,message = "监测值最大长度要小于 0") - private String value; + private BigDecimal value; /** * 预警时间 */ @TableField(value="tm") @Schema(description="预警时间") - // @Size(max = 0,message = "预警时间最大长度要小于 0") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") private Date tm; @@ -75,7 +72,13 @@ public class OsmoticWarnR implements Serializable { */ @TableField(value="type") @Schema(description="监测类型(1渗压 2渗流 3位移)") - // @Size(max = 0,message = "监测类型(1渗压 2渗流 3位移)最大长度要小于 0") private Integer type; + /** + * 告警级别(1黄色 2红色) + */ + @TableField(value="level") + @Schema(description="告警级别(1黄色 2红色)") + private Integer level; + } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnRule.java b/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnRule.java index 6d079e1..ec6b8fe 100644 --- a/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnRule.java +++ b/src/main/java/com/gunshi/project/xyt/model/OsmoticWarnRule.java @@ -5,15 +5,13 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.gunshi.core.dateformat.DateFormatString; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.Data; import java.io.Serializable; -import java.util.Date; +import java.math.BigDecimal; /** * 描述: 预警规则配置表 @@ -33,7 +31,6 @@ public class OsmoticWarnRule implements Serializable { */ @TableId(value="id", type= IdType.AUTO) @Schema(description="主键") - // @Size(max = 0,message = "主键最大长度要小于 0") @NotBlank(message = "主键不能为空") private Long id; @@ -51,7 +48,6 @@ public class OsmoticWarnRule implements Serializable { */ @TableField(value="type") @Schema(description="告警类型(1渗压监测 2渗流监测 3位移监测)") - // @Size(max = 0,message = "告警类型(1渗压监测 2渗流监测 3位移监测)最大长度要小于 0") private Integer type; /** @@ -59,7 +55,6 @@ public class OsmoticWarnRule implements Serializable { */ @TableField(value="level") @Schema(description="告警级别(1黄色 2红色)") - // @Size(max = 0,message = "告警级别(1黄色 2红色)最大长度要小于 0") private Integer level; /** @@ -70,6 +65,13 @@ public class OsmoticWarnRule implements Serializable { @Size(max = 32,message = "校验规则描述最大长度要小于 32") private String ruleDesc; + /** + * 位移方向(x,y,z) + */ + @TableField(value="direction") + @Schema(description="位移方向(x,y,z)") + private String direction; + /** * condition_one */ @@ -83,8 +85,7 @@ public class OsmoticWarnRule implements Serializable { */ @TableField(value="value_one") @Schema(description="value_one") - // @Size(max = 0,message = "value_one最大长度要小于 0") - private String valueOne; + private BigDecimal valueOne; /** * condition_two @@ -99,7 +100,6 @@ public class OsmoticWarnRule implements Serializable { */ @TableField(value="condition") @Schema(description="1且 2或") - // @Size(max = 0,message = "1且 2或最大长度要小于 0") private Integer condition; /** @@ -107,15 +107,13 @@ public class OsmoticWarnRule implements Serializable { */ @TableField(value="value_two") @Schema(description="value_two") - // @Size(max = 0,message = "value_two最大长度要小于 0") - private String valueTwo; + private BigDecimal valueTwo; /** * 是否启用(0否 1是) */ @TableField(value="status") @Schema(description="是否启用(0否 1是)") - // @Size(max = 0,message = "是否启用(0否 1是)最大长度要小于 0") - private Integer status; + private BigDecimal status; } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRService.java b/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRService.java index e201d21..8202880 100644 --- a/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRService.java +++ b/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRService.java @@ -1,13 +1,23 @@ package com.gunshi.project.xyt.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.entity.so.WarnPageSo; +import com.gunshi.project.xyt.entity.so.WarnSo; +import com.gunshi.project.xyt.entity.vo.OsmoticWarnVo; import com.gunshi.project.xyt.mapper.OsmoticWarnRMapper; import com.gunshi.project.xyt.model.OsmoticWarnR; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 描述: 隐患预警记录表 @@ -19,7 +29,33 @@ import java.util.Date; @Transactional(rollbackFor = Exception.class) public class OsmoticWarnRService extends ServiceImpl { + @Resource + private OsmoticWarnRMapper mapper; + public Page queryPage(WarnPageSo warnPageSo) { + return mapper.queryPage(warnPageSo.getPageSo().toPage(),warnPageSo); + } + + public Map stat(WarnSo warnSo) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + if(warnSo.getType() != null){ + wrapper.eq(OsmoticWarnR::getType,warnSo.getType()); + } + if(warnSo.getLevel() != null){ + wrapper.eq(OsmoticWarnR::getLevel,warnSo.getLevel()); + } + if(StringUtils.isNotEmpty(warnSo.getStationCode())){ + wrapper.like(OsmoticWarnR::getStationCode,warnSo.getStationCode()); + } + if(warnSo.getDateTimeRangeSo() != null && warnSo.getDateTimeRangeSo().getStart() != null){ + wrapper.ge(OsmoticWarnR::getTm,warnSo.getDateTimeRangeSo().getStart()); + } + if(warnSo.getDateTimeRangeSo() != null && warnSo.getDateTimeRangeSo().getEnd() != null){ + wrapper.le(OsmoticWarnR::getTm,warnSo.getDateTimeRangeSo().getEnd()); + } + List list = this.list(wrapper); + return list.stream().collect(Collectors.groupingBy(OsmoticWarnR::getLevel, Collectors.counting())); + } } diff --git a/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRuleService.java b/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRuleService.java index 1084194..13d157e 100644 --- a/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRuleService.java +++ b/src/main/java/com/gunshi/project/xyt/service/OsmoticWarnRuleService.java @@ -1,14 +1,17 @@ package com.gunshi.project.xyt.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.entity.so.WarnRulePageSo; import com.gunshi.project.xyt.mapper.OsmoticWarnRuleMapper; import com.gunshi.project.xyt.model.OsmoticWarnRule; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; - /** * 描述: 预警规则配置表 * author: xusan @@ -20,6 +23,17 @@ import java.util.Date; public class OsmoticWarnRuleService extends ServiceImpl { + public Page queryPage(WarnRulePageSo warnRulePageSo) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + if(warnRulePageSo.getType() != null){ + queryWrapper.eq(OsmoticWarnRule::getType,warnRulePageSo.getType()); + } + if(StringUtils.isNotEmpty(warnRulePageSo.getStationCode())){ + queryWrapper.like(OsmoticWarnRule::getStationCode,warnRulePageSo.getStationCode()); + } + queryWrapper.orderByDesc(OsmoticWarnRule::getStatus); + return this.page(warnRulePageSo.getPageSo().toPage(),queryWrapper); + } }