Browse Source

异物侵限接口开发

gao.qiang 2 months ago
parent
commit
34644c4719
21 changed files with 1111 additions and 0 deletions
  1. 53 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmExt.java
  2. 116 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequencyMatter.java
  3. 240 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmMatter.java
  4. 23 0
      business-service/src/main/java/com/ozs/service/entity/vo/Files.java
  5. 129 0
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmMatterVo.java
  6. 11 0
      business-service/src/main/java/com/ozs/service/entity/vo/ParameterVo.java
  7. 29 0
      business-service/src/main/java/com/ozs/service/entity/vo/ReleaseAlarmVo.java
  8. 64 0
      business-service/src/main/java/com/ozs/service/entity/vo/ReqMsgAlarmMatterVo.java
  9. 18 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmExtMapper.java
  10. 18 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmFrequencyMatterMapper.java
  11. 25 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMatterMapper.java
  12. 16 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmExtService.java
  13. 16 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmFrequencyMatterService.java
  14. 25 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmMatterService.java
  15. 20 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmExtServiceImpl.java
  16. 20 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmFrequencyMatterServiceImpl.java
  17. 51 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmMatterServiceImpl.java
  18. 5 0
      business-service/src/main/resources/mapper/service/MsgAlarmExtMapper.xml
  19. 5 0
      business-service/src/main/resources/mapper/service/MsgAlarmFrequencyMatterMapper.xml
  20. 43 0
      business-service/src/main/resources/mapper/service/MsgAlarmMatterMapper.xml
  21. 184 0
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmMatterController.java

+ 53 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarmExt.java

@@ -0,0 +1,53 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 报警扩展表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-04-10
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class MsgAlarmExt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 报警唯一标识UUID
+     */
+    private String alarmId;
+
+    /**
+     * 1图片;2声音;3视频;4.录制视频的地址
+     */
+    private Integer alarmAttType;
+
+    /**
+     * 存储路径
+     */
+    private String alarmAttPath;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+}

+ 116 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequencyMatter.java

@@ -0,0 +1,116 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 异物侵限报警信息频次表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class MsgAlarmFrequencyMatter extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 报警唯一标识
+     */
+    private String alarmId;
+
+    /**
+     * 报警时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date alarmTime;
+
+    /**
+     * 报警线路
+     */
+    private String railwayCode;
+
+    /**
+     * 报警行别 : 1上行2下行 line_dir
+     */
+    private Integer lineDir;
+
+    /**
+     * 报警里程位置alarm_mile
+     */
+    private Integer alarmMile;
+
+    /**
+     * 报警内容
+     */
+    private String content;
+
+    /**
+     * 报警级别alarm_level
+     */
+    private Integer alarmLevel;
+
+    /**
+     * 报警置信度(百分比)
+     */
+    private Integer alarmConfidence;
+
+    /**
+     * 报警病害类型(1泥石流2异物侵限 3断轨监测)
+     */
+    private Integer alarmType;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    @TableField(exist = false)
+    private Integer isLock;
+}

+ 240 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarmMatter.java

@@ -0,0 +1,240 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 异物侵限报警信息表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class MsgAlarmMatter extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 报警唯一标识
+     */
+    @Excel(name = "报警唯一标识")
+    private String alarmId;
+
+    /**
+     * 报警时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date alarmTime;
+
+    /**
+     * 报警线路
+     */
+    private String railwayCode;
+
+    /**
+     * 报警里程位置
+     */
+    private Integer alarmMile;
+
+    /**
+     * 报警内容
+     */
+    @Excel(name = "报警内容")
+    private String content;
+
+    /**
+     * 报警级别
+     */
+//    @Excel(name = "报警级别")
+    private Integer alarmLevel;
+
+    /**
+     * 报警置信度(百分比)
+     */
+    private Integer alarmConfidence;
+
+    /**
+     * 报警行别(1上行2下行)
+     */
+    private Integer lineDir;
+
+    /**
+     * 报警病害类型(1泥石流2异物侵限 3断轨监测)
+     */
+    private Integer alarmType;
+    @TableField(exist = false)
+    private String alarmTypeStr;
+
+    /**
+     * 框定范围
+     */
+    private String alarmAttr;
+
+    /**
+     * 解除人
+     */
+    private String releasedBy;
+
+    /**
+     * 解除时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "解除时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date releasedTime;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isRelease;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 解除内容
+     */
+    @Excel(name = "解除内容")
+    private String releaseContent;
+
+    /**
+     * 线路名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警线路")
+    private String railwayName;
+
+    /**
+     * 监控范围开始里程位置
+     */
+    @TableField(exist = false)
+    private String beginMile;
+
+    /**
+     * 监控范围结束里程位置
+     */
+    @TableField(exist = false)
+    private String endMile;
+
+    /**
+     * 报警里程位置字符串形式
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警里程位置")
+    private String alarmMiles;
+
+    /**
+     * 报警次数
+     */
+    @TableField(exist = false)
+    private Integer alarmCount;
+
+    /**
+     * 报警图片地址网络路径
+     */
+    @TableField(exist = false)
+    private List<String> imageUrls;
+
+    /**
+     * 解除人真实姓名
+     */
+    @TableField(exist = false)
+    @Excel(name = "解除人")
+    private String releasedByName;
+
+    /**
+     * 状态:1未读;2已读
+     */
+    @TableField(exist = false)
+    private Integer status;
+
+    /**
+     * 推送消息ID
+     */
+    @TableField(exist = false)
+    private String msgId;
+
+    /**
+     * 报警行别字符串(1上行2下行)
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警行别")
+    private String lineDirName;
+
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警病害类型")
+    private String alarmTypeName;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    @Excel(name = "报警是否解除")
+    @TableField(exist = false)
+    private String  isReleaseName;
+
+    /**
+     * 报警视频URL
+     */
+    private String releasedUrl;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 来源名称
+     */
+    @TableField(exist = false)
+    private String sourceName;
+}

+ 23 - 0
business-service/src/main/java/com/ozs/service/entity/vo/Files.java

@@ -0,0 +1,23 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ * 报警附件
+ */
+@Data
+public class Files implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 上传文件地址
+     */
+    public String fileUrl;
+    /**
+     * 1图片;2声音;3视频
+     */
+    public Integer fileType;
+}

+ 129 - 0
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmMatterVo.java

@@ -0,0 +1,129 @@
+package com.ozs.service.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ozs.common.vo.PageVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 异物侵限报警信息请求参数表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Data
+public class MsgAlarmMatterVo extends PageVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 报警ID
+     */
+    private Long id;
+
+    /**
+     * 标识UUID
+     */
+    private String alarmId;
+
+    /**
+     * 相机编码
+     */
+    private String cameraCode;
+
+    /**
+     * 剩余电量
+     */
+    private Integer electricity;
+
+    /**
+     * 线路编码
+     */
+    private String railwayCode;
+
+    /**
+     * 线路编码名称
+     */
+    private String railwayCodeName;
+
+    /**
+     * 报警行别
+     */
+    private Integer lineDir;
+    /**
+     * 报警行别 字符串
+     */
+    private String lineDirStr;
+    
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    private Integer alarmType;
+
+    /**
+     * 报警里程位置
+     */
+    private Integer alarmMile;
+
+    @TableField(exist = false)
+    private BigDecimal alarmMileBD;
+
+    /**
+     * 监控范围开始里程位置
+     */
+    private Integer beginMile;
+
+    /**
+     * 监控范围结束里程位置
+     */
+    private Integer endMile;
+
+    /**
+     * 开始报警时间
+     */
+    private String beginAlarmTime;
+
+    /**
+     * 结束报警时间
+     */
+    private String endAlarmTime;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isRelease;
+    private String isReleaseName;
+
+    /**
+     * 用户userID
+     */
+    private String userId;
+
+    /**
+     * 状态:1未读;2已读
+     */
+    private Integer status;
+
+    /**
+     * 报警里程位置
+     */
+    private String alarmMiles;
+    /**
+     * 监控范围开始里程位置字符串形式
+     */
+    private String beginMiles;
+
+    /**
+     * 监控范围结束里程位置字符串形式
+     */
+    private String endMiles;
+
+    /**
+     * 来源
+     */
+    private String source;
+}

+ 11 - 0
business-service/src/main/java/com/ozs/service/entity/vo/ParameterVo.java

@@ -0,0 +1,11 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class ParameterVo {
+    private  String parameter;
+}

+ 29 - 0
business-service/src/main/java/com/ozs/service/entity/vo/ReleaseAlarmVo.java

@@ -0,0 +1,29 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class ReleaseAlarmVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 报警的唯一标识
+     */
+    private String alarmId;
+    /**
+     * 解除报警时间
+     */
+    private Long releaseTime;
+    /**
+     * 解除原因(内容)
+     */
+    private String releaseContent;
+    /**
+     * 解除人
+     */
+    private String operator;
+}

+ 64 - 0
business-service/src/main/java/com/ozs/service/entity/vo/ReqMsgAlarmMatterVo.java

@@ -0,0 +1,64 @@
+package com.ozs.service.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class ReqMsgAlarmMatterVo {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 报警里程位置
+     */
+    private Integer alarmMile;
+
+    /**
+     * 报警行别
+     */
+    private Integer lineDir;
+
+    /**
+     * 报警线路编码
+     */
+    private String alarmRailway;
+
+    /**
+     * 报警的唯一标识
+     */
+    private String alarmId;
+
+    /**
+     * 报警时间
+     */
+    private Long alarmTime;
+
+    /**
+     * 报警内容
+     */
+    private String content;
+
+    /**
+     * 报警病害类型(1泥石流2异物侵限 3断轨监测)
+     */
+    private Integer alarmType;
+
+    /**
+     * 报警级别
+     */
+    private Integer alarmLevel;
+
+    /**
+     * 报警置信度(百分比)
+     */
+    private Integer alarmConfidence;
+
+
+    /**
+     * 报警病害属性(可以给出泥石流的框定范围)
+     */
+    private String alarmAttr;
+
+    /**
+     * 报警附件集合
+     */
+    private Files[] files;
+}

+ 18 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmExtMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.service.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarmExt;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-04-10
+ */
+@Mapper
+public interface MsgAlarmExtMapper extends BaseMapper<MsgAlarmExt> {
+
+}

+ 18 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmFrequencyMatterMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.service.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarmFrequencyMatter;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 异物侵限报警信息频次表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Mapper
+public interface MsgAlarmFrequencyMatterMapper extends BaseMapper<MsgAlarmFrequencyMatter> {
+
+}

+ 25 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMatterMapper.java

@@ -0,0 +1,25 @@
+package com.ozs.service.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.MsgAlarmMatter;
+import com.ozs.service.entity.vo.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 异物侵限报警信息表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Mapper
+public interface MsgAlarmMatterMapper extends BaseMapper<MsgAlarmMatter> {
+
+    List<MsgAlarmMatter>  selectMsgAlarmList(MsgAlarmMatterVo vo);
+}

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmExtService.java

@@ -0,0 +1,16 @@
+package com.ozs.service.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.MsgAlarmExt;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-04-10
+ */
+public interface MsgAlarmExtService extends IService<MsgAlarmExt> {
+
+}

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmFrequencyMatterService.java

@@ -0,0 +1,16 @@
+package com.ozs.service.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.MsgAlarmFrequencyMatter;
+
+/**
+ * <p>
+ * 异物侵限报警信息频次表 服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+public interface MsgAlarmFrequencyMatterService extends IService<MsgAlarmFrequencyMatter> {
+
+}

+ 25 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmMatterService.java

@@ -0,0 +1,25 @@
+package com.ozs.service.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.MsgAlarmMatter;
+import com.ozs.service.entity.vo.MsgAlarmMatterVo;
+import com.ozs.service.entity.vo.MsgAlarmVo;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 异物侵限报警信息表 服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+public interface MsgAlarmMatterService extends IService<MsgAlarmMatter> {
+
+    IPage<MsgAlarmMatter> queryPage(MsgAlarmMatterVo msgAlarmVo);
+
+    List<MsgAlarmMatter> msgAlarmList(MsgAlarmMatterVo msgAlarmVo);
+}

+ 20 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmExtServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ozs.service.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.service.entity.MsgAlarmExt;
+import com.ozs.service.mapper.MsgAlarmExtMapper;
+import com.ozs.service.service.MsgAlarmExtService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-04-10
+ */
+@Service
+public class MsgAlarmExtServiceImpl extends ServiceImpl<MsgAlarmExtMapper, MsgAlarmExt> implements MsgAlarmExtService {
+
+}

+ 20 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmFrequencyMatterServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ozs.service.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.service.entity.MsgAlarmFrequencyMatter;
+import com.ozs.service.mapper.MsgAlarmFrequencyMatterMapper;
+import com.ozs.service.service.MsgAlarmFrequencyMatterService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 异物侵限报警信息频次表 服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Service
+public class MsgAlarmFrequencyMatterServiceImpl extends ServiceImpl<MsgAlarmFrequencyMatterMapper, MsgAlarmFrequencyMatter> implements MsgAlarmFrequencyMatterService {
+
+}

+ 51 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmMatterServiceImpl.java

@@ -0,0 +1,51 @@
+package com.ozs.service.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.ozs.service.entity.MsgAlarmMatter;
+import com.ozs.service.entity.vo.MsgAlarmMatterVo;
+import com.ozs.service.entity.vo.MsgAlarmVo;
+import com.ozs.service.mapper.MsgAlarmMatterMapper;
+import com.ozs.service.service.MsgAlarmMatterService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+
+/**
+ * <p>
+ * 异物侵限报警信息表 服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Service
+@Slf4j
+public class MsgAlarmMatterServiceImpl extends ServiceImpl<MsgAlarmMatterMapper, MsgAlarmMatter> implements MsgAlarmMatterService {
+
+    @Autowired
+    private MsgAlarmMatterMapper msgAlarmMatterMapper;
+
+    @Override
+    public IPage<MsgAlarmMatter> queryPage(MsgAlarmMatterVo vo) {
+        int pageNum = Integer.parseInt(vo.getPageNum().toString());
+        int pageSize = Integer.parseInt(vo.getPageSize().toString());
+        com.github.pagehelper.Page<MsgAlarmMatter> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> msgAlarmMatterMapper.selectMsgAlarmList(vo));
+        Page<MsgAlarmMatter> pageR = new Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
+    }
+
+    @Override
+    public List<MsgAlarmMatter> msgAlarmList(MsgAlarmMatterVo msgAlarmVo) {
+        return msgAlarmMatterMapper.selectMsgAlarmList(msgAlarmVo);
+    }
+}

+ 5 - 0
business-service/src/main/resources/mapper/service/MsgAlarmExtMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ozs.service.mapper.MsgAlarmExtMapper">
+
+</mapper>

+ 5 - 0
business-service/src/main/resources/mapper/service/MsgAlarmFrequencyMatterMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ozs.service.mapper.MsgAlarmFrequencyMatterMapper">
+
+</mapper>

+ 43 - 0
business-service/src/main/resources/mapper/service/MsgAlarmMatterMapper.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ozs.service.mapper.MsgAlarmMatterMapper">
+
+    <select id="selectMsgAlarmList" resultType="com.ozs.service.entity.MsgAlarmMatter" parameterType="com.ozs.service.entity.vo.MsgAlarmMatterVo">
+        SELECT * FROM msg_alarm_matter
+        <where>
+            <if test="railwayCode != null and railwayCode != ''">
+                and railway_code = #{railwayCode}
+            </if>
+            <if test="alarmType != null and alarmType != 0">
+                and alarm_type = #{alarmType}
+            </if>
+            <if test="alarmMile != null and alarmMile != 0">
+                and alarm_mile = #{alarmMile}
+            </if>
+            <if test="beginMile != null and beginMile != 0">
+                and alarm_mile &gt;= #{beginMile}
+            </if>
+            <if test="endMile != null and endMile != 0">
+                and alarm_mile &lt;= #{endMile}
+            </if>
+            <if test="isRelease != null and isRelease != 0">
+                and is_release = #{isRelease}
+            </if>
+            <if test="lineDir != null and lineDir != 0">
+                and line_dir = #{lineDir}
+            </if>
+            <if test="beginAlarmTime != null and beginAlarmTime != ''">
+                and TO_CHAR(alarm_time, 'YYYY-MM-DD HH24:MI:SS') &gt;= TO_CHAR(#{beginAlarmTime}, 'YYYY-MM-DD
+                HH24:MI:SS')
+            </if>
+            <if test="endAlarmTime != null and endAlarmTime != ''">
+                and TO_CHAR(alarm_time, 'YYYY-MM-DD HH24:MI:SS') &lt;= TO_CHAR(#{endAlarmTime}, 'YYYY-MM-DD HH24:MI:SS')
+            </if>
+            <if test="source != null and source != ''">
+                and source = #{source}
+            </if>
+        </where>
+        order by  alarm_time desc
+    </select>
+
+</mapper>

+ 184 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmMatterController.java

@@ -0,0 +1,184 @@
+package com.ozs.web.controller.accountmanagment;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.entity.SysDept;
+import com.ozs.common.core.domain.entity.SysDictData;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.service.entity.*;
+import com.ozs.service.entity.vo.*;
+import com.ozs.service.mapper.MsgAlarmMapper;
+import com.ozs.service.service.*;
+import com.ozs.system.service.DataScoreUtil;
+import com.ozs.system.service.ISysDeptService;
+import com.ozs.system.service.ISysDictDataService;
+import com.ozs.system.service.ISysDictTypeService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 报警信息表 前端控制器
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@RestController
+@RequestMapping("/service/msgAlarmMatter")
+public class MsgAlarmMatterController extends BaseController {
+
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
+    public static final String PATTERN = "^(\\d+.\\d{1,3}|\\d+)$";
+
+    @Resource
+    MsgAlarmMatterService msgAlarmMatterService;
+    @Autowired
+    BaseRailwayManagementService baseRailwayManagementService;
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+    @Resource
+    private MsgAlarmExtService msgAlarmExtService;
+    /**
+     * 报警信息分页
+     *
+     * @param msgAlarmVo
+     * @return
+     */
+    @PostMapping("/list")
+    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmMatterVo msgAlarmVo) {
+        msgAlarmVo = (MsgAlarmMatterVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
+            msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginMile())) {
+            msgAlarmVo.setBeginMile(msgAlarmVo.getBeginMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
+            msgAlarmVo.setEndMile(msgAlarmVo.getEndMile() * 1000);
+        }
+        if (!StringUtils.isEmptySunhh(msgAlarmVo.getAlarmMileBD())) {
+            if (!msgAlarmVo.getAlarmMileBD().toString().matches(PATTERN)) {
+                return error("监控范围开始里程位置填写格式不正确");
+            } else {
+                msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMileBD().multiply(new BigDecimal("1000")).intValue());
+            }
+        }
+        IPage<MsgAlarmMatter> page = msgAlarmMatterService.queryPage(msgAlarmVo);
+        page.setTotal(page.getTotal());
+        page.setCurrent(page.getCurrent());
+        page.setPages(page.getPages());
+
+        if (!ObjectUtils.isEmpty(page) && page.getRecords().size() > 0) {
+            List<MsgAlarmMatter> dto1 = page.getRecords().stream().map(o -> {
+                LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+                if (!ObjectUtils.isEmpty(o.getRailwayCode())) {
+                    queryWrapper.eq(BaseRailwayManagement::getRailwayCode, o.getRailwayCode());
+                }
+                BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+                if (!StringUtils.isEmptySunhh(baseRailwayManagement) && !StringUtils.isEmptySunhh(baseRailwayManagement.getRailwayName())) {
+                    o.setRailwayName(baseRailwayManagement.getRailwayName());
+                }
+                if (!StringUtils.isEmptySunhh(o.getReleasedBy())) {
+//                    BaseUser user = baseUserService.getUser(o.getReleasedBy());
+//                    if (!StringUtils.isEmptySunhh(user) && !StringUtils.isEmptySunhh(user.getNickName())) {
+//                        o.setReleasedByName(user.getNickName());
+//                    }
+                    o.setReleasedByName(o.getReleasedBy());
+                }
+                String mils = AppendUtils.stringAppend(o.getAlarmMile());
+                o.setAlarmMiles(mils);
+                o.setLineDirName(o.getLineDir() == 1 ? "上行" : "下行");
+                List<SysDictData> data = dictTypeService.selectDictDataByType("sys_alarm_type");
+                data.stream().forEach(sysDictData -> {
+                    if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                        o.setAlarmTypeName(sysDictData.getDictLabel());
+                    }
+                });
+
+                List<MsgAlarmExt> list1 = msgAlarmExtService.list(new LambdaQueryWrapper<MsgAlarmExt>().eq(MsgAlarmExt::getAlarmId, o.getAlarmId()));
+                if (!ObjectUtils.isEmpty(list1)) {
+                    List<String> collect = list1.stream().map(MsgAlarmExt::getAlarmAttPath).collect(Collectors.toList());
+                    o.setImageUrls(collect);
+                }
+                return o;
+            }).collect(Collectors.toList());
+            page.setRecords(dto1);
+        }
+        return AjaxResult.success(page);
+    }
+
+    /**
+     * 导出报警消息
+     *
+     * @param response
+     */
+    @PostMapping("/exportMsgAlarm")
+    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    public void exportMsgAlarm(HttpServletResponse response, @RequestBody MsgAlarmMatterVo msgAlarmVo) {
+        msgAlarmVo = (MsgAlarmMatterVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
+            msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginMile())) {
+            msgAlarmVo.setBeginMile(msgAlarmVo.getBeginMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
+            msgAlarmVo.setEndMile(msgAlarmVo.getEndMile() * 1000);
+        }
+        List<MsgAlarmMatter> msgAlarmList = msgAlarmMatterService.msgAlarmList(msgAlarmVo);
+        for (MsgAlarmMatter o : msgAlarmList) {
+            LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<>();
+            if (!StringUtils.isEmptySunhh(o.getRailwayCode())) {
+                queryWrapper.eq(BaseRailwayManagement::getRailwayCode, o.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+            if (!StringUtils.isEmptySunhh(baseRailwayManagement) && !StringUtils.isEmptySunhh(baseRailwayManagement.getRailwayName())) {
+                o.setRailwayName(baseRailwayManagement.getRailwayName());
+            }
+            if (StringUtils.isNotEmpty(o.getReleasedBy())) {
+//                BaseUser user = baseUserService.getUser(o.getReleasedBy());
+//                if (!StringUtils.isEmptySunhh(user) && !StringUtils.isEmptySunhh(user.getNickName())) {
+//                    o.setReleasedByName(user.getNickName());
+//                }
+                o.setReleasedByName(o.getReleasedBy());
+            }
+            String mils = AppendUtils.stringAppend(o.getAlarmMile());
+            o.setAlarmMiles(mils);
+            o.setLineDirName(o.getLineDir() == 1 ? "上行" : "下行");
+            o.setAlarmTypeStr(o.getAlarmType() == 1 ? "泥石流" : (o.getAlarmType() == 2 ? "异物侵限" : (o.getAlarmType() == 3 ? "断轨监测" : "未知")));
+            o.setIsReleaseName(o.getIsRelease() == 1 ? "已解除" : (o.getIsRelease() == 2 ? "未解除" : "未知"));
+            List<SysDictData> data = dictTypeService.selectDictDataByType("sys_alarm_type");
+            data.stream().forEach(sysDictData -> {
+                if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                    o.setAlarmTypeName(sysDictData.getDictLabel());
+                }
+            });
+
+            ExcelUtil<MsgAlarmMatter> util = new ExcelUtil<>(MsgAlarmMatter.class);
+            util.exportExcel(response, msgAlarmList, "报警信息管理");
+        }
+    }
+}
+