From 6a85d168df8c973077f41a69380c983ad2903a32 Mon Sep 17 00:00:00 2001 From: chenlinghy Date: Mon, 4 Sep 2023 21:51:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=8E=82?= =?UTF-8?q?=E5=95=86=E6=9F=A5=E8=AF=A2=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/impl/AlarmTypeName.java | 27 ++++++++++++++----- .../mapper/AlarmDeviceTaskMapper.java | 2 +- .../pojo/dto/AlarmDeviceTaskListRespDTO.java | 6 +++++ .../pojo/dto/AlarmTaskListRespDTO.java | 10 +++++-- .../pojo/dto/task/AlarmDeviceTaskDTO.java | 4 +++ .../pojo/dto/task/AlarmTaskReqDTO.java | 12 ++++----- .../service/impl/AlarmTaskServiceImpl.java | 22 ++++++++------- .../beidouservice/task/AlarmStatusTask.java | 3 ++- .../mappers/AlarmDevideTaskMapper.xml | 6 +++-- 9 files changed, 64 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zjyr/beidouservice/common/impl/AlarmTypeName.java b/src/main/java/com/zjyr/beidouservice/common/impl/AlarmTypeName.java index 1cd0e6d..532b8d4 100644 --- a/src/main/java/com/zjyr/beidouservice/common/impl/AlarmTypeName.java +++ b/src/main/java/com/zjyr/beidouservice/common/impl/AlarmTypeName.java @@ -1,17 +1,21 @@ package com.zjyr.beidouservice.common.impl; import com.zjyr.beidouservice.common.EnumerationBase; +import com.zjyr.beidouservice.constenum.AlarmTypeEnum; public enum AlarmTypeName implements EnumerationBase { - ALARM_TYPE_PREPARE(1, "ALARM_TYPE_PREPARE"), - ALARM_TYPE_AIRATTACK(2, "ALARM_TYPE_AIRATTACK"), - ALARM_TYPE_DISASTER(3, "ALARM_TYPE_DISASTER"), + ALARM_TYPE_PREPARE(1, "预先警报"), + ALARM_TYPE_AIRATTACK(2, "空袭警报"), + ALARM_TYPE_DISASTER(3, "灾情警报"), - ALARM_TYPE_RELIEVE_AIRATTACK(4, "ALARM_TYPE_RELIEVE_AIRATTACK"), - ALARM_TYPE_RELIEVE_DISASTER(5, "ALARM_TYPE_RELIEVE_DISASTER"), + ALARM_TYPE_RELIEVE_AIRATTACK(4, "解除警报"), + ALARM_TYPE_RELIEVE_DISASTER(5, "解除警报灾情"), - ALARM_TYPE_INTERRUPT(6, "ALARM_TYPE_INTERRUPT"); + ALARM_TYPE_INTERRUPT(6, "中断警报"), + + ALARM_TYPE_FIRE(7, "消防警报"), + SHORT_BEEP_TEST(8, "短鸣测试"); private final Integer code; private final String desc; @@ -29,4 +33,15 @@ public enum AlarmTypeName implements EnumerationBase { public String getDescription() { return this.desc; } + + + public static String getByCode(Integer code) { + AlarmTypeName[] values = AlarmTypeName.values(); + for (AlarmTypeName v : values) { + if (code.equals(v.getValue())) { + return v.getDescription(); + } + } + return null; + } } diff --git a/src/main/java/com/zjyr/beidouservice/mapper/AlarmDeviceTaskMapper.java b/src/main/java/com/zjyr/beidouservice/mapper/AlarmDeviceTaskMapper.java index 39f4daa..c905216 100644 --- a/src/main/java/com/zjyr/beidouservice/mapper/AlarmDeviceTaskMapper.java +++ b/src/main/java/com/zjyr/beidouservice/mapper/AlarmDeviceTaskMapper.java @@ -28,5 +28,5 @@ public interface AlarmDeviceTaskMapper { void batchUpdate(@Param("list") List deviceTaskList); - List selectAllByTaskIdStr(@Param("list") List taskIdStrList); + List selectAllByTaskIdStr(@Param("list") List taskIdStrList); } diff --git a/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmDeviceTaskListRespDTO.java b/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmDeviceTaskListRespDTO.java index 82de699..739b56e 100644 --- a/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmDeviceTaskListRespDTO.java +++ b/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmDeviceTaskListRespDTO.java @@ -73,5 +73,11 @@ public class AlarmDeviceTaskListRespDTO { */ @Schema(title = "设备维度", example = "37.90", description = "纬度") private Float longitude; + + /** + * 警报种类 1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试 + */ + @Schema(title = "警报种类", example = "2", description = "1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试") + private String alarmKind; } } diff --git a/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmTaskListRespDTO.java b/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmTaskListRespDTO.java index ede82fa..95c3f5f 100644 --- a/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmTaskListRespDTO.java +++ b/src/main/java/com/zjyr/beidouservice/pojo/dto/AlarmTaskListRespDTO.java @@ -41,13 +41,13 @@ public class AlarmTaskListRespDTO { /** * 任务编号 */ - @Schema(title = "任务编号", example = "JL202308250020",description = "记录编号") + @Schema(title = "任务编号", example = "JL202308250020", description = "记录编号") private String taskIdStr; /** * 记录时间 */ - @Schema(title = "记录时间", example = "2023-08-26 21:00:05",description = "记录时间") + @Schema(title = "记录时间", example = "2023-08-26 21:00:05", description = "记录时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date recodeTime; @@ -74,6 +74,12 @@ public class AlarmTaskListRespDTO { */ @Schema(title = "回示率", example = "88.8", description = "设备正常个数/设备总数量") private Double respRate; + + /** + * 警报种类 1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试 + */ + @Schema(title = "警报种类", example = "2", description = "1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试") + private String alarmKind; } } diff --git a/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmDeviceTaskDTO.java b/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmDeviceTaskDTO.java index 1a5937d..01b5283 100644 --- a/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmDeviceTaskDTO.java +++ b/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmDeviceTaskDTO.java @@ -11,4 +11,8 @@ public class AlarmDeviceTaskDTO extends AlarmDeviceTaskDO { * 设备的北斗 id */ private Integer beidouId; + + private Integer alarmType; + + private Integer alarmKind; } diff --git a/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmTaskReqDTO.java b/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmTaskReqDTO.java index a2d943b..f157fc0 100644 --- a/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmTaskReqDTO.java +++ b/src/main/java/com/zjyr/beidouservice/pojo/dto/task/AlarmTaskReqDTO.java @@ -38,21 +38,21 @@ public class AlarmTaskReqDTO { private String deviceIds; /** - * 警报类型 1:语言广播 2:警报发送 3:警报试鸣,默认警报发送2 + * 警报类型 0:正常警报 1:警报试鸣(无声) 2:警报试鸣(短鸣) 3:警报试鸣(大声) 4:语音发放,默认警报发送0 */ - @Schema(title = "警报类型", example = "2",description = "1:语言广播 2:警报发送 3:警报试鸣,默认警报发送2") + @Schema(title = "警报类型", example = "0",description = "0:正常警报 1:警报试鸣(无声) 2:警报试鸣(短鸣) 3:警报试鸣(大声) 4:语音发放,默认警报发送0") private Integer alarmType; /** - * 警报种类 1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 + * 警报种类 1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试 */ - @Schema(title = "警报种类", example = "2",description = "1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报") + @Schema(title = "警报种类", example = "2",description = "1:预先警报 2:空袭警报 3:灾情警报 4:解除警报 5:解除警报灾情 6:中断警报 7:消防警报 8:短鸣测试") private Integer alarmKind; /** - * 警报方式 1:人工 2:定时,默认人工 + * 警报方式 0:定时 1:人工 默认人工 */ - @Schema(title = "警报方式", example = "1",description = "警报方式 1:人工 2:定时,默认人工") + @Schema(title = "警报方式", example = "1",description = "警报方式 0:定时 1:人工,默认人工") private Integer alarmMode; /** diff --git a/src/main/java/com/zjyr/beidouservice/service/impl/AlarmTaskServiceImpl.java b/src/main/java/com/zjyr/beidouservice/service/impl/AlarmTaskServiceImpl.java index 6c99a5c..1a934ad 100644 --- a/src/main/java/com/zjyr/beidouservice/service/impl/AlarmTaskServiceImpl.java +++ b/src/main/java/com/zjyr/beidouservice/service/impl/AlarmTaskServiceImpl.java @@ -6,7 +6,6 @@ import com.zjyr.beidouservice.common.CommonEnumHandler; import com.zjyr.beidouservice.common.impl.AlarmControlTypeName; import com.zjyr.beidouservice.common.impl.AlarmModeName; import com.zjyr.beidouservice.common.impl.AlarmTypeName; -import com.zjyr.beidouservice.common.impl.ControlChannelStatus; import com.zjyr.beidouservice.common.impl.SensorControlTunnelName; import com.zjyr.beidouservice.common.impl.TaskStatusName; import com.zjyr.beidouservice.constenum.ApprovalStatusEnum; @@ -27,6 +26,7 @@ import com.zjyr.beidouservice.pojo.dto.AlarmDeviceTaskListRespDTO; import com.zjyr.beidouservice.pojo.dto.AlarmTaskListRespDTO; import com.zjyr.beidouservice.pojo.dto.DeviceByLocationDTO; import com.zjyr.beidouservice.pojo.dto.DeviceInfoDTO; +import com.zjyr.beidouservice.pojo.dto.task.AlarmDeviceTaskDTO; import com.zjyr.beidouservice.pojo.dto.task.AlarmDeviceTaskListReqDTO; import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskListReqDTO; import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskReqDTO; @@ -144,10 +144,11 @@ public class AlarmTaskServiceImpl implements AlarmTaskService { .taskIdStr(s.getTaskIdStr()) .id(s.getId()) .recodeTime(s.getSendTime()) + .alarmKind(AlarmTypeName.getByCode(s.getAlarmKind())) .build()) .toList(); //聚合控制通道 - List deviceTaskList = getAggregatedAlarmDeviceTaskDOS( + List deviceTaskList = getAggregatedAlarmDeviceTaskDOS( alarmTaskDOList.stream() .map(AlarmTaskListRespDTO.AlarmTaskRespDTO::getTaskIdStr) .distinct() @@ -181,7 +182,7 @@ public class AlarmTaskServiceImpl implements AlarmTaskService { Integer pageSize = alarmDeviceTaskListReqDTO.getPageSize(); List taskIdStrList = alarmDeviceTaskListReqDTO.getTaskIdStrList(); - List result = getAggregatedAlarmDeviceTaskDOS(taskIdStrList); + List result = getAggregatedAlarmDeviceTaskDOS(taskIdStrList); // 执行中的不展示在详情页 result = result.stream().filter(s -> !TaskStatusName.TASK_EXECUTING.getValue().equals(s.getStatus())).collect(Collectors.toList()); if(result.isEmpty()){ @@ -207,6 +208,7 @@ public class AlarmTaskServiceImpl implements AlarmTaskService { dto.setReportTime(s.getReportTime()); dto.setDeviceId(s.getDeviceId()); dto.setTaskId(s.getTaskId()); + dto.setAlarmKind(AlarmTypeName.getByCode(s.getAlarmKind())); return dto; }).toList(); @@ -217,17 +219,17 @@ public class AlarmTaskServiceImpl implements AlarmTaskService { .build(); } - private List getAggregatedAlarmDeviceTaskDOS(List taskIdStrList) { + private List getAggregatedAlarmDeviceTaskDOS(List taskIdStrList) { if (taskIdStrList.isEmpty()) { return new ArrayList<>(); } - List alarmDeviceTaskList = alarmDeviceTaskMapper.selectAllByTaskIdStr(taskIdStrList); + List alarmDeviceTaskList = alarmDeviceTaskMapper.selectAllByTaskIdStr(taskIdStrList); // 刷新每个device的任务状态 - Map> deviceTaskMap = alarmDeviceTaskList.stream() + Map> deviceTaskMap = alarmDeviceTaskList.stream() .collect(Collectors.groupingBy(s -> String.format("%s-%s", s.getTaskId(), s.getDeviceId()))); - List result = new LinkedList<>(); - for (Map.Entry> entry : deviceTaskMap.entrySet()) { - List relatedDOS = entry.getValue(); + List result = new LinkedList<>(); + for (Map.Entry> entry : deviceTaskMap.entrySet()) { + List relatedDOS = entry.getValue(); if (relatedDOS.size() == 1) { result.addAll(relatedDOS); continue; @@ -237,7 +239,7 @@ public class AlarmTaskServiceImpl implements AlarmTaskService { // 所有都超时的,视为超时 boolean allTimeout = relatedDOS.stream().allMatch(s -> TaskStatusName.TASK_TIMEOUT.getValue().equals(s.getStatus())); boolean allExecuting = relatedDOS.stream().allMatch(s -> TaskStatusName.TASK_EXECUTING.getValue().equals(s.getStatus())); - AlarmDeviceTaskDO resultDO = relatedDOS.get(0); + AlarmDeviceTaskDTO resultDO = relatedDOS.get(0); if (hasSucceedDeviceTask) { resultDO.setStatus(TaskStatusName.TASK_OK.getValue()); } else if (allTimeout) { diff --git a/src/main/java/com/zjyr/beidouservice/task/AlarmStatusTask.java b/src/main/java/com/zjyr/beidouservice/task/AlarmStatusTask.java index 09ac418..726e052 100644 --- a/src/main/java/com/zjyr/beidouservice/task/AlarmStatusTask.java +++ b/src/main/java/com/zjyr/beidouservice/task/AlarmStatusTask.java @@ -65,7 +65,8 @@ public class AlarmStatusTask { .filter(s -> s.getTaskInfo() != null) .collect(Collectors.toMap( s -> String.format("%s-%s-%s", s.getTaskInfo().getTaskId(), s.getTaskInfo().getSensorId(), s.getTaskInfo().getChannel().getValue()), - s -> s + s -> s, + (s1, s2) -> s1 )); deviceList.forEach(alarmDeviceTaskDO -> { diff --git a/src/main/resources/mappers/AlarmDevideTaskMapper.xml b/src/main/resources/mappers/AlarmDevideTaskMapper.xml index 322ab21..7ef1e2f 100644 --- a/src/main/resources/mappers/AlarmDevideTaskMapper.xml +++ b/src/main/resources/mappers/AlarmDevideTaskMapper.xml @@ -12,6 +12,8 @@ + + @@ -53,8 +55,8 @@ - + select adt.*, atk.alarm_type, atk.alarm_kind from alarm_device_task adt join alarm_task atk on adt.task_id = atk.id where 1 = 1