diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java new file mode 100644 index 0000000..85541a3 --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmCancelRequest { + + private Long id; + + private Integer resumeTime; + +} diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java new file mode 100644 index 0000000..85541a3 --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmCancelRequest { + + private Long id; + + private Integer resumeTime; + +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java new file mode 100644 index 0000000..564700e --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmRecordResponse { + private static final long serialVersionUID = 1L; + + private Long id; + + private Long monitorId; + + private String deviceCode; + + private String alarmType; + + private String alarmContent; + + private Double alarmValue; + + private Double alarmThresh; + + private Double alarmDirection; + + private Double alarmPitch; + + @JSONField(serializeUsing = DateDeserializer.class) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date alarmTime; + + private String alarmStatus; + + private Date cancelTime; + + private String dealTime; + + private Long cancelUser; + + private String dealPerson; + + private Integer resumeTime; + + private Integer lineNum; + + private Integer serialNum; + + private String monitorName; + + private String lineName; + + private String stationName; + + private String alarmTypeName; + + private String alarmStatusName; + + private String deviceIp; + + private String devicePort; + + private String deviceUser; + + private String devicePassword; + + private String nvrIp; + + private String nvrPort; + + private String nvrChannel; + + private String nvrUser; + + private String nvrPassword; +} diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java new file mode 100644 index 0000000..85541a3 --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmCancelRequest { + + private Long id; + + private Integer resumeTime; + +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java new file mode 100644 index 0000000..564700e --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmRecordResponse { + private static final long serialVersionUID = 1L; + + private Long id; + + private Long monitorId; + + private String deviceCode; + + private String alarmType; + + private String alarmContent; + + private Double alarmValue; + + private Double alarmThresh; + + private Double alarmDirection; + + private Double alarmPitch; + + @JSONField(serializeUsing = DateDeserializer.class) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date alarmTime; + + private String alarmStatus; + + private Date cancelTime; + + private String dealTime; + + private Long cancelUser; + + private String dealPerson; + + private Integer resumeTime; + + private Integer lineNum; + + private Integer serialNum; + + private String monitorName; + + private String lineName; + + private String stationName; + + private String alarmTypeName; + + private String alarmStatusName; + + private String deviceIp; + + private String devicePort; + + private String deviceUser; + + private String devicePassword; + + private String nvrIp; + + private String nvrPort; + + private String nvrChannel; + + private String nvrUser; + + private String nvrPassword; +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 4586dae..5456048 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -131,6 +131,10 @@ @TableField(exist = false) private String alarmStatusName; + @TableField(exist = false) + private String lineName; + + @Override public String toString() { return "AlarmRecord{" + diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java new file mode 100644 index 0000000..85541a3 --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmCancelRequest { + + private Long id; + + private Integer resumeTime; + +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java new file mode 100644 index 0000000..564700e --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmRecordResponse { + private static final long serialVersionUID = 1L; + + private Long id; + + private Long monitorId; + + private String deviceCode; + + private String alarmType; + + private String alarmContent; + + private Double alarmValue; + + private Double alarmThresh; + + private Double alarmDirection; + + private Double alarmPitch; + + @JSONField(serializeUsing = DateDeserializer.class) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date alarmTime; + + private String alarmStatus; + + private Date cancelTime; + + private String dealTime; + + private Long cancelUser; + + private String dealPerson; + + private Integer resumeTime; + + private Integer lineNum; + + private Integer serialNum; + + private String monitorName; + + private String lineName; + + private String stationName; + + private String alarmTypeName; + + private String alarmStatusName; + + private String deviceIp; + + private String devicePort; + + private String deviceUser; + + private String devicePassword; + + private String nvrIp; + + private String nvrPort; + + private String nvrChannel; + + private String nvrUser; + + private String nvrPassword; +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 4586dae..5456048 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -131,6 +131,10 @@ @TableField(exist = false) private String alarmStatusName; + @TableField(exist = false) + private String lineName; + + @Override public String toString() { return "AlarmRecord{" + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index 42056a6..b990fb3 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; @@ -19,4 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + boolean cancel(AlarmCancelRequest alarmCancelRequest); + + AlarmRecordResponse detail(Long id); + } diff --git a/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java new file mode 100644 index 0000000..04f4704 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/dto/IdDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class IdDTO { + @NotNull(message = "主键ID不能为空") + private Long id; +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 6359bb3..42c5493 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -7,7 +7,8 @@ */ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { - UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index ccc7508..39aa9cf 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -1,10 +1,16 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.service.IAlarmRecordService; @@ -17,6 +23,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 告警记录控制器 @@ -25,8 +32,8 @@ * @Date 2023-04-18 15:40:53 */ @Controller -@RequestMapping("/alarmRecord") -public class AlarmRecordController extends ExportController { +@RequestMapping("/alarm") +public class AlarmRecordController extends ExportController { @Autowired @@ -49,20 +56,19 @@ @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); -// QueryWrapper query = new QueryWrapper<>(); - List alarmRecordList= alarmRecordService.pageList(page,request); + List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + /** * 新增告警记录 */ @RequestMapping(value = "/add") @ResponseBody public Object add(AlarmRecord alarmRecord) { - if(alarmRecordService.save(alarmRecord)){ + if (alarmRecordService.save(alarmRecord)) { return ResponseData.success(); } return ResponseData.error("新增失败"); @@ -74,7 +80,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String alarmRecordId) { - if(alarmRecordService.removeById(alarmRecordId)){ + if (alarmRecordService.removeById(alarmRecordId)) { return ResponseData.success(); } return ResponseData.error("删除告警记录失败"); @@ -86,8 +92,8 @@ @RequestMapping(value = "/batchDelete") @ResponseBody public Object delete(@RequestParam("alarmRecordIds") List alarmRecordIds) { - return alarmRecordService.removeByIds(alarmRecordIds)? - ResponseData.success():ResponseData.error("批量删除失败"); + return alarmRecordService.removeByIds(alarmRecordIds) ? + ResponseData.success() : ResponseData.error("批量删除失败"); } /** @@ -96,20 +102,33 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(AlarmRecord alarmRecord) { - return alarmRecordService.updateById(alarmRecord)? - ResponseData.success():ResponseData.error("修改告警记录失败"); + return alarmRecordService.updateById(alarmRecord) ? + ResponseData.success() : ResponseData.error("修改告警记录失败"); + } + + + /** + * 取消告警记录 + */ + @RequestMapping(value = "/cancel") + @ResponseBody + public Object cancel(@RequestBody @Valid AlarmCancelRequest alarmCancelRequest) { + Assert.isFalse(Objects.isNull(alarmCancelRequest.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return alarmRecordService.cancel(alarmCancelRequest) ? ResponseData.success() : + ResponseData.error("取消告警记录失败"); } /** * 告警记录详情 */ -// @RequestMapping(value = "/detail/{alarmRecordId}") -// @ResponseBody -// public Object detail(@PathVariable("alarmRecordId") String alarmRecordId) { -// ResultData resultData = new ResultData(); -// resultData.setCode(200); -// resultData.setMessage("查询详情成功"); -// resultData.setData(alarmRecordService.selectById(alarmRecordId)); -// return resultData; -// } + @RequestMapping(value = "/info") + @ResponseBody + public Object detail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(alarmRecordService.detail(idDTO.getId())); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java index 6fc74d9..04cc752 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ List pageList(@Param("page") Page page, @Param("request") AlarmRecordRequest request, @Param("dataScope") DataScope dataScope); + + AlarmRecordResponse detail(@Param("id") Long id); } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml index 31d8063..84883c1 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordMapper.xml @@ -28,15 +28,22 @@ ar.ID AS id, ar.MONITOR_ID AS monitorId, ar.DEVICE_CODE AS deviceCode, ar.ALARM_TYPE AS alarmType, ar.ALARM_CONTENT AS alarmContent, ar.ALARM_VALUE AS alarmValue, ar.ALARM_THRESH AS alarmThresh, ar.ALARM_DIRECTION AS alarmDirection, ar.ALARM_PITCH AS alarmPitch, ar.ALARM_TIME AS alarmTime, ar.ALARM_STATUS AS alarmStatus, ar.CANCEL_TIME AS cancelTime, ar.CANCEL_USER AS cancelUser, ar.RESUME_TIME AS resumeTime, ar.LINE_NUM AS lineNum, ar.SERIAL_NUM AS serialNum, ar.TS AS ts + + + bi.MONITOR_NAME AS monitorName, bi.DEVICE_IP AS deviceIp, bi.DEVICE_PORT AS devicePort, bi.DEVICE_USER AS deviceUser, bi.DEVICE_PASSWORD AS devicePassword, bi.NVR_IP AS nvrIp, bi.NVR_PORT AS nvrPort, bi.NVR_CHANNEL AS nvrChannel, bi.NVR_USER AS nvrUser, bi.NVR_PASSWORD AS nvrPassword + + - + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java new file mode 100644 index 0000000..85541a3 --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmCancelRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmCancelRequest { + + private Long id; + + private Integer resumeTime; + +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java new file mode 100644 index 0000000..564700e --- /dev/null +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/dto/AlarmRecordResponse.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.system.dto; + + +import com.alibaba.fastjson.annotation.JSONField; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author zt + */ +@Data +public class AlarmRecordResponse { + private static final long serialVersionUID = 1L; + + private Long id; + + private Long monitorId; + + private String deviceCode; + + private String alarmType; + + private String alarmContent; + + private Double alarmValue; + + private Double alarmThresh; + + private Double alarmDirection; + + private Double alarmPitch; + + @JSONField(serializeUsing = DateDeserializer.class) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date alarmTime; + + private String alarmStatus; + + private Date cancelTime; + + private String dealTime; + + private Long cancelUser; + + private String dealPerson; + + private Integer resumeTime; + + private Integer lineNum; + + private Integer serialNum; + + private String monitorName; + + private String lineName; + + private String stationName; + + private String alarmTypeName; + + private String alarmStatusName; + + private String deviceIp; + + private String devicePort; + + private String deviceUser; + + private String devicePassword; + + private String nvrIp; + + private String nvrPort; + + private String nvrChannel; + + private String nvrUser; + + private String nvrPassword; +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 4586dae..5456048 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -131,6 +131,10 @@ @TableField(exist = false) private String alarmStatusName; + @TableField(exist = false) + private String lineName; + + @Override public String toString() { return "AlarmRecord{" + diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index 42056a6..b990fb3 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; @@ -19,4 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + boolean cancel(AlarmCancelRequest alarmCancelRequest); + + AlarmRecordResponse detail(Long id); + } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index ad6cd46..6c63111 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -1,14 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.modular.system.dto.AlarmCancelRequest; import com.casic.missiles.modular.system.dto.AlarmRecordRequest; +import com.casic.missiles.modular.system.dto.AlarmRecordResponse; import com.casic.missiles.modular.system.model.AlarmRecord; import com.casic.missiles.modular.system.dao.AlarmRecordMapper; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.service.IAlarmRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.util.DictEnum; @@ -54,4 +59,41 @@ }); return alarmRecordList; } + + @Override + public boolean cancel(AlarmCancelRequest alarmCancelRequest) { + AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); + if (null != alarmRecord) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + alarmRecord.setAlarmStatus("1"); + alarmRecord.setResumeTime(alarmCancelRequest.getResumeTime()); + alarmRecord.setCancelUser(null != user ? user.getId() : null); + return this.updateById(alarmRecord); + } + return true; + } + + @Override + public AlarmRecordResponse detail(Long id) { + AlarmRecordResponse alarmRecordResponse = this.baseMapper.detail(id); + if (null != alarmRecordResponse) { + if (alarmRecordResponse.getCancelUser() != null) { + User user = permissionContext.getUserService().getById(alarmRecordResponse.getCancelUser()); + if (null != user) { + alarmRecordResponse.setDealPerson(user.getName()); + } + } + if (ObjectUtil.isNotEmpty(alarmRecordResponse.getCancelTime())) { + alarmRecordResponse.setDealTime(DateUtil.formatDateTime(alarmRecordResponse.getCancelTime())); + } + if (ObjectUtil.isNotEmpty(alarmRecordResponse.getAlarmStatus())) { + alarmRecordResponse.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecordResponse.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecordResponse.getAlarmType())) { + alarmRecordResponse.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecordResponse.getAlarmType())); + } + return alarmRecordResponse; + } + return null; + } }