查询任务及详情
This commit is contained in:
parent
a643cd1158
commit
e4fdfd279d
|
@ -2,6 +2,10 @@ package com.zjyr.beidouservice.controller;
|
|||
|
||||
import com.zjyr.beidouservice.pojo.MyResp;
|
||||
|
||||
import com.zjyr.beidouservice.pojo.dto.AlarmDeviceTaskListRespDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.AlarmTaskListRespDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmDeviceTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskReqDTO;
|
||||
import com.zjyr.beidouservice.service.AlarmTaskService;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -33,5 +37,15 @@ public class DeviceTaskController {
|
|||
return alarmTaskService.alarmTaskExec(alarmTaskReqDTO);
|
||||
}
|
||||
|
||||
@PostMapping("/alarm/task/list")
|
||||
public MyResp<AlarmTaskListRespDTO> alarmTaskList(@RequestBody AlarmTaskListReqDTO alarmTaskReqDTO) {
|
||||
return MyResp.success(alarmTaskService.alarmTaskList(alarmTaskReqDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/alarm/device/task/list")
|
||||
public MyResp<AlarmDeviceTaskListRespDTO> alarmDeviceTaskList(@RequestBody AlarmDeviceTaskListReqDTO alarmDeviceTaskListReqDTO) {
|
||||
return MyResp.success(alarmTaskService.alarmDeviceTaskList(alarmDeviceTaskListReqDTO));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -26,4 +26,6 @@ public interface AlarmDeviceTaskMapper {
|
|||
List<AlarmDeviceTaskDO> getAlarmTaskByStatus(@Param("status") Integer status);
|
||||
|
||||
void batchUpdate(@Param("list") List<AlarmDeviceTaskDO> deviceTaskList);
|
||||
|
||||
List<AlarmDeviceTaskDO> selectAllByTaskIdStr(@Param("list") List<String> taskIdStrList);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package com.zjyr.beidouservice.mapper;
|
||||
|
||||
import com.zjyr.beidouservice.pojo.dataobject.AlarmTaskDO;
|
||||
import com.zjyr.beidouservice.pojo.entry.SensorTask;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface AlarmTaskMapper {
|
||||
|
@ -12,4 +16,6 @@ public interface AlarmTaskMapper {
|
|||
* @return int
|
||||
*/
|
||||
long addAlarmTask(AlarmTaskDO alarmTaskDO);
|
||||
|
||||
List<AlarmTaskDO> selectAllByTaskIdStr(@Param("list") List<String> taskIdStrList);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ public interface DeviceMapper {
|
|||
List<DeviceDO> selectDeviceByLoc(DeviceByLocationDTO deviceByLocationDTO);
|
||||
|
||||
|
||||
DeviceDO selectDeviceByDeviceId(@Param("deviceId") Long deviceId);
|
||||
List<DeviceDO> selectDeviceByDeviceIds(@Param("ids") List<Integer> deviceIdList);
|
||||
|
||||
void batchUpdateDeviceAlarmStatus(@Param("ids") Set<Integer> alarmingDeviceIds, @Param("status") Integer code);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package com.zjyr.beidouservice.pojo.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.zjyr.beidouservice.pojo.dataobject.AlarmDeviceTaskDO;
|
||||
import com.zjyr.beidouservice.pojo.vo.PageInfoVO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AlarmDeviceTaskListRespDTO {
|
||||
|
||||
private List<AlarmDeviceTaskDTO> deviceList;
|
||||
|
||||
private PageInfoVO pageInfo;
|
||||
|
||||
@Data
|
||||
public static class AlarmDeviceTaskDTO {
|
||||
|
||||
private Long taskId;
|
||||
|
||||
private Integer deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date reportTime;
|
||||
|
||||
private Integer taskState;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Float latitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Float longitude;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package com.zjyr.beidouservice.pojo.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.zjyr.beidouservice.pojo.vo.PageInfoVO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AlarmTaskListRespDTO {
|
||||
|
||||
private List<AlarmTaskRespDTO> taskList;
|
||||
|
||||
private PageInfoVO pageInfo;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public static class AlarmTaskRespDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String taskIdStr;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date recodeTime;
|
||||
|
||||
private Integer deviceNum;
|
||||
|
||||
private Integer execNormalNum;
|
||||
|
||||
private Integer execAbnormalNum;
|
||||
|
||||
private Double respRate;
|
||||
}
|
||||
|
||||
}
|
|
@ -13,5 +13,5 @@ public class DeviceSearchDTO {
|
|||
/**
|
||||
* 设备id
|
||||
*/
|
||||
private Long deviceId;
|
||||
private Integer deviceId;
|
||||
}
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package com.zjyr.beidouservice.pojo.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DeviceTaskContentDTO {
|
||||
private Long deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date respTime;
|
||||
|
||||
private Integer execState;
|
||||
|
||||
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package com.zjyr.beidouservice.pojo.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DeviceTaskRespDTO {
|
||||
private Long id;
|
||||
|
||||
private String taskId;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date recodeTime;
|
||||
|
||||
private Integer deviceNum;
|
||||
|
||||
private Integer execNormalNum;
|
||||
|
||||
private Integer execAbnormalNum;
|
||||
|
||||
private Double respRate;
|
||||
|
||||
private List<DeviceTaskContentDTO> data;
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.zjyr.beidouservice.pojo.dto.task;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AlarmDeviceTaskListReqDTO {
|
||||
|
||||
private Integer pageSize;
|
||||
|
||||
private Integer pageNum;
|
||||
|
||||
private List<String> taskIdStrList;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.zjyr.beidouservice.pojo.dto.task;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AlarmTaskListReqDTO {
|
||||
|
||||
private Integer pageSize;
|
||||
|
||||
private Integer pageNum;
|
||||
|
||||
private List<String> taskIdStrList;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.zjyr.beidouservice.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PageInfoVO {
|
||||
|
||||
private Long total;
|
||||
|
||||
private Integer pageSize;
|
||||
|
||||
private Integer pageNum;
|
||||
|
||||
public PageInfoVO(Long total, Integer pageSize, Integer pageNum) {
|
||||
this.total = total;
|
||||
this.pageSize = pageSize;
|
||||
this.pageNum = pageNum;
|
||||
}
|
||||
}
|
|
@ -3,6 +3,10 @@ package com.zjyr.beidouservice.service;
|
|||
|
||||
import com.zjyr.beidouservice.pojo.MyResp;
|
||||
|
||||
import com.zjyr.beidouservice.pojo.dto.AlarmDeviceTaskListRespDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.AlarmTaskListRespDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmDeviceTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskReqDTO;
|
||||
|
||||
public interface AlarmTaskService {
|
||||
|
@ -14,6 +18,7 @@ public interface AlarmTaskService {
|
|||
MyResp alarmTaskExec(AlarmTaskReqDTO alarmTaskReqDTO);
|
||||
|
||||
|
||||
AlarmTaskListRespDTO alarmTaskList(AlarmTaskListReqDTO alarmTaskReqDTO);
|
||||
|
||||
|
||||
AlarmDeviceTaskListRespDTO alarmDeviceTaskList(AlarmDeviceTaskListReqDTO alarmDeviceTaskListReqDTO);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.zjyr.beidouservice.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.zjyr.beidouservice.common.impl.AlarmControlTypeName;
|
||||
import com.zjyr.beidouservice.common.impl.AlarmModeName;
|
||||
import com.zjyr.beidouservice.common.impl.AlarmTypeName;
|
||||
|
@ -19,9 +21,14 @@ import com.zjyr.beidouservice.pojo.dataobject.AlarmTaskDO;
|
|||
import com.zjyr.beidouservice.pojo.dataobject.DeviceDO;
|
||||
import com.zjyr.beidouservice.pojo.dataobject.LocCountyDO;
|
||||
import com.zjyr.beidouservice.pojo.dataobject.SystemConfigDO;
|
||||
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.AlarmDeviceTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskListReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.dto.task.AlarmTaskReqDTO;
|
||||
import com.zjyr.beidouservice.pojo.vo.PageInfoVO;
|
||||
import com.zjyr.beidouservice.service.AdapterProtocolService;
|
||||
import com.zjyr.beidouservice.service.AlarmTaskService;
|
||||
import com.zjyr.beidouservice.service.DeviceService;
|
||||
|
@ -34,8 +41,11 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Service
|
||||
|
@ -112,6 +122,130 @@ public class AlarmTaskServiceImpl implements AlarmTaskService {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlarmTaskListRespDTO alarmTaskList(AlarmTaskListReqDTO alarmTaskReqDTO) {
|
||||
Integer pageNum = alarmTaskReqDTO.getPageNum();
|
||||
Integer pageSize = alarmTaskReqDTO.getPageSize();
|
||||
List<String> taskIdStrList = alarmTaskReqDTO.getTaskIdStrList();
|
||||
// 分页查询
|
||||
PageInfo<AlarmTaskDO> pageResult = queryAlarmTaskDOList(taskIdStrList, pageNum, pageSize);
|
||||
// 初始的 task dto
|
||||
List<AlarmTaskListRespDTO.AlarmTaskRespDTO> alarmTaskDOList = pageResult.getList().stream()
|
||||
.map(s -> AlarmTaskListRespDTO.AlarmTaskRespDTO.builder()
|
||||
.taskIdStr(s.getTaskIdStr())
|
||||
.id(s.getId())
|
||||
.recodeTime(s.getSendTime())
|
||||
.build())
|
||||
.toList();
|
||||
List<AlarmDeviceTaskDO> deviceTaskList = getAggregatedAlarmDeviceTaskDOS(
|
||||
alarmTaskDOList.stream()
|
||||
.map(AlarmTaskListRespDTO.AlarmTaskRespDTO::getTaskIdStr)
|
||||
.distinct()
|
||||
.toList()
|
||||
);
|
||||
Map<Long, List<AlarmDeviceTaskDO>> deviceTaskMap = deviceTaskList.stream().collect(Collectors.groupingBy(AlarmDeviceTaskDO::getTaskId));
|
||||
for (AlarmTaskListRespDTO.AlarmTaskRespDTO task : alarmTaskDOList) {
|
||||
Long taskId = task.getId();
|
||||
List<AlarmDeviceTaskDO> deviceTaskDOS = deviceTaskMap.getOrDefault(taskId, new ArrayList<>());
|
||||
int successCount = (int) deviceTaskDOS.stream().filter(s -> TaskStatusName.TASK_OK.getValue().equals(s.getStatus())).count();
|
||||
int failCount = (int) deviceTaskDOS.stream().filter(s -> TaskStatusName.TASK_ERROR.getValue().equals(s.getStatus())).count();
|
||||
int timeoutCount = (int) deviceTaskDOS.stream().filter(s -> TaskStatusName.TASK_TIMEOUT.getValue().equals(s.getStatus())).count();
|
||||
task.setDeviceNum(deviceTaskDOS.size());
|
||||
task.setExecNormalNum(successCount + failCount);
|
||||
task.setExecAbnormalNum(timeoutCount);
|
||||
task.setRespRate((double) task.getExecNormalNum() / task.getDeviceNum());
|
||||
}
|
||||
|
||||
PageInfoVO pageInfoVO = new PageInfoVO(pageResult.getTotal(), pageResult.getPageSize(), pageResult.getPageNum());
|
||||
|
||||
return AlarmTaskListRespDTO.builder()
|
||||
.taskList(alarmTaskDOList)
|
||||
.pageInfo(pageInfoVO)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlarmDeviceTaskListRespDTO alarmDeviceTaskList(AlarmDeviceTaskListReqDTO alarmDeviceTaskListReqDTO) {
|
||||
Integer pageNum = alarmDeviceTaskListReqDTO.getPageNum();
|
||||
Integer pageSize = alarmDeviceTaskListReqDTO.getPageSize();
|
||||
List<String> taskIdStrList = alarmDeviceTaskListReqDTO.getTaskIdStrList();
|
||||
|
||||
List<AlarmDeviceTaskDO> result = getAggregatedAlarmDeviceTaskDOS(taskIdStrList);
|
||||
// 执行中的不展示在详情页
|
||||
result = result.stream().filter(s -> !TaskStatusName.TASK_EXECUTING.getValue().equals(s.getStatus())).collect(Collectors.toList());
|
||||
|
||||
PageInfoVO pageInfoVO = new PageInfoVO((long) result.size(), pageSize, pageNum);
|
||||
// 分页
|
||||
result = result.stream().skip((long) pageSize * (pageNum -1)).limit(pageSize).collect(Collectors.toList());
|
||||
|
||||
List<Integer> deviceIdList = result.stream().map(AlarmDeviceTaskDO::getDeviceId).distinct().toList();
|
||||
// 查询设备信息
|
||||
List<DeviceDO> deviceList = deviceMapper.selectDeviceByDeviceIds(deviceIdList);
|
||||
Map<Integer, DeviceDO> deviceDOMap = deviceList.stream().collect(Collectors.toMap(DeviceDO::getDeviceId, s -> s));
|
||||
List<AlarmDeviceTaskListRespDTO.AlarmDeviceTaskDTO> dtoList = result.stream()
|
||||
.map(s -> {
|
||||
AlarmDeviceTaskListRespDTO.AlarmDeviceTaskDTO dto = new AlarmDeviceTaskListRespDTO.AlarmDeviceTaskDTO();
|
||||
DeviceDO device = deviceDOMap.getOrDefault(s.getDeviceId(), new DeviceDO());
|
||||
dto.setDeviceName(device.getDeviceName());
|
||||
dto.setLatitude(device.getLatitude());
|
||||
dto.setLongitude(device.getLongitude());
|
||||
dto.setTaskState(s.getStatus());
|
||||
dto.setReportTime(s.getReportTime());
|
||||
dto.setDeviceId(s.getDeviceId());
|
||||
dto.setTaskId(s.getTaskId());
|
||||
|
||||
return dto;
|
||||
}).toList();
|
||||
|
||||
return AlarmDeviceTaskListRespDTO.builder()
|
||||
.pageInfo(pageInfoVO)
|
||||
.deviceList(dtoList)
|
||||
.build();
|
||||
}
|
||||
|
||||
private List<AlarmDeviceTaskDO> getAggregatedAlarmDeviceTaskDOS(List<String> taskIdStrList) {
|
||||
if (taskIdStrList.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<AlarmDeviceTaskDO> alarmDeviceTaskList = alarmDeviceTaskMapper.selectAllByTaskIdStr(taskIdStrList);
|
||||
// 刷新每个device的任务状态
|
||||
Map<String, List<AlarmDeviceTaskDO>> deviceTaskMap = alarmDeviceTaskList.stream()
|
||||
.collect(Collectors.groupingBy(s -> String.format("%s-%s", s.getTaskId(), s.getDeviceId())));
|
||||
List<AlarmDeviceTaskDO> result = new LinkedList<>();
|
||||
for (Map.Entry<String, List<AlarmDeviceTaskDO>> entry : deviceTaskMap.entrySet()) {
|
||||
List<AlarmDeviceTaskDO> relatedDOS = entry.getValue();
|
||||
if (relatedDOS.size() == 1) {
|
||||
result.addAll(relatedDOS);
|
||||
continue;
|
||||
}
|
||||
// 有一个成功的,视为全部成功
|
||||
boolean hasSucceedDeviceTask = relatedDOS.stream().anyMatch(s -> TaskStatusName.TASK_OK.getValue().equals(s.getStatus()));
|
||||
// 所有都超时的,视为超时
|
||||
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);
|
||||
if (hasSucceedDeviceTask) {
|
||||
resultDO.setStatus(TaskStatusName.TASK_OK.getValue());
|
||||
} else if (allTimeout) {
|
||||
resultDO.setStatus(TaskStatusName.TASK_TIMEOUT.getValue());
|
||||
} else if (allExecuting) {
|
||||
resultDO.setStatus(TaskStatusName.TASK_EXECUTING.getValue());
|
||||
} else {
|
||||
resultDO.setStatus(TaskStatusName.TASK_ERROR.getValue());
|
||||
}
|
||||
result.add(resultDO);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private PageInfo<AlarmTaskDO> queryAlarmTaskDOList(List<String> taskIdStrList, int page, int nItems) {
|
||||
PageHelper.startPage(page, nItems);
|
||||
List<AlarmTaskDO> alarmTaskList = alarmTaskMapper.selectAllByTaskIdStr(taskIdStrList);
|
||||
PageInfo<AlarmTaskDO> pgInfo = new PageInfo<>(alarmTaskList);
|
||||
PageHelper.clearPage();
|
||||
return pgInfo;
|
||||
}
|
||||
private static List<AlarmDeviceTaskDO> getAlarmDeviceTaskDOS(AlarmTaskReqDTO alarmTaskReqDTO, DeviceInfoDTO deviceInfo, Long taskId) {
|
||||
List<AlarmDeviceTaskDO> alarmDeviceTaskDOS = new ArrayList<>();
|
||||
List<Integer> deviceIds = deviceInfo.getDeviceIds();
|
||||
|
|
|
@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -57,13 +58,13 @@ public class DeviceServiceImpl implements DeviceService {
|
|||
public DeviceRespDTO getDeviceByDeviceId(DeviceSearchDTO deviceSearchDTO) {
|
||||
log.info("get device info by deviceId: [{}]", deviceSearchDTO.getDeviceId());
|
||||
|
||||
DeviceDO deviceDO = deviceMapper.selectDeviceByDeviceId(deviceSearchDTO.getDeviceId());
|
||||
if (deviceDO == null) {
|
||||
List<DeviceDO> deviceDOList = deviceMapper.selectDeviceByDeviceIds(Collections.singletonList(deviceSearchDTO.getDeviceId()));
|
||||
if (deviceDOList.isEmpty()) {
|
||||
log.warn("根据deviceId未查找到设备信息");
|
||||
return null;
|
||||
}
|
||||
|
||||
return DeviceRespDTO.fromDO(deviceDO);
|
||||
return DeviceRespDTO.fromDO(deviceDOList.get(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -50,5 +50,17 @@
|
|||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="selectAllByTaskIdStr" resultMap="alarm_device_task">
|
||||
select adt.* from alarm_device_task adt
|
||||
join alarm_task atk on adt.task_id = atk.id
|
||||
where 1 = 1
|
||||
<if test="list != null and !list.isEmpty()">
|
||||
and atk.task_id_str in
|
||||
<foreach collection="list" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -44,5 +44,17 @@
|
|||
</trim>
|
||||
</insert>
|
||||
|
||||
<select id="selectAllByTaskIdStr" resultMap="alarm_task">
|
||||
select * from alarm_task
|
||||
where 1 = 1
|
||||
<if test="list != null and !list.isEmpty()">
|
||||
and task_id_str in
|
||||
<foreach collection="list" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
order by send_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -48,11 +48,13 @@
|
|||
</select>
|
||||
|
||||
|
||||
<select id="selectDeviceByDeviceId" resultType="com.zjyr.beidouservice.pojo.dataobject.DeviceDO"
|
||||
parameterType="java.lang.Long" resultMap="device">
|
||||
<select id="selectDeviceByDeviceIds" resultMap="device">
|
||||
select *
|
||||
from device
|
||||
where device_id = #{deviceId}
|
||||
where device_id in
|
||||
<foreach collection="ids" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<update id="batchUpdateDeviceAlarmStatus">
|
||||
|
|
Loading…
Reference in New Issue