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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 7930088..5d95d88 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +19,7 @@ */ public interface IBusMonipoiInfoService extends IService { - List monitorList(Long stationId); + List monitorList(Long stationId); Page monitorListPage(Page page, Long stationId, String keyword); 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 7930088..5d95d88 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +19,7 @@ */ public interface IBusMonipoiInfoService extends IService { - List monitorList(Long stationId); + List monitorList(Long stationId); Page monitorListPage(Page page, Long stationId, String keyword); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java index 77b881d..b14a1b3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.StationPointList; import com.casic.missiles.modular.system.model.BusStationInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -22,10 +23,10 @@ Page stationListPage(Page page, String keyword); - Response addStation(BusStationInfo busStationInfo); + ResponseData addStation(BusStationInfo busStationInfo); - Response updateStation(BusStationInfo busStationInfo); + ResponseData updateStation(BusStationInfo busStationInfo); - Response deleteStation(Long busStationInfoId); + ResponseData deleteStation(Long busStationInfoId); } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 7930088..5d95d88 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +19,7 @@ */ public interface IBusMonipoiInfoService extends IService { - List monitorList(Long stationId); + List monitorList(Long stationId); Page monitorListPage(Page page, Long stationId, String keyword); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java index 77b881d..b14a1b3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.StationPointList; import com.casic.missiles.modular.system.model.BusStationInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -22,10 +23,10 @@ Page stationListPage(Page page, String keyword); - Response addStation(BusStationInfo busStationInfo); + ResponseData addStation(BusStationInfo busStationInfo); - Response updateStation(BusStationInfo busStationInfo); + ResponseData updateStation(BusStationInfo busStationInfo); - Response deleteStation(Long busStationInfoId); + ResponseData deleteStation(Long busStationInfoId); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java index e17a75f..d9451a9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java @@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; 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.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.casic.missiles.modular.system.dao.BusMonipoiInfoMapper; import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; +import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -22,27 +26,30 @@ * 监测点/设备信息 服务实现类 *

* - * @author stylefeng123 + * @author cz * @since 2023-04-18 */ @Service +@AllArgsConstructor public class BusMonipoiInfoServiceImpl extends ServiceImpl implements IBusMonipoiInfoService { + private final AbstractPermissionContext permissionContext; + @Override - public List monitorList(Long stationId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - List busMonitorInfoList = this.baseMapper.selectList(queryWrapper); - return busMonitorInfoList; + public List monitorList(Long stationId) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorList(dataScope, stationId); + return monitorPointLists; } @Override public Page monitorListPage(Page page, Long stationId, String keyword) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(keyword), "monitor_name", keyword); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - Page busMonitorInfoPage = this.baseMapper.selectPage(page, queryWrapper); - return busMonitorInfoPage; + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorListPage(dataScope, stationId, keyword); + page.setRecords(monitorPointLists); + return page; } @Override 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 7930088..5d95d88 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +19,7 @@ */ public interface IBusMonipoiInfoService extends IService { - List monitorList(Long stationId); + List monitorList(Long stationId); Page monitorListPage(Page page, Long stationId, String keyword); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java index 77b881d..b14a1b3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.StationPointList; import com.casic.missiles.modular.system.model.BusStationInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -22,10 +23,10 @@ Page stationListPage(Page page, String keyword); - Response addStation(BusStationInfo busStationInfo); + ResponseData addStation(BusStationInfo busStationInfo); - Response updateStation(BusStationInfo busStationInfo); + ResponseData updateStation(BusStationInfo busStationInfo); - Response deleteStation(Long busStationInfoId); + ResponseData deleteStation(Long busStationInfoId); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java index e17a75f..d9451a9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java @@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; 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.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.casic.missiles.modular.system.dao.BusMonipoiInfoMapper; import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; +import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -22,27 +26,30 @@ * 监测点/设备信息 服务实现类 *

* - * @author stylefeng123 + * @author cz * @since 2023-04-18 */ @Service +@AllArgsConstructor public class BusMonipoiInfoServiceImpl extends ServiceImpl implements IBusMonipoiInfoService { + private final AbstractPermissionContext permissionContext; + @Override - public List monitorList(Long stationId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - List busMonitorInfoList = this.baseMapper.selectList(queryWrapper); - return busMonitorInfoList; + public List monitorList(Long stationId) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorList(dataScope, stationId); + return monitorPointLists; } @Override public Page monitorListPage(Page page, Long stationId, String keyword) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(keyword), "monitor_name", keyword); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - Page busMonitorInfoPage = this.baseMapper.selectPage(page, queryWrapper); - return busMonitorInfoPage; + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorListPage(dataScope, stationId, keyword); + page.setRecords(monitorPointLists); + return page; } @Override diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java index 0035346..877bfd9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java @@ -17,4 +17,5 @@ @Service public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService { + } 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 26136bb..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 { - HANDLE_FAILED(500, "操作失败"); + UNABLE_TO_URGE(2431, "该部门不存在负责人,无法催办"), + ID_NULL(2400, "主键不能为空"); private Integer code; private String message; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java new file mode 100644 index 0000000..9555a9c --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -0,0 +1,15 @@ +package com.casic.missiles.util; + +/** + * @Description: 字典名枚举 + * @Author: zt + * @Date: 2023/4/20 10:41 + */ +public interface DictEnum { + //报警状态 + String ALARM_STATUS = "alarmStatus"; + //报警类型 + String ALARM_TYPE = "alarmType"; + + +} diff --git a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java b/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java deleted file mode 100644 index 9555a9c..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/DictEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.util; - -/** - * @Description: 字典名枚举 - * @Author: zt - * @Date: 2023/4/20 10:41 - */ -public interface DictEnum { - //报警状态 - String ALARM_STATUS = "alarmStatus"; - //报警类型 - String ALARM_TYPE = "alarmType"; - - -} diff --git a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java b/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java deleted file mode 100644 index 09cb7f0..0000000 --- a/casic-common/src/main/java/com/casic/missiles/util/FileUtil.java +++ /dev/null @@ -1,116 +0,0 @@ -//package com.casic.missiles.util; -// -//import org.apache.commons.fileupload.FileItem; -//import org.apache.commons.fileupload.FileItemFactory; -//import org.apache.commons.fileupload.disk.DiskFileItemFactory; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.http.MediaType; -//import org.springframework.web.multipart.MultipartFile; -//import org.springframework.web.multipart.commons.CommonsMultipartFile; -// -//import java.io.*; -// -///** -// * @Description: -// * @Author: wangpeng -// * @Date: 2023/4/7 15:37 -// */ -//public class FileUtil { -// private static Logger log = LoggerFactory.getLogger(FileUtil.class); -// -// /** -// * MultipartFile转File -// */ -// public static File multipartFileToFile(MultipartFile multipartFile) { -// File file = null; -// InputStream inputStream = null; -// OutputStream outputStream = null; -// try { -// inputStream = multipartFile.getInputStream(); -// file = new File(multipartFile.getOriginalFilename()); -// outputStream = new FileOutputStream(file); -// //项目根目录下放置文件 -// write(inputStream, outputStream); -// } catch (IOException e) { -// e.printStackTrace(); -// } finally { -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// if (outputStream != null) { -// try { -// outputStream.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// } -// return file; -// } -// -// public static void write(InputStream inputStream, OutputStream outputStream) { -// byte[] buffer = new byte[4096]; -// try { -// int count = inputStream.read(buffer, 0, buffer.length); -// while (count != -1) { -// outputStream.write(buffer, 0, count); -// count = inputStream.read(buffer, 0, buffer.length); -// } -// } catch (RuntimeException e) { -// throw e; -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { -// FileItem fileItem = createFileItem(inputStream, fileName); -// //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 -// return new CommonsMultipartFile(fileItem); -// } -// -// /** -// * FileItem类对象创建 -// */ -// public static FileItem createFileItem(InputStream inputStream, String fileName) { -// FileItemFactory factory = new DiskFileItemFactory(16, null); -// String textFieldName = "file"; -// FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); -// int bytesRead = 0; -// byte[] buffer = new byte[8192]; -// OutputStream os = null; -// //使用输出流输出输入流的字节 -// try { -// os = item.getOutputStream(); -// while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { -// os.write(buffer, 0, bytesRead); -// } -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream copy exception", e); -// throw new IllegalArgumentException("文件上传失败"); -// } finally { -// if (os != null) { -// try { -// os.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// if (inputStream != null) { -// try { -// inputStream.close(); -// } catch (IOException e) { -// log.error("Stream close exception", e); -// } -// } -// } -// return item; -// } -// -//} 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..bdb5d2d 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,17 +1,21 @@ 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.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; +import com.casic.missiles.enums.DictEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,4 +58,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; + } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java index 25ab22a..bb9efba 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusStationInfoController.java @@ -22,7 +22,7 @@ * @author dev * @Date 2023-04-18 15:46:00 */ -@Controller +@RestController @RequestMapping("/busStationInfo") public class BusStationInfoController extends ExportController { @@ -35,7 +35,6 @@ * 获取场站信息列表 */ @RequestMapping(value = "/list") - @ResponseBody public Object list() { return ResponseData.success(busStationInfoService.stationList()); } @@ -44,7 +43,6 @@ * 获取场站信息分页列表 */ @RequestMapping(value = "/listPage") - @ResponseBody public Object listPage(String keyword) { Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busStationInfoService.stationListPage(page, keyword))); @@ -53,7 +51,6 @@ * 新增场站信息 */ @RequestMapping(value = "/add") - @ResponseBody public Object add(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -65,7 +62,6 @@ * 修改场站信息 */ @RequestMapping(value = "/update") - @ResponseBody public Object update(@RequestBody @Valid BusStationInfo busStationInfo, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); @@ -77,9 +73,8 @@ * 删除场站信息 */ @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long busStationInfoId) { - return busStationInfoService.deleteStation(busStationInfoId); + public Object delete(@RequestParam Long stationId) { + return busStationInfoService.deleteStation(stationId); } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java index 3738060..8e5f709 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusMonipoiInfoMapper.java @@ -1,7 +1,12 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,8 @@ */ public interface BusMonipoiInfoMapper extends BaseMapper { + List monitorList(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId); + + List monitorListPage(@Param("scope") DataScope dataScope, @Param("stationId")Long stationId,@Param("keyword")String keyword); + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java index 7c24204..34ba2ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusStationInfoMapper.java @@ -19,6 +19,10 @@ */ public interface BusStationInfoMapper extends BaseMapper { - List stationList(@Param("dataScope") DataScope dataScope); + List stationList(@Param("scope") DataScope dataScope); + + + List stationListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, + @Param("keyword")String keyword); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index e45b9fe..fe4cc1d 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -4,32 +4,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37,4 +37,26 @@ ID AS id, MONITOR_NAME AS monitorName, STATION_ID AS stationId, LOCATION AS location, TYPE AS type, DEVICE_CODE AS deviceCode, DEVICE_IP AS deviceIp, DEVICE_PORT AS devicePort, DEVICE_USER AS deviceUser, DEVICE_PASSWORD AS devicePassword, NVR_IP AS nvrIp, NVR_PORT AS nvrPort, NVR_CHANNEL AS nvrChannel, NVR_USER AS nvrUser, NVR_PASSWORD AS nvrPassword, DOOR_IP AS doorIp, DOOR_SN AS doorSn, LONGITUDE AS longitude, LATITUDE AS latitude, DESCRIPTION AS description, DEVICE_STATUS AS deviceStatus, LINE_NUM AS lineNum, PRESET_INTERVAL AS presetInterval, VALID AS valid, SETUP_DATE AS setupDate, TS AS ts + + + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index cdc273f..4210e9a 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -4,21 +4,32 @@ - - - - - + + + + + - ID AS id, STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts + ID AS "stationId", STATION_NAME AS stationName, DEPT_ID AS deptId, VALID AS valid, TS AS ts - + SELECT id,station_name AS "stationName" FROM bus_station_info + + + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java deleted file mode 100644 index 31a5a0e..0000000 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPoint.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.casic.missiles.modular.system.dto; - -import lombok.Data; - -@Data -public class MonitorPoint { - - private Long monitorPointId; - private String monitorPointName; - private String devcode; - private String deviceIp; - private String devicePort; - private String deviceUser; - private String devicePassword; - private String location; - private String setupDate; - private String status; - private String high; - private String type; - - -} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java new file mode 100644 index 0000000..eae2456 --- /dev/null +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/MonitorPointList.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import lombok.Data; + +@Data +public class MonitorPointList { + private Long id; + private String monitorName; +} + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 8bc9f48..4190653 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -129,8 +129,14 @@ * 0:离线,1在线,报警 */ @TableField("DEVICE_STATUS") + @DictCodeField(message = "投诉类型描述不合法", cacheName = MeterDictCode.ADVICE_TYPE) private String deviceStatus; + + @TableField(exist = false) + private String deviceStatusName; + + /** * 最新的巡航线 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java index 3422051..9d5bafd 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusStationInfo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -27,15 +28,17 @@ * 主键id */ @TableId("ID") - private Long id; + private Long stationId; /** * 场站名 */ + @NotNull @TableField("STATION_NAME") private String stationName; /** * 所属机构 */ + @NotNull @TableField("DEPT_ID") private Long deptId; /** @@ -53,7 +56,7 @@ @Override public String toString() { return "BusStationInfo{" + - "id=" + id + + "stationId=" + stationId + ", stationName=" + stationName + ", deptId=" + deptId + ", valid=" + valid + diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 7930088..5d95d88 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,7 +19,7 @@ */ public interface IBusMonipoiInfoService extends IService { - List monitorList(Long stationId); + List monitorList(Long stationId); Page monitorListPage(Page page, Long stationId, String keyword); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java index 77b881d..b14a1b3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusStationInfoService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.StationPointList; import com.casic.missiles.modular.system.model.BusStationInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -22,10 +23,10 @@ Page stationListPage(Page page, String keyword); - Response addStation(BusStationInfo busStationInfo); + ResponseData addStation(BusStationInfo busStationInfo); - Response updateStation(BusStationInfo busStationInfo); + ResponseData updateStation(BusStationInfo busStationInfo); - Response deleteStation(Long busStationInfoId); + ResponseData deleteStation(Long busStationInfoId); } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java index e17a75f..d9451a9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java @@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; 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.MonitorConfigDTO; +import com.casic.missiles.modular.system.dto.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.casic.missiles.modular.system.dao.BusMonipoiInfoMapper; import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; +import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -22,27 +26,30 @@ * 监测点/设备信息 服务实现类 *

* - * @author stylefeng123 + * @author cz * @since 2023-04-18 */ @Service +@AllArgsConstructor public class BusMonipoiInfoServiceImpl extends ServiceImpl implements IBusMonipoiInfoService { + private final AbstractPermissionContext permissionContext; + @Override - public List monitorList(Long stationId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - List busMonitorInfoList = this.baseMapper.selectList(queryWrapper); - return busMonitorInfoList; + public List monitorList(Long stationId) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorList(dataScope, stationId); + return monitorPointLists; } @Override public Page monitorListPage(Page page, Long stationId, String keyword) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(keyword), "monitor_name", keyword); - queryWrapper.eq(ObjectUtils.isNotEmpty(stationId), "station_id", stationId); - Page busMonitorInfoPage = this.baseMapper.selectPage(page, queryWrapper); - return busMonitorInfoPage; + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorListPage(dataScope, stationId, keyword); + page.setRecords(monitorPointLists); + return page; } @Override diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java index 0035346..877bfd9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java @@ -17,4 +17,5 @@ @Service public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService { + } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java index 2b566e5..8cc132e 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; +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.StationPointList; import com.casic.missiles.modular.system.model.BusStationInfo; import com.casic.missiles.modular.system.dao.BusStationInfoMapper; @@ -20,7 +23,7 @@ * 场站信息表 服务实现类 *

* - * @author stylefeng123 + * @author cz * @since 2023-04-18 */ @Service @@ -33,29 +36,44 @@ public List stationList() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); - List alarmRecordList = this.baseMapper.stationList(dataScope); - return alarmRecordList; + List stationPointLists = this.baseMapper.stationList(dataScope); + return stationPointLists; } @Override public Page stationListPage(Page page, String keyword) { - - return null; + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List busStationInfoList = this.baseMapper.stationListPage(page, dataScope, keyword); + page.setRecords(busStationInfoList); + return page; } @Override - public Response addStation(BusStationInfo busStationInfo) { - return null; + public ResponseData addStation(BusStationInfo busStationInfo) { + int addFlag = this.baseMapper.insert(busStationInfo); + if (addFlag > 0) { + return ResponseData.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @Override - public Response updateStation(BusStationInfo busStationInfo) { - return null; + public ResponseData updateStation(BusStationInfo busStationInfo) { + int updateFlag = this.baseMapper.updateById(busStationInfo); + if (updateFlag > 0) { + return ResponseData.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } @Override - public Response deleteStation(Long busStationInfoId) { - return null; + public ResponseData deleteStation(Long busStationInfoId) { + int deleteFlag = this.baseMapper.deleteById(busStationInfoId); + if (deleteFlag > 0) { + return ResponseData.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } }