diff --git a/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmDeviceController.java b/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmDeviceController.java new file mode 100644 index 00000000..315a2fee --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmDeviceController.java @@ -0,0 +1,99 @@ +package com.klp.ems.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.ems.domain.vo.EmsAlarmDeviceVo; +import com.klp.ems.domain.bo.EmsAlarmDeviceBo; +import com.klp.ems.service.IEmsAlarmDeviceService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 安全警报设备 + * + * @author klp + * @date 2025-09-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ems/alarmDevice") +public class EmsAlarmDeviceController extends BaseController { + + private final IEmsAlarmDeviceService iEmsAlarmDeviceService; + + /** + * 查询安全警报设备列表 + */ + @GetMapping("/list") + public TableDataInfo list(EmsAlarmDeviceBo bo, PageQuery pageQuery) { + return iEmsAlarmDeviceService.queryPageList(bo, pageQuery); + } + + /** + * 导出安全警报设备列表 + */ + @Log(title = "安全警报设备", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EmsAlarmDeviceBo bo, HttpServletResponse response) { + List list = iEmsAlarmDeviceService.queryList(bo); + ExcelUtil.exportExcel(list, "安全警报设备", EmsAlarmDeviceVo.class, response); + } + + /** + * 获取安全警报设备详细信息 + * + * @param deviceId 主键 + */ + @GetMapping("/{deviceId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long deviceId) { + return R.ok(iEmsAlarmDeviceService.queryById(deviceId)); + } + + /** + * 新增安全警报设备 + */ + @Log(title = "安全警报设备", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody EmsAlarmDeviceBo bo) { + return toAjax(iEmsAlarmDeviceService.insertByBo(bo)); + } + + /** + * 修改安全警报设备 + */ + @Log(title = "安全警报设备", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody EmsAlarmDeviceBo bo) { + return toAjax(iEmsAlarmDeviceService.updateByBo(bo)); + } + + /** + * 删除安全警报设备 + * + * @param deviceIds 主键串 + */ + @Log(title = "安全警报设备", businessType = BusinessType.DELETE) + @DeleteMapping("/{deviceIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] deviceIds) { + return toAjax(iEmsAlarmDeviceService.deleteWithValidByIds(Arrays.asList(deviceIds), true)); + } +} diff --git a/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmRecordController.java b/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmRecordController.java new file mode 100644 index 00000000..7e347c66 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/controller/EmsAlarmRecordController.java @@ -0,0 +1,99 @@ +package com.klp.ems.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.ems.domain.vo.EmsAlarmRecordVo; +import com.klp.ems.domain.bo.EmsAlarmRecordBo; +import com.klp.ems.service.IEmsAlarmRecordService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 警报记录 + * + * @author klp + * @date 2025-09-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ems/alarmRecord") +public class EmsAlarmRecordController extends BaseController { + + private final IEmsAlarmRecordService iEmsAlarmRecordService; + + /** + * 查询警报记录列表 + */ + @GetMapping("/list") + public TableDataInfo list(EmsAlarmRecordBo bo, PageQuery pageQuery) { + return iEmsAlarmRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出警报记录列表 + */ + @Log(title = "警报记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EmsAlarmRecordBo bo, HttpServletResponse response) { + List list = iEmsAlarmRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "警报记录", EmsAlarmRecordVo.class, response); + } + + /** + * 获取警报记录详细信息 + * + * @param recordId 主键 + */ + @GetMapping("/{recordId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long recordId) { + return R.ok(iEmsAlarmRecordService.queryById(recordId)); + } + + /** + * 新增警报记录 + */ + @Log(title = "警报记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody EmsAlarmRecordBo bo) { + return toAjax(iEmsAlarmRecordService.insertByBo(bo)); + } + + /** + * 修改警报记录 + */ + @Log(title = "警报记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody EmsAlarmRecordBo bo) { + return toAjax(iEmsAlarmRecordService.updateByBo(bo)); + } + + /** + * 删除警报记录 + * + * @param recordIds 主键串 + */ + @Log(title = "警报记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] recordIds) { + return toAjax(iEmsAlarmRecordService.deleteWithValidByIds(Arrays.asList(recordIds), true)); + } +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmDevice.java b/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmDevice.java new file mode 100644 index 00000000..92da2eda --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmDevice.java @@ -0,0 +1,65 @@ +package com.klp.ems.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 安全警报设备对象 ems_alarm_device + * + * @author klp + * @date 2025-09-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ems_alarm_device") +public class EmsAlarmDevice extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "device_id") + private Long deviceId; + /** + * 设备名称 + */ + private String deviceName; + /** + * 设备编码 + */ + private String deviceCode; + /** + * 设备类型 + */ + private String deviceType; + /** + * 绑定的能源位置区域ID + */ + private Long locationId; + /** + * 设备状态(0=正常 1=故障 2=离线) + */ + private Long status; + /** + * 设备IP地址 + */ + private String ipAddress; + /** + * 固件版本 + */ + private String firmwareVer; + /** + * 删除标志(0=存在 2=删除) + */ + @TableLogic + private String delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmRecord.java b/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmRecord.java new file mode 100644 index 00000000..8b83e2f3 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/EmsAlarmRecord.java @@ -0,0 +1,75 @@ +package com.klp.ems.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 警报记录对象 ems_alarm_record + * + * @author klp + * @date 2025-09-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ems_alarm_record") +public class EmsAlarmRecord extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "record_id") + private Long recordId; + /** + * 绑定的设备ID + */ + private Long deviceId; + /** + * 警报类型 + */ + private String alarmType; + /** + * 警报级别(1=低 2=中 3=高) + */ + private Long alarmLevel; + /** + * 警报内容 + */ + private String alarmContent; + /** + * 警报发生时间 + */ + private Date alarmTime; + /** + * 处理状态(0=未处理 1=处理中 2=已处理) + */ + private Long handleStatus; + /** + * 处理人 + */ + private String handleUser; + /** + * 处理时间 + */ + private Date handleTime; + /** + * 处理备注 + */ + private String handleNotes; + /** + * 删除标志(0=存在 2=删除) + */ + @TableLogic + private String delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmDeviceBo.java b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmDeviceBo.java new file mode 100644 index 00000000..4d7c1957 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmDeviceBo.java @@ -0,0 +1,66 @@ +package com.klp.ems.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * 安全警报设备业务对象 ems_alarm_device + * + * @author klp + * @date 2025-09-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class EmsAlarmDeviceBo extends BaseEntity { + + /** + * + */ + private Long deviceId; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 设备编码 + */ + private String deviceCode; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * 绑定的能源位置区域ID + */ + private Long locationId; + + /** + * 设备状态(0=正常 1=故障 2=离线) + */ + private Long status; + + /** + * 设备IP地址 + */ + private String ipAddress; + + /** + * 固件版本 + */ + private String firmwareVer; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmRecordBo.java b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmRecordBo.java new file mode 100644 index 00000000..4a0b2d5f --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsAlarmRecordBo.java @@ -0,0 +1,78 @@ +package com.klp.ems.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 警报记录业务对象 ems_alarm_record + * + * @author klp + * @date 2025-09-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class EmsAlarmRecordBo extends BaseEntity { + + /** + * + */ + private Long recordId; + + /** + * 绑定的设备ID + */ + private Long deviceId; + + /** + * 警报类型 + */ + private String alarmType; + + /** + * 警报级别(1=低 2=中 3=高) + */ + private Long alarmLevel; + + /** + * 警报内容 + */ + private String alarmContent; + + /** + * 警报发生时间 + */ + private Date alarmTime; + + /** + * 处理状态(0=未处理 1=处理中 2=已处理) + */ + private Long handleStatus; + + /** + * 处理人 + */ + private String handleUser; + + /** + * 处理时间 + */ + private Date handleTime; + + /** + * 处理备注 + */ + private String handleNotes; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmDeviceVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmDeviceVo.java new file mode 100644 index 00000000..95968044 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmDeviceVo.java @@ -0,0 +1,81 @@ +package com.klp.ems.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 安全警报设备视图对象 ems_alarm_device + * + * @author klp + * @date 2025-09-30 + */ +@Data +@ExcelIgnoreUnannotated +public class EmsAlarmDeviceVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long deviceId; + + /** + * 设备名称 + */ + @ExcelProperty(value = "设备名称") + private String deviceName; + + /** + * 设备编码 + */ + @ExcelProperty(value = "设备编码") + private String deviceCode; + + /** + * 设备类型 + */ + @ExcelProperty(value = "设备类型") + private String deviceType; + + /** + * 绑定的能源位置区域ID + */ + @ExcelProperty(value = "绑定的能源位置区域ID") + private Long locationId; + + /** + * 设备状态(0=正常 1=故障 2=离线) + */ + @ExcelProperty(value = "设备状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==正常,1==故障,2==离线") + private Long status; + + /** + * 设备IP地址 + */ + @ExcelProperty(value = "设备IP地址") + private String ipAddress; + + /** + * 固件版本 + */ + @ExcelProperty(value = "固件版本") + private String firmwareVer; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + //联查位置名称 + private String locationName; + + +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmRecordVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmRecordVo.java new file mode 100644 index 00000000..6a0246cd --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsAlarmRecordVo.java @@ -0,0 +1,98 @@ +package com.klp.ems.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 警报记录视图对象 ems_alarm_record + * + * @author klp + * @date 2025-09-30 + */ +@Data +@ExcelIgnoreUnannotated +public class EmsAlarmRecordVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long recordId; + + /** + * 绑定的设备ID + */ + @ExcelProperty(value = "绑定的设备ID") + private Long deviceId; + + /** + * 警报类型 + */ + @ExcelProperty(value = "警报类型") + private String alarmType; + + /** + * 警报级别(1=低 2=中 3=高) + */ + @ExcelProperty(value = "警报级别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1==低,2==中,3==高") + private Long alarmLevel; + + /** + * 警报内容 + */ + @ExcelProperty(value = "警报内容") + private String alarmContent; + + /** + * 警报发生时间 + */ + @ExcelProperty(value = "警报发生时间") + private Date alarmTime; + + /** + * 处理状态(0=未处理 1=处理中 2=已处理) + */ + @ExcelProperty(value = "处理状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==未处理,1==处理中,2==已处理") + private Long handleStatus; + + /** + * 处理人 + */ + @ExcelProperty(value = "处理人") + private String handleUser; + + /** + * 处理时间 + */ + @ExcelProperty(value = "处理时间") + private Date handleTime; + + /** + * 处理备注 + */ + @ExcelProperty(value = "处理备注") + private String handleNotes; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + //联查设备名称 + private String deviceName; + private String deviceCode; + private String deviceType; + private String locationName; + +} diff --git a/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmDeviceMapper.java b/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmDeviceMapper.java new file mode 100644 index 00000000..f5b5e4c4 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmDeviceMapper.java @@ -0,0 +1,19 @@ +package com.klp.ems.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.klp.ems.domain.EmsAlarmDevice; +import com.klp.ems.domain.vo.EmsAlarmDeviceVo; +import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +/** + * 安全警报设备Mapper接口 + * + * @author klp + * @date 2025-09-30 + */ +public interface EmsAlarmDeviceMapper extends BaseMapperPlus { + + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); +} diff --git a/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmRecordMapper.java b/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmRecordMapper.java new file mode 100644 index 00000000..7a26ddb1 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/mapper/EmsAlarmRecordMapper.java @@ -0,0 +1,20 @@ +package com.klp.ems.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.klp.ems.domain.EmsAlarmRecord; +import com.klp.ems.domain.vo.EmsAlarmRecordVo; +import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +/** + * 警报记录Mapper接口 + * + * @author klp + * @date 2025-09-30 + */ +public interface EmsAlarmRecordMapper extends BaseMapperPlus { + + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper lqw); +} diff --git a/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmDeviceService.java b/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmDeviceService.java new file mode 100644 index 00000000..bbe38987 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmDeviceService.java @@ -0,0 +1,49 @@ +package com.klp.ems.service; + +import com.klp.ems.domain.EmsAlarmDevice; +import com.klp.ems.domain.vo.EmsAlarmDeviceVo; +import com.klp.ems.domain.bo.EmsAlarmDeviceBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 安全警报设备Service接口 + * + * @author klp + * @date 2025-09-30 + */ +public interface IEmsAlarmDeviceService { + + /** + * 查询安全警报设备 + */ + EmsAlarmDeviceVo queryById(Long deviceId); + + /** + * 查询安全警报设备列表 + */ + TableDataInfo queryPageList(EmsAlarmDeviceBo bo, PageQuery pageQuery); + + /** + * 查询安全警报设备列表 + */ + List queryList(EmsAlarmDeviceBo bo); + + /** + * 新增安全警报设备 + */ + Boolean insertByBo(EmsAlarmDeviceBo bo); + + /** + * 修改安全警报设备 + */ + Boolean updateByBo(EmsAlarmDeviceBo bo); + + /** + * 校验并批量删除安全警报设备信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmRecordService.java b/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmRecordService.java new file mode 100644 index 00000000..fed0cabe --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/service/IEmsAlarmRecordService.java @@ -0,0 +1,49 @@ +package com.klp.ems.service; + +import com.klp.ems.domain.EmsAlarmRecord; +import com.klp.ems.domain.vo.EmsAlarmRecordVo; +import com.klp.ems.domain.bo.EmsAlarmRecordBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 警报记录Service接口 + * + * @author klp + * @date 2025-09-30 + */ +public interface IEmsAlarmRecordService { + + /** + * 查询警报记录 + */ + EmsAlarmRecordVo queryById(Long recordId); + + /** + * 查询警报记录列表 + */ + TableDataInfo queryPageList(EmsAlarmRecordBo bo, PageQuery pageQuery); + + /** + * 查询警报记录列表 + */ + List queryList(EmsAlarmRecordBo bo); + + /** + * 新增警报记录 + */ + Boolean insertByBo(EmsAlarmRecordBo bo); + + /** + * 修改警报记录 + */ + Boolean updateByBo(EmsAlarmRecordBo bo); + + /** + * 校验并批量删除警报记录信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmDeviceServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmDeviceServiceImpl.java new file mode 100644 index 00000000..ba1cdb74 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmDeviceServiceImpl.java @@ -0,0 +1,129 @@ +package com.klp.ems.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.ems.domain.bo.EmsAlarmDeviceBo; +import com.klp.ems.domain.vo.EmsAlarmDeviceVo; +import com.klp.ems.domain.EmsAlarmDevice; +import com.klp.ems.mapper.EmsAlarmDeviceMapper; +import com.klp.ems.service.IEmsAlarmDeviceService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 安全警报设备Service业务层处理 + * + * @author klp + * @date 2025-09-30 + */ +@RequiredArgsConstructor +@Service +public class EmsAlarmDeviceServiceImpl implements IEmsAlarmDeviceService { + + private final EmsAlarmDeviceMapper baseMapper; + + /** + * 查询安全警报设备 + */ + @Override + public EmsAlarmDeviceVo queryById(Long deviceId){ + return baseMapper.selectVoById(deviceId); + } + + /** + * 查询安全警报设备列表 + */ + @Override + public TableDataInfo queryPageList(EmsAlarmDeviceBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + private QueryWrapper buildQueryWrapperPlus(EmsAlarmDeviceBo bo) { + QueryWrapper qw = Wrappers.query(); + //表别名的方式 d 去查询 + qw.like(StringUtils.isNotBlank(bo.getDeviceName()), "d.device_name", bo.getDeviceName()); + qw.like(StringUtils.isNotBlank(bo.getDeviceCode()), "d.device_code", bo.getDeviceCode()); + qw.eq(StringUtils.isNotBlank(bo.getDeviceType()), "d.device_type", bo.getDeviceType()); + qw.eq(bo.getLocationId() != null, "d.location_id", bo.getLocationId()); + qw.eq(bo.getStatus() != null, "d.status", bo.getStatus()); + qw.like(StringUtils.isNotBlank(bo.getIpAddress()), "d.ip_address", bo.getIpAddress()); + qw.like(StringUtils.isNotBlank(bo.getFirmwareVer()), "d.firmware_ver", bo.getFirmwareVer()); + return qw; + } + + /** + * 查询安全警报设备列表 + */ + @Override + public List queryList(EmsAlarmDeviceBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(EmsAlarmDeviceBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), EmsAlarmDevice::getDeviceName, bo.getDeviceName()); + lqw.eq(StringUtils.isNotBlank(bo.getDeviceCode()), EmsAlarmDevice::getDeviceCode, bo.getDeviceCode()); + lqw.eq(StringUtils.isNotBlank(bo.getDeviceType()), EmsAlarmDevice::getDeviceType, bo.getDeviceType()); + lqw.eq(bo.getLocationId() != null, EmsAlarmDevice::getLocationId, bo.getLocationId()); + lqw.eq(bo.getStatus() != null, EmsAlarmDevice::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getIpAddress()), EmsAlarmDevice::getIpAddress, bo.getIpAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getFirmwareVer()), EmsAlarmDevice::getFirmwareVer, bo.getFirmwareVer()); + return lqw; + } + + /** + * 新增安全警报设备 + */ + @Override + public Boolean insertByBo(EmsAlarmDeviceBo bo) { + EmsAlarmDevice add = BeanUtil.toBean(bo, EmsAlarmDevice.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDeviceId(add.getDeviceId()); + } + return flag; + } + + /** + * 修改安全警报设备 + */ + @Override + public Boolean updateByBo(EmsAlarmDeviceBo bo) { + EmsAlarmDevice update = BeanUtil.toBean(bo, EmsAlarmDevice.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(EmsAlarmDevice entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除安全警报设备 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmRecordServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmRecordServiceImpl.java new file mode 100644 index 00000000..52a9ac2d --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsAlarmRecordServiceImpl.java @@ -0,0 +1,136 @@ +package com.klp.ems.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.ems.domain.bo.EmsAlarmRecordBo; +import com.klp.ems.domain.vo.EmsAlarmRecordVo; +import com.klp.ems.domain.EmsAlarmRecord; +import com.klp.ems.mapper.EmsAlarmRecordMapper; +import com.klp.ems.service.IEmsAlarmRecordService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 警报记录Service业务层处理 + * + * @author klp + * @date 2025-09-30 + */ +@RequiredArgsConstructor +@Service +public class EmsAlarmRecordServiceImpl implements IEmsAlarmRecordService { + + private final EmsAlarmRecordMapper baseMapper; + + /** + * 查询警报记录 + */ + @Override + public EmsAlarmRecordVo queryById(Long recordId){ + return baseMapper.selectVoById(recordId); + } + + /** + * 查询警报记录列表 + */ + @Override + public TableDataInfo queryPageList(EmsAlarmRecordBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + private QueryWrapper buildQueryWrapperPlus(EmsAlarmRecordBo bo) { + QueryWrapper qw = Wrappers.query(); + //表别名的方式查询 + qw.eq(bo.getDeviceId() != null,"r.device_id", bo.getDeviceId()); + qw.eq(StringUtils.isNotBlank(bo.getAlarmType()), "r.alarm_type", bo.getAlarmType()); + qw.eq(bo.getAlarmLevel() != null,"r.alarm_level", bo.getAlarmLevel()); + qw.eq(StringUtils.isNotBlank(bo.getAlarmContent()), "r.alarm_content", bo.getAlarmContent()); + qw.eq(bo.getAlarmTime() != null,"r.alarm_time", bo.getAlarmTime()); + qw.eq(bo.getHandleStatus() != null,"r.handle_status", bo.getHandleStatus()); + qw.eq(StringUtils.isNotBlank(bo.getHandleUser()), "r.handle_user", bo.getHandleUser()); + qw.eq(bo.getHandleTime() != null,"r.handle_time", bo.getHandleTime()); + qw.eq(StringUtils.isNotBlank(bo.getHandleNotes()), "r.handle_notes", bo.getHandleNotes()); + + + return qw; + + } + + /** + * 查询警报记录列表 + */ + @Override + public List queryList(EmsAlarmRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(EmsAlarmRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getDeviceId() != null, EmsAlarmRecord::getDeviceId, bo.getDeviceId()); + lqw.eq(StringUtils.isNotBlank(bo.getAlarmType()), EmsAlarmRecord::getAlarmType, bo.getAlarmType()); + lqw.eq(bo.getAlarmLevel() != null, EmsAlarmRecord::getAlarmLevel, bo.getAlarmLevel()); + lqw.eq(StringUtils.isNotBlank(bo.getAlarmContent()), EmsAlarmRecord::getAlarmContent, bo.getAlarmContent()); + lqw.eq(bo.getAlarmTime() != null, EmsAlarmRecord::getAlarmTime, bo.getAlarmTime()); + lqw.eq(bo.getHandleStatus() != null, EmsAlarmRecord::getHandleStatus, bo.getHandleStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getHandleUser()), EmsAlarmRecord::getHandleUser, bo.getHandleUser()); + lqw.eq(bo.getHandleTime() != null, EmsAlarmRecord::getHandleTime, bo.getHandleTime()); + lqw.eq(StringUtils.isNotBlank(bo.getHandleNotes()), EmsAlarmRecord::getHandleNotes, bo.getHandleNotes()); + return lqw; + } + + /** + * 新增警报记录 + */ + @Override + public Boolean insertByBo(EmsAlarmRecordBo bo) { + EmsAlarmRecord add = BeanUtil.toBean(bo, EmsAlarmRecord.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRecordId(add.getRecordId()); + } + return flag; + } + + /** + * 修改警报记录 + */ + @Override + public Boolean updateByBo(EmsAlarmRecordBo bo) { + EmsAlarmRecord update = BeanUtil.toBean(bo, EmsAlarmRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(EmsAlarmRecord entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除警报记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-ems/src/main/resources/mapper/EmsAlarmDeviceMapper.xml b/klp-ems/src/main/resources/mapper/EmsAlarmDeviceMapper.xml new file mode 100644 index 00000000..fd32435e --- /dev/null +++ b/klp-ems/src/main/resources/mapper/EmsAlarmDeviceMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-ems/src/main/resources/mapper/EmsAlarmRecordMapper.xml b/klp-ems/src/main/resources/mapper/EmsAlarmRecordMapper.xml new file mode 100644 index 00000000..a67d9c3b --- /dev/null +++ b/klp-ems/src/main/resources/mapper/EmsAlarmRecordMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +