From 0fd8197d49bed08f600febe1e85abebde847fd11 Mon Sep 17 00:00:00 2001 From: zch Date: Wed, 19 Mar 2025 20:53:25 +0800 Subject: [PATCH] =?UTF-8?q?add(dms):=20=E7=94=9F=E6=88=90=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E4=BF=A1=E6=81=AF=E5=92=8C=E6=8A=A5=E8=AD=A6=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加报警信息和报警详情的 API 接口 - 实现报警信息和报警详情的列表、新增、修改、删除等功能 --- .../controller/BaseAlarmDetailController.java | 117 ++++++++++++ .../controller/BaseAlarmInfoController.java | 117 ++++++++++++ .../dromara/dms/domain/BaseAlarmDetail.java | 75 ++++++++ .../org/dromara/dms/domain/BaseAlarmInfo.java | 141 +++++++++++++++ .../dms/domain/bo/BaseAlarmDetailBo.java | 72 ++++++++ .../dms/domain/bo/BaseAlarmInfoBo.java | 98 ++++++++++ .../dms/domain/vo/BaseAlarmDetailVo.java | 91 ++++++++++ .../dms/domain/vo/BaseAlarmInfoVo.java | 121 +++++++++++++ .../dms/mapper/BaseAlarmDetailMapper.java | 15 ++ .../dms/mapper/BaseAlarmInfoMapper.java | 15 ++ .../dms/service/IBaseAlarmDetailService.java | 69 ++++++++ .../dms/service/IBaseAlarmInfoService.java | 69 ++++++++ .../impl/BaseAlarmDetailServiceImpl.java | 149 ++++++++++++++++ .../impl/BaseAlarmInfoServiceImpl.java | 167 ++++++++++++++++++ .../mapper/dms/BaseAlarmDetailMapper.xml | 7 + .../mapper/dms/BaseAlarmInfoMapper.xml | 7 + 16 files changed, 1330 insertions(+) create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmDetailController.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmInfoController.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmDetail.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmInfo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmDetailBo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmInfoBo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmDetailVo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmInfoVo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmDetailMapper.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmInfoMapper.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmDetailService.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmInfoService.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmDetailServiceImpl.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmInfoServiceImpl.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmDetailMapper.xml create mode 100644 ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmInfoMapper.xml diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmDetailController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmDetailController.java new file mode 100644 index 00000000..128f0ae7 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.dms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.dms.domain.vo.BaseAlarmDetailVo; +import org.dromara.dms.domain.bo.BaseAlarmDetailBo; +import org.dromara.dms.service.IBaseAlarmDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 报警详情信息; + * 前端访问路由地址为:/dms/baseAlarmDetail + * + * @author zch + * @date 2025-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/baseAlarmDetail") +public class BaseAlarmDetailController extends BaseController { + + private final IBaseAlarmDetailService baseAlarmDetailService; + + /** + * 查询报警详情信息;列表 + */ + @SaCheckPermission("dms:baseAlarmDetail:list") + @GetMapping("/list") + public TableDataInfo list(BaseAlarmDetailBo bo, PageQuery pageQuery) { + return baseAlarmDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出报警详情信息;列表 + */ + @SaCheckPermission("dms:baseAlarmDetail:export") + @Log(title = "报警详情信息;", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseAlarmDetailBo bo, HttpServletResponse response) { + List list = baseAlarmDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "报警详情信息;", BaseAlarmDetailVo.class, response); + } + + /** + * 获取报警详情信息;详细信息 + * + * @param alarmDetailId 主键 + */ + @SaCheckPermission("dms:baseAlarmDetail:query") + @GetMapping("/{alarmDetailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long alarmDetailId) { + return R.ok(baseAlarmDetailService.queryById(alarmDetailId)); + } + + /** + * 新增报警详情信息; + */ + @SaCheckPermission("dms:baseAlarmDetail:add") + @Log(title = "报警详情信息;", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseAlarmDetailBo bo) { + return toAjax(baseAlarmDetailService.insertByBo(bo)); + } + + /** + * 修改报警详情信息; + */ + @SaCheckPermission("dms:baseAlarmDetail:edit") + @Log(title = "报警详情信息;", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseAlarmDetailBo bo) { + return toAjax(baseAlarmDetailService.updateByBo(bo)); + } + + /** + * 删除报警详情信息; + * + * @param alarmDetailIds 主键串 + */ + @SaCheckPermission("dms:baseAlarmDetail:remove") + @Log(title = "报警详情信息;", businessType = BusinessType.DELETE) + @DeleteMapping("/{alarmDetailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] alarmDetailIds) { + return toAjax(baseAlarmDetailService.deleteWithValidByIds(List.of(alarmDetailIds), true)); + } + + + /** + * 下拉框查询报警详情信息;列表 + */ + + @GetMapping("/getBaseAlarmDetailList") + public R> getBaseAlarmDetailList(BaseAlarmDetailBo bo) { + List list = baseAlarmDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmInfoController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmInfoController.java new file mode 100644 index 00000000..bcd62b3b --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/BaseAlarmInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.dms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.dms.domain.vo.BaseAlarmInfoVo; +import org.dromara.dms.domain.bo.BaseAlarmInfoBo; +import org.dromara.dms.service.IBaseAlarmInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 报警信息 + * 前端访问路由地址为:/dms/baseAlarmInfo + * + * @author zch + * @date 2025-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/baseAlarmInfo") +public class BaseAlarmInfoController extends BaseController { + + private final IBaseAlarmInfoService baseAlarmInfoService; + + /** + * 查询报警信息列表 + */ + @SaCheckPermission("dms:baseAlarmInfo:list") + @GetMapping("/list") + public TableDataInfo list(BaseAlarmInfoBo bo, PageQuery pageQuery) { + return baseAlarmInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出报警信息列表 + */ + @SaCheckPermission("dms:baseAlarmInfo:export") + @Log(title = "报警信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseAlarmInfoBo bo, HttpServletResponse response) { + List list = baseAlarmInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "报警信息", BaseAlarmInfoVo.class, response); + } + + /** + * 获取报警信息详细信息 + * + * @param alarmInfoId 主键 + */ + @SaCheckPermission("dms:baseAlarmInfo:query") + @GetMapping("/{alarmInfoId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long alarmInfoId) { + return R.ok(baseAlarmInfoService.queryById(alarmInfoId)); + } + + /** + * 新增报警信息 + */ + @SaCheckPermission("dms:baseAlarmInfo:add") + @Log(title = "报警信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseAlarmInfoBo bo) { + return toAjax(baseAlarmInfoService.insertByBo(bo)); + } + + /** + * 修改报警信息 + */ + @SaCheckPermission("dms:baseAlarmInfo:edit") + @Log(title = "报警信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseAlarmInfoBo bo) { + return toAjax(baseAlarmInfoService.updateByBo(bo)); + } + + /** + * 删除报警信息 + * + * @param alarmInfoIds 主键串 + */ + @SaCheckPermission("dms:baseAlarmInfo:remove") + @Log(title = "报警信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{alarmInfoIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] alarmInfoIds) { + return toAjax(baseAlarmInfoService.deleteWithValidByIds(List.of(alarmInfoIds), true)); + } + + + /** + * 下拉框查询报警信息列表 + */ + + @GetMapping("/getBaseAlarmInfoList") + public R> getBaseAlarmInfoList(BaseAlarmInfoBo bo) { + List list = baseAlarmInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmDetail.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmDetail.java new file mode 100644 index 00000000..9ee22ed9 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmDetail.java @@ -0,0 +1,75 @@ +package org.dromara.dms.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 报警详情信息;对象 base_alarm_detail + * + * @author zch + * @date 2025-03-19 + */ +@Data +@EqualsAndHashCode +@TableName("base_alarm_detail") +public class BaseAlarmDetail { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 报警详细信息ID + */ + @TableId(value = "alarm_detail_id",type = IdType.AUTO ) + private Long alarmDetailId; + + /** + * 关联hw_alarm_info的alarm_info_id + */ + private Long alarmInfoId; + + /** + * 设备模型功能ID + */ + private Long modeFunctionId; + + /** + * 功能名称 + */ + private String functionName; + + /** + * 标识符 + */ + private String functionIdentifier; + + /** + * 值 + */ + private String functionValue; + + /** + * 监测时间 + */ + private Date monitorTime; + + /** + * 报警内容 + */ + @TableField(exist = false) + private String alarmContent;//join映射字段 + + + /** + * 设备模型功能 + */ + @TableField(exist = false) + private String modeFunctionName;//join映射字段 + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmInfo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmInfo.java new file mode 100644 index 00000000..fe79936e --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/BaseAlarmInfo.java @@ -0,0 +1,141 @@ +package org.dromara.dms.domain; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; +import java.util.HashMap; +import java.util.Map; + +/** + * 报警信息对象 base_alarm_info + * + * @author zch + * @date 2025-03-19 + */ +@Data +@EqualsAndHashCode +@TableName("base_alarm_info") +public class BaseAlarmInfo { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 报警信息ID + */ + @TableId(value = "alarm_info_id" , type = IdType.AUTO) + private Long alarmInfoId; + + /** + * 报警信息类型(1、设备报警,3、离线报警) + */ + private String alarmInfoType; + + /** + * 报警信息类型是1关联表alarm_rule的字段alarm_rule_id;报警信息类型是3关联表hw_offline_rule的字段offline_rule_id; + */ + private Long alarmReleatedId; + + /** + * 报警设备ID,关联hw_device表的device_id字段 + */ + private Long deviceId; + + /** + * 报警内容 + */ + private String alarmContent; + + /** + * 报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存 + */ + private Long alarmLevelId; + + /** + * 报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存 + */ + private Long alarmTypeId; + + /** + * 报警方式(1云端处理,2终端上报) + */ + private String alarmMode; + + /** + * 报警状态(0、未处理(报警中)) 1、已处理 2已恢复) + */ + private String alarmStatus; + + /** + * 实际报警开始时间 + */ + private Date alarmBeginTime; + + /** + * 实际报警结束时间 + */ + private Date alarmEndTime; + + /** + * 人工处理时间 + */ + private Date handleTime; + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + + + /** + * 报警类型名称 + */ + @TableField(exist = false) + private String alarmTypeName;//join映射字段 + + /** + * 报警级别名称 + */ + @TableField(exist = false) + private String alarmLevelName;//join映射字段 + + + @TableField(exist = false) + private String releateadContent;//join映射字段,预留字段 + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmDetailBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmDetailBo.java new file mode 100644 index 00000000..b63007b5 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmDetailBo.java @@ -0,0 +1,72 @@ +package org.dromara.dms.domain.bo; + +import org.dromara.dms.domain.BaseAlarmDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 报警详情信息;业务对象 base_alarm_detail + * + * @author zch + * @date 2025-03-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseAlarmDetail.class, reverseConvertGenerate = false) +public class BaseAlarmDetailBo extends BaseEntity { + + /** + * 报警详细信息ID + */ +// @NotNull(message = "报警详细信息ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmDetailId; + + /** + * 关联hw_alarm_info的alarm_info_id + */ +// @NotNull(message = "关联hw_alarm_info的alarm_info_id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmInfoId; + + /** + * 设备模型功能ID + */ +// @NotNull(message = "设备模型功能ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long modeFunctionId; + + /** + * 功能名称 + */ +// @NotBlank(message = "功能名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String functionName; + + /** + * 标识符 + */ +// @NotBlank(message = "标识符不能为空", groups = { AddGroup.class, EditGroup.class }) + private String functionIdentifier; + + /** + * 值 + */ +// @NotBlank(message = "值不能为空", groups = { AddGroup.class, EditGroup.class }) + private String functionValue; + + /** + * 监测时间 + */ +// @NotNull(message = "监测时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date monitorTime; + + + /** + * 报警内容 + */ + private String alarmContent;//join映射字段 +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmInfoBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmInfoBo.java new file mode 100644 index 00000000..83732ff0 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/BaseAlarmInfoBo.java @@ -0,0 +1,98 @@ +package org.dromara.dms.domain.bo; + +import org.dromara.dms.domain.BaseAlarmInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 报警信息业务对象 base_alarm_info + * + * @author zch + * @date 2025-03-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseAlarmInfo.class, reverseConvertGenerate = false) +public class BaseAlarmInfoBo extends BaseEntity { + + /** + * 报警信息ID + */ +// @NotNull(message = "报警信息ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmInfoId; + + /** + * 报警信息类型(1、设备报警,3、离线报警) + */ +// @NotBlank(message = "报警信息类型(1、设备报警,3、离线报警)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String alarmInfoType; + + /** + * 报警信息类型是1关联表alarm_rule的字段alarm_rule_id;报警信息类型是3关联表hw_offline_rule的字段offline_rule_id; + */ + // @NotNull(message = "报警信息类型是1关联表alarm_rule的字段alarm_rule_id;报警信息类型是3关联表hw_offline_rule的字段offline_rule_id;不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmReleatedId; + + /** + * 报警设备ID,关联hw_device表的device_id字段 + */ + // @NotNull(message = "报警设备ID,关联hw_device表的device_id字段不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long deviceId; + + /** + * 报警内容 + */ + // @NotBlank(message = "报警内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String alarmContent; + + /** + * 报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存 + */ + // @NotNull(message = "报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmLevelId; + + /** + * 报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存 + */ + // @NotNull(message = "报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long alarmTypeId; + + /** + * 报警方式(1云端处理,2终端上报) + */ + // @NotBlank(message = "报警方式(1云端处理,2终端上报)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String alarmMode; + + /** + * 报警状态(0、未处理(报警中)) 1、已处理 2已恢复) + */ + // @NotBlank(message = "报警状态(0、未处理(报警中)) 1、已处理 2已恢复)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String alarmStatus; + + /** + * 实际报警开始时间 + */ + // @NotNull(message = "实际报警开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date alarmBeginTime; + + /** + * 实际报警结束时间 + */ + // @NotNull(message = "实际报警结束时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date alarmEndTime; + + /** + * 人工处理时间 + */ + // @NotNull(message = "人工处理时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date handleTime; + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmDetailVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmDetailVo.java new file mode 100644 index 00000000..0229a471 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmDetailVo.java @@ -0,0 +1,91 @@ +package org.dromara.dms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.dms.domain.BaseAlarmDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 报警详情信息;视图对象 base_alarm_detail + * + * @author zch + * @date 2025-03-19 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseAlarmDetail.class) +public class BaseAlarmDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 报警详细信息ID + */ + @ExcelProperty(value = "报警详细信息ID") + private Long alarmDetailId; + + /** + * 关联hw_alarm_info的alarm_info_id + */ + @ExcelProperty(value = "关联hw_alarm_info的alarm_info_id") + private Long alarmInfoId; + + /** + * 设备模型功能ID + */ + @ExcelProperty(value = "设备模型功能ID") + private Long modeFunctionId; + + /** + * 功能名称 + */ + @ExcelProperty(value = "功能名称") + private String functionName; + + /** + * 标识符 + */ + @ExcelProperty(value = "标识符") + private String functionIdentifier; + + /** + * 值 + */ + @ExcelProperty(value = "值") + private String functionValue; + + /** + * 监测时间 + */ + @ExcelProperty(value = "监测时间") + private Date monitorTime; + + /** + * 报警内容 + */ + @ExcelProperty(value = "报警内容") + private String alarmContent;//join映射字段 + + + /** + * 设备模型功能 + */ + @ExcelProperty(value = "设备模型功能") + private String modeFunctionName;//join映射字段 + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmInfoVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmInfoVo.java new file mode 100644 index 00000000..da15b1dc --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/BaseAlarmInfoVo.java @@ -0,0 +1,121 @@ +package org.dromara.dms.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.dms.domain.BaseAlarmInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 报警信息视图对象 base_alarm_info + * + * @author zch + * @date 2025-03-19 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseAlarmInfo.class) +public class BaseAlarmInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 报警信息ID + */ + @ExcelProperty(value = "报警信息ID") + private Long alarmInfoId; + + /** + * 报警信息类型(1、设备报警,3、离线报警) + */ + @ExcelProperty(value = "报警信息类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "alarm_info_type") + private String alarmInfoType; + + /** + * 报警信息类型是1关联表alarm_rule的字段alarm_rule_id;报警信息类型是3关联表hw_offline_rule的字段offline_rule_id; + */ + @ExcelProperty(value = "报警信息类型是1关联表alarm_rule的字段alarm_rule_id;报警信息类型是3关联表hw_offline_rule的字段offline_rule_id;") + private Long alarmReleatedId; + + /** + * 报警设备ID,关联hw_device表的device_id字段 + */ + @ExcelProperty(value = "报警设备ID,关联hw_device表的device_id字段") + private Long deviceId; + + /** + * 报警内容 + */ + @ExcelProperty(value = "报警内容") + private String alarmContent; + + /** + * 报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存 + */ + @ExcelProperty(value = "报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存") + private Long alarmLevelId; + + /** + * 报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存 + */ + @ExcelProperty(value = "报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存") + private Long alarmTypeId; + + /** + * 报警方式(1云端处理,2终端上报) + */ + @ExcelProperty(value = "报警方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "alarm_mode") + private String alarmMode; + + /** + * 报警状态(0、未处理(报警中)) 1、已处理 2已恢复) + */ + @ExcelProperty(value = "报警状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "alarm_status") + private String alarmStatus; + + /** + * 实际报警开始时间 + */ + @ExcelProperty(value = "实际报警开始时间") + private Date alarmBeginTime; + + /** + * 实际报警结束时间 + */ + @ExcelProperty(value = "实际报警结束时间") + private Date alarmEndTime; + + /** + * 人工处理时间 + */ + @ExcelProperty(value = "人工处理时间") + private Date handleTime; + + /** + * 报警类型名称 + */ + @ExcelProperty(value = "报警类型名称") + private String alarmTypeName;//join映射字段 + + /** + * 报警级别名称 + */ + @ExcelProperty(value = "报警级别名称") + private String alarmLevelName;//join映射字段 + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmDetailMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmDetailMapper.java new file mode 100644 index 00000000..013e7aee --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.dms.mapper; + +import org.dromara.dms.domain.BaseAlarmDetail; +import org.dromara.dms.domain.vo.BaseAlarmDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 报警详情信息;Mapper接口 + * + * @author zch + * @date 2025-03-19 + */ +public interface BaseAlarmDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmInfoMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmInfoMapper.java new file mode 100644 index 00000000..abcebac8 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/BaseAlarmInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.dms.mapper; + +import org.dromara.dms.domain.BaseAlarmInfo; +import org.dromara.dms.domain.vo.BaseAlarmInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 报警信息Mapper接口 + * + * @author zch + * @date 2025-03-19 + */ +public interface BaseAlarmInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmDetailService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmDetailService.java new file mode 100644 index 00000000..f119dc4c --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.dms.service; + +import org.dromara.dms.domain.BaseAlarmDetail; +import org.dromara.dms.domain.vo.BaseAlarmDetailVo; +import org.dromara.dms.domain.bo.BaseAlarmDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 报警详情信息;Service接口 + * + * @author zch + * @date 2025-03-19 + */ +public interface IBaseAlarmDetailService { + + /** + * 查询报警详情信息; + * + * @param alarmDetailId 主键 + * @return 报警详情信息; + */ + BaseAlarmDetailVo queryById(Long alarmDetailId); + + /** + * 分页查询报警详情信息;列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 报警详情信息;分页列表 + */ + TableDataInfo queryPageList(BaseAlarmDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的报警详情信息;列表 + * + * @param bo 查询条件 + * @return 报警详情信息;列表 + */ + List queryList(BaseAlarmDetailBo bo); + + /** + * 新增报警详情信息; + * + * @param bo 报警详情信息; + * @return 是否新增成功 + */ + Boolean insertByBo(BaseAlarmDetailBo bo); + + /** + * 修改报警详情信息; + * + * @param bo 报警详情信息; + * @return 是否修改成功 + */ + Boolean updateByBo(BaseAlarmDetailBo bo); + + /** + * 校验并批量删除报警详情信息;信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmInfoService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmInfoService.java new file mode 100644 index 00000000..6c3fc72f --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IBaseAlarmInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.dms.service; + +import org.dromara.dms.domain.BaseAlarmInfo; +import org.dromara.dms.domain.vo.BaseAlarmInfoVo; +import org.dromara.dms.domain.bo.BaseAlarmInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 报警信息Service接口 + * + * @author zch + * @date 2025-03-19 + */ +public interface IBaseAlarmInfoService { + + /** + * 查询报警信息 + * + * @param alarmInfoId 主键 + * @return 报警信息 + */ + BaseAlarmInfoVo queryById(Long alarmInfoId); + + /** + * 分页查询报警信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 报警信息分页列表 + */ + TableDataInfo queryPageList(BaseAlarmInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的报警信息列表 + * + * @param bo 查询条件 + * @return 报警信息列表 + */ + List queryList(BaseAlarmInfoBo bo); + + /** + * 新增报警信息 + * + * @param bo 报警信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseAlarmInfoBo bo); + + /** + * 修改报警信息 + * + * @param bo 报警信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseAlarmInfoBo bo); + + /** + * 校验并批量删除报警信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmDetailServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmDetailServiceImpl.java new file mode 100644 index 00000000..d99251a8 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmDetailServiceImpl.java @@ -0,0 +1,149 @@ +package org.dromara.dms.service.impl; + +import ch.qos.logback.core.joran.action.BaseModelAction; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.dms.domain.BaseAlarmInfo; +import org.dromara.dms.domain.DmsDeviceModeFunction; +import org.springframework.stereotype.Service; +import org.dromara.dms.domain.bo.BaseAlarmDetailBo; +import org.dromara.dms.domain.vo.BaseAlarmDetailVo; +import org.dromara.dms.domain.BaseAlarmDetail; +import org.dromara.dms.mapper.BaseAlarmDetailMapper; +import org.dromara.dms.service.IBaseAlarmDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 报警详情信息;Service业务层处理 + * + * @author zch + * @date 2025-03-19 + */ +@RequiredArgsConstructor +@Service +public class BaseAlarmDetailServiceImpl implements IBaseAlarmDetailService { + + private final BaseAlarmDetailMapper baseMapper; + + /** + * 查询报警详情信息; + * + * @param alarmDetailId 主键 + * @return 报警详情信息; + */ + @Override + public BaseAlarmDetailVo queryById(Long alarmDetailId){ + return baseMapper.selectVoById(alarmDetailId); + } + + /** + * 分页查询报警详情信息;列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 报警详情信息;分页列表 + */ + @Override + public TableDataInfo queryPageList(BaseAlarmDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的报警详情信息;列表 + * + * @param bo 查询条件 + * @return 报警详情信息;列表 + */ + @Override + public List queryList(BaseAlarmDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseAlarmDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseAlarmDetail.class) + .selectAll(BaseAlarmDetail.class) + + //关联hw_alarm_info的alarm_info_id + .select(BaseAlarmInfo::getAlarmContent) + .leftJoin(BaseAlarmInfo.class, BaseAlarmInfo::getAlarmInfoId, BaseAlarmDetail::getAlarmInfoId) + + //关联dms_device_mode_function的mode_function_id + .selectAs(DmsDeviceModeFunction::getFunctionName, BaseAlarmDetail::getModeFunctionName) + .leftJoin(DmsDeviceModeFunction.class, DmsDeviceModeFunction::getModeFunctionId, BaseAlarmDetail::getModeFunctionId) + + .eq(bo.getAlarmDetailId() != null, BaseAlarmDetail::getAlarmDetailId, bo.getAlarmDetailId()) + .eq(bo.getAlarmInfoId() != null, BaseAlarmDetail::getAlarmInfoId, bo.getAlarmInfoId()) + .eq(bo.getModeFunctionId() != null, BaseAlarmDetail::getModeFunctionId, bo.getModeFunctionId()) + .like(StringUtils.isNotBlank(bo.getFunctionName()), BaseAlarmDetail::getFunctionName, bo.getFunctionName()) + .eq(StringUtils.isNotBlank(bo.getFunctionIdentifier()), BaseAlarmDetail::getFunctionIdentifier, bo.getFunctionIdentifier()) + .eq(StringUtils.isNotBlank(bo.getFunctionValue()), BaseAlarmDetail::getFunctionValue, bo.getFunctionValue()) + .eq(bo.getMonitorTime() != null, BaseAlarmDetail::getMonitorTime, bo.getMonitorTime()); + return lqw; + } + + /** + * 新增报警详情信息; + * + * @param bo 报警详情信息; + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseAlarmDetailBo bo) { + BaseAlarmDetail add = MapstructUtils.convert(bo, BaseAlarmDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAlarmDetailId(add.getAlarmDetailId()); + } + return flag; + } + + /** + * 修改报警详情信息; + * + * @param bo 报警详情信息; + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseAlarmDetailBo bo) { + BaseAlarmDetail update = MapstructUtils.convert(bo, BaseAlarmDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseAlarmDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除报警详情信息;信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmInfoServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmInfoServiceImpl.java new file mode 100644 index 00000000..84ffcb78 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/BaseAlarmInfoServiceImpl.java @@ -0,0 +1,167 @@ +package org.dromara.dms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.dms.domain.BaseAlarmLevel; +import org.dromara.dms.domain.BaseAlarmType; +import org.dromara.dms.domain.DmsBaseMachineInfo; +import org.springframework.stereotype.Service; +import org.dromara.dms.domain.bo.BaseAlarmInfoBo; +import org.dromara.dms.domain.vo.BaseAlarmInfoVo; +import org.dromara.dms.domain.BaseAlarmInfo; +import org.dromara.dms.mapper.BaseAlarmInfoMapper; +import org.dromara.dms.service.IBaseAlarmInfoService; +import org.dromara.dms.domain.BaseAlarmRule; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 报警信息Service业务层处理 + * + * @author zch + * @date 2025-03-19 + */ +@RequiredArgsConstructor +@Service +public class BaseAlarmInfoServiceImpl implements IBaseAlarmInfoService { + + private final BaseAlarmInfoMapper baseMapper; + + /** + * 查询报警信息 + * + * @param alarmInfoId 主键 + * @return 报警信息 + */ + @Override + public BaseAlarmInfoVo queryById(Long alarmInfoId){ + return baseMapper.selectVoById(alarmInfoId); + } + + /** + * 分页查询报警信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 报警信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BaseAlarmInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的报警信息列表 + * + * @param bo 查询条件 + * @return 报警信息列表 + */ + @Override + public List queryList(BaseAlarmInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseAlarmInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseAlarmInfo.class) + .selectAll(BaseAlarmInfo.class) + + // 报警级别,关联hw_alarm_level的字段alarm_level_id,报警信息类型为1、2和3时保存 + .select(BaseAlarmLevel::getAlarmLevelName) + .leftJoin(BaseAlarmLevel.class,BaseAlarmLevel::getAlarmLevelId, BaseAlarmInfo::getAlarmLevelId) + + //报警类型,关联hw_alarm_type的字段alarm_type_id,报警信息类型为1和2时保存 + .select(BaseAlarmType::getAlarmTypeName) + .leftJoin(BaseAlarmType.class,BaseAlarmType::getAlarmTypeId, BaseAlarmInfo::getAlarmTypeId) + + //报警设备ID,关联hw_device表的device_id字段 + .select(DmsBaseMachineInfo::getMachineName) + .leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId, BaseAlarmInfo::getDeviceId) + + // 根据alarmInfoType动态关联相关规则表,使用CASE和子查询处理不同类型的规则关联 +/* .select("CASE " + + "WHEN t.alarm_info_type = '1' THEN (SELECT alarm_rule_name FROM base_alarm_rule WHERE alarm_rule_id = t.alarm_releated_id) " + + //"WHEN t.alarm_info_type = '3' THEN (SELECT offline_rule_name FROM hw_offline_rule WHERE offline_rule_id = t.alarm_releated_id) " + + "END AS releatead_content")*/ + + .eq(bo.getAlarmInfoId() != null, BaseAlarmInfo::getAlarmInfoId, bo.getAlarmInfoId()) + .eq(StringUtils.isNotBlank(bo.getAlarmInfoType()), BaseAlarmInfo::getAlarmInfoType, bo.getAlarmInfoType()) + .eq(bo.getAlarmReleatedId() != null, BaseAlarmInfo::getAlarmReleatedId, bo.getAlarmReleatedId()) + .eq(bo.getDeviceId() != null, BaseAlarmInfo::getDeviceId, bo.getDeviceId()) + .eq(StringUtils.isNotBlank(bo.getAlarmContent()), BaseAlarmInfo::getAlarmContent, bo.getAlarmContent()) + .eq(bo.getAlarmLevelId() != null, BaseAlarmInfo::getAlarmLevelId, bo.getAlarmLevelId()) + .eq(bo.getAlarmTypeId() != null, BaseAlarmInfo::getAlarmTypeId, bo.getAlarmTypeId()) + .eq(StringUtils.isNotBlank(bo.getAlarmMode()), BaseAlarmInfo::getAlarmMode, bo.getAlarmMode()) + .eq(StringUtils.isNotBlank(bo.getAlarmStatus()), BaseAlarmInfo::getAlarmStatus, bo.getAlarmStatus()) + .eq(bo.getAlarmBeginTime() != null, BaseAlarmInfo::getAlarmBeginTime, bo.getAlarmBeginTime()) + .eq(bo.getAlarmEndTime() != null, BaseAlarmInfo::getAlarmEndTime, bo.getAlarmEndTime()) + .eq(bo.getHandleTime() != null, BaseAlarmInfo::getHandleTime, bo.getHandleTime()) + .orderByDesc(BaseAlarmInfo::getCreateTime); + return lqw; + } + + /** + * 新增报警信息 + * + * @param bo 报警信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseAlarmInfoBo bo) { + BaseAlarmInfo add = MapstructUtils.convert(bo, BaseAlarmInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAlarmInfoId(add.getAlarmInfoId()); + } + return flag; + } + + /** + * 修改报警信息 + * + * @param bo 报警信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseAlarmInfoBo bo) { + BaseAlarmInfo update = MapstructUtils.convert(bo, BaseAlarmInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseAlarmInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除报警信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmDetailMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmDetailMapper.xml new file mode 100644 index 00000000..54c88ae1 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmInfoMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmInfoMapper.xml new file mode 100644 index 00000000..27085249 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/BaseAlarmInfoMapper.xml @@ -0,0 +1,7 @@ + + + + +