From 51a015556883db1310732a6dcba6d1edd7aaba71 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Wed, 4 Mar 2026 14:31:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=86=85=E5=AE=B9=E7=AE=A1?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E9=A2=84=E8=AD=A6=E4=BF=A1=E6=81=AF=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/ss/config/OpenApiConfig.java | 4 +- .../ss/controller/AuditProcessController.java | 24 ++- .../controller/ImpactZoneInfoController.java | 3 +- .../ss/controller/WarningRuleController.java | 42 ++++- .../ss/entity/dto/WarningAuditDto.java | 18 ++ .../ss/entity/so/WarningRulePageSo.java | 9 + .../ss/mapper/WarningRecObjMapper.java | 9 + .../ss/mapper/WarningRuleInfoMapper.java | 79 +++++++++ .../project/ss/model/WarningRecObj.java | 51 ++++++ .../gunshi/project/ss/model/WarningRule.java | 4 +- .../project/ss/model/WarningRuleInfo.java | 158 +++++++++++++++--- .../project/ss/service/FundBudgetService.java | 2 +- .../ss/service/WarningRecObjService.java | 15 ++ .../ss/service/WarningRuleInfoService.java | 90 ++++++++-- .../project/ss/timetask/WarningRuleTask.java | 7 +- 15 files changed, 453 insertions(+), 62 deletions(-) create mode 100644 src/main/java/com/gunshi/project/ss/entity/dto/WarningAuditDto.java create mode 100644 src/main/java/com/gunshi/project/ss/mapper/WarningRecObjMapper.java create mode 100644 src/main/java/com/gunshi/project/ss/model/WarningRecObj.java create mode 100644 src/main/java/com/gunshi/project/ss/service/WarningRecObjService.java diff --git a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java index 03af664..919ebaa 100644 --- a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java +++ b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java @@ -22,7 +22,9 @@ public class OpenApiConfig { String[] pathsToMatch = { "/impactZoneInfo/**", "/auditProcess/**", - "/warningRule/**" + "/warningRule/**", + "/reservoirDemarcationInfo/**", + "/safety/degradeScrapLedger/**" }; return GroupedOpenApi.builder() .group("ss") diff --git a/src/main/java/com/gunshi/project/ss/controller/AuditProcessController.java b/src/main/java/com/gunshi/project/ss/controller/AuditProcessController.java index 3466c39..8405b1d 100644 --- a/src/main/java/com/gunshi/project/ss/controller/AuditProcessController.java +++ b/src/main/java/com/gunshi/project/ss/controller/AuditProcessController.java @@ -1,5 +1,8 @@ package com.gunshi.project.ss.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gunshi.core.result.R; import com.gunshi.project.ss.common.validate.markers.Insert; import com.gunshi.project.ss.common.validate.markers.Update; @@ -29,22 +32,31 @@ public class AuditProcessController { @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody AuditProcess dto) { - if (dto.getWarningLevel() != null){ - if (service.lambdaQuery().eq(AuditProcess::getWarningLevel,dto.getAuditLevel()).count() > 0) { - throw new IllegalArgumentException("当前预警级别的审批流程已存在"); - } - } - + checkParam(dto); + dto.setId(IdWorker.getId()); boolean result = service.save(dto); return R.ok(result ? dto : null); } + private void checkParam(AuditProcess dto) { + Long id = dto.getId(); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(AuditProcess::getWarningLevel,dto.getWarningLevel()); + if(id != null){ + queryWrapper.ne(AuditProcess::getId,id); + } + if(service.count(queryWrapper ) > 0){ + throw new IllegalArgumentException("当前预警级别的审批流程已存在"); + } + } + @Operation(summary = "修改") @PostMapping("/update") public R update(@Validated(Update.class) @RequestBody AuditProcess dto) { if (Objects.isNull(service.getById(dto.getId()))) { throw new IllegalArgumentException("当前数据不存在"); } + checkParam(dto); boolean result = service.updateById(dto); return R.ok(result ? dto : null); } diff --git a/src/main/java/com/gunshi/project/ss/controller/ImpactZoneInfoController.java b/src/main/java/com/gunshi/project/ss/controller/ImpactZoneInfoController.java index 242435b..0eae165 100644 --- a/src/main/java/com/gunshi/project/ss/controller/ImpactZoneInfoController.java +++ b/src/main/java/com/gunshi/project/ss/controller/ImpactZoneInfoController.java @@ -1,5 +1,6 @@ package com.gunshi.project.ss.controller; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; import com.gunshi.project.ss.common.validate.markers.Insert; @@ -36,7 +37,7 @@ public class ImpactZoneInfoController{ throw new IllegalArgumentException("当前名称已存在"); } } - + dto.setId(IdWorker.getId()); boolean result = service.save(dto); return R.ok(result ? dto : null); } diff --git a/src/main/java/com/gunshi/project/ss/controller/WarningRuleController.java b/src/main/java/com/gunshi/project/ss/controller/WarningRuleController.java index 600a0c4..86896af 100644 --- a/src/main/java/com/gunshi/project/ss/controller/WarningRuleController.java +++ b/src/main/java/com/gunshi/project/ss/controller/WarningRuleController.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; import com.gunshi.project.ss.common.model.StStbprpB; import com.gunshi.project.ss.common.validate.markers.Update; +import com.gunshi.project.ss.entity.dto.WarningAuditDto; import com.gunshi.project.ss.entity.so.WarningRulePageSo; +import com.gunshi.project.ss.model.WarningRecObj; import com.gunshi.project.ss.model.WarningRule; import com.gunshi.project.ss.model.WarningRuleInfo; import com.gunshi.project.ss.service.StStbprpBService; @@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.*; import java.io.Serializable; import java.util.List; +import java.util.Map; @Tag(name = "预警规则") @RestController @@ -66,11 +69,6 @@ public class WarningRuleController{ return R.ok(b); } - @Operation(summary = "预警信息分页") - @PostMapping("/info/page") - public R> infoPage(@RequestBody @Validated WarningRulePageSo page) { - return R.ok(warningRuleInfoService.pageQuery(page)); - } //获取水位站测点 @Operation(summary = "获取水位站测点") @@ -92,5 +90,39 @@ public class WarningRuleController{ return R.ok(stStbprpBService.getFlowStations()); } + @Operation(summary = "预警内容管理分页") + @PostMapping("/info/page") + public R> infoPage(@RequestBody @Validated WarningRulePageSo page) { + return R.ok(warningRuleInfoService.pageQuery(page)); + } + @Operation(summary = "预警信息统计") + @PostMapping("/info/stat") + public R> infoStat(@RequestBody @Validated WarningRulePageSo page) { + return R.ok(warningRuleInfoService.infoStat(page)); + } + + @Operation(summary = "发布") + @PostMapping("/publish") + public R publish(@RequestBody @Validated WarningRuleInfo dto) { + return R.ok(warningRuleInfoService.publish(dto)); + } + + @Operation(summary = "根据预警内容id查询接收对象") + @GetMapping("/queryObj/{id}") + public R> queryObj(@Schema(name = "id") @PathVariable("id") Serializable id) { + return R.ok(warningRuleInfoService.queryObj(id)); + } + + @Operation(summary = "预警信息审核分页") + @PostMapping("/audit/page") + public R> auditPage(@RequestBody @Validated WarningRulePageSo page) { + return R.ok(warningRuleInfoService.auditPage(page)); + } + + @Operation(summary = "审核") + @PostMapping("/audit") + public R audit(@RequestBody @Validated WarningAuditDto dto) { + return R.ok(warningRuleInfoService.audit(dto)); + } } diff --git a/src/main/java/com/gunshi/project/ss/entity/dto/WarningAuditDto.java b/src/main/java/com/gunshi/project/ss/entity/dto/WarningAuditDto.java new file mode 100644 index 0000000..1f1d0b6 --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/entity/dto/WarningAuditDto.java @@ -0,0 +1,18 @@ +package com.gunshi.project.ss.entity.dto; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class WarningAuditDto { + + @Schema(description = "预警内容id") + private Long id; + + @Schema(description = "审核级别 1-一级 2-二级") + private Integer type; + + @Schema(description = "审核结果(5-审核通过 9-审核不通过)") + private Integer status; +} diff --git a/src/main/java/com/gunshi/project/ss/entity/so/WarningRulePageSo.java b/src/main/java/com/gunshi/project/ss/entity/so/WarningRulePageSo.java index 039bed5..d22ef75 100644 --- a/src/main/java/com/gunshi/project/ss/entity/so/WarningRulePageSo.java +++ b/src/main/java/com/gunshi/project/ss/entity/so/WarningRulePageSo.java @@ -34,6 +34,15 @@ public class WarningRulePageSo { @Schema(description="预警级别(1蓝色 2黄色 3橙色 4红色)") private Integer warningLevel; + @Schema(description="时间范围") + private DateTimeRangeSo dateTimeRangeSo; + @Schema(description="状态:0-未启用,1-启用") private Integer status; + + /** + * 状态:1-待审核,5-审核通过,9-审核不通过 + */ + @Schema(description="状态:1-待审核,5-审核通过,9-审核不通过") + private Integer auditStatus; } diff --git a/src/main/java/com/gunshi/project/ss/mapper/WarningRecObjMapper.java b/src/main/java/com/gunshi/project/ss/mapper/WarningRecObjMapper.java new file mode 100644 index 0000000..e6ba5c7 --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/mapper/WarningRecObjMapper.java @@ -0,0 +1,9 @@ +package com.gunshi.project.ss.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.ss.model.WarningRecObj; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WarningRecObjMapper extends BaseMapper { +} diff --git a/src/main/java/com/gunshi/project/ss/mapper/WarningRuleInfoMapper.java b/src/main/java/com/gunshi/project/ss/mapper/WarningRuleInfoMapper.java index e587c50..7c2c8ad 100644 --- a/src/main/java/com/gunshi/project/ss/mapper/WarningRuleInfoMapper.java +++ b/src/main/java/com/gunshi/project/ss/mapper/WarningRuleInfoMapper.java @@ -1,9 +1,88 @@ package com.gunshi.project.ss.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.project.ss.entity.so.WarningRulePageSo; import com.gunshi.project.ss.model.WarningRuleInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; @Mapper public interface WarningRuleInfoMapper extends BaseMapper { + @Select(""" + + """) + Page page(Page page,@Param("obj") WarningRulePageSo page1); + + @Select(""" + + """) + List infoStat(@Param("obj") WarningRulePageSo page); + + @Select(""" + + """) + Page auditPage(Page page,@Param("obj") WarningRulePageSo page1); } diff --git a/src/main/java/com/gunshi/project/ss/model/WarningRecObj.java b/src/main/java/com/gunshi/project/ss/model/WarningRecObj.java new file mode 100644 index 0000000..0687977 --- /dev/null +++ b/src/main/java/com/gunshi/project/ss/model/WarningRecObj.java @@ -0,0 +1,51 @@ +package com.gunshi.project.ss.model; + +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.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.gunshi.project.ss.common.validate.markers.Update; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 预警接收对象 + */ +@Data +@TableName("warning_rec_obj") +public class WarningRecObj { + + /** + * 主键ID + */ + @TableId(value="id", type= IdType.AUTO) + @Schema(description="主键") + @NotNull(message = "id不能为空",groups = { Update.class}) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @TableField("warning_info_id") + @Schema(description="预警内容id") + @JsonSerialize(using = ToStringSerializer.class) + private Long warningInfoId; + + /** + * 类型:1-内部 2-外部 + */ + @TableField("type") + @Schema(description="类型:1-内部 2-外部") + private Integer type; + + @TableField(value="user_id") + @Schema(description="用户id") + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; + + @TableField(value="user_name") + @Schema(description="用户") + private String userName; + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/ss/model/WarningRule.java b/src/main/java/com/gunshi/project/ss/model/WarningRule.java index a9f8295..fac4aa4 100644 --- a/src/main/java/com/gunshi/project/ss/model/WarningRule.java +++ b/src/main/java/com/gunshi/project/ss/model/WarningRule.java @@ -36,10 +36,10 @@ public class WarningRule { /** - * 预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 5-渗流 6-预报最高库水位 7-预报累计雨量 8-预报入库洪峰流量 9-预报渗压) + * 预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 6-渗流 7-预报最高库水位 8-预报累计雨量 9-预报入库洪峰流量 10-预报渗压) */ @TableField("warning_obj") - @Schema(description="预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 5-渗流 6-预报最高库水位 7-预报累计雨量 8-预报入库洪峰流量 9-预报渗压)") + @Schema(description="预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 6-渗流 7-预报最高库水位 8-预报累计雨量 9-预报入库洪峰流量 10-预报渗压)") private Integer warningObj; /** diff --git a/src/main/java/com/gunshi/project/ss/model/WarningRuleInfo.java b/src/main/java/com/gunshi/project/ss/model/WarningRuleInfo.java index 1d41e79..4efdde3 100644 --- a/src/main/java/com/gunshi/project/ss/model/WarningRuleInfo.java +++ b/src/main/java/com/gunshi/project/ss/model/WarningRuleInfo.java @@ -8,11 +8,10 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.gunshi.project.ss.common.validate.markers.Update; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -34,32 +33,20 @@ public class WarningRuleInfo { private Long ruleId; /** - * 预警类型:MONITOR-监测预警,FORE-预报预警 + * 监测值/预报值 */ - @TableField("warning_type") - @Schema(description="预警类型:MONITOR-监测预警,FORE-预报预警") - private String warningType; + @TableField("value") + @Schema(description="监测值/预报值") + private BigDecimal value; /** - * 预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 5-渗流 6-预报最高库水位 7-预报累计雨量 8-预报入库洪峰流量 9-预报渗压) + * 预测预报最高水位出现的时间点/预测预报入库洪峰流量出现的时间点 */ - @TableField("warning_obj") - @Schema(description="预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 5-渗流 6-预报最高库水位 7-预报累计雨量 8-预报入库洪峰流量 9-预报渗压)") - private Integer warningObj; + @TableField("fore_time") + @Schema(description="预测预报最高水位出现的时间点/预测预报入库洪峰流量出现的时间点") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime foreTime; - /** - * 预警级别(1蓝色 2黄色 3橙色 4红色) - */ - @TableField("warning_level") - @Schema(description="预警级别(1蓝色 2黄色 3橙色 4红色)") - private Integer warningLevel; - - /** - * 关联测点 - */ - @TableField("rel_stcd") - @Schema(description="关联测点") - private String relStcd; /** * 创建时间 @@ -68,15 +55,134 @@ public class WarningRuleInfo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; - @TableField("rule_info") - private String ruleInfo; - + /** + * 状态:0-未发布,1-待审核,5-审核通过,9-审核不通过 + */ @TableField("status") + @Schema(description="状态:0-未发布,1-待审核,5-审核通过,9-审核不通过") private Integer status; + /** + *发起审核时间 + */ + @TableField("init_audit_time") + @Schema(description="发起审核时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime initAuditTime; + + @TableField(value="init_audit_user_id") + @Schema(description="发起人id") + @JsonSerialize(using = ToStringSerializer.class) + private Long initAuditUserId; + + @TableField(value="init_audit_user_name") + @Schema(description="发起人") + private String initAuditUserName; + + @TableField(value="first_audit_user_id") + @Schema(description="一级审批人id") + @JsonSerialize(using = ToStringSerializer.class) + private Long firstAuditUserId; + + @TableField(value="first_audit_user_name") + @Schema(description="一级审批人") + private String firstAuditUserName; + + /** + *一级审核时间 + */ + @TableField("first_audit_time") + @Schema(description="一级审核时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime firstAuditTime; + + /** + * 一级审核结果(5-审核通过 9-审核不通过) + */ + @TableField("first_audit_status") + @Schema(description="一级审核结果(5-审核通过 9-审核不通过)") + private Integer firstAuditStatus; + + @TableField(value="second_audit_user_id") + @Schema(description="二级审批人id") + @JsonSerialize(using = ToStringSerializer.class) + private Long secondAuditUserId; + + @TableField(value="second_audit_user_name") + @Schema(description="二级审批人") + private String secondAuditUserName; + + /** + *二级审核时间 + */ + @TableField("second_audit_time") + @Schema(description="二级审核时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime secondAuditTime; + + /** + * 二级审核结果(5-审核通过 9-审核不通过) + */ + @TableField("second_audit_status") + @Schema(description="二级审核结果(5-审核通过 9-审核不通过)") + private Integer secondAuditStatus; + + /** + * 发布渠道(1-短信 2-APP 3-短信,APP) + */ + @TableField("release_channel") + @Schema(description="发布渠道(1-短信 2-APP 3-短信,APP)") + private Integer releaseChannel; + + /** + * 标题 + */ + @TableField("title") + @Schema(description="标题") + private String title; + + /** + * 预警内容 + */ + @TableField("content") + @Schema(description="预警内容") + private String content; + + /** + * 预警类型:MONITOR-监测预警,FORE-预报预警 + */ + @TableField(exist = false) + @Schema(description="预警类型:MONITOR-监测预警,FORE-预报预警") + private String warningType; + + + /** + * 预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 6-渗流 7-预报最高库水位 8-预报累计雨量 9-预报入库洪峰流量 10-预报渗压) + */ + @TableField(exist = false) + @Schema(description="预警对象(1-库水位 2-累计雨量 3-出入库流量 4-位移 5-渗压 6-渗流 7-预报最高库水位 8-预报累计雨量 9-预报入库洪峰流量 10-预报渗压)") + private Integer warningObj; + + /** + * 预警级别(1蓝色 2黄色 3橙色 4红色) + */ + @TableField(exist = false) + @Schema(description="预警级别(1蓝色 2黄色 3橙色 4红色)") + private Integer warningLevel; + + /** + * 关联测点 + */ + @TableField(exist = false) + @Schema(description="关联测点") + private String relStcd; + /** * 预警条件列表 */ @TableField(exist = false) private List conditions; + + @TableField(exist = false) + private List objs; } diff --git a/src/main/java/com/gunshi/project/ss/service/FundBudgetService.java b/src/main/java/com/gunshi/project/ss/service/FundBudgetService.java index 631e871..8c2a942 100644 --- a/src/main/java/com/gunshi/project/ss/service/FundBudgetService.java +++ b/src/main/java/com/gunshi/project/ss/service/FundBudgetService.java @@ -40,7 +40,7 @@ public class FundBudgetService extends ServiceImpl { + +} diff --git a/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java b/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java index efe685c..33c38b6 100644 --- a/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java +++ b/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java @@ -1,19 +1,27 @@ package com.gunshi.project.ss.service; -import com.alibaba.excel.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.ss.entity.dto.WarningAuditDto; import com.gunshi.project.ss.entity.so.WarningRulePageSo; import com.gunshi.project.ss.mapper.WarningRuleInfoMapper; +import com.gunshi.project.ss.model.AuditProcess; import com.gunshi.project.ss.model.WarningCondition; +import com.gunshi.project.ss.model.WarningRecObj; import com.gunshi.project.ss.model.WarningRuleInfo; +import com.ruoyi.common.utils.SecurityUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; +import java.time.LocalDateTime; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @Slf4j @@ -23,21 +31,15 @@ public class WarningRuleInfoService extends ServiceImpl pageQuery(WarningRulePageSo page) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// if(!StringUtils.isBlank(page.getRuleName())){ -// queryWrapper.like(WarningRuleInfo::getRuleName, page.getRuleName()); -// } - if(!StringUtils.isBlank(page.getWarningType())){ - queryWrapper.eq(WarningRuleInfo::getWarningType, page.getWarningType()); - } -// if(page.getDateTimeRangeSo() != null){ -// queryWrapper.ge(WarningRuleInfo::getCreateTime,page.getDateTimeRangeSo().getStart()); -// queryWrapper.le(WarningRuleInfo::getCreateTime,page.getDateTimeRangeSo().getEnd()); -// } - queryWrapper.orderByDesc(WarningRuleInfo::getCreateTime); - Page warningRuleInfoPage = this.baseMapper.selectPage(page.getPageSo().toPage(), queryWrapper); + Page warningRuleInfoPage = this.baseMapper.page(page.getPageSo().toPage(), page); List records = warningRuleInfoPage.getRecords(); for (WarningRuleInfo record : records) { List listByRuleId = warningConditionService.getListByRuleId(record.getRuleId()); @@ -45,4 +47,64 @@ public class WarningRuleInfoService extends ServiceImpl infoStat(WarningRulePageSo page) { + List list = this.baseMapper.infoStat(page); + return list.stream().collect(Collectors.groupingBy(WarningRuleInfo::getWarningLevel, Collectors.counting())); + } + + public String publish(WarningRuleInfo warningRuleInfo) { + warningRuleInfo.setStatus(2); + Integer warningLevel = warningRuleInfo.getWarningLevel(); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(AuditProcess::getWarningLevel,warningLevel); + AuditProcess auditProcess = auditProcessService.getOne(queryWrapper); + if (auditProcess == null) { + return "未找到该预警级别对应的审批流程"; + } + warningRuleInfo.setInitAuditUserId(SecurityUtils.getUserId()); + warningRuleInfo.setInitAuditUserName(SecurityUtils.getUsername()); + warningRuleInfo.setInitAuditTime(LocalDateTime.now()); + warningRuleInfo.setFirstAuditUserId(auditProcess.getFirstAuditUserId()); + warningRuleInfo.setFirstAuditUserName(auditProcess.getFirstAuditUserName()); + this.updateById(warningRuleInfo); + objService.saveOrUpdateBatch(warningRuleInfo.getObjs()); + return "发布成功"; + } + + public List queryObj(Serializable id) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(WarningRecObj::getWarningInfoId,id); + return objService.list(queryWrapper); + } + + public Page auditPage(WarningRulePageSo page) { + return this.baseMapper.auditPage(page.getPageSo().toPage(), page); + } + + public Boolean audit(WarningAuditDto dto) { + WarningRuleInfo info = this.getById(dto.getId()); + if (info == null) { + throw new IllegalArgumentException("id不存在"); + } + if (dto.getType() == 1) { + if (!info.getFirstAuditUserId().equals(SecurityUtils.getUserId())) { + throw new IllegalArgumentException("对不起,您没有审核权限"); + } + info.setFirstAuditStatus(dto.getStatus()); + info.setFirstAuditTime(LocalDateTime.now()); + if (info.getSecondAuditUserId() == null){ + info.setStatus(dto.getStatus()); + } + } + if (dto.getType() == 2) { + if (!info.getSecondAuditUserId().equals(SecurityUtils.getUserId())) { + throw new IllegalArgumentException("对不起,您没有审核权限"); + } + info.setSecondAuditStatus(dto.getStatus()); + info.setSecondAuditTime(LocalDateTime.now()); + info.setStatus(dto.getStatus()); + } + return this.updateById(info); + } } diff --git a/src/main/java/com/gunshi/project/ss/timetask/WarningRuleTask.java b/src/main/java/com/gunshi/project/ss/timetask/WarningRuleTask.java index fea2c0d..b34f6d5 100644 --- a/src/main/java/com/gunshi/project/ss/timetask/WarningRuleTask.java +++ b/src/main/java/com/gunshi/project/ss/timetask/WarningRuleTask.java @@ -102,15 +102,10 @@ public class WarningRuleTask { String ruleInfo = generateRuleInfo(conditions); WarningRuleInfo warningRuleInfo = new WarningRuleInfo(); -// warningRuleInfo.setCreateName(warningRule.getCreateName()); warningRuleInfo.setRuleId(warningRule.getId()); -// warningRuleInfo.setRuleName(warningRule.getRuleName()); warningRuleInfo.setConditions(conditions); warningRuleInfo.setCreateTime(LocalDateTime.now()); - warningRuleInfo.setRuleInfo(ruleInfo); - warningRuleInfo.setWarningType(warningType); - warningRuleInfo.setWarningLevel(warningRule.getWarningLevel()); - warningRuleInfo.setStatus(warningRule.getStatus()); + warningRuleInfo.setStatus(0); warningRuleInfoService.save(warningRuleInfo); } }