From 29ecd492e91c5fab54e5680e06057765a50ecdcb Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 16 Aug 2023 08:47:46 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=A2=84=E8=AD=A6=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E4=BF=9D=E5=AD=98|=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/enums/MessageTypeEnum.java | 2 +- .../jeecg/common/util/RedisStreamUtil.java | 11 +- .../jeecg/modules/base/dto/NuclideInfo.java | 28 +--- .../org/jeecg/modules/base/dto/RuleDto.java | 5 + .../base/entity/postgre/AlarmAnalysisLog.java | 14 +- .../base/entity/rnauto/GardsNuclIded.java | 2 +- .../base/entity/rnman/GardsNuclIded.java | 2 +- .../AlarmAnalysisNuclideAvgController.java | 6 +- .../AlarmAnalysisNuclideParamController.java | 12 +- .../controller/CalculateConcController.java | 1 + .../controller/SysEmailLogController.java | 9 +- .../modules/feignclient/SystemClient.java | 5 + .../mapper/GardsNuclIdedAutoMapper.java | 3 + .../mapper/GardsNuclIdedManMapper.java | 3 + .../mapper/GardsXeResultsAutoMapper.java | 3 + .../mapper/GardsXeResultsManMapper.java | 3 + .../mapper/xml/GardsNuclIdedAutoMapper.xml | 27 +++- .../mapper/xml/GardsNuclIdedManMapper.xml | 27 +++- .../mapper/xml/GardsXeResultsAutoMapper.xml | 26 +++- .../mapper/xml/GardsXeResultsManMapper.xml | 27 +++- .../modules/redisStream/AnalysisConsumer.java | 143 +++++++++++++----- .../service/AnalysisResultService.java | 7 +- .../service/IAlarmAnalysisLogService.java | 2 + .../service/IGardsNuclIdedAutoService.java | 2 +- .../service/IGardsNuclIdedManService.java | 2 +- .../service/IGardsXeResultsAutoService.java | 2 +- .../service/IGardsXeResultsManService.java | 2 +- .../impl/AlarmAnalysisLogServiceImpl.java | 20 +++ .../AlarmAnalysisNuclideParamServiceImpl.java | 2 +- .../impl/AnalysisResultServiceImpl.java | 10 +- .../impl/GardsNuclIdedAutoServiceImpl.java | 9 +- .../impl/GardsNuclIdedManServiceImpl.java | 9 +- .../impl/GardsXeResultsAutoServiceImpl.java | 9 +- .../impl/GardsXeResultsManServiceImpl.java | 9 +- .../feignclient/AbnormalAlarmClient.java | 8 +- .../jeecg/modules/message/SendMessage.java | 5 - .../controller/SendMessageController.java | 24 +++ .../org/jeecg/modules/quartz/job/ConcJob.java | 21 --- .../modules/quartz/job/NuclideParamJob.java | 41 +++++ .../modules/quartz/job/NucliedAvgJob.java | 41 +++++ .../jeecg/modules/quartz/job/SysInfoJob.java | 29 +++- .../org/jeecg/modules/quartz/job/Test.java | 41 +++++ 42 files changed, 472 insertions(+), 182 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ConcJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/Test.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageTypeEnum.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageTypeEnum.java index 679fdb83..fa723d15 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageTypeEnum.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageTypeEnum.java @@ -28,8 +28,8 @@ public enum MessageTypeEnum { MessageTypeEnum(String type, String note, String value){ this.type = type; - this.value = value; this.note = note; + this.value = value; } /** diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RedisStreamUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RedisStreamUtil.java index eedd68da..10570bda 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RedisStreamUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RedisStreamUtil.java @@ -3,7 +3,6 @@ package org.jeecg.common.util; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; -import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.modules.base.dto.RuleDto; @@ -159,7 +158,7 @@ public class RedisStreamUtil { * * @param ruleDto */ - public String pushWarn(RuleDto ruleDto){ + public String pushAlarm(RuleDto ruleDto){ String warnKey = RedisConstant.STREAM_ALARM; ObjectRecord record = StreamRecords.newRecord() .in(warnKey).ofObject(ruleDto); @@ -167,6 +166,14 @@ public class RedisStreamUtil { return putRecord(record); } + public String pushAnalysis(RuleDto ruleDto){ + String analysisKey = RedisConstant.STREAM_ANALYSIS; + ObjectRecord record = StreamRecords.newRecord() + .in(analysisKey).ofObject(ruleDto); + // 向Redis Stream中推送消息 + return putRecord(record); + } + public void setSilence(Map silenceMap){ // 返回批处理的执行结果 List execResult = redisTemplate.executePipelined((RedisConnection connection) -> { diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java index db79d83f..77a23fac 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java @@ -14,31 +14,7 @@ public class NuclideInfo implements Serializable { private String threshold; - private String armdarr; + private String datasource; - private String armdrrr; - - private String idcarr; - - private String idcrrr; - - @JsonProperty("ARMDARR") - public void setArmdarr(String armdarr) { - this.armdarr = armdarr; - } - - @JsonProperty("ARMDRRR") - public void setArmdrrr(String armdrrr) { - this.armdrrr = armdrrr; - } - - @JsonProperty("IDCARR") - public void setIdcarr(String idcarr) { - this.idcarr = idcarr; - } - - @JsonProperty("IDCRRR") - public void setIdcrrr(String idcrrr) { - this.idcrrr = idcrrr; - } + private String value; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/RuleDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/RuleDto.java index 57b60b25..fdda7b53 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/RuleDto.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/RuleDto.java @@ -2,6 +2,7 @@ package org.jeecg.modules.base.dto; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.jeecg.modules.base.enums.SourceType; @@ -11,6 +12,7 @@ import java.util.Map; @Data @AllArgsConstructor +@NoArgsConstructor @Accessors(chain = true) public class RuleDto implements Serializable{ // 资源类型 @@ -25,6 +27,9 @@ public class RuleDto implements Serializable{ // 台站id private String stationId; + // 谱id + private String sampleId; + // 数据源类型(ARMDARR=1|ARMDRRR=2|IDCARR=3|IDCRRR=4) private String dataSourceType; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisLog.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisLog.java index 410b8b74..aa57020f 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisLog.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisLog.java @@ -1,17 +1,22 @@ package org.jeecg.modules.base.entity.postgre; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import javafx.util.converter.LocalDateTimeStringConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.modules.base.dto.NuclideInfo; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; @@ -28,15 +33,18 @@ public class AlarmAnalysisLog implements Serializable{ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "UTC+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date alarmStartDate; + private LocalDateTime alarmStartDate = LocalDateTime.now(); @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "UTC+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date collectionDate; + private LocalDateTime collectionDate; private String alarmInfo; - private Integer sampleId; + private String sampleId; private String nuclideInfo; + + @TableField(exist = false) + private List nuclideInfoList; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsNuclIded.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsNuclIded.java index 7d16ff1b..0c27b70f 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsNuclIded.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsNuclIded.java @@ -29,7 +29,7 @@ public class GardsNuclIded implements Serializable { /** * 核素名称 */ - @TableField(value = "NUCLIDE_NAME") + @TableField(value = "NUCLIDENAME") private String nuclideName; /** * 核素类型 diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsNuclIded.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsNuclIded.java index a98dd98a..2b440493 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsNuclIded.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsNuclIded.java @@ -29,7 +29,7 @@ public class GardsNuclIded implements Serializable { /** * 核素名称 */ - @TableField(value = "NUCLIDE_NAME") + @TableField(value = "NUCLIDENAME") private String nuclideName; /** * 核素类型 diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java index 6b3a6cf8..291b68c2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java @@ -8,12 +8,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; -@Api(value = "",tags="") +@Api(value = "核素浓度均值信息管理",tags="核素浓度均值信息管理") @RestController -@RequestMapping("alarmAnalysisNuclideAvg") +@RequestMapping("nuclideAvg") public class AlarmAnalysisNuclideAvgController extends JeecgController { @Autowired - private IAlarmAnalysisNuclideAvgService alarmAnalysisNuclideAvgService; + private IAlarmAnalysisNuclideAvgService nuclideAvgService; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java index 91f7bd2a..1be95671 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.ApiOperation; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideParam; import org.jeecg.modules.service.IAlarmAnalysisNuclideParamService; import lombok.extern.slf4j.Slf4j; @@ -10,13 +11,18 @@ import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; @Slf4j -@Api(value = "", tags= "") +@Api(value = "核素浓度均值计算参数管理", tags= "核素浓度均值计算参数管理") @RestController -@RequestMapping("alarmAnalysisNuclideParam") +@RequestMapping("nuclideParam") public class AlarmAnalysisNuclideParamController extends JeecgController { @Autowired - private IAlarmAnalysisNuclideParamService alarmAnalysisNuclideParamService; + private IAlarmAnalysisNuclideParamService nuclideParamService; + @GetMapping("refresh") + @ApiOperation(value = "定时刷新核素计算参数信息",notes = "定时刷新核素计算参数信息") + public void refreshParam(){ + nuclideParamService.refresh(); + } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java index 54719d42..0c6cafba 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java @@ -3,6 +3,7 @@ package org.jeecg.modules.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.modules.service.CalculateConcService; +import org.jeecg.modules.service.IAlarmAnalysisNuclideParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java index 2478350f..f995d2e2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.controller; +import cn.hutool.core.map.MapUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.vo.Result; @@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; + @RestController @RequestMapping("sysEmailLog") @Api(value = "邮箱日志服务", tags = "邮箱日志服务") @@ -33,7 +36,11 @@ public class SysEmailLogController { @GetMapping("space") @ApiOperation("邮箱服务器空间") public Result space(@RequestParam("emailId") String emailId){ - return null; + HashMap map = MapUtil.newHashMap(); + map.put("total","500G"); + map.put("residue","300G"); + map.put("usage","74.3%"); + return Result.OK(map); } @GetMapping("total") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index 603ec9d0..0b619e57 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -19,6 +19,11 @@ public interface SystemClient { @RequestMapping("/sys/user/findUserMap") Map findUserMap(); + @GetMapping("/sys/sendMessage/send") + void sendMessage(@RequestParam String message, + @RequestParam String groupId, + @RequestParam String notific); + /* SysDictController下相关接口 */ @GetMapping("/sys/dict/getItems") List getItems(@RequestParam String dictCode); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedAutoMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedAutoMapper.java index fbb82f71..385d0567 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedAutoMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedAutoMapper.java @@ -7,9 +7,12 @@ import org.jeecg.modules.base.entity.rnauto.GardsNuclIded; import java.util.List; import java.util.Map; +import java.util.Set; @Mapper public interface GardsNuclIdedAutoMapper extends BaseMapper { List getConc(Map param); + + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedManMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedManMapper.java index cc36fed1..44891d11 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedManMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsNuclIdedManMapper.java @@ -7,9 +7,12 @@ import org.jeecg.modules.base.entity.rnman.GardsNuclIded; import java.util.List; import java.util.Map; +import java.util.Set; @Mapper public interface GardsNuclIdedManMapper extends BaseMapper { List getConc(Map param); + + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsAutoMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsAutoMapper.java index 1df61632..8895c756 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsAutoMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsAutoMapper.java @@ -7,9 +7,12 @@ import org.jeecg.modules.base.entity.rnauto.GardsXeResults; import java.util.List; import java.util.Map; +import java.util.Set; @Mapper public interface GardsXeResultsAutoMapper extends BaseMapper { List getConc(Map params); + + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsManMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsManMapper.java index 3ce1c5e2..b96fb8f8 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsManMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/GardsXeResultsManMapper.java @@ -7,9 +7,12 @@ import org.jeecg.modules.base.entity.rnman.GardsXeResults; import java.util.List; import java.util.Map; +import java.util.Set; @Mapper public interface GardsXeResultsManMapper extends BaseMapper { List getConc(Map params); + + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml index cfc91615..122a0929 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml @@ -1,25 +1,38 @@ - + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml index fe9f3be4..991fb628 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml @@ -1,25 +1,38 @@ - + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml index f2eb85f4..1e99f4f9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml @@ -4,22 +4,36 @@ + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsManMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsManMapper.xml index e4a3da69..35ddb68f 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsManMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsManMapper.xml @@ -1,25 +1,38 @@ - + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java index 5338cbec..5f6763bd 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java @@ -7,9 +7,12 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.constant.SymbolConstant; @@ -18,9 +21,12 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.dto.NuclideInfo; import org.jeecg.modules.base.dto.RuleDto; +import org.jeecg.modules.base.entity.postgre.AlarmAnalysisLog; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisRule; +import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.service.AnalysisResultService; +import org.jeecg.modules.service.IAlarmAnalysisLogService; import org.jeecg.modules.service.IAlarmAnalysisNuclideAvgService; import org.jeecg.modules.service.IAlarmAnalysisRuleService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,8 +34,12 @@ import org.springframework.data.redis.connection.stream.ObjectRecord; import org.springframework.data.redis.connection.stream.RecordId; import org.springframework.data.redis.stream.StreamListener; import org.springframework.stereotype.Component; +import static org.jeecg.common.constant.enums.MessageTypeEnum.*; +import static org.jeecg.common.util.TokenUtils.getTempToken; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -43,12 +53,11 @@ public class AnalysisConsumer implements StreamListener nuclides = ruleDto.getNuclides(); if (StrUtil.isBlank(stationId)) return; + if (StrUtil.isBlank(sampleId)) return; if (MapUtil.isEmpty(nuclides)) return; List rules = ruleService.allAnalysisRule(); for (AlarmAnalysisRule rule : rules) { + // 当前规则是否有报警条件 String conditionStr = rule.getConditions(); if (StrUtil.isBlank(conditionStr)) continue; + // 是否在当前规则关注的台站列表内 String stations = rule.getStations(); - boolean shot = StrUtil.contains(stations, stationId); - if (!shot) continue; - Set names = nuclides.keySet(); + if (!StrUtil.contains(stations, stationId)) + continue; + // 是否在当前规则关注的数据源内 + String source = rule.getSource(); + if (!StrUtil.contains(source,dataSourceType)) + continue; + // 是否在当前规则关注的谱类型内 + String spectralQualifier = rule.getSpectralQualifier(); + if (!StrUtil.contains(spectralQualifier,fullOrPrel)) + continue; + // 是否有当前规则关注的核素 String nuclidesStr = rule.getNuclides(); if (StrUtil.isBlank(nuclidesStr)) continue; + Set names = nuclides.keySet(); List follow = ListUtil.toList(nuclidesStr.split(comma)); // 推送过来的核素集合与所关注核素集合取交集 Collection cross = CollectionUtil.intersection(names, follow); @@ -110,39 +137,63 @@ public class AnalysisConsumer implements StreamListener conditions = ListUtil.toList(conditionStr.split(comma)); - + String ruleId = rule.getId(); + String groupId = rule.getContactGroup(); + judge(ruleId,groupId,sampleId,betaOrGamma,dataSourceType,conditions,nuclidesCross); } } - private void judge(String betaOrGamma, + private void judge(String ruleId, + String groupId, + String sampleId, + String betaOrGamma, String dataSourceType, List conditions, - Map nuclides){ + Map nuclidesCross){ String ONE = "1";String TWO = "2";String THREE = "3"; - Set nuclideNames = nuclides.keySet(); + Set nuclideNames = nuclidesCross.keySet(); + String alarmInfo = ""; List firstDetected; - List moreThanAvg; - List twoOrMore; + List moreThanAvg = new ArrayList<>(); for (String con : conditions) { if (ONE.equals(con)){ // 首次发现该元素 firstDetected = firstDetected(betaOrGamma,dataSourceType,nuclideNames); if (CollUtil.isNotEmpty(firstDetected)){ - String message = "核素:["+StrUtil.join(comma,firstDetected)+"]首次发现"; - + String message = "核素"+StrUtil.join(comma,firstDetected)+"首次发现"; + alarmInfo += message; } } else if (TWO.equals(con)) { // 元素浓度高于均值 - moreThanAvg = moreThanAvg(dataSourceType,nuclides); + moreThanAvg = moreThanAvg(dataSourceType,nuclidesCross); if (CollUtil.isNotEmpty(moreThanAvg)){ - + for (NuclideInfo nuclideInfo : moreThanAvg) { + String nuclide = nuclideInfo.getNuclide(); + String threshold = nuclideInfo.getThreshold(); + String message = "核素"+nuclide+"超出平均值:"+threshold; + alarmInfo += comma + message; + } } - } else if (THREE.equals(con)) { // 发现两种及以上核素 - twoOrMore = twoOrMore(betaOrGamma,dataSourceType,nuclideNames); - if (twoOrMore.size() >= 2){ - String message = "同时检测到核素:["+StrUtil.join(comma,twoOrMore)+"]"; + } else if (THREE.equals(con)) { // 同时出现两种及以上核素 + if (nuclideNames.size() >= 2){ + String message = "同时检测到核素"+StrUtil.join(comma,nuclideNames); + alarmInfo += comma + message; } } } - + if (StrUtil.isNotBlank(alarmInfo)){ + // 保存报警日志 + AlarmAnalysisLog logInfo = new AlarmAnalysisLog(); + logInfo.setRuleId(ruleId); + logInfo.setSampleId(sampleId); + if (alarmInfo.startsWith(comma)) + alarmInfo = StrUtil.sub(alarmInfo, 1, alarmInfo.length()); + logInfo.setAlarmInfo(alarmInfo); + if (CollUtil.isNotEmpty(moreThanAvg)) + logInfo.setNuclideInfoList(moreThanAvg); + logService.saveLog(logInfo); + // 发送报警信息 + if (StrUtil.isNotBlank(groupId)) + systemClient.sendMessage(alarmInfo,groupId, ALL.getValue()); + } } /** @@ -151,7 +202,7 @@ public class AnalysisConsumer implements StreamListener firstDetected(String betaOrGamma, String dataSourceType, Set nuclideNames){ - Set existNames = analysisResultService + List existNames = analysisResultService .nuclideNames(betaOrGamma, dataSourceType, nuclideNames); // 两个集合元素相减 List differ = CollUtil.subtractToList(nuclideNames, existNames); @@ -162,14 +213,14 @@ public class AnalysisConsumer implements StreamListener moreThanAvg(String dataSourceType, - Map nuclides){ + Map nuclidesCross){ List nuclideInfos = new ArrayList<>(); - Set nuclideNames = nuclides.keySet(); + Set nuclideNames = nuclidesCross.keySet(); Map nuclideAvgs = nuclideAvgService .list(nuclideNames, dataSourceType).stream() .collect(Collectors.toMap(AlarmAnalysisNuclideAvg::getNuclide, AlarmAnalysisNuclideAvg::getVal)); - for (Map.Entry nuclide : nuclides.entrySet()) { + for (Map.Entry nuclide : nuclidesCross.entrySet()) { String nuclideName = nuclide.getKey(); String concValue = nuclide.getValue();// 浓度值 String avgValue = nuclideAvgs.get(nuclideName);// 浓度均值 @@ -184,32 +235,42 @@ public class AnalysisConsumer implements StreamListener twoOrMore(String betaOrGamma, - String dataSourceType, - Set nuclideNames){ - Set existNames = analysisResultService - .nuclideNames(betaOrGamma, dataSourceType, nuclideNames); - return ListUtil.toList(existNames); + private String type(String dataSourceType){ + switch (dataSourceType){ + case CommonConstant.ARMDARR: + return "ARMDARR"; + case CommonConstant.ARMDRRR: + return "ARMDRRR"; + case CommonConstant.IDCARR: + return "IDCARR"; + case CommonConstant.IDCRRR: + return "IDCRRR"; + default: + return null; + } } private void init() { + // start:生成临时Token到线程中 + UserTokenContext.setToken(getTempToken()); + systemClient = SpringContextUtils.getBean(SystemClient.class); redisStreamUtil = SpringContextUtils.getBean(RedisStreamUtil.class); - ruleService = SpringContextUtils.getBean(IAlarmAnalysisRuleService.class); + logService = SpringContextUtils.getBean(IAlarmAnalysisLogService.class); analysisResultService = SpringContextUtils.getBean(AnalysisResultService.class); + ruleService = SpringContextUtils.getBean(IAlarmAnalysisRuleService.class); nuclideAvgService = SpringContextUtils.getBean(IAlarmAnalysisNuclideAvgService.class); } + + private void destroy(){ + // end:删除临时Token + UserTokenContext.remove(); + } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/AnalysisResultService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/AnalysisResultService.java index 619b0b0a..475d5504 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/AnalysisResultService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/AnalysisResultService.java @@ -1,10 +1,11 @@ package org.jeecg.modules.service; +import java.util.List; import java.util.Set; public interface AnalysisResultService { - Set nuclideNames(String betaOrGamma, - String dataSourceType, - Set nuclideNames); + List nuclideNames(String betaOrGamma, + String dataSourceType, + Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisLogService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisLogService.java index 715b3b5a..81804280 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisLogService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisLogService.java @@ -8,4 +8,6 @@ import org.jeecg.modules.base.vo.AnalysisLogVo; public interface IAlarmAnalysisLogService extends IService { Result findPage(AnalysisLogVo analysisLogVo); + + boolean saveLog(AlarmAnalysisLog analysisLog); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedAutoService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedAutoService.java index 5db84e51..20b48129 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedAutoService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedAutoService.java @@ -12,5 +12,5 @@ public interface IGardsNuclIdedAutoService extends IService { List getConc(Map params); - Set nuclideNames(Set nuclideNames); + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedManService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedManService.java index 034ba7e8..cccde05e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedManService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsNuclIdedManService.java @@ -12,5 +12,5 @@ public interface IGardsNuclIdedManService extends IService { List getConc(Map params); - Set nuclideNames(Set nuclideNames); + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java index ad3fda1b..aa568eb3 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java @@ -12,5 +12,5 @@ public interface IGardsXeResultsAutoService extends IService { List getConc(Map params); - Set nuclideNames(Set nuclideNames); + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java index f3728e9e..5d3f0cac 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java @@ -12,5 +12,5 @@ public interface IGardsXeResultsManService extends IService { List getConc(Map params); - Set nuclideNames(Set nuclideNames); + List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java index 1d711f34..d527f4d0 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java @@ -2,7 +2,9 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -24,6 +26,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -112,6 +116,22 @@ public class AlarmAnalysisLogServiceImpl extends ServiceImpl nuclideInfoList = analysisLog.getNuclideInfoList(); + try { + if (CollUtil.isNotEmpty(nuclideInfoList)){ + ObjectMapper mapper = new ObjectMapper(); + String nuclideInfo = mapper.writeValueAsString(nuclideInfoList); + analysisLog.setNuclideInfo(nuclideInfo); + } + return save(analysisLog); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return false; + } + } + private List getShow(List dictModels,String dict){ List show = new ArrayList<>(); if (StrUtil.isBlank(dict)) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideParamServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideParamServiceImpl.java index 6771d98a..a65ab095 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideParamServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideParamServiceImpl.java @@ -24,7 +24,7 @@ public class AlarmAnalysisNuclideParamServiceImpl extends ServiceImpl nuclideNames(String betaOrGamma, String dataSourceType, Set nuclideNames) { + public List nuclideNames(String betaOrGamma, String dataSourceType, Set nuclideNames) { if (CommonConstant.ARMDARR.equals(dataSourceType)){ if (CommonConstant.BETA.equals(betaOrGamma)){ return xeResultsAutoService.nuclideNames(nuclideNames); }else if (CommonConstant.GAMMA.equals(betaOrGamma)){ return nuclIdedAutoService.nuclideNames(nuclideNames); }else { - return nuclideNames; + return ListUtil.toList(nuclideNames); } } else if (CommonConstant.ARMDRRR.equals(dataSourceType)) { if (CommonConstant.BETA.equals(betaOrGamma)){ @@ -39,10 +41,10 @@ public class AnalysisResultServiceImpl implements AnalysisResultService { }else if (CommonConstant.GAMMA.equals(betaOrGamma)){ return nuclIdedManService.nuclideNames(nuclideNames); }else { - return nuclideNames; + return ListUtil.toList(nuclideNames); } }else { - return nuclideNames; + return ListUtil.toList(nuclideNames); } } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedAutoServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedAutoServiceImpl.java index 0153e70c..6770ef2f 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedAutoServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedAutoServiceImpl.java @@ -29,12 +29,7 @@ public class GardsNuclIdedAutoServiceImpl extends ServiceImpl nuclideNames(Set nuclideNames) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(GardsNuclIded::getNuclideName,nuclideNames); - Set result = list(wrapper).stream() - .map(GardsNuclIded::getNuclideName) - .collect(Collectors.toSet()); - return result; + public List nuclideNames(Set nuclideNames) { + return baseMapper.nuclideNames(nuclideNames); } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedManServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedManServiceImpl.java index 1915ad0d..fdcd2a2c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedManServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedManServiceImpl.java @@ -28,12 +28,7 @@ public class GardsNuclIdedManServiceImpl extends ServiceImpl nuclideNames(Set nuclideNames) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(GardsNuclIded::getNuclideName,nuclideNames); - Set result = list(wrapper).stream() - .map(GardsNuclIded::getNuclideName) - .collect(Collectors.toSet()); - return result; + public List nuclideNames(Set nuclideNames) { + return baseMapper.nuclideNames(nuclideNames); } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java index 0abf4517..1e8dc318 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java @@ -28,12 +28,7 @@ public class GardsXeResultsAutoServiceImpl extends ServiceImpl nuclideNames(Set nuclideNames) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(GardsXeResults::getNuclideName,nuclideNames); - Set result = list(wrapper).stream() - .map(GardsXeResults::getNuclideName) - .collect(Collectors.toSet()); - return result; + public List nuclideNames(Set nuclideNames) { + return baseMapper.nuclideNames(nuclideNames); } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java index 25609ff2..2c99b591 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java @@ -28,12 +28,7 @@ public class GardsXeResultsManServiceImpl extends ServiceImpl nuclideNames(Set nuclideNames) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(GardsXeResults::getNuclideName,nuclideNames); - Set result = list(wrapper).stream() - .map(GardsXeResults::getNuclideName) - .collect(Collectors.toSet()); - return result; + public List nuclideNames(Set nuclideNames) { + return baseMapper.nuclideNames(nuclideNames); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java index 384d9e28..632992fa 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java @@ -29,5 +29,11 @@ public interface AbnormalAlarmClient { @PostMapping("/alarmLog/create") Result create(@RequestBody AlarmLog alarmLog); - /* AlarmAnalysisRuleController下相关接口 */ + /* CalculateConcController下相关接口 */ + @GetMapping("/calculateConc/caclAndSave") + void calculateConc(); + + /* AlarmAnalysisNuclideParamController下相关接口 */ + @GetMapping("/nuclideParam/refresh") + void refreshParam(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java index 05fa2cca..0e167df2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java @@ -48,9 +48,6 @@ public class SendMessage { * */ public void send(String message,String groupId,String notific){ - // start:生成临时Token到线程中 - UserTokenContext.setToken(getTempToken()); - // 封装MessageDTO消息体 String title = "系统预警消息"; MessageDTO messageDTO = new MessageDTO(title,message); @@ -85,8 +82,6 @@ public class SendMessage { } } } - // end:删除临时Token - UserTokenContext.remove(); } /** diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java new file mode 100644 index 00000000..7f58d565 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.message.controller; + +import org.jeecg.modules.message.SendMessage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("sys/sendMessage") +public class SendMessageController { + + @Autowired + private SendMessage sendMessage; + + @GetMapping("send") + public void sendMessage(@RequestParam String message, + @RequestParam String groupId, + @RequestParam String notific){ + sendMessage.send(message, groupId, notific); + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ConcJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ConcJob.java deleted file mode 100644 index 333255ad..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ConcJob.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.jeecg.modules.quartz.job; - -import org.quartz.*; - -/** - * 此处的同步是指:当定时任务的执行时间大于任务的时间 - * 间隔时会等待第一个任务执行完成才会走第二个任务 - */ -@DisallowConcurrentExecution -@PersistJobDataAfterExecution -public class ConcJob implements Job { - - @Override - public void execute(JobExecutionContext context) throws JobExecutionException { - init(); - } - - private void init(){ - - } -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java new file mode 100644 index 00000000..6cd25e93 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.quartz.job; + +import org.jeecg.common.config.mqtoken.UserTokenContext; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.feignclient.AbnormalAlarmClient; +import org.quartz.*; + +import static org.jeecg.common.util.TokenUtils.getTempToken; + +/** + * 此处的同步是指:当定时任务的执行时间大于任务的时间 + * 间隔时会等待第一个任务执行完成才会走第二个任务 + */ + +/** + * 定时更新核素浓度计算参数 + */ +@DisallowConcurrentExecution +@PersistJobDataAfterExecution +public class NuclideParamJob implements Job { + + private AbnormalAlarmClient alarmClient; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + init(); + alarmClient.refreshParam(); + destroy(); + } + + private void init(){ + // start:生成临时Token到线程中 + UserTokenContext.setToken(getTempToken()); + alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); + } + + private void destroy(){ + // end:删除临时Token + UserTokenContext.remove(); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java new file mode 100644 index 00000000..61175bb8 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.quartz.job; + +import org.jeecg.common.config.mqtoken.UserTokenContext; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.feignclient.AbnormalAlarmClient; +import org.quartz.*; + +import static org.jeecg.common.util.TokenUtils.getTempToken; + +/** + * 此处的同步是指:当定时任务的执行时间大于任务的时间 + * 间隔时会等待第一个任务执行完成才会走第二个任务 + */ + +/** + * 定时计算核素浓度均值 + */ +@DisallowConcurrentExecution +@PersistJobDataAfterExecution +public class NucliedAvgJob implements Job { + + private AbnormalAlarmClient alarmClient; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + init(); + alarmClient.calculateConc(); + destroy(); + } + + private void init(){ + // start:生成临时Token到线程中 + UserTokenContext.setToken(getTempToken()); + alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); + } + + private void destroy(){ + // end:删除临时Token + UserTokenContext.remove(); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/SysInfoJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/SysInfoJob.java index d69e2b0d..06e672cf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/SysInfoJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/SysInfoJob.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DateConstant; import org.jeecg.common.constant.RedisConstant; @@ -21,7 +22,7 @@ import org.jeecg.modules.feignclient.AbnormalAlarmClient; import org.jeecg.modules.feignclient.MonitorSystem; import org.jeecg.modules.message.SendMessage; import org.quartz.*; - +import static org.jeecg.common.util.TokenUtils.getTempToken; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Set; @@ -36,6 +37,11 @@ public class SysInfoJob implements Job { private String parameter; + private SendMessage sendMessage; + private MonitorSystem monitorSystem; + private RedisStreamUtil redisStreamUtil; + private AbnormalAlarmClient alarmClient; + /** * 根据host定时查询服务器信息 * 并向消息队列中推送信息 @@ -44,16 +50,12 @@ public class SysInfoJob implements Job { */ @Override public void execute(JobExecutionContext context) throws JobExecutionException { - RedisStreamUtil redisStreamUtil = SpringContextUtils.getBean(RedisStreamUtil.class); - MonitorSystem monitorSystem = SpringContextUtils.getBean(MonitorSystem.class); - SendMessage sendMessage = SpringContextUtils.getBean(SendMessage.class); - AbnormalAlarmClient alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); + init(); // 查询所有报警规则,根据报警规则查询监控项数据 String pattern = RedisConstant.PREFIX_RULE; Set keys = redisStreamUtil.keys(pattern); if (CollUtil.isEmpty(keys)) { - log.error("当前没有需要监控的预警规则!"); return; } @@ -114,6 +116,7 @@ public class SysInfoJob implements Job { e.printStackTrace(); } } + destroy(); } private boolean parse(Rule rule){ @@ -141,4 +144,18 @@ public class SysInfoJob implements Job { return false; } } + + private void init(){ + // start:生成临时Token到线程中 + UserTokenContext.setToken(getTempToken()); + sendMessage = SpringContextUtils.getBean(SendMessage.class); + monitorSystem = SpringContextUtils.getBean(MonitorSystem.class); + redisStreamUtil = SpringContextUtils.getBean(RedisStreamUtil.class); + alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); + } + + private void destroy(){ + // end:删除临时Token + UserTokenContext.remove(); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/Test.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/Test.java new file mode 100644 index 00000000..c07d0cf0 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/Test.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.quartz.job; + +import cn.hutool.core.map.MapUtil; +import org.jeecg.common.util.RedisStreamUtil; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.base.dto.RuleDto; +import org.quartz.*; + +import java.util.Map; + +/** + * 此处的同步是指:当定时任务的执行时间大于任务的时间 + * 间隔时会等待第一个任务执行完成才会走第二个任务 + */ +@DisallowConcurrentExecution +@PersistJobDataAfterExecution +public class Test implements Job { + + private RedisStreamUtil redisStreamUtil; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + init(); + RuleDto ruleDto = new RuleDto(); + ruleDto.setStationId("101"); + ruleDto.setSampleId("424249"); + ruleDto.setBetaOrGamma("Gamma"); + ruleDto.setFullOrPrel("FULL"); + ruleDto.setDataSourceType("1"); + Map nuclides = MapUtil.newHashMap(); + nuclides.put("Be7","1000000"); + nuclides.put("sss","1000000"); + nuclides.put("Tl208","10"); + ruleDto.setNuclides(nuclides); + redisStreamUtil.pushAnalysis(ruleDto); + } + + private void init(){ + redisStreamUtil = SpringContextUtils.getBean(RedisStreamUtil.class); + } +}